aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/bcm27xx/patches-5.10/950-0686-drm-Use-the-state-pointer-directly-in-atomic_check.patch
diff options
context:
space:
mode:
authorÁlvaro Fernández Rojas <noltari@gmail.com>2021-08-21 10:54:34 +0200
committerÁlvaro Fernández Rojas <noltari@gmail.com>2021-08-21 19:07:07 +0200
commit8299d1f057439f94c6a4412e2e5c5082b82a30c9 (patch)
tree1bf678d61f11f7394493be464c7876e496f7faed /target/linux/bcm27xx/patches-5.10/950-0686-drm-Use-the-state-pointer-directly-in-atomic_check.patch
parent33b6885975ce376ff075362b7f0890326043111b (diff)
downloadupstream-8299d1f057439f94c6a4412e2e5c5082b82a30c9.tar.gz
upstream-8299d1f057439f94c6a4412e2e5c5082b82a30c9.tar.bz2
upstream-8299d1f057439f94c6a4412e2e5c5082b82a30c9.zip
bcm27xx: add kernel 5.10 support
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 <noltari@gmail.com>
Diffstat (limited to 'target/linux/bcm27xx/patches-5.10/950-0686-drm-Use-the-state-pointer-directly-in-atomic_check.patch')
-rw-r--r--target/linux/bcm27xx/patches-5.10/950-0686-drm-Use-the-state-pointer-directly-in-atomic_check.patch136
1 files changed, 136 insertions, 0 deletions
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 <maxime@cerno.tech>
+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ä <ville.syrjala@linux.intel.com>
+Signed-off-by: Maxime Ripard <maxime@cerno.tech>
+Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
+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