kernel: bump 5.10 to 5.10.173

Manually rebased:
        ramips/patches-5.10/810-uvc-add-iPassion-iP2970-support.patch

All other patches automatically rebased.

Signed-off-by: John Audia <therealgraysky@proton.me>
(cherry picked from commit d4aad642ff80750ec16a58058eb6da718e2129cd)
This commit is contained in:
John Audia 2023-03-12 10:03:16 -04:00 committed by Hauke Mehrtens
parent 36bf158b47
commit 24d84a13a4
104 changed files with 289 additions and 346 deletions

View File

@ -1,2 +1,2 @@
LINUX_VERSION-5.10 = .172
LINUX_KERNEL_HASH-5.10.172 = f20dbae344df1c33cad617f7670c5e061557f592f422c842d3b30155df2927b1
LINUX_VERSION-5.10 = .173
LINUX_KERNEL_HASH-5.10.173 = 3480b474c727ed882416202084acce6861659e74f1d84b724a342c514b083c25

View File

@ -18,7 +18,7 @@ Signed-off-by: Stephen Boyd <sboyd@kernel.org>
--- a/drivers/clk/clk.c
+++ b/drivers/clk/clk.c
@@ -3105,7 +3105,10 @@ static int clk_rate_get(void *data, u64
@@ -3116,7 +3116,10 @@ static int clk_rate_get(void *data, u64
{
struct clk_core *core = data;

View File

@ -10,7 +10,7 @@ Signed-off-by: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma@imgtec.com>
--- a/drivers/mtd/spi-nor/core.c
+++ b/drivers/mtd/spi-nor/core.c
@@ -3159,6 +3159,7 @@ int spi_nor_scan(struct spi_nor *nor, co
@@ -3168,6 +3168,7 @@ int spi_nor_scan(struct spi_nor *nor, co
struct device *dev = nor->dev;
struct mtd_info *mtd = &nor->mtd;
struct device_node *np = spi_nor_get_flash_node(nor);
@ -18,7 +18,7 @@ Signed-off-by: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma@imgtec.com>
int ret;
int i;
@@ -3213,7 +3214,12 @@ int spi_nor_scan(struct spi_nor *nor, co
@@ -3222,7 +3223,12 @@ int spi_nor_scan(struct spi_nor *nor, co
if (ret)
return ret;

View File

@ -11,7 +11,7 @@ Signed-off-by: Noralf Tronnes <notro@tronnes.org>
--- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c
+++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
@@ -378,7 +378,7 @@ static const struct gpio_chip bcm2835_gp
@@ -376,7 +376,7 @@ static const struct gpio_chip bcm2835_gp
.get = bcm2835_gpio_get,
.set = bcm2835_gpio_set,
.set_config = gpiochip_generic_config,

View File

@ -18,7 +18,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
@@ -2604,7 +2604,7 @@ static void bcmgenet_init_tx_ring(struct
@@ -2612,7 +2612,7 @@ static void bcmgenet_init_tx_ring(struct
bcmgenet_tdma_ring_writel(priv, index, 0, TDMA_PROD_INDEX);
bcmgenet_tdma_ring_writel(priv, index, 0, TDMA_CONS_INDEX);
@ -27,7 +27,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
/* Disable rate control for now */
bcmgenet_tdma_ring_writel(priv, index, flow_period_val,
TDMA_FLOW_PERIOD);
@@ -4073,9 +4073,12 @@ static int bcmgenet_probe(struct platfor
@@ -4081,9 +4081,12 @@ static int bcmgenet_probe(struct platfor
netif_set_real_num_rx_queues(priv->dev, priv->hw_params->rx_queues + 1);
/* Set default coalescing parameters */

View File

@ -20,7 +20,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
--- a/drivers/net/ethernet/broadcom/genet/bcmmii.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmmii.c
@@ -293,6 +293,8 @@ int bcmgenet_mii_probe(struct net_device
@@ -286,6 +286,8 @@ int bcmgenet_mii_probe(struct net_device
/* Communicate the integrated PHY revision */
if (priv->internal_phy)
phy_flags = priv->gphy_rev;

View File

@ -37,7 +37,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
static inline void bcmgenet_writel(u32 value, void __iomem *offset)
{
@@ -2435,6 +2438,11 @@ static void reset_umac(struct bcmgenet_p
@@ -2443,6 +2446,11 @@ static void reset_umac(struct bcmgenet_p
bcmgenet_rbuf_ctrl_set(priv, 0);
udelay(10);

View File

@ -24,7 +24,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
--- a/Makefile
+++ b/Makefile
@@ -1369,6 +1369,9 @@ ifneq ($(dtstree),)
@@ -1376,6 +1376,9 @@ ifneq ($(dtstree),)
%.dtb: include/config/kernel.release scripts_dtc
$(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@

View File

@ -14,7 +14,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
--- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c
+++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
@@ -1336,7 +1336,7 @@ static int bcm2835_pinctrl_probe(struct
@@ -1334,7 +1334,7 @@ static int bcm2835_pinctrl_probe(struct
girq->default_type = IRQ_TYPE_NONE;
girq->handler = handle_level_irq;

View File

@ -13,7 +13,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
--- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c
+++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
@@ -1308,9 +1308,13 @@ static int bcm2835_pinctrl_probe(struct
@@ -1306,9 +1306,13 @@ static int bcm2835_pinctrl_probe(struct
char *name;
girq->parents[i] = irq_of_parse_and_map(np, i);

View File

@ -15,7 +15,7 @@ Signed-off-by: Nataliya Korovkina <malus.brandywine@gmail.com>
--- a/Makefile
+++ b/Makefile
@@ -1369,7 +1369,7 @@ ifneq ($(dtstree),)
@@ -1376,7 +1376,7 @@ ifneq ($(dtstree),)
%.dtb: include/config/kernel.release scripts_dtc
$(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@

View File

@ -20,7 +20,7 @@ Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
--- a/drivers/media/i2c/imx219.c
+++ b/drivers/media/i2c/imx219.c
@@ -118,6 +118,16 @@
@@ -124,6 +124,16 @@
#define IMX219_PIXEL_ARRAY_WIDTH 3280U
#define IMX219_PIXEL_ARRAY_HEIGHT 2464U
@ -37,7 +37,7 @@ Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
struct imx219_reg {
u16 address;
u8 val;
@@ -536,7 +546,7 @@ static const struct imx219_mode supporte
@@ -444,7 +454,7 @@ static const struct imx219_mode supporte
struct imx219 {
struct v4l2_subdev sd;
@ -46,7 +46,7 @@ Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
struct v4l2_mbus_framefmt fmt;
@@ -685,18 +695,26 @@ static void imx219_set_default_format(st
@@ -593,18 +603,26 @@ static void imx219_set_default_format(st
static int imx219_open(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh)
{
struct imx219 *imx219 = to_imx219(sd);
@ -81,7 +81,7 @@ Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
/* Initialize try_crop rectangle. */
try_crop = v4l2_subdev_get_try_crop(sd, fh->pad, 0);
@@ -805,10 +823,21 @@ static int imx219_enum_mbus_code(struct
@@ -713,10 +731,21 @@ static int imx219_enum_mbus_code(struct
{
struct imx219 *imx219 = to_imx219(sd);
@ -105,7 +105,7 @@ Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
return 0;
}
@@ -819,16 +848,29 @@ static int imx219_enum_frame_size(struct
@@ -727,16 +756,29 @@ static int imx219_enum_frame_size(struct
{
struct imx219 *imx219 = to_imx219(sd);
@ -142,7 +142,7 @@ Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
return 0;
}
@@ -843,9 +885,9 @@ static void imx219_reset_colorspace(stru
@@ -751,9 +793,9 @@ static void imx219_reset_colorspace(stru
fmt->xfer_func = V4L2_MAP_XFER_FUNC_DEFAULT(fmt->colorspace);
}
@ -155,7 +155,7 @@ Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
{
fmt->format.width = mode->width;
fmt->format.height = mode->height;
@@ -853,20 +895,38 @@ static void imx219_update_pad_format(str
@@ -761,20 +803,38 @@ static void imx219_update_pad_format(str
imx219_reset_colorspace(&fmt->format);
}
@ -198,7 +198,7 @@ Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
}
return 0;
@@ -896,51 +956,74 @@ static int imx219_set_pad_format(struct
@@ -804,51 +864,74 @@ static int imx219_set_pad_format(struct
int exposure_max, exposure_def, hblank;
unsigned int i;
@ -316,7 +316,7 @@ Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
}
mutex_unlock(&imx219->mutex);
@@ -1511,13 +1594,14 @@ static int imx219_probe(struct i2c_clien
@@ -1462,13 +1545,14 @@ static int imx219_probe(struct i2c_clien
imx219->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE;
imx219->sd.entity.function = MEDIA_ENT_F_CAM_SENSOR;

View File

@ -15,7 +15,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
--- a/drivers/media/i2c/imx219.c
+++ b/drivers/media/i2c/imx219.c
@@ -1591,7 +1591,8 @@ static int imx219_probe(struct i2c_clien
@@ -1542,7 +1542,8 @@ static int imx219_probe(struct i2c_clien
/* Initialize subdev */
imx219->sd.internal_ops = &imx219_internal_ops;

View File

@ -16,7 +16,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
--- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c
+++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
@@ -395,7 +395,7 @@ static const struct gpio_chip bcm2711_gp
@@ -393,7 +393,7 @@ static const struct gpio_chip bcm2711_gp
.get = bcm2835_gpio_get,
.set = bcm2835_gpio_set,
.set_config = gpiochip_generic_config,

View File

@ -12,7 +12,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -1487,9 +1487,6 @@ static int vc4_hdmi_cec_init(struct vc4_
@@ -1488,9 +1488,6 @@ static int vc4_hdmi_cec_init(struct vc4_
u32 value;
int ret;
@ -22,7 +22,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
vc4_hdmi->cec_adap = cec_allocate_adapter(&vc4_hdmi_cec_adap_ops,
vc4_hdmi,
vc4_hdmi->variant->card_name,
@@ -1923,7 +1920,6 @@ static const struct vc4_hdmi_variant bcm
@@ -1924,7 +1921,6 @@ static const struct vc4_hdmi_variant bcm
.debugfs_name = "hdmi_regs",
.card_name = "vc4-hdmi",
.max_pixel_clock = 162000000,

View File

@ -14,7 +14,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -995,6 +995,44 @@ static void vc4_hdmi_audio_shutdown(stru
@@ -996,6 +996,44 @@ static void vc4_hdmi_audio_shutdown(stru
vc4_hdmi->audio.substream = NULL;
}
@ -59,7 +59,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
/* HDMI audio codec callbacks */
static int vc4_hdmi_audio_hw_params(struct snd_pcm_substream *substream,
struct snd_pcm_hw_params *params,
@@ -1005,6 +1043,8 @@ static int vc4_hdmi_audio_hw_params(stru
@@ -1006,6 +1044,8 @@ static int vc4_hdmi_audio_hw_params(stru
struct device *dev = &vc4_hdmi->pdev->dev;
u32 audio_packet_config, channel_mask;
u32 channel_map;
@ -68,7 +68,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
if (substream != vc4_hdmi->audio.substream)
return -EINVAL;
@@ -1025,6 +1065,14 @@ static int vc4_hdmi_audio_hw_params(stru
@@ -1026,6 +1066,14 @@ static int vc4_hdmi_audio_hw_params(stru
vc4_hdmi_audio_set_mai_clock(vc4_hdmi);
@ -85,7 +85,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
VC4_HDMI_AUDIO_PACKET_ZERO_DATA_ON_SAMPLE_FLAT |
--- a/drivers/gpu/drm/vc4/vc4_regs.h
+++ b/drivers/gpu/drm/vc4/vc4_regs.h
@@ -516,6 +516,36 @@
@@ -522,6 +522,36 @@
# define VC4_HDMI_AUDIO_PACKET_CEA_MASK_MASK VC4_MASK(7, 0)
# define VC4_HDMI_AUDIO_PACKET_CEA_MASK_SHIFT 0

View File

@ -26,7 +26,7 @@ Signed-off-by: Matthias Reichl <hias@horus.com>
#include <sound/dmaengine_pcm.h>
#include <sound/pcm_drm_eld.h>
#include <sound/pcm_params.h>
@@ -1176,6 +1177,47 @@ static int vc4_hdmi_audio_eld_ctl_get(st
@@ -1177,6 +1178,47 @@ static int vc4_hdmi_audio_eld_ctl_get(st
return 0;
}
@ -74,7 +74,7 @@ Signed-off-by: Matthias Reichl <hias@horus.com>
static const struct snd_kcontrol_new vc4_hdmi_audio_controls[] = {
{
.access = SNDRV_CTL_ELEM_ACCESS_READ |
@@ -1185,6 +1227,19 @@ static const struct snd_kcontrol_new vc4
@@ -1186,6 +1228,19 @@ static const struct snd_kcontrol_new vc4
.info = vc4_hdmi_audio_eld_ctl_info,
.get = vc4_hdmi_audio_eld_ctl_get,
},
@ -94,7 +94,7 @@ Signed-off-by: Matthias Reichl <hias@horus.com>
};
static const struct snd_soc_dapm_widget vc4_hdmi_audio_widgets[] = {
@@ -1305,6 +1360,11 @@ static int vc4_hdmi_audio_init(struct vc
@@ -1306,6 +1361,11 @@ static int vc4_hdmi_audio_init(struct vc
vc4_hdmi->audio.dma_data.addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
vc4_hdmi->audio.dma_data.maxburst = 2;

View File

@ -14,7 +14,7 @@ Signed-off-by: Matthias Reichl <hias@horus.com>
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -1035,9 +1035,8 @@ static int sample_rate_to_mai_fmt(int sa
@@ -1036,9 +1036,8 @@ static int sample_rate_to_mai_fmt(int sa
}
/* HDMI audio codec callbacks */
@ -26,7 +26,7 @@ Signed-off-by: Matthias Reichl <hias@horus.com>
{
struct vc4_hdmi *vc4_hdmi = dai_to_hdmi(dai);
struct drm_encoder *encoder = &vc4_hdmi->encoder.base.base;
@@ -1050,12 +1049,15 @@ static int vc4_hdmi_audio_hw_params(stru
@@ -1051,12 +1050,15 @@ static int vc4_hdmi_audio_hw_params(stru
if (substream != vc4_hdmi->audio.substream)
return -EINVAL;
@ -47,7 +47,7 @@ Signed-off-by: Matthias Reichl <hias@horus.com>
HDMI_WRITE(HDMI_MAI_CTL,
VC4_HD_MAI_CTL_RESET |
@@ -1267,7 +1269,7 @@ static const struct snd_soc_component_dr
@@ -1268,7 +1270,7 @@ static const struct snd_soc_component_dr
static const struct snd_soc_dai_ops vc4_hdmi_audio_dai_ops = {
.startup = vc4_hdmi_audio_startup,
.shutdown = vc4_hdmi_audio_shutdown,

View File

@ -10,7 +10,7 @@ Signed-off-by: Matthias Reichl <hias@horus.com>
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -1069,7 +1069,11 @@ static int vc4_hdmi_audio_prepare(struct
@@ -1070,7 +1070,11 @@ static int vc4_hdmi_audio_prepare(struct
vc4_hdmi_audio_set_mai_clock(vc4_hdmi);
mai_sample_rate = sample_rate_to_mai_fmt(vc4_hdmi->audio.samplerate);

View File

@ -14,7 +14,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -1099,6 +1099,7 @@ static int vc4_hdmi_audio_prepare(struct
@@ -1100,6 +1100,7 @@ static int vc4_hdmi_audio_prepare(struct
HDMI_WRITE(HDMI_MAI_CONFIG,
VC4_HDMI_MAI_CONFIG_BIT_REVERSE |

View File

@ -25,7 +25,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
} hvs_formats[] = {
{
.drm = DRM_FORMAT_XRGB8888,
@@ -128,6 +129,12 @@ static const struct hvs_format {
@@ -130,6 +131,12 @@ static const struct hvs_format {
.hvs = HVS_PIXEL_FORMAT_YCBCR_YUV422_2PLANE,
.pixel_order = HVS_PIXEL_ORDER_XYCRCB,
},
@ -38,7 +38,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
};
static const struct hvs_format *vc4_get_hvs_format(u32 drm_format)
@@ -765,27 +772,33 @@ static int vc4_plane_mode_set(struct drm
@@ -767,27 +774,33 @@ static int vc4_plane_mode_set(struct drm
uint32_t param = fourcc_mod_broadcom_param(fb->modifier);
u32 tile_w, tile, x_off, pix_per_tile;
@ -90,7 +90,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
return -EINVAL;
}
@@ -795,6 +808,13 @@ static int vc4_plane_mode_set(struct drm
@@ -797,6 +810,13 @@ static int vc4_plane_mode_set(struct drm
/* Adjust the base pointer to the first pixel to be scanned
* out.
@ -104,7 +104,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
*/
for (i = 0; i < num_planes; i++) {
vc4_state->offsets[i] += param * tile_w * tile;
@@ -956,7 +976,8 @@ static int vc4_plane_mode_set(struct drm
@@ -958,7 +978,8 @@ static int vc4_plane_mode_set(struct drm
/* Pitch word 1/2 */
for (i = 1; i < num_planes; i++) {
@ -114,7 +114,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
vc4_dlist_write(vc4_state,
VC4_SET_FIELD(fb->pitches[i],
SCALER_SRC_PITCH));
@@ -1316,6 +1337,13 @@ static bool vc4_format_mod_supported(str
@@ -1318,6 +1339,13 @@ static bool vc4_format_mod_supported(str
default:
return false;
}
@ -128,7 +128,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
case DRM_FORMAT_RGBX1010102:
case DRM_FORMAT_BGRX1010102:
case DRM_FORMAT_RGBA1010102:
@@ -1348,8 +1376,11 @@ struct drm_plane *vc4_plane_init(struct
@@ -1350,8 +1378,11 @@ struct drm_plane *vc4_plane_init(struct
struct drm_plane *plane = NULL;
struct vc4_plane *vc4_plane;
u32 formats[ARRAY_SIZE(hvs_formats)];
@ -140,7 +140,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
static const uint64_t modifiers[] = {
DRM_FORMAT_MOD_BROADCOM_VC4_T_TILED,
DRM_FORMAT_MOD_BROADCOM_SAND128,
@@ -1364,13 +1395,17 @@ struct drm_plane *vc4_plane_init(struct
@@ -1366,13 +1397,17 @@ struct drm_plane *vc4_plane_init(struct
if (!vc4_plane)
return ERR_PTR(-ENOMEM);

View File

@ -18,7 +18,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
--- a/drivers/gpu/drm/vc4/vc4_plane.c
+++ b/drivers/gpu/drm/vc4/vc4_plane.c
@@ -624,6 +624,53 @@ static int vc4_plane_allocate_lbm(struct
@@ -626,6 +626,53 @@ static int vc4_plane_allocate_lbm(struct
return 0;
}
@ -72,7 +72,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
/* Writes out a full display list for an active plane to the plane's
* private dlist state.
*/
@@ -988,9 +1035,20 @@ static int vc4_plane_mode_set(struct drm
@@ -990,9 +1037,20 @@ static int vc4_plane_mode_set(struct drm
/* Colorspace conversion words */
if (vc4_state->is_yuv) {
@ -96,7 +96,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
}
vc4_state->lbm_offset = 0;
@@ -1419,6 +1477,14 @@ struct drm_plane *vc4_plane_init(struct
@@ -1421,6 +1479,14 @@ struct drm_plane *vc4_plane_init(struct
DRM_MODE_REFLECT_X |
DRM_MODE_REFLECT_Y);
@ -113,7 +113,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
--- a/drivers/gpu/drm/vc4/vc4_regs.h
+++ b/drivers/gpu/drm/vc4/vc4_regs.h
@@ -976,6 +976,7 @@ enum hvs_pixel_format {
@@ -982,6 +982,7 @@ enum hvs_pixel_format {
#define SCALER_CSC0_ITR_R_601_5 0x00f00000
#define SCALER_CSC0_ITR_R_709_3 0x00f00000
#define SCALER_CSC0_JPEG_JFIF 0x00000000
@ -121,7 +121,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
/* S2.8 contribution of Cb to Green */
#define SCALER_CSC1_COEF_CB_GRN_MASK VC4_MASK(31, 22)
@@ -992,6 +993,7 @@ enum hvs_pixel_format {
@@ -998,6 +999,7 @@ enum hvs_pixel_format {
#define SCALER_CSC1_ITR_R_601_5 0xe73304a8
#define SCALER_CSC1_ITR_R_709_3 0xf2b784a8
#define SCALER_CSC1_JPEG_JFIF 0xea34a400
@ -129,7 +129,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
/* S2.8 contribution of Cb to Red */
#define SCALER_CSC2_COEF_CB_RED_MASK VC4_MASK(29, 20)
@@ -1005,6 +1007,7 @@ enum hvs_pixel_format {
@@ -1011,6 +1013,7 @@ enum hvs_pixel_format {
#define SCALER_CSC2_ITR_R_601_5 0x00066204
#define SCALER_CSC2_ITR_R_709_3 0x00072a1c
#define SCALER_CSC2_JPEG_JFIF 0x000599c5

View File

@ -24,7 +24,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
@@ -3253,7 +3253,7 @@ static void bcmgenet_get_hw_addr(struct
@@ -3261,7 +3261,7 @@ static void bcmgenet_get_hw_addr(struct
}
/* Returns a reusable dma control register value */
@ -33,7 +33,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
{
unsigned int i;
u32 reg;
@@ -3278,6 +3278,14 @@ static u32 bcmgenet_dma_disable(struct b
@@ -3286,6 +3286,14 @@ static u32 bcmgenet_dma_disable(struct b
udelay(10);
bcmgenet_umac_writel(priv, 0, UMAC_TX_FLUSH);
@ -48,7 +48,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
return dma_ctrl;
}
@@ -3341,8 +3349,8 @@ static int bcmgenet_open(struct net_devi
@@ -3349,8 +3357,8 @@ static int bcmgenet_open(struct net_devi
bcmgenet_set_hw_addr(priv, dev->dev_addr);
@ -59,7 +59,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
/* Reinitialize TDMA and RDMA and SW housekeeping */
ret = bcmgenet_init_dma(priv);
@@ -4202,7 +4210,7 @@ static int bcmgenet_resume(struct device
@@ -4210,7 +4218,7 @@ static int bcmgenet_resume(struct device
bcmgenet_hfb_create_rxnfc_filter(priv, rule);
/* Disable RX/TX DMA and flush TX queues */

View File

@ -59,7 +59,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
/* The filter kernel is composed of dwords each containing 3 9-bit
* signed integers packed next to each other.
*/
@@ -687,6 +726,8 @@ static int vc4_hvs_bind(struct device *d
@@ -698,6 +737,8 @@ static int vc4_hvs_bind(struct device *d
vc4_debugfs_add_regset32(drm, "hvs_regs", &hvs->regset);
vc4_debugfs_add_file(drm, "hvs_underrun", vc4_hvs_debugfs_underrun,
NULL);

View File

@ -29,7 +29,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
return 0;
}
@@ -1737,6 +1743,7 @@ static int vc5_hdmi_init_resources(struc
@@ -1738,6 +1744,7 @@ static int vc5_hdmi_init_resources(struc
struct platform_device *pdev = vc4_hdmi->pdev;
struct device *dev = &pdev->dev;
struct resource *res;
@ -37,7 +37,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "hdmi");
if (!res)
@@ -1827,6 +1834,38 @@ static int vc5_hdmi_init_resources(struc
@@ -1828,6 +1835,38 @@ static int vc5_hdmi_init_resources(struc
return PTR_ERR(vc4_hdmi->reset);
}

View File

@ -633,7 +633,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/845aa10ef171fc0ea060495efef1
#include <drm/drm_crtc.h>
#include <drm/drm_flip_work.h>
#include <drm/drm_mode.h>
@@ -706,10 +707,12 @@ static struct drm_crtc_state *dpu_crtc_d
@@ -709,10 +710,12 @@ static struct drm_crtc_state *dpu_crtc_d
}
static void dpu_crtc_disable(struct drm_crtc *crtc,
@ -647,7 +647,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/845aa10ef171fc0ea060495efef1
struct drm_encoder *encoder;
unsigned long flags;
bool release_bandwidth = false;
@@ -770,7 +773,7 @@ static void dpu_crtc_disable(struct drm_
@@ -773,7 +776,7 @@ static void dpu_crtc_disable(struct drm_
}
static void dpu_crtc_enable(struct drm_crtc *crtc,

View File

@ -201,7 +201,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20201028123222.1732139-1-max
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -5638,17 +5638,19 @@ static void dm_update_crtc_active_planes
@@ -5640,17 +5640,19 @@ static void dm_update_crtc_active_planes
}
static int dm_crtc_helper_atomic_check(struct drm_crtc *crtc,
@ -225,7 +225,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20201028123222.1732139-1-max
WARN_ON(1);
return ret;
}
@@ -5659,8 +5661,8 @@ static int dm_crtc_helper_atomic_check(s
@@ -5661,8 +5663,8 @@ static int dm_crtc_helper_atomic_check(s
* planes are disabled, which is not supported by the hardware. And there is legacy
* userspace which stops using the HW cursor altogether in response to the resulting EINVAL.
*/
@ -503,7 +503,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20201028123222.1732139-1-max
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
@@ -815,10 +815,12 @@ struct plane_state {
@@ -818,10 +818,12 @@ struct plane_state {
};
static int dpu_crtc_atomic_check(struct drm_crtc *crtc,
@ -518,9 +518,9 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20201028123222.1732139-1-max
struct plane_state *pstates;
const struct drm_plane_state *pstate;
@@ -835,32 +837,33 @@ static int dpu_crtc_atomic_check(struct
pstates = kzalloc(sizeof(*pstates) * DPU_STAGE_MAX * 4, GFP_KERNEL);
@@ -840,32 +842,33 @@ static int dpu_crtc_atomic_check(struct
if (!pstates)
return -ENOMEM;
- if (!state->enable || !state->active) {
+ if (!crtc_state->enable || !crtc_state->active) {
@ -559,7 +559,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20201028123222.1732139-1-max
struct drm_rect dst, clip = crtc_rect;
if (IS_ERR_OR_NULL(pstate)) {
@@ -966,7 +969,7 @@ static int dpu_crtc_atomic_check(struct
@@ -971,7 +974,7 @@ static int dpu_crtc_atomic_check(struct
atomic_inc(&_dpu_crtc_get_kms(crtc)->bandwidth_ref);

View File

@ -129,7 +129,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
{
struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder);
int ret;
@@ -642,7 +644,8 @@ static void vc4_hdmi_recenter_fifo(struc
@@ -643,7 +645,8 @@ static void vc4_hdmi_recenter_fifo(struc
"VC4_HDMI_FIFO_CTL_RECENTER_DONE");
}
@ -139,7 +139,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
{
struct drm_display_mode *mode = &encoder->crtc->state->adjusted_mode;
struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder);
@@ -724,7 +727,8 @@ static void vc4_hdmi_encoder_pre_crtc_co
@@ -725,7 +728,8 @@ static void vc4_hdmi_encoder_pre_crtc_co
vc4_hdmi->variant->set_timings(vc4_hdmi, mode);
}
@ -149,7 +149,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
{
struct drm_display_mode *mode = &encoder->crtc->state->adjusted_mode;
struct vc4_hdmi_encoder *vc4_encoder = to_vc4_hdmi_encoder(encoder);
@@ -746,7 +750,8 @@ static void vc4_hdmi_encoder_pre_crtc_en
@@ -747,7 +751,8 @@ static void vc4_hdmi_encoder_pre_crtc_en
HDMI_WRITE(HDMI_FIFO_CTL, VC4_HDMI_FIFO_CTL_MASTER_SLAVE_N);
}

View File

@ -29,7 +29,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
__drm_atomic_helper_connector_duplicate_state(connector, &new_state->base);
return &new_state->base;
@@ -671,9 +672,29 @@ static void vc4_hdmi_recenter_fifo(struc
@@ -672,9 +673,29 @@ static void vc4_hdmi_recenter_fifo(struc
"VC4_HDMI_FIFO_CTL_RECENTER_DONE");
}
@ -59,7 +59,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
struct drm_display_mode *mode = &encoder->crtc->state->adjusted_mode;
struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder);
unsigned long pixel_rate, hsm_rate;
@@ -685,7 +706,7 @@ static void vc4_hdmi_encoder_pre_crtc_co
@@ -686,7 +707,7 @@ static void vc4_hdmi_encoder_pre_crtc_co
return;
}
@ -68,7 +68,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
ret = clk_set_rate(vc4_hdmi->pixel_clock, pixel_rate);
if (ret) {
DRM_ERROR("Failed to set pixel clock rate: %d\n", ret);
@@ -847,6 +868,7 @@ static int vc4_hdmi_encoder_atomic_check
@@ -848,6 +869,7 @@ static int vc4_hdmi_encoder_atomic_check
struct drm_crtc_state *crtc_state,
struct drm_connector_state *conn_state)
{
@ -76,7 +76,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
struct drm_display_mode *mode = &crtc_state->adjusted_mode;
struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder);
unsigned long long pixel_rate = mode->clock * 1000;
@@ -878,6 +900,8 @@ static int vc4_hdmi_encoder_atomic_check
@@ -879,6 +901,8 @@ static int vc4_hdmi_encoder_atomic_check
if (pixel_rate > vc4_hdmi->variant->max_pixel_clock)
return -EINVAL;

View File

@ -22,7 +22,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -764,7 +764,7 @@ static void vc4_hdmi_encoder_pre_crtc_co
@@ -765,7 +765,7 @@ static void vc4_hdmi_encoder_pre_crtc_co
}
if (vc4_hdmi->variant->phy_init)

View File

@ -82,9 +82,9 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
struct drm_display_mode *mode)
{
bool hsync_pos = mode->flags & DRM_MODE_FLAG_PHSYNC;
@@ -620,6 +644,9 @@ static void vc5_hdmi_set_timings(struct
@@ -621,6 +645,9 @@ static void vc5_hdmi_set_timings(struct
VC4_SET_FIELD(mode->crtc_vtotal -
mode->crtc_vsync_end - interlaced,
mode->crtc_vsync_end,
VC4_HDMI_VERTB_VBP));
+ unsigned char gcp;
+ bool gcp_en;
@ -92,7 +92,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
HDMI_WRITE(HDMI_VEC_INTERFACE_XBAR, 0x354021);
HDMI_WRITE(HDMI_HORZA,
@@ -645,6 +672,39 @@ static void vc5_hdmi_set_timings(struct
@@ -646,6 +673,39 @@ static void vc5_hdmi_set_timings(struct
HDMI_WRITE(HDMI_VERTB0, vertb_even);
HDMI_WRITE(HDMI_VERTB1, vertb);
@ -132,7 +132,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
HDMI_WRITE(HDMI_CLOCK_STOP, 0);
}
@@ -772,7 +832,7 @@ static void vc4_hdmi_encoder_pre_crtc_co
@@ -773,7 +833,7 @@ static void vc4_hdmi_encoder_pre_crtc_co
VC4_HDMI_SCHEDULER_CONTROL_IGNORE_VSYNC_PREDICTS);
if (vc4_hdmi->variant->set_timings)
@ -141,7 +141,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
}
static void vc4_hdmi_encoder_pre_crtc_enable(struct drm_encoder *encoder,
@@ -894,6 +954,14 @@ static int vc4_hdmi_encoder_atomic_check
@@ -895,6 +955,14 @@ static int vc4_hdmi_encoder_atomic_check
pixel_rate = mode->clock * 1000;
}

View File

@ -20,7 +20,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -804,6 +804,8 @@ static void vc4_hdmi_encoder_pre_crtc_co
@@ -805,6 +805,8 @@ static void vc4_hdmi_encoder_pre_crtc_co
vc4_hdmi_cec_update_clk_div(vc4_hdmi);

View File

@ -27,7 +27,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
value |= clk_cnt << VC4_HDMI_CEC_DIV_CLK_CNT_SHIFT;
HDMI_WRITE(HDMI_CEC_CNTRL_1, value);
}
@@ -1870,6 +1870,7 @@ static int vc4_hdmi_init_resources(struc
@@ -1871,6 +1871,7 @@ static int vc4_hdmi_init_resources(struc
return PTR_ERR(vc4_hdmi->hsm_clock);
}
vc4_hdmi->audio_clock = vc4_hdmi->hsm_clock;
@ -35,7 +35,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
return 0;
}
@@ -1964,6 +1965,12 @@ static int vc5_hdmi_init_resources(struc
@@ -1965,6 +1966,12 @@ static int vc5_hdmi_init_resources(struc
return PTR_ERR(vc4_hdmi->audio_clock);
}

View File

@ -19,7 +19,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -1574,15 +1574,22 @@ static int vc4_hdmi_audio_init(struct vc
@@ -1575,15 +1575,22 @@ static int vc4_hdmi_audio_init(struct vc
}
#ifdef CONFIG_DRM_VC4_HDMI_CEC
@ -48,7 +48,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
cec_transmit_done(vc4_hdmi->cec_adap, CEC_TX_STATUS_OK,
0, 0, 0, 0);
} else {
@@ -1596,6 +1603,19 @@ static irqreturn_t vc4_cec_irq_handler_t
@@ -1597,6 +1604,19 @@ static irqreturn_t vc4_cec_irq_handler_t
return IRQ_HANDLED;
}
@ -68,7 +68,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
static void vc4_cec_read_msg(struct vc4_hdmi *vc4_hdmi, u32 cntrl1)
{
struct drm_device *dev = vc4_hdmi->connector.dev;
@@ -1620,31 +1640,55 @@ static void vc4_cec_read_msg(struct vc4_
@@ -1621,31 +1641,55 @@ static void vc4_cec_read_msg(struct vc4_
}
}

View File

@ -20,7 +20,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -1725,9 +1725,11 @@ static int vc4_hdmi_cec_adap_enable(stru
@@ -1726,9 +1726,11 @@ static int vc4_hdmi_cec_adap_enable(stru
((3600 / usecs) << VC4_HDMI_CEC_CNT_TO_3600_US_SHIFT) |
((3500 / usecs) << VC4_HDMI_CEC_CNT_TO_3500_US_SHIFT));
@ -34,7 +34,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
HDMI_WRITE(HDMI_CEC_CNTRL_5, val |
VC4_HDMI_CEC_TX_SW_RESET | VC4_HDMI_CEC_RX_SW_RESET);
}
@@ -1800,8 +1802,6 @@ static int vc4_hdmi_cec_init(struct vc4_
@@ -1801,8 +1803,6 @@ static int vc4_hdmi_cec_init(struct vc4_
cec_fill_conn_info_from_drm(&conn_info, &vc4_hdmi->connector);
cec_s_conn_info(vc4_hdmi->cec_adap, &conn_info);
@ -43,7 +43,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
value = HDMI_READ(HDMI_CEC_CNTRL_1);
/* Set the logical address to Unregistered */
value |= VC4_HDMI_CEC_ADDR_MASK;
@@ -1809,12 +1809,32 @@ static int vc4_hdmi_cec_init(struct vc4_
@@ -1810,12 +1810,32 @@ static int vc4_hdmi_cec_init(struct vc4_
vc4_hdmi_cec_update_clk_div(vc4_hdmi);
@ -82,7 +82,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
ret = cec_register_adapter(vc4_hdmi->cec_adap, &pdev->dev);
if (ret < 0)
@@ -2289,6 +2309,7 @@ static const struct vc4_hdmi_variant bcm
@@ -2290,6 +2310,7 @@ static const struct vc4_hdmi_variant bcm
PHY_LANE_CK,
},
.unsupported_odd_h_timings = true,
@ -90,7 +90,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
.init_resources = vc5_hdmi_init_resources,
.csc_setup = vc5_hdmi_csc_setup,
@@ -2315,6 +2336,7 @@ static const struct vc4_hdmi_variant bcm
@@ -2316,6 +2337,7 @@ static const struct vc4_hdmi_variant bcm
PHY_LANE_2,
},
.unsupported_odd_h_timings = true,

View File

@ -19,7 +19,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -1787,9 +1787,15 @@ static int vc4_hdmi_cec_init(struct vc4_
@@ -1788,9 +1788,15 @@ static int vc4_hdmi_cec_init(struct vc4_
{
struct cec_connector_info conn_info;
struct platform_device *pdev = vc4_hdmi->pdev;

View File

@ -61,7 +61,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
}
static void vc4_hdmi_encoder_post_crtc_disable(struct drm_encoder *encoder,
@@ -2299,6 +2324,7 @@ static const struct vc4_hdmi_variant bcm
@@ -2300,6 +2325,7 @@ static const struct vc4_hdmi_variant bcm
.phy_rng_enable = vc4_hdmi_phy_rng_enable,
.phy_rng_disable = vc4_hdmi_phy_rng_disable,
.channel_map = vc4_hdmi_channel_map,
@ -69,7 +69,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
};
static const struct vc4_hdmi_variant bcm2711_hdmi0_variant = {
@@ -2326,6 +2352,7 @@ static const struct vc4_hdmi_variant bcm
@@ -2327,6 +2353,7 @@ static const struct vc4_hdmi_variant bcm
.phy_rng_enable = vc5_hdmi_phy_rng_enable,
.phy_rng_disable = vc5_hdmi_phy_rng_disable,
.channel_map = vc5_hdmi_channel_map,
@ -77,7 +77,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
};
static const struct vc4_hdmi_variant bcm2711_hdmi1_variant = {
@@ -2353,6 +2380,7 @@ static const struct vc4_hdmi_variant bcm
@@ -2354,6 +2381,7 @@ static const struct vc4_hdmi_variant bcm
.phy_rng_enable = vc5_hdmi_phy_rng_enable,
.phy_rng_disable = vc5_hdmi_phy_rng_disable,
.channel_map = vc5_hdmi_channel_map,

View File

@ -21,9 +21,9 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
--- a/drivers/gpu/drm/vc4/vc4_dpi.c
+++ b/drivers/gpu/drm/vc4/vc4_dpi.c
@@ -178,8 +178,8 @@ static void vc4_dpi_encoder_enable(struc
break;
}
@@ -188,8 +188,8 @@ static void vc4_dpi_encoder_enable(struc
if (connector->display_info.bus_flags & DRM_BUS_FLAG_DE_LOW)
dpi_c |= DPI_OUTPUT_ENABLE_INVERT;
} else {
- /* Default to 24bit if no connector found. */
- dpi_c |= VC4_SET_FIELD(DPI_FORMAT_24BIT_888_RGB, DPI_FORMAT);

View File

@ -15,7 +15,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
--- a/drivers/gpu/drm/vc4/vc4_plane.c
+++ b/drivers/gpu/drm/vc4/vc4_plane.c
@@ -820,9 +820,20 @@ static int vc4_plane_mode_set(struct drm
@@ -822,9 +822,20 @@ static int vc4_plane_mode_set(struct drm
u32 tile_w, tile, x_off, pix_per_tile;
if (fb->format->format == DRM_FORMAT_P030) {
@ -37,7 +37,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
} else {
hvs_format = HVS_PIXEL_FORMAT_H264;
@@ -842,17 +853,16 @@ static int vc4_plane_mode_set(struct drm
@@ -844,17 +855,16 @@ static int vc4_plane_mode_set(struct drm
default:
break;
}
@ -58,7 +58,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
/* Adjust the base pointer to the first pixel to be scanned
* out.
*
@@ -868,9 +878,7 @@ static int vc4_plane_mode_set(struct drm
@@ -870,9 +880,7 @@ static int vc4_plane_mode_set(struct drm
vc4_state->offsets[i] += src_y /
(i ? v_subsample : 1) *
tile_w;

View File

@ -16,7 +16,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
--- a/drivers/gpu/drm/vc4/vc4_plane.c
+++ b/drivers/gpu/drm/vc4/vc4_plane.c
@@ -826,8 +826,9 @@ static int vc4_plane_mode_set(struct drm
@@ -828,8 +828,9 @@ static int vc4_plane_mode_set(struct drm
* and bits[3:0] should be between 0 and 11, indicating which
* of the 12-pixels in that 128-bit word is the first pixel to be used
*/

View File

@ -22,7 +22,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -6564,9 +6564,7 @@ void amdgpu_dm_connector_init_helper(str
@@ -6566,9 +6566,7 @@ void amdgpu_dm_connector_init_helper(str
if (connector_type == DRM_MODE_CONNECTOR_HDMIA ||
connector_type == DRM_MODE_CONNECTOR_DisplayPort ||
connector_type == DRM_MODE_CONNECTOR_eDP) {

View File

@ -21,7 +21,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -5509,25 +5509,6 @@ static int fill_hdr_info_packet(const st
@@ -5511,25 +5511,6 @@ static int fill_hdr_info_packet(const st
return 0;
}
@ -47,7 +47,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
static int
amdgpu_dm_connector_atomic_check(struct drm_connector *conn,
struct drm_atomic_state *state)
@@ -5543,7 +5524,7 @@ amdgpu_dm_connector_atomic_check(struct
@@ -5545,7 +5526,7 @@ amdgpu_dm_connector_atomic_check(struct
if (!crtc)
return 0;

View File

@ -19,7 +19,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
--- a/drivers/gpu/drm/vc4/vc4_plane.c
+++ b/drivers/gpu/drm/vc4/vc4_plane.c
@@ -645,10 +645,10 @@ static const u32 colorspace_coeffs[2][DR
@@ -647,10 +647,10 @@ static const u32 colorspace_coeffs[2][DR
SCALER_CSC1_ITR_R_709_3,
SCALER_CSC2_ITR_R_709_3,
}, {
@ -34,7 +34,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
}
}, {
/* Full range */
@@ -663,10 +663,10 @@ static const u32 colorspace_coeffs[2][DR
@@ -665,10 +665,10 @@ static const u32 colorspace_coeffs[2][DR
SCALER_CSC1_ITR_R_709_3_FR,
SCALER_CSC2_ITR_R_709_3_FR,
}, {
@ -49,7 +49,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
}
}
};
@@ -1488,7 +1488,8 @@ struct drm_plane *vc4_plane_init(struct
@@ -1490,7 +1490,8 @@ struct drm_plane *vc4_plane_init(struct
drm_plane_create_color_properties(plane,
BIT(DRM_COLOR_YCBCR_BT601) |
@ -61,7 +61,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
DRM_COLOR_YCBCR_BT709,
--- a/drivers/gpu/drm/vc4/vc4_regs.h
+++ b/drivers/gpu/drm/vc4/vc4_regs.h
@@ -975,8 +975,10 @@ enum hvs_pixel_format {
@@ -981,8 +981,10 @@ enum hvs_pixel_format {
#define SCALER_CSC0_COEF_CR_OFS_SHIFT 0
#define SCALER_CSC0_ITR_R_601_5 0x00f00000
#define SCALER_CSC0_ITR_R_709_3 0x00f00000
@ -72,7 +72,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
/* S2.8 contribution of Cb to Green */
#define SCALER_CSC1_COEF_CB_GRN_MASK VC4_MASK(31, 22)
@@ -991,9 +993,11 @@ enum hvs_pixel_format {
@@ -997,9 +999,11 @@ enum hvs_pixel_format {
#define SCALER_CSC1_COEF_CR_BLU_MASK VC4_MASK(1, 0)
#define SCALER_CSC1_COEF_CR_BLU_SHIFT 0
#define SCALER_CSC1_ITR_R_601_5 0xe73304a8
@ -87,7 +87,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
/* S2.8 contribution of Cb to Red */
#define SCALER_CSC2_COEF_CB_RED_MASK VC4_MASK(29, 20)
@@ -1004,10 +1008,12 @@ enum hvs_pixel_format {
@@ -1010,10 +1014,12 @@ enum hvs_pixel_format {
/* S2.8 contribution of Cb to Blue */
#define SCALER_CSC2_COEF_CB_BLU_MASK VC4_MASK(19, 10)
#define SCALER_CSC2_COEF_CB_BLU_SHIFT 10

View File

@ -75,7 +75,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
/*** runtime pm ***/
static int clk_pm_runtime_get(struct clk_core *core)
{
@@ -1430,10 +1438,14 @@ unsigned long clk_hw_round_rate(struct c
@@ -1441,10 +1449,14 @@ unsigned long clk_hw_round_rate(struct c
{
int ret;
struct clk_rate_request req;
@ -90,7 +90,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
ret = clk_core_round_rate_nolock(hw->core, &req);
if (ret)
return 0;
@@ -1454,6 +1466,7 @@ EXPORT_SYMBOL_GPL(clk_hw_round_rate);
@@ -1465,6 +1477,7 @@ EXPORT_SYMBOL_GPL(clk_hw_round_rate);
long clk_round_rate(struct clk *clk, unsigned long rate)
{
struct clk_rate_request req;
@ -98,7 +98,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
int ret;
if (!clk)
@@ -1467,6 +1480,9 @@ long clk_round_rate(struct clk *clk, uns
@@ -1478,6 +1491,9 @@ long clk_round_rate(struct clk *clk, uns
clk_core_get_boundaries(clk->core, &req.min_rate, &req.max_rate);
req.rate = rate;
@ -108,7 +108,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
ret = clk_core_round_rate_nolock(clk->core, &req);
if (clk->exclusive_count)
@@ -1934,6 +1950,7 @@ static struct clk_core *clk_calc_new_rat
@@ -1945,6 +1961,7 @@ static struct clk_core *clk_calc_new_rat
unsigned long new_rate;
unsigned long min_rate;
unsigned long max_rate;
@ -116,7 +116,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
int p_index = 0;
long ret;
@@ -1948,6 +1965,9 @@ static struct clk_core *clk_calc_new_rat
@@ -1959,6 +1976,9 @@ static struct clk_core *clk_calc_new_rat
clk_core_get_boundaries(core, &min_rate, &max_rate);
@ -126,7 +126,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
/* find the closest rate and parent clk/rate */
if (clk_core_can_round(core)) {
struct clk_rate_request req;
@@ -2152,6 +2172,7 @@ static unsigned long clk_core_req_round_
@@ -2163,6 +2183,7 @@ static unsigned long clk_core_req_round_
{
int ret, cnt;
struct clk_rate_request req;
@ -134,7 +134,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
lockdep_assert_held(&prepare_lock);
@@ -2166,6 +2187,9 @@ static unsigned long clk_core_req_round_
@@ -2177,6 +2198,9 @@ static unsigned long clk_core_req_round_
clk_core_get_boundaries(core, &req.min_rate, &req.max_rate);
req.rate = req_rate;
@ -144,7 +144,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
ret = clk_core_round_rate_nolock(core, &req);
/* restore the protection */
@@ -2259,6 +2283,9 @@ int clk_set_rate(struct clk *clk, unsign
@@ -2270,6 +2294,9 @@ int clk_set_rate(struct clk *clk, unsign
ret = clk_core_set_rate_nolock(clk->core, rate);
@ -154,7 +154,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
if (clk->exclusive_count)
clk_core_rate_protect(clk->core);
@@ -2425,6 +2452,99 @@ int clk_set_max_rate(struct clk *clk, un
@@ -2436,6 +2463,99 @@ int clk_set_max_rate(struct clk *clk, un
EXPORT_SYMBOL_GPL(clk_set_max_rate);
/**
@ -254,7 +254,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
* clk_get_parent - return the parent of a clk
* @clk: the clk whose parent gets returned
*
@@ -3874,6 +3994,7 @@ __clk_register(struct device *dev, struc
@@ -3885,6 +4005,7 @@ __clk_register(struct device *dev, struc
goto fail_parents;
INIT_HLIST_HEAD(&core->clks);

View File

@ -25,7 +25,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
clk_disable_unprepare(vc4_hdmi->pixel_clock);
ret = pm_runtime_put(&vc4_hdmi->pdev->dev);
@@ -852,9 +855,9 @@ static void vc4_hdmi_encoder_pre_crtc_co
@@ -853,9 +856,9 @@ static void vc4_hdmi_encoder_pre_crtc_co
* pixel clock, but HSM ends up being the limiting factor.
*/
hsm_rate = max_t(unsigned long, 120000000, (pixel_rate / 100) * 101);
@ -38,7 +38,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
return;
}
@@ -866,10 +869,12 @@ static void vc4_hdmi_encoder_pre_crtc_co
@@ -867,10 +870,12 @@ static void vc4_hdmi_encoder_pre_crtc_co
* FIXME: When the pixel freq is 594MHz (4k60), this needs to be setup
* at 300MHz.
*/
@ -55,7 +55,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
clk_disable_unprepare(vc4_hdmi->pixel_clock);
return;
}
@@ -877,6 +882,9 @@ static void vc4_hdmi_encoder_pre_crtc_co
@@ -878,6 +883,9 @@ static void vc4_hdmi_encoder_pre_crtc_co
ret = clk_prepare_enable(vc4_hdmi->pixel_bvb_clock);
if (ret) {
DRM_ERROR("Failed to turn on pixel bvb clock: %d\n", ret);

View File

@ -10,7 +10,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
--- a/drivers/clk/clk.c
+++ b/drivers/clk/clk.c
@@ -2521,6 +2521,9 @@ void clk_request_done(struct clk_request
@@ -2532,6 +2532,9 @@ void clk_request_done(struct clk_request
{
struct clk_core *core = req->clk->core;

View File

@ -23,7 +23,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
#define HDMI_14_MAX_TMDS_CLK (340 * 1000 * 1000)
@@ -816,7 +815,7 @@ static void vc4_hdmi_encoder_pre_crtc_co
@@ -817,7 +816,7 @@ static void vc4_hdmi_encoder_pre_crtc_co
conn_state_to_vc4_hdmi_conn_state(conn_state);
struct drm_display_mode *mode = &encoder->crtc->state->adjusted_mode;
struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder);
@ -32,7 +32,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
int ret;
ret = pm_runtime_resume_and_get(&vc4_hdmi->pdev->dev);
@@ -865,12 +864,14 @@ static void vc4_hdmi_encoder_pre_crtc_co
@@ -866,12 +865,14 @@ static void vc4_hdmi_encoder_pre_crtc_co
vc4_hdmi_cec_update_clk_div(vc4_hdmi);

View File

@ -106,7 +106,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
}
static void vc4_hdmi_encoder_post_crtc_powerdown(struct drm_encoder *encoder,
@@ -982,6 +1045,7 @@ static void vc4_hdmi_encoder_post_crtc_e
@@ -983,6 +1046,7 @@ static void vc4_hdmi_encoder_post_crtc_e
}
vc4_hdmi_recenter_fifo(vc4_hdmi);

View File

@ -23,7 +23,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
clk_disable_unprepare(vc4_hdmi->hsm_clock);
clk_request_done(vc4_hdmi->hsm_req);
clk_disable_unprepare(vc4_hdmi->pixel_clock);
@@ -934,7 +935,8 @@ static void vc4_hdmi_encoder_pre_crtc_co
@@ -935,7 +936,8 @@ static void vc4_hdmi_encoder_pre_crtc_co
else
bvb_rate = 75000000;
@ -33,7 +33,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
if (IS_ERR(vc4_hdmi->bvb_req)) {
DRM_ERROR("Failed to set pixel bvb clock rate: %ld\n", PTR_ERR(vc4_hdmi->bvb_req));
clk_request_done(vc4_hdmi->hsm_req);
@@ -946,7 +948,8 @@ static void vc4_hdmi_encoder_pre_crtc_co
@@ -947,7 +949,8 @@ static void vc4_hdmi_encoder_pre_crtc_co
ret = clk_prepare_enable(vc4_hdmi->pixel_bvb_clock);
if (ret) {
DRM_ERROR("Failed to turn on pixel bvb clock: %d\n", ret);

View File

@ -15,7 +15,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
--- a/drivers/clk/clk.c
+++ b/drivers/clk/clk.c
@@ -2519,10 +2519,11 @@ EXPORT_SYMBOL_GPL(clk_request_start);
@@ -2530,10 +2530,11 @@ EXPORT_SYMBOL_GPL(clk_request_start);
*/
void clk_request_done(struct clk_request *req)
{

View File

@ -17,7 +17,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
--- a/drivers/clk/clk.c
+++ b/drivers/clk/clk.c
@@ -1333,6 +1333,8 @@ static int clk_core_determine_round_nolo
@@ -1344,6 +1344,8 @@ static int clk_core_determine_round_nolo
if (!core)
return 0;

View File

@ -15,7 +15,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -854,31 +854,16 @@ static void vc4_hdmi_recenter_fifo(struc
@@ -855,31 +855,16 @@ static void vc4_hdmi_recenter_fifo(struc
"VC4_HDMI_FIFO_CTL_RECENTER_DONE");
}

View File

@ -18,7 +18,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -1690,6 +1690,46 @@ static int vc4_hdmi_audio_init(struct vc
@@ -1691,6 +1691,46 @@ static int vc4_hdmi_audio_init(struct vc
}
@ -65,7 +65,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
#ifdef CONFIG_DRM_VC4_HDMI_CEC
static irqreturn_t vc4_cec_irq_handler_rx_thread(int irq, void *priv)
{
@@ -2318,6 +2358,10 @@ static int vc4_hdmi_bind(struct device *
@@ -2319,6 +2359,10 @@ static int vc4_hdmi_bind(struct device *
if (ret)
goto err_destroy_encoder;

View File

@ -70,7 +70,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
static void vc4_hdmi_encoder_post_crtc_disable(struct drm_encoder *encoder,
struct drm_atomic_state *state)
{
@@ -2276,6 +2300,7 @@ static int vc4_hdmi_bind(struct device *
@@ -2277,6 +2301,7 @@ static int vc4_hdmi_bind(struct device *
vc4_hdmi = devm_kzalloc(dev, sizeof(*vc4_hdmi), GFP_KERNEL);
if (!vc4_hdmi)
return -ENOMEM;

View File

@ -11,7 +11,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -1729,6 +1729,7 @@ static int vc4_hdmi_hotplug_init(struct
@@ -1730,6 +1730,7 @@ static int vc4_hdmi_hotplug_init(struct
{
struct platform_device *pdev = vc4_hdmi->pdev;
struct device *dev = &pdev->dev;

View File

@ -65,7 +65,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
vc4_hdmi_write_infoframe(encoder, &frame);
}
@@ -1217,18 +1218,10 @@ static inline struct vc4_hdmi *dai_to_hd
@@ -1218,18 +1219,10 @@ static inline struct vc4_hdmi *dai_to_hd
return snd_soc_card_get_drvdata(card);
}
@ -86,7 +86,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
/*
* If the HDMI encoder hasn't probed, or the encoder is
@@ -1238,15 +1231,18 @@ static int vc4_hdmi_audio_startup(struct
@@ -1239,15 +1232,18 @@ static int vc4_hdmi_audio_startup(struct
VC4_HDMI_RAM_PACKET_ENABLE))
return -ENODEV;
@ -112,7 +112,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
return 0;
}
@@ -1266,17 +1262,20 @@ static void vc4_hdmi_audio_reset(struct
@@ -1267,17 +1263,20 @@ static void vc4_hdmi_audio_reset(struct
HDMI_WRITE(HDMI_MAI_CTL, VC4_HD_MAI_CTL_FLUSH);
}
@ -140,7 +140,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
}
static int sample_rate_to_mai_fmt(int samplerate)
@@ -1318,42 +1317,35 @@ static int sample_rate_to_mai_fmt(int sa
@@ -1319,42 +1318,35 @@ static int sample_rate_to_mai_fmt(int sa
}
/* HDMI audio codec callbacks */
@ -198,7 +198,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
mai_audio_format = VC4_HDMI_MAI_FORMAT_HBR;
else
mai_audio_format = VC4_HDMI_MAI_FORMAT_PCM;
@@ -1390,148 +1382,12 @@ static int vc4_hdmi_audio_prepare(struct
@@ -1391,148 +1383,12 @@ static int vc4_hdmi_audio_prepare(struct
HDMI_WRITE(HDMI_AUDIO_PACKET_CONFIG, audio_packet_config);
vc4_hdmi_set_n_cts(vc4_hdmi);
@ -348,7 +348,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
static const struct snd_soc_dapm_widget vc4_hdmi_audio_widgets[] = {
SND_SOC_DAPM_OUTPUT("TX"),
};
@@ -1542,8 +1398,6 @@ static const struct snd_soc_dapm_route v
@@ -1543,8 +1399,6 @@ static const struct snd_soc_dapm_route v
static const struct snd_soc_component_driver vc4_hdmi_audio_component_drv = {
.name = "vc4-hdmi-codec-dai-component",
@ -357,7 +357,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
.dapm_widgets = vc4_hdmi_audio_widgets,
.num_dapm_widgets = ARRAY_SIZE(vc4_hdmi_audio_widgets),
.dapm_routes = vc4_hdmi_audio_routes,
@@ -1554,28 +1408,6 @@ static const struct snd_soc_component_dr
@@ -1555,28 +1409,6 @@ static const struct snd_soc_component_dr
.non_legacy_dai_naming = 1,
};
@ -386,7 +386,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
static const struct snd_soc_component_driver vc4_hdmi_audio_cpu_dai_comp = {
.name = "vc4-hdmi-cpu-dai-component",
};
@@ -1602,7 +1434,6 @@ static struct snd_soc_dai_driver vc4_hdm
@@ -1603,7 +1435,6 @@ static struct snd_soc_dai_driver vc4_hdm
SNDRV_PCM_RATE_192000,
.formats = SNDRV_PCM_FMTBIT_IEC958_SUBFRAME_LE,
},
@ -394,7 +394,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
};
static const struct snd_dmaengine_pcm_config pcm_conf = {
@@ -1610,6 +1441,31 @@ static const struct snd_dmaengine_pcm_co
@@ -1611,6 +1442,31 @@ static const struct snd_dmaengine_pcm_co
.prepare_slave_config = snd_dmaengine_pcm_prepare_slave_config,
};
@ -426,7 +426,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
static int vc4_hdmi_audio_init(struct vc4_hdmi *vc4_hdmi)
{
const struct vc4_hdmi_register *mai_data =
@@ -1617,6 +1473,7 @@ static int vc4_hdmi_audio_init(struct vc
@@ -1618,6 +1474,7 @@ static int vc4_hdmi_audio_init(struct vc
struct snd_soc_dai_link *dai_link = &vc4_hdmi->audio.link;
struct snd_soc_card *card = &vc4_hdmi->audio.card;
struct device *dev = &vc4_hdmi->pdev->dev;
@ -434,7 +434,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
const __be32 *addr;
int index, len;
int ret;
@@ -1650,11 +1507,6 @@ static int vc4_hdmi_audio_init(struct vc
@@ -1651,11 +1508,6 @@ static int vc4_hdmi_audio_init(struct vc
vc4_hdmi->audio.dma_data.addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
vc4_hdmi->audio.dma_data.maxburst = 2;
@ -446,7 +446,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
ret = devm_snd_dmaengine_pcm_register(dev, &pcm_conf, 0);
if (ret) {
dev_err(dev, "Could not register PCM component: %d\n", ret);
@@ -1668,12 +1520,13 @@ static int vc4_hdmi_audio_init(struct vc
@@ -1669,12 +1521,13 @@ static int vc4_hdmi_audio_init(struct vc
return ret;
}
@ -466,7 +466,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
}
dai_link->cpus = &vc4_hdmi->audio.cpu;
@@ -1686,9 +1539,9 @@ static int vc4_hdmi_audio_init(struct vc
@@ -1687,9 +1540,9 @@ static int vc4_hdmi_audio_init(struct vc
dai_link->name = "MAI";
dai_link->stream_name = "MAI PCM";

View File

@ -11,7 +11,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -1167,12 +1167,13 @@ static u32 vc5_hdmi_channel_map(struct v
@@ -1168,12 +1168,13 @@ static u32 vc5_hdmi_channel_map(struct v
}
/* HDMI audio codec callbacks */
@ -27,7 +27,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
VC4_HD_MAI_SMP_N_MASK >>
VC4_HD_MAI_SMP_N_SHIFT,
(VC4_HD_MAI_SMP_M_MASK >>
@@ -1184,12 +1185,11 @@ static void vc4_hdmi_audio_set_mai_clock
@@ -1185,12 +1186,11 @@ static void vc4_hdmi_audio_set_mai_clock
VC4_SET_FIELD(m - 1, VC4_HD_MAI_SMP_M));
}
@ -41,7 +41,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
u32 n, cts;
u64 tmp;
@@ -1323,27 +1323,25 @@ static int vc4_hdmi_audio_prepare(struct
@@ -1324,27 +1324,25 @@ static int vc4_hdmi_audio_prepare(struct
{
struct vc4_hdmi *vc4_hdmi = dev_get_drvdata(dev);
struct drm_encoder *encoder = &vc4_hdmi->encoder.base.base;
@ -75,7 +75,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
if (params->iec.status[0] & IEC958_AES0_NONAUDIO &&
params->channels == 8)
mai_audio_format = VC4_HDMI_MAI_FORMAT_HBR;
@@ -1361,7 +1359,7 @@ static int vc4_hdmi_audio_prepare(struct
@@ -1362,7 +1360,7 @@ static int vc4_hdmi_audio_prepare(struct
VC4_HDMI_AUDIO_PACKET_ZERO_DATA_ON_INACTIVE_CHANNELS |
VC4_SET_FIELD(0x8, VC4_HDMI_AUDIO_PACKET_B_FRAME_IDENTIFIER);
@ -84,7 +84,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
audio_packet_config |= VC4_SET_FIELD(channel_mask,
VC4_HDMI_AUDIO_PACKET_CEA_MASK);
@@ -1380,7 +1378,7 @@ static int vc4_hdmi_audio_prepare(struct
@@ -1381,7 +1379,7 @@ static int vc4_hdmi_audio_prepare(struct
channel_map = vc4_hdmi->variant->channel_map(vc4_hdmi, channel_mask);
HDMI_WRITE(HDMI_MAI_CHANNEL_MAP, channel_map);
HDMI_WRITE(HDMI_AUDIO_PACKET_CONFIG, audio_packet_config);

View File

@ -109,7 +109,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
*/
--- a/drivers/gpu/drm/vc4/vc4_plane.c
+++ b/drivers/gpu/drm/vc4/vc4_plane.c
@@ -535,9 +535,6 @@ static void vc4_plane_calc_load(struct d
@@ -537,9 +537,6 @@ static void vc4_plane_calc_load(struct d
struct vc4_dev *vc4;
vc4 = to_vc4_dev(state->plane->dev);

View File

@ -169,27 +169,27 @@ Signed-off-by: Joerg Quinten <aBUGSworstnightmare@gmail.com>
}, {
--- a/drivers/gpu/drm/vc4/vc4_dpi.c
+++ b/drivers/gpu/drm/vc4/vc4_dpi.c
@@ -165,10 +165,20 @@ static void vc4_dpi_encoder_enable(struc
dpi_c |= VC4_SET_FIELD(DPI_FORMAT_18BIT_666_RGB_2,
DPI_FORMAT);
break;
+ case MEDIA_BUS_FMT_BGR666_1X24_CPADHI:
+ dpi_c |= VC4_SET_FIELD(DPI_FORMAT_18BIT_666_RGB_2,
+ DPI_FORMAT);
+ dpi_c |= VC4_SET_FIELD(DPI_ORDER_BGR, DPI_ORDER);
+ break;
case MEDIA_BUS_FMT_RGB666_1X18:
dpi_c |= VC4_SET_FIELD(DPI_FORMAT_18BIT_666_RGB_1,
DPI_FORMAT);
break;
+ case MEDIA_BUS_FMT_BGR666_1X18:
+ dpi_c |= VC4_SET_FIELD(DPI_FORMAT_18BIT_666_RGB_1,
+ DPI_FORMAT);
+ dpi_c |= VC4_SET_FIELD(DPI_ORDER_BGR, DPI_ORDER);
+ break;
case MEDIA_BUS_FMT_RGB565_1X16:
dpi_c |= VC4_SET_FIELD(DPI_FORMAT_16BIT_565_RGB_3,
DPI_FORMAT);
@@ -167,10 +167,20 @@ static void vc4_dpi_encoder_enable(struc
dpi_c |= VC4_SET_FIELD(DPI_FORMAT_18BIT_666_RGB_2,
DPI_FORMAT);
break;
+ case MEDIA_BUS_FMT_BGR666_1X24_CPADHI:
+ dpi_c |= VC4_SET_FIELD(DPI_FORMAT_18BIT_666_RGB_2,
+ DPI_FORMAT);
+ dpi_c |= VC4_SET_FIELD(DPI_ORDER_BGR, DPI_ORDER);
+ break;
case MEDIA_BUS_FMT_RGB666_1X18:
dpi_c |= VC4_SET_FIELD(DPI_FORMAT_18BIT_666_RGB_1,
DPI_FORMAT);
break;
+ case MEDIA_BUS_FMT_BGR666_1X18:
+ dpi_c |= VC4_SET_FIELD(DPI_FORMAT_18BIT_666_RGB_1,
+ DPI_FORMAT);
+ dpi_c |= VC4_SET_FIELD(DPI_ORDER_BGR, DPI_ORDER);
+ break;
case MEDIA_BUS_FMT_RGB565_1X16:
dpi_c |= VC4_SET_FIELD(DPI_FORMAT_16BIT_565_RGB_1,
DPI_FORMAT);
--- a/include/uapi/linux/media-bus-format.h
+++ b/include/uapi/linux/media-bus-format.h
@@ -34,7 +34,7 @@

View File

@ -52,7 +52,7 @@ Signed-off-by: Tim Gover <tim.gover@raspberrypi.com>
clk_disable_unprepare(vc4_hdmi->pixel_bvb_clock);
if (vc4_hdmi->bvb_req)
clk_request_done(vc4_hdmi->bvb_req);
@@ -1013,6 +1013,7 @@ static void vc4_hdmi_encoder_post_crtc_e
@@ -1014,6 +1014,7 @@ static void vc4_hdmi_encoder_post_crtc_e
HDMI_WRITE(HDMI_VID_CTL,
VC4_HD_VID_CTL_ENABLE |

View File

@ -37,7 +37,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -911,23 +911,7 @@ static void vc4_hdmi_encoder_pre_crtc_co
@@ -912,23 +912,7 @@ static void vc4_hdmi_encoder_pre_crtc_co
return;
}
@ -62,7 +62,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
vc4_hdmi->hsm_req = clk_request_start(vc4_hdmi->hsm_clock, hsm_rate);
if (IS_ERR(vc4_hdmi->hsm_req)) {
DRM_ERROR("Failed to set HSM clock rate: %ld\n", PTR_ERR(vc4_hdmi->hsm_req));
@@ -1143,6 +1127,39 @@ static const struct drm_encoder_helper_f
@@ -1144,6 +1128,39 @@ static const struct drm_encoder_helper_f
.enable = vc4_hdmi_encoder_enable,
};
@ -102,7 +102,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
static u32 vc4_hdmi_channel_map(struct vc4_hdmi *vc4_hdmi, u32 channel_mask)
{
int i;
@@ -2337,6 +2354,7 @@ static const struct vc4_hdmi_variant bcm
@@ -2338,6 +2355,7 @@ static const struct vc4_hdmi_variant bcm
.phy_disable = vc4_hdmi_phy_disable,
.phy_rng_enable = vc4_hdmi_phy_rng_enable,
.phy_rng_disable = vc4_hdmi_phy_rng_disable,
@ -110,7 +110,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
.channel_map = vc4_hdmi_channel_map,
.supports_hdr = false,
};
@@ -2365,6 +2383,7 @@ static const struct vc4_hdmi_variant bcm
@@ -2366,6 +2384,7 @@ static const struct vc4_hdmi_variant bcm
.phy_disable = vc5_hdmi_phy_disable,
.phy_rng_enable = vc5_hdmi_phy_rng_enable,
.phy_rng_disable = vc5_hdmi_phy_rng_disable,
@ -118,7 +118,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
.channel_map = vc5_hdmi_channel_map,
.supports_hdr = true,
};
@@ -2393,6 +2412,7 @@ static const struct vc4_hdmi_variant bcm
@@ -2394,6 +2413,7 @@ static const struct vc4_hdmi_variant bcm
.phy_disable = vc5_hdmi_phy_disable,
.phy_rng_enable = vc5_hdmi_phy_rng_enable,
.phy_rng_disable = vc5_hdmi_phy_rng_disable,

View File

@ -16,7 +16,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -903,6 +903,7 @@ static void vc4_hdmi_encoder_pre_crtc_co
@@ -904,6 +904,7 @@ static void vc4_hdmi_encoder_pre_crtc_co
ret = pm_runtime_resume_and_get(&vc4_hdmi->pdev->dev);
if (ret < 0) {
DRM_ERROR("Failed to retain power domain: %d\n", ret);
@ -24,7 +24,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
return;
}
@@ -910,12 +911,14 @@ static void vc4_hdmi_encoder_pre_crtc_co
@@ -911,12 +912,14 @@ static void vc4_hdmi_encoder_pre_crtc_co
ret = clk_set_rate(vc4_hdmi->pixel_clock, pixel_rate);
if (ret) {
DRM_ERROR("Failed to set pixel clock rate: %d\n", ret);
@ -39,7 +39,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
return;
}
@@ -923,6 +926,7 @@ static void vc4_hdmi_encoder_pre_crtc_co
@@ -924,6 +927,7 @@ static void vc4_hdmi_encoder_pre_crtc_co
vc4_hdmi->hsm_req = clk_request_start(vc4_hdmi->hsm_clock, hsm_rate);
if (IS_ERR(vc4_hdmi->hsm_req)) {
DRM_ERROR("Failed to set HSM clock rate: %ld\n", PTR_ERR(vc4_hdmi->hsm_req));
@ -47,7 +47,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
return;
}
@@ -944,6 +948,7 @@ static void vc4_hdmi_encoder_pre_crtc_co
@@ -945,6 +949,7 @@ static void vc4_hdmi_encoder_pre_crtc_co
clk_request_done(vc4_hdmi->hsm_req);
clk_disable_unprepare(vc4_hdmi->hsm_clock);
clk_disable_unprepare(vc4_hdmi->pixel_clock);
@ -55,7 +55,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
return;
}
@@ -955,6 +960,7 @@ static void vc4_hdmi_encoder_pre_crtc_co
@@ -956,6 +961,7 @@ static void vc4_hdmi_encoder_pre_crtc_co
clk_request_done(vc4_hdmi->hsm_req);
clk_disable_unprepare(vc4_hdmi->hsm_clock);
clk_disable_unprepare(vc4_hdmi->pixel_clock);

View File

@ -15,7 +15,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -1756,7 +1756,7 @@ static irqreturn_t vc4_cec_irq_handler(i
@@ -1757,7 +1757,7 @@ static irqreturn_t vc4_cec_irq_handler(i
return ret;
}
@ -24,7 +24,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
{
struct vc4_hdmi *vc4_hdmi = cec_get_drvdata(adap);
/* clock period in microseconds */
@@ -1769,38 +1769,53 @@ static int vc4_hdmi_cec_adap_enable(stru
@@ -1770,38 +1770,53 @@ static int vc4_hdmi_cec_adap_enable(stru
val |= ((4700 / usecs) << VC4_HDMI_CEC_CNT_TO_4700_US_SHIFT) |
((4500 / usecs) << VC4_HDMI_CEC_CNT_TO_4500_US_SHIFT);

View File

@ -18,7 +18,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -926,6 +926,7 @@ static void vc4_hdmi_encoder_pre_crtc_co
@@ -927,6 +927,7 @@ static void vc4_hdmi_encoder_pre_crtc_co
vc4_hdmi->hsm_req = clk_request_start(vc4_hdmi->hsm_clock, hsm_rate);
if (IS_ERR(vc4_hdmi->hsm_req)) {
DRM_ERROR("Failed to set HSM clock rate: %ld\n", PTR_ERR(vc4_hdmi->hsm_req));

View File

@ -25,7 +25,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -1897,25 +1897,23 @@ static int vc4_hdmi_cec_init(struct vc4_
@@ -1898,25 +1898,23 @@ static int vc4_hdmi_cec_init(struct vc4_
vc4_hdmi_cec_update_clk_div(vc4_hdmi);
if (vc4_hdmi->variant->external_irq_controller) {
@ -55,7 +55,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
vc4_cec_irq_handler,
vc4_cec_irq_handler_thread, 0,
"vc4 hdmi cec", vc4_hdmi);
@@ -1925,10 +1923,20 @@ static int vc4_hdmi_cec_init(struct vc4_
@@ -1926,10 +1924,20 @@ static int vc4_hdmi_cec_init(struct vc4_
ret = cec_register_adapter(vc4_hdmi->cec_adap, &pdev->dev);
if (ret < 0)
@ -77,7 +77,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
err_delete_cec_adap:
cec_delete_adapter(vc4_hdmi->cec_adap);
@@ -1937,6 +1945,15 @@ err_delete_cec_adap:
@@ -1938,6 +1946,15 @@ err_delete_cec_adap:
static void vc4_hdmi_cec_exit(struct vc4_hdmi *vc4_hdmi)
{

View File

@ -25,7 +25,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -1612,26 +1612,28 @@ static irqreturn_t vc4_hdmi_hpd_irq_thre
@@ -1613,26 +1613,28 @@ static irqreturn_t vc4_hdmi_hpd_irq_thre
static int vc4_hdmi_hotplug_init(struct vc4_hdmi *vc4_hdmi)
{
struct platform_device *pdev = vc4_hdmi->pdev;
@ -66,7 +66,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
connector->polled = DRM_CONNECTOR_POLL_HPD;
}
@@ -1639,6 +1641,16 @@ static int vc4_hdmi_hotplug_init(struct
@@ -1640,6 +1642,16 @@ static int vc4_hdmi_hotplug_init(struct
return 0;
}
@ -83,7 +83,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
#ifdef CONFIG_DRM_VC4_HDMI_CEC
static irqreturn_t vc4_cec_irq_handler_rx_thread(int irq, void *priv)
{
@@ -2306,7 +2318,7 @@ static int vc4_hdmi_bind(struct device *
@@ -2307,7 +2319,7 @@ static int vc4_hdmi_bind(struct device *
ret = vc4_hdmi_cec_init(vc4_hdmi);
if (ret)
@ -92,7 +92,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
ret = vc4_hdmi_audio_init(vc4_hdmi);
if (ret)
@@ -2320,6 +2332,8 @@ static int vc4_hdmi_bind(struct device *
@@ -2321,6 +2333,8 @@ static int vc4_hdmi_bind(struct device *
err_free_cec:
vc4_hdmi_cec_exit(vc4_hdmi);
@ -101,7 +101,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
err_destroy_conn:
vc4_hdmi_connector_destroy(&vc4_hdmi->connector);
err_destroy_encoder:
@@ -2361,6 +2375,7 @@ static void vc4_hdmi_unbind(struct devic
@@ -2362,6 +2376,7 @@ static void vc4_hdmi_unbind(struct devic
kfree(vc4_hdmi->hd_regset.regs);
vc4_hdmi_cec_exit(vc4_hdmi);

View File

@ -24,7 +24,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -1603,7 +1603,7 @@ static irqreturn_t vc4_hdmi_hpd_irq_thre
@@ -1604,7 +1604,7 @@ static irqreturn_t vc4_hdmi_hpd_irq_thre
struct vc4_hdmi *vc4_hdmi = priv;
struct drm_device *dev = vc4_hdmi->connector.dev;

View File

@ -52,7 +52,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20201203074624.721559-1-maxi
if (ret) {
DRM_ERROR("Failed to wait for infoframe to go idle: %d\n", ret);
return;
@@ -1286,7 +1290,7 @@ static void vc4_hdmi_audio_reset(struct
@@ -1287,7 +1291,7 @@ static void vc4_hdmi_audio_reset(struct
int ret;
vc4_hdmi->audio.streaming = false;

View File

@ -16,7 +16,7 @@ Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
--- a/drivers/gpu/drm/vc4/vc4_plane.c
+++ b/drivers/gpu/drm/vc4/vc4_plane.c
@@ -1364,11 +1364,6 @@ static const struct drm_plane_helper_fun
@@ -1366,11 +1366,6 @@ static const struct drm_plane_helper_fun
.atomic_async_update = vc4_plane_atomic_async_update,
};
@ -28,7 +28,7 @@ Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
static bool vc4_format_mod_supported(struct drm_plane *plane,
uint32_t format,
uint64_t modifier)
@@ -1426,7 +1421,7 @@ static bool vc4_format_mod_supported(str
@@ -1428,7 +1423,7 @@ static bool vc4_format_mod_supported(str
static const struct drm_plane_funcs vc4_plane_funcs = {
.update_plane = drm_atomic_helper_update_plane,
.disable_plane = drm_atomic_helper_disable_plane,

View File

@ -16,7 +16,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20210318161328.1471556-2-max
--- a/drivers/gpu/drm/vc4/vc4_plane.c
+++ b/drivers/gpu/drm/vc4/vc4_plane.c
@@ -1227,7 +1227,6 @@ static void vc4_plane_atomic_async_updat
@@ -1229,7 +1229,6 @@ static void vc4_plane_atomic_async_updat
plane->state->src_y = state->src_y;
plane->state->src_w = state->src_w;
plane->state->src_h = state->src_h;

View File

@ -42,7 +42,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20201211114237.213288-2-tomi
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -5025,7 +5025,6 @@ static void dm_disable_vblank(struct drm
@@ -5027,7 +5027,6 @@ static void dm_disable_vblank(struct drm
static const struct drm_crtc_funcs amdgpu_dm_crtc_funcs = {
.reset = dm_crtc_reset_state,
.destroy = amdgpu_dm_crtc_destroy,

View File

@ -18,7 +18,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -2296,6 +2296,18 @@ static int vc4_hdmi_bind(struct device *
@@ -2297,6 +2297,18 @@ static int vc4_hdmi_bind(struct device *
if (ret)
goto err_put_ddc;
@ -37,7 +37,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
if (vc4_hdmi->variant->reset)
vc4_hdmi->variant->reset(vc4_hdmi);
@@ -2307,8 +2319,6 @@ static int vc4_hdmi_bind(struct device *
@@ -2308,8 +2320,6 @@ static int vc4_hdmi_bind(struct device *
clk_prepare_enable(vc4_hdmi->pixel_bvb_clock);
}
@ -46,7 +46,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
drm_simple_encoder_init(drm, encoder, DRM_MODE_ENCODER_TMDS);
drm_encoder_helper_add(encoder, &vc4_hdmi_encoder_helper_funcs);
@@ -2332,6 +2342,8 @@ static int vc4_hdmi_bind(struct device *
@@ -2333,6 +2343,8 @@ static int vc4_hdmi_bind(struct device *
vc4_hdmi_debugfs_regs,
vc4_hdmi);
@ -55,7 +55,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
return 0;
err_free_cec:
@@ -2342,6 +2354,7 @@ err_destroy_conn:
@@ -2343,6 +2355,7 @@ err_destroy_conn:
vc4_hdmi_connector_destroy(&vc4_hdmi->connector);
err_destroy_encoder:
drm_encoder_cleanup(encoder);

View File

@ -1,48 +0,0 @@
From 216e8e80057a9f0b6366327881acf88eaf9f1fd4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari@gmail.com>
Date: Tue, 23 Feb 2021 16:18:51 +0100
Subject: [PATCH 2/2] spi: bcm63xx-hsspi: fix pm_runtime
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The driver sets auto_runtime_pm to true, but it doesn't call
pm_runtime_enable(), which results in "Failed to power device" when PM support
is enabled.
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Link: https://lore.kernel.org/r/20210223151851.4110-3-noltari@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
---
drivers/spi/spi-bcm63xx-hsspi.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
--- a/drivers/spi/spi-bcm63xx-hsspi.c
+++ b/drivers/spi/spi-bcm63xx-hsspi.c
@@ -21,6 +21,7 @@
#include <linux/mutex.h>
#include <linux/of.h>
#include <linux/reset.h>
+#include <linux/pm_runtime.h>
#define HSSPI_GLOBAL_CTRL_REG 0x0
#define GLOBAL_CTRL_CS_POLARITY_SHIFT 0
@@ -439,13 +440,17 @@ static int bcm63xx_hsspi_probe(struct pl
if (ret)
goto out_put_master;
+ pm_runtime_enable(&pdev->dev);
+
/* register and we are done */
ret = devm_spi_register_master(dev, master);
if (ret)
- goto out_put_master;
+ goto out_pm_disable;
return 0;
+out_pm_disable:
+ pm_runtime_disable(&pdev->dev);
out_put_master:
spi_master_put(master);
out_disable_pll_clk:

View File

@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/Makefile
+++ b/Makefile
@@ -509,7 +509,7 @@ KBUILD_LDFLAGS_MODULE :=
@@ -516,7 +516,7 @@ KBUILD_LDFLAGS_MODULE :=
KBUILD_LDFLAGS :=
CLANG_FLAGS :=

View File

@ -18,7 +18,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -6810,15 +6810,10 @@ void __netif_napi_del(struct napi_struct
@@ -6812,15 +6812,10 @@ void __netif_napi_del(struct napi_struct
}
EXPORT_SYMBOL(__netif_napi_del);
@ -35,7 +35,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
weight = n->weight;
/* This NAPI_STATE_SCHED test is for avoiding a race
@@ -6838,7 +6833,7 @@ static int napi_poll(struct napi_struct
@@ -6840,7 +6835,7 @@ static int napi_poll(struct napi_struct
n->poll, work, weight);
if (likely(work < weight))
@ -44,7 +44,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
/* Drivers must not modify the NAPI state if they
* consume the entire weight. In such cases this code
@@ -6847,7 +6842,7 @@ static int napi_poll(struct napi_struct
@@ -6849,7 +6844,7 @@ static int napi_poll(struct napi_struct
*/
if (unlikely(napi_disable_pending(n))) {
napi_complete(n);
@ -53,7 +53,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
}
if (n->gro_bitmask) {
@@ -6865,12 +6860,29 @@ static int napi_poll(struct napi_struct
@@ -6867,12 +6862,29 @@ static int napi_poll(struct napi_struct
if (unlikely(!list_empty(&n->poll_list))) {
pr_warn_once("%s: Budget exhausted after napi rescheduled\n",
n->dev ? n->dev->name : "backlog");

View File

@ -131,7 +131,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
static int __dev_open(struct net_device *dev, struct netlink_ext_ack *extack)
{
const struct net_device_ops *ops = dev->netdev_ops;
@@ -4272,6 +4294,21 @@ int gro_normal_batch __read_mostly = 8;
@@ -4274,6 +4296,21 @@ int gro_normal_batch __read_mostly = 8;
static inline void ____napi_schedule(struct softnet_data *sd,
struct napi_struct *napi)
{
@ -153,7 +153,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
list_add_tail(&napi->poll_list, &sd->poll_list);
__raise_softirq_irqoff(NET_RX_SOFTIRQ);
}
@@ -6763,6 +6800,12 @@ void netif_napi_add(struct net_device *d
@@ -6765,6 +6802,12 @@ void netif_napi_add(struct net_device *d
set_bit(NAPI_STATE_NPSVC, &napi->state);
list_add_rcu(&napi->dev_list, &dev->napi_list);
napi_hash_add(napi);
@ -166,7 +166,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
}
EXPORT_SYMBOL(netif_napi_add);
@@ -6779,9 +6822,28 @@ void napi_disable(struct napi_struct *n)
@@ -6781,9 +6824,28 @@ void napi_disable(struct napi_struct *n)
hrtimer_cancel(&n->timer);
clear_bit(NAPI_STATE_DISABLE, &n->state);
@ -195,7 +195,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
static void flush_gro_hash(struct napi_struct *napi)
{
int i;
@@ -6807,6 +6869,11 @@ void __netif_napi_del(struct napi_struct
@@ -6809,6 +6871,11 @@ void __netif_napi_del(struct napi_struct
flush_gro_hash(napi);
napi->gro_bitmask = 0;
@ -207,7 +207,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
}
EXPORT_SYMBOL(__netif_napi_del);
@@ -6888,6 +6955,51 @@ static int napi_poll(struct napi_struct
@@ -6890,6 +6957,51 @@ static int napi_poll(struct napi_struct
return work;
}

View File

@ -57,7 +57,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
* @n: NAPI context
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -4298,8 +4298,9 @@ static inline void ____napi_schedule(str
@@ -4300,8 +4300,9 @@ static inline void ____napi_schedule(str
if (test_bit(NAPI_STATE_THREADED, &napi->state)) {
/* Paired with smp_mb__before_atomic() in
@ -69,7 +69,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
* wake_up_process() when it's not NULL.
*/
thread = READ_ONCE(napi->thread);
@@ -6773,6 +6774,49 @@ static void init_gro_hash(struct napi_st
@@ -6775,6 +6776,49 @@ static void init_gro_hash(struct napi_st
napi->gro_bitmask = 0;
}

View File

@ -45,7 +45,7 @@ Cc: Hannes Frederic Sowa <hannes@stressinduktion.org>
enum gro_result {
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -4305,6 +4305,8 @@ static inline void ____napi_schedule(str
@@ -4307,6 +4307,8 @@ static inline void ____napi_schedule(str
*/
thread = READ_ONCE(napi->thread);
if (thread) {
@ -54,7 +54,7 @@ Cc: Hannes Frederic Sowa <hannes@stressinduktion.org>
wake_up_process(thread);
return;
}
@@ -6565,7 +6567,8 @@ bool napi_complete_done(struct napi_stru
@@ -6567,7 +6569,8 @@ bool napi_complete_done(struct napi_stru
WARN_ON_ONCE(!(val & NAPIF_STATE_SCHED));
@ -64,7 +64,7 @@ Cc: Hannes Frederic Sowa <hannes@stressinduktion.org>
/* If STATE_MISSED was set, leave STATE_SCHED set,
* because we will call napi->poll() one more time.
@@ -7001,16 +7004,25 @@ static int napi_poll(struct napi_struct
@@ -7003,16 +7006,25 @@ static int napi_poll(struct napi_struct
static int napi_thread_wait(struct napi_struct *napi)
{

View File

@ -34,7 +34,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -7008,7 +7008,7 @@ static int napi_thread_wait(struct napi_
@@ -7010,7 +7010,7 @@ static int napi_thread_wait(struct napi_
set_current_state(TASK_INTERRUPTIBLE);
@ -43,7 +43,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
/* Testing SCHED_THREADED bit here to make sure the current
* kthread owns this napi and could poll on this napi.
* Testing SCHED bit is not enough because SCHED bit might be
@@ -7026,6 +7026,7 @@ static int napi_thread_wait(struct napi_
@@ -7028,6 +7028,7 @@ static int napi_thread_wait(struct napi_
set_current_state(TASK_INTERRUPTIBLE);
}
__set_current_state(TASK_RUNNING);

View File

@ -1420,7 +1420,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
--- a/drivers/net/ethernet/ti/am65-cpsw-nuss.c
+++ b/drivers/net/ethernet/ti/am65-cpsw-nuss.c
@@ -1742,7 +1742,6 @@ static int am65_cpsw_nuss_init_slave_por
@@ -1713,7 +1713,6 @@ static int am65_cpsw_nuss_init_slave_por
for_each_child_of_node(node, port_np) {
struct am65_cpsw_port *port;
@ -1428,8 +1428,8 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
u32 port_id;
/* it is not a slave port node, continue */
@@ -1821,15 +1820,15 @@ static int am65_cpsw_nuss_init_slave_por
return ret;
@@ -1796,15 +1795,15 @@ static int am65_cpsw_nuss_init_slave_por
goto of_node_put;
}
- mac_addr = of_get_mac_address(port_np);

View File

@ -34,7 +34,7 @@ Acked-by: Bjorn Helgaas <bhelgaas@google.com>
set_dev_node(bus->bridge, pcibus_to_node(bus));
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -547,6 +547,7 @@ struct pci_host_bridge {
@@ -548,6 +548,7 @@ struct pci_host_bridge {
unsigned int native_dpc:1; /* OS may use PCIe DPC */
unsigned int preserve_config:1; /* Preserve FW resource setup */
unsigned int size_windows:1; /* Enable root bus sizing */

View File

@ -105,7 +105,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
help
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -3654,6 +3654,11 @@ static int xmit_one(struct sk_buff *skb,
@@ -3656,6 +3656,11 @@ static int xmit_one(struct sk_buff *skb,
if (dev_nit_active(dev))
dev_queue_xmit_nit(skb, dev);

View File

@ -330,7 +330,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/net/core/sock.c
+++ b/net/core/sock.c
@@ -3701,6 +3701,8 @@ static __net_initdata struct pernet_oper
@@ -3710,6 +3710,8 @@ static __net_initdata struct pernet_oper
static int __init proto_init(void)
{

View File

@ -202,7 +202,7 @@ Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
return !!nor->params->erase_map.uniform_erase_type;
}
@@ -2571,6 +2573,7 @@ static int spi_nor_select_erase(struct s
@@ -2580,6 +2582,7 @@ static int spi_nor_select_erase(struct s
{
struct spi_nor_erase_map *map = &nor->params->erase_map;
const struct spi_nor_erase_type *erase = NULL;
@ -210,7 +210,7 @@ Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
struct mtd_info *mtd = &nor->mtd;
u32 wanted_size = nor->info->sector_size;
int i;
@@ -2603,8 +2606,9 @@ static int spi_nor_select_erase(struct s
@@ -2612,8 +2615,9 @@ static int spi_nor_select_erase(struct s
*/
for (i = SNOR_ERASE_TYPE_MAX - 1; i >= 0; i--) {
if (map->erase_type[i].size) {
@ -222,7 +222,7 @@ Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
}
}
@@ -2612,6 +2616,9 @@ static int spi_nor_select_erase(struct s
@@ -2621,6 +2625,9 @@ static int spi_nor_select_erase(struct s
return -EINVAL;
mtd->erasesize = erase->size;

View File

@ -39,7 +39,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
endif # MTD_SPI_NOR
--- a/drivers/mtd/spi-nor/core.c
+++ b/drivers/mtd/spi-nor/core.c
@@ -2804,6 +2804,21 @@ static void spi_nor_info_init_params(str
@@ -2813,6 +2813,21 @@ static void spi_nor_info_init_params(str
*/
erase_mask = 0;
i = 0;
@ -61,7 +61,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (info->flags & SECT_4K_PMC) {
erase_mask |= BIT(i);
spi_nor_set_erase_type(&map->erase_type[i], 4096u,
@@ -2815,6 +2830,7 @@ static void spi_nor_info_init_params(str
@@ -2824,6 +2839,7 @@ static void spi_nor_info_init_params(str
SPINOR_OP_BE_4K);
i++;
}

View File

@ -8,7 +8,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
--- a/drivers/mtd/ubi/build.c
+++ b/drivers/mtd/ubi/build.c
@@ -1185,6 +1185,73 @@ static struct mtd_info * __init open_mtd
@@ -1192,6 +1192,73 @@ static struct mtd_info * __init open_mtd
return mtd;
}
@ -82,7 +82,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
static int __init ubi_init(void)
{
int err, i, k;
@@ -1268,6 +1335,12 @@ static int __init ubi_init(void)
@@ -1275,6 +1342,12 @@ static int __init ubi_init(void)
}
}

View File

@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
for (i = sizeof(struct ipt_entry);
i < e->target_offset;
i += m->u.match_size) {
@@ -1223,12 +1260,15 @@ compat_copy_entry_to_user(struct ipt_ent
@@ -1222,12 +1259,15 @@ compat_copy_entry_to_user(struct ipt_ent
compat_uint_t origsize;
const struct xt_entry_match *ematch;
int ret = 0;

View File

@ -185,7 +185,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
cfg->fc_flags |= RTF_REJECT;
if (rtm->rtm_type == RTN_LOCAL)
@@ -6135,6 +6166,8 @@ static int ip6_route_dev_notify(struct n
@@ -6136,6 +6167,8 @@ static int ip6_route_dev_notify(struct n
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
net->ipv6.ip6_prohibit_entry->dst.dev = dev;
net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev);
@ -194,7 +194,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
#endif
@@ -6146,6 +6179,7 @@ static int ip6_route_dev_notify(struct n
@@ -6147,6 +6180,7 @@ static int ip6_route_dev_notify(struct n
in6_dev_put_clear(&net->ipv6.ip6_null_entry->rt6i_idev);
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
in6_dev_put_clear(&net->ipv6.ip6_prohibit_entry->rt6i_idev);
@ -202,7 +202,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev);
#endif
}
@@ -6337,6 +6371,8 @@ static int __net_init ip6_route_net_init
@@ -6338,6 +6372,8 @@ static int __net_init ip6_route_net_init
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
net->ipv6.fib6_has_custom_rules = false;
@ -211,7 +211,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
net->ipv6.ip6_prohibit_entry = kmemdup(&ip6_prohibit_entry_template,
sizeof(*net->ipv6.ip6_prohibit_entry),
GFP_KERNEL);
@@ -6347,11 +6383,21 @@ static int __net_init ip6_route_net_init
@@ -6348,11 +6384,21 @@ static int __net_init ip6_route_net_init
ip6_template_metrics, true);
INIT_LIST_HEAD(&net->ipv6.ip6_prohibit_entry->rt6i_uncached);
@ -234,7 +234,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
ip6_template_metrics, true);
@@ -6378,6 +6424,8 @@ out:
@@ -6379,6 +6425,8 @@ out:
return ret;
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
@ -243,7 +243,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
out_ip6_prohibit_entry:
kfree(net->ipv6.ip6_prohibit_entry);
out_ip6_null_entry:
@@ -6397,6 +6445,7 @@ static void __net_exit ip6_route_net_exi
@@ -6398,6 +6446,7 @@ static void __net_exit ip6_route_net_exi
kfree(net->ipv6.ip6_null_entry);
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
kfree(net->ipv6.ip6_prohibit_entry);
@ -251,7 +251,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
kfree(net->ipv6.ip6_blk_hole_entry);
#endif
dst_entries_destroy(&net->ipv6.ip6_dst_ops);
@@ -6480,6 +6529,9 @@ void __init ip6_route_init_special_entri
@@ -6481,6 +6530,9 @@ void __init ip6_route_init_special_entri
init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev;
init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);

View File

@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
__u16 tc_index; /* traffic control index */
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -6067,6 +6067,9 @@ static enum gro_result dev_gro_receive(s
@@ -6069,6 +6069,9 @@ static enum gro_result dev_gro_receive(s
int same_flow;
int grow;
@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (netif_elide_gro(skb->dev))
goto normal;
@@ -8044,6 +8047,48 @@ static void __netdev_adjacent_dev_unlink
@@ -8046,6 +8049,48 @@ static void __netdev_adjacent_dev_unlink
&upper_dev->adj_list.lower);
}
@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
static int __netdev_upper_dev_link(struct net_device *dev,
struct net_device *upper_dev, bool master,
void *upper_priv, void *upper_info,
@@ -8095,6 +8140,7 @@ static int __netdev_upper_dev_link(struc
@@ -8097,6 +8142,7 @@ static int __netdev_upper_dev_link(struc
if (ret)
return ret;
@ -99,7 +99,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
&changeupper_info.info);
ret = notifier_to_errno(ret);
@@ -8191,6 +8237,7 @@ static void __netdev_upper_dev_unlink(st
@@ -8193,6 +8239,7 @@ static void __netdev_upper_dev_unlink(st
__netdev_adjacent_dev_unlink_neighbour(dev, upper_dev);
@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
&changeupper_info.info);
@@ -8977,6 +9024,7 @@ int dev_set_mac_address(struct net_devic
@@ -8979,6 +9026,7 @@ int dev_set_mac_address(struct net_devic
if (err)
return err;
dev->addr_assign_type = NET_ADDR_SET;

View File

@ -19,7 +19,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
interface-type = "ace";
reg = <0x5000 0x1000>;
};
@@ -936,6 +936,8 @@
@@ -937,6 +937,8 @@
power-domains = <&scpsys MT7622_POWER_DOMAIN_ETHSYS>;
mediatek,ethsys = <&ethsys>;
mediatek,sgmiisys = <&sgmiisys>;

View File

@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/arch/arm64/boot/dts/mediatek/mt7622.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt7622.dtsi
@@ -892,6 +892,11 @@
@@ -893,6 +893,11 @@
};
};
@ -23,7 +23,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
ethsys: syscon@1b000000 {
compatible = "mediatek,mt7622-ethsys",
"syscon";
@@ -910,6 +915,26 @@
@@ -911,6 +916,26 @@
#dma-cells = <1>;
};
@ -50,7 +50,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
eth: ethernet@1b100000 {
compatible = "mediatek,mt7622-eth",
"mediatek,mt2701-eth",
@@ -937,6 +962,9 @@
@@ -938,6 +963,9 @@
mediatek,ethsys = <&ethsys>;
mediatek,sgmiisys = <&sgmiisys>;
mediatek,cci-control = <&cci_control2>;

View File

@ -219,7 +219,7 @@ Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
tsens_debug_init(op);
err_put_device:
@@ -945,10 +1015,19 @@ static int tsens_register_irq(struct tse
@@ -951,10 +1021,19 @@ static int tsens_register_irq(struct tse
if (irq == -ENXIO)
ret = 0;
} else {
@ -243,7 +243,7 @@ Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
if (ret)
dev_err(&pdev->dev, "%s: failed to get irq\n",
__func__);
@@ -977,6 +1056,19 @@ static int tsens_register(struct tsens_p
@@ -983,6 +1062,19 @@ static int tsens_register(struct tsens_p
priv->ops->enable(priv, i);
}

View File

@ -25,7 +25,7 @@ Acked-by: Thara Gopinath <thara.gopinath@linaro.org>
err_put_device:
put_device(&op->dev);
return ret;
@@ -1155,7 +1153,12 @@ static int tsens_probe(struct platform_d
@@ -1161,7 +1159,12 @@ static int tsens_probe(struct platform_d
}
}

View File

@ -5481,7 +5481,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
(transaction layer end-to-end CRC checking).
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -1420,6 +1420,8 @@ void pci_walk_bus(struct pci_bus *top, i
@@ -1421,6 +1421,8 @@ void pci_walk_bus(struct pci_bus *top, i
void *userdata);
int pci_cfg_space_size(struct pci_dev *dev);
unsigned char pci_bus_max_busnr(struct pci_bus *bus);

View File

@ -15,7 +15,7 @@
default "y"
--- a/arch/mips/include/asm/vpe.h
+++ b/arch/mips/include/asm/vpe.h
@@ -127,4 +127,13 @@ void cleanup_tc(struct tc *tc);
@@ -126,4 +126,13 @@ void cleanup_tc(struct tc *tc);
int __init vpe_module_init(void);
void __exit vpe_module_exit(void);
@ -31,15 +31,7 @@
#endif /* _ASM_VPE_H */
--- a/arch/mips/kernel/vpe-mt.c
+++ b/arch/mips/kernel/vpe-mt.c
@@ -29,6 +29,7 @@ int vpe_run(struct vpe *v)
struct vpe_notifications *notifier;
unsigned int vpeflags;
struct tc *t;
+ unsigned long physical_memsize = 0L;
/* check we are the Master VPE */
local_irq_save(flags);
@@ -416,6 +417,8 @@ int __init vpe_module_init(void)
@@ -415,6 +415,8 @@ int __init vpe_module_init(void)
}
v->ntcs = hw_tcs - aprp_cpu_index();
@ -48,7 +40,7 @@
/* add the tc to the list of this vpe's tc's. */
list_add(&t->tc, &v->tc);
@@ -519,3 +522,47 @@ void __exit vpe_module_exit(void)
@@ -518,3 +520,47 @@ void __exit vpe_module_exit(void)
release_vpe(v);
}
}
@ -142,7 +134,7 @@
{
--- a/arch/mips/lantiq/prom.c
+++ b/arch/mips/lantiq/prom.c
@@ -34,10 +34,14 @@ unsigned long physical_memsize = 0L;
@@ -28,10 +28,14 @@ EXPORT_SYMBOL_GPL(ebu_lock);
*/
static struct ltq_soc_info soc_info;

View File

@ -1,6 +1,6 @@
--- a/arch/mips/kernel/vpe-mt.c
+++ b/arch/mips/kernel/vpe-mt.c
@@ -132,7 +132,10 @@ int vpe_run(struct vpe *v)
@@ -130,7 +130,10 @@ int vpe_run(struct vpe *v)
* kernels need to turn it on, even if that wasn't the pre-dvpe() state.
*/
#ifdef CONFIG_SMP

View File

@ -39,7 +39,7 @@ Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
--- a/arch/mips/lantiq/prom.c
+++ b/arch/mips/lantiq/prom.c
@@ -37,6 +37,14 @@ static struct ltq_soc_info soc_info;
@@ -31,6 +31,14 @@ static struct ltq_soc_info soc_info;
/* for Multithreading (APRP), vpe.c will use it */
unsigned long cp0_memsize;
@ -54,7 +54,7 @@ Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
const char *get_system_type(void)
{
return soc_info.sys_type;
@@ -100,6 +108,17 @@ void __init device_tree_init(void)
@@ -94,6 +102,17 @@ void __init device_tree_init(void)
unflatten_and_copy_device_tree();
}
@ -72,7 +72,7 @@ Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
void __init prom_init(void)
{
/* call the soc specific detetcion code and get it to fill soc_info */
@@ -111,7 +130,10 @@ void __init prom_init(void)
@@ -105,7 +124,10 @@ void __init prom_init(void)
prom_init_cmdline();
#if defined(CONFIG_MIPS_MT_SMP)

View File

@ -1,6 +1,6 @@
--- a/arch/arm64/boot/dts/mediatek/mt7622.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt7622.dtsi
@@ -561,6 +561,20 @@
@@ -562,6 +562,20 @@
status = "disabled";
};

View File

@ -281,7 +281,7 @@ Signed-off-by: chuanjia.liu <Chuanjia.Liu@mediatek.com>
&pio {
--- a/arch/arm64/boot/dts/mediatek/mt7622.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt7622.dtsi
@@ -802,45 +802,41 @@
@@ -803,45 +803,41 @@
#reset-cells = <1>;
};
@ -344,7 +344,7 @@ Signed-off-by: chuanjia.liu <Chuanjia.Liu@mediatek.com>
interrupt-map-mask = <0 0 0 7>;
interrupt-map = <0 0 0 1 &pcie_intc0 0>,
<0 0 0 2 &pcie_intc0 1>,
@@ -852,15 +848,39 @@
@@ -853,15 +849,39 @@
#interrupt-cells = <1>;
};
};

View File

@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/arch/arm64/boot/dts/mediatek/mt7622.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt7622.dtsi
@@ -813,6 +813,8 @@
@@ -814,6 +814,8 @@
reg = <0 0x1a143000 0 0x1000>;
reg-names = "port0";
mediatek,pcie-cfg = <&pciecfg>;
@ -19,7 +19,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
#address-cells = <3>;
#size-cells = <2>;
interrupts = <GIC_SPI 228 IRQ_TYPE_LEVEL_LOW>;
@@ -830,6 +832,7 @@
@@ -831,6 +833,7 @@
bus-range = <0x00 0xff>;
ranges = <0x82000000 0 0x20000000 0x0 0x20000000 0 0x8000000>;
status = "disabled";
@ -27,7 +27,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
slot0: pcie@0,0 {
reg = <0x0000 0 0 0 0>;
@@ -856,6 +859,8 @@
@@ -857,6 +860,8 @@
reg = <0 0x1a145000 0 0x1000>;
reg-names = "port1";
mediatek,pcie-cfg = <&pciecfg>;
@ -36,7 +36,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
#address-cells = <3>;
#size-cells = <2>;
interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_LOW>;
@@ -874,6 +879,7 @@
@@ -875,6 +880,7 @@
bus-range = <0x00 0xff>;
ranges = <0x82000000 0 0x28000000 0x0 0x28000000 0 0x8000000>;
status = "disabled";

Some files were not shown because too many files have changed in this diff Show More