From 8299d1f057439f94c6a4412e2e5c5082b82a30c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Date: Sat, 21 Aug 2021 10:54:34 +0200 Subject: bcm27xx: add kernel 5.10 support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Rebased RPi foundation patches on linux 5.10.59, removed applied and reverted patches, wireless patches and defconfig patches. bcm2708: boot tested on RPi B+ v1.2 bcm2709: boot tested on RPi 4B v1.1 4G bcm2711: boot tested on RPi 4B v1.1 4G Signed-off-by: Álvaro Fernández Rojas --- ...he-state-pointer-directly-in-atomic_check.patch | 136 +++++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 target/linux/bcm27xx/patches-5.10/950-0686-drm-Use-the-state-pointer-directly-in-atomic_check.patch (limited to 'target/linux/bcm27xx/patches-5.10/950-0686-drm-Use-the-state-pointer-directly-in-atomic_check.patch') diff --git a/target/linux/bcm27xx/patches-5.10/950-0686-drm-Use-the-state-pointer-directly-in-atomic_check.patch b/target/linux/bcm27xx/patches-5.10/950-0686-drm-Use-the-state-pointer-directly-in-atomic_check.patch new file mode 100644 index 0000000000..2d16e5a2f7 --- /dev/null +++ b/target/linux/bcm27xx/patches-5.10/950-0686-drm-Use-the-state-pointer-directly-in-atomic_check.patch @@ -0,0 +1,136 @@ +From 1a941929a4163a147764711f6bfe2ad9f3614abb Mon Sep 17 00:00:00 2001 +From: Maxime Ripard +Date: Mon, 2 Nov 2020 14:38:34 +0100 +Subject: [PATCH] drm: Use the state pointer directly in atomic_check +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Now that atomic_check takes the global atomic state as a parameter, we +don't need to go through the pointer in the CRTC state. + +This was done using the following coccinelle script: + +@ crtc_atomic_func @ +identifier helpers; +identifier func; +@@ + +static struct drm_crtc_helper_funcs helpers = { + ..., + .atomic_check = func, + ..., +}; + +@@ +identifier crtc_atomic_func.func; +identifier crtc, state; +@@ + + func(struct drm_crtc *crtc, struct drm_atomic_state *state) { + ... +- struct drm_crtc_state *crtc_state = drm_atomic_get_new_crtc_state(state, crtc); + ... when != crtc_state +- crtc_state->state ++ state + ... + } + +@@ +struct drm_crtc_state *crtc_state; +identifier crtc_atomic_func.func; +identifier crtc, state; +@@ + + func(struct drm_crtc *crtc, struct drm_atomic_state *state) { + ... +- crtc_state->state ++ state + ... + } + +Suggested-by: Ville Syrjälä +Signed-off-by: Maxime Ripard +Reviewed-by: Ville Syrjälä +Link: https://patchwork.freedesktop.org/patch/msgid/20201102133834.1176740-3-maxime@cerno.tech +--- + drivers/gpu/drm/drm_simple_kms_helper.c | 2 +- + drivers/gpu/drm/mxsfb/mxsfb_kms.c | 2 +- + drivers/gpu/drm/omapdrm/omap_crtc.c | 2 +- + drivers/gpu/drm/tilcdc/tilcdc_crtc.c | 6 +++--- + drivers/gpu/drm/vc4/vc4_crtc.c | 2 +- + drivers/gpu/drm/xlnx/zynqmp_disp.c | 4 +--- + 6 files changed, 8 insertions(+), 10 deletions(-) + +--- a/drivers/gpu/drm/drm_simple_kms_helper.c ++++ b/drivers/gpu/drm/drm_simple_kms_helper.c +@@ -97,7 +97,7 @@ static int drm_simple_kms_crtc_check(str + if (has_primary != crtc_state->enable) + return -EINVAL; + +- return drm_atomic_add_affected_planes(crtc_state->state, crtc); ++ return drm_atomic_add_affected_planes(state, crtc); + } + + static void drm_simple_kms_crtc_enable(struct drm_crtc *crtc, +--- a/drivers/gpu/drm/mxsfb/mxsfb_kms.c ++++ b/drivers/gpu/drm/mxsfb/mxsfb_kms.c +@@ -282,7 +282,7 @@ static int mxsfb_crtc_atomic_check(struc + return -EINVAL; + + /* TODO: Is this needed ? */ +- return drm_atomic_add_affected_planes(crtc_state->state, crtc); ++ return drm_atomic_add_affected_planes(state, crtc); + } + + static void mxsfb_crtc_atomic_flush(struct drm_crtc *crtc, +--- a/drivers/gpu/drm/omapdrm/omap_crtc.c ++++ b/drivers/gpu/drm/omapdrm/omap_crtc.c +@@ -583,7 +583,7 @@ static int omap_crtc_atomic_check(struct + return -EINVAL; + } + +- pri_state = drm_atomic_get_new_plane_state(crtc_state->state, ++ pri_state = drm_atomic_get_new_plane_state(state, + crtc->primary); + if (pri_state) { + struct omap_crtc_state *omap_crtc_state = +--- a/drivers/gpu/drm/tilcdc/tilcdc_crtc.c ++++ b/drivers/gpu/drm/tilcdc/tilcdc_crtc.c +@@ -677,9 +677,9 @@ static int tilcdc_crtc_atomic_check(stru + if (!crtc_state->active) + return 0; + +- if (crtc_state->state->planes[0].ptr != crtc->primary || +- crtc_state->state->planes[0].state == NULL || +- crtc_state->state->planes[0].state->crtc != crtc) { ++ if (state->planes[0].ptr != crtc->primary || ++ state->planes[0].state == NULL || ++ state->planes[0].state->crtc != crtc) { + dev_dbg(crtc->dev->dev, "CRTC primary plane must be present"); + return -EINVAL; + } +--- a/drivers/gpu/drm/vc4/vc4_crtc.c ++++ b/drivers/gpu/drm/vc4/vc4_crtc.c +@@ -650,7 +650,7 @@ static int vc4_crtc_atomic_check(struct + if (ret) + return ret; + +- for_each_new_connector_in_state(crtc_state->state, conn, conn_state, ++ for_each_new_connector_in_state(state, conn, conn_state, + i) { + if (conn_state->crtc != crtc) + continue; +--- a/drivers/gpu/drm/xlnx/zynqmp_disp.c ++++ b/drivers/gpu/drm/xlnx/zynqmp_disp.c +@@ -1507,9 +1507,7 @@ zynqmp_disp_crtc_atomic_disable(struct d + static int zynqmp_disp_crtc_atomic_check(struct drm_crtc *crtc, + struct drm_atomic_state *state) + { +- struct drm_crtc_state *crtc_state = drm_atomic_get_new_crtc_state(state, +- crtc); +- return drm_atomic_add_affected_planes(crtc_state->state, crtc); ++ return drm_atomic_add_affected_planes(state, crtc); + } + + static void -- cgit v1.2.3