bcm27xx: switch to 5.15
[openwrt/staging/chunkeey.git] / target / linux / bcm27xx / patches-5.10 / 950-0686-drm-Use-the-state-pointer-directly-in-atomic_check.patch
1 From 1a941929a4163a147764711f6bfe2ad9f3614abb Mon Sep 17 00:00:00 2001
2 From: Maxime Ripard <maxime@cerno.tech>
3 Date: Mon, 2 Nov 2020 14:38:34 +0100
4 Subject: [PATCH] drm: Use the state pointer directly in atomic_check
5 MIME-Version: 1.0
6 Content-Type: text/plain; charset=UTF-8
7 Content-Transfer-Encoding: 8bit
8
9 Now that atomic_check takes the global atomic state as a parameter, we
10 don't need to go through the pointer in the CRTC state.
11
12 This was done using the following coccinelle script:
13
14 @ crtc_atomic_func @
15 identifier helpers;
16 identifier func;
17 @@
18
19 static struct drm_crtc_helper_funcs helpers = {
20 ...,
21 .atomic_check = func,
22 ...,
23 };
24
25 @@
26 identifier crtc_atomic_func.func;
27 identifier crtc, state;
28 @@
29
30 func(struct drm_crtc *crtc, struct drm_atomic_state *state) {
31 ...
32 - struct drm_crtc_state *crtc_state = drm_atomic_get_new_crtc_state(state, crtc);
33 ... when != crtc_state
34 - crtc_state->state
35 + state
36 ...
37 }
38
39 @@
40 struct drm_crtc_state *crtc_state;
41 identifier crtc_atomic_func.func;
42 identifier crtc, state;
43 @@
44
45 func(struct drm_crtc *crtc, struct drm_atomic_state *state) {
46 ...
47 - crtc_state->state
48 + state
49 ...
50 }
51
52 Suggested-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
53 Signed-off-by: Maxime Ripard <maxime@cerno.tech>
54 Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
55 Link: https://patchwork.freedesktop.org/patch/msgid/20201102133834.1176740-3-maxime@cerno.tech
56 ---
57 drivers/gpu/drm/drm_simple_kms_helper.c | 2 +-
58 drivers/gpu/drm/mxsfb/mxsfb_kms.c | 2 +-
59 drivers/gpu/drm/omapdrm/omap_crtc.c | 2 +-
60 drivers/gpu/drm/tilcdc/tilcdc_crtc.c | 6 +++---
61 drivers/gpu/drm/vc4/vc4_crtc.c | 2 +-
62 drivers/gpu/drm/xlnx/zynqmp_disp.c | 4 +---
63 6 files changed, 8 insertions(+), 10 deletions(-)
64
65 --- a/drivers/gpu/drm/drm_simple_kms_helper.c
66 +++ b/drivers/gpu/drm/drm_simple_kms_helper.c
67 @@ -97,7 +97,7 @@ static int drm_simple_kms_crtc_check(str
68 if (has_primary != crtc_state->enable)
69 return -EINVAL;
70
71 - return drm_atomic_add_affected_planes(crtc_state->state, crtc);
72 + return drm_atomic_add_affected_planes(state, crtc);
73 }
74
75 static void drm_simple_kms_crtc_enable(struct drm_crtc *crtc,
76 --- a/drivers/gpu/drm/mxsfb/mxsfb_kms.c
77 +++ b/drivers/gpu/drm/mxsfb/mxsfb_kms.c
78 @@ -322,7 +322,7 @@ static int mxsfb_crtc_atomic_check(struc
79 return -EINVAL;
80
81 /* TODO: Is this needed ? */
82 - return drm_atomic_add_affected_planes(crtc_state->state, crtc);
83 + return drm_atomic_add_affected_planes(state, crtc);
84 }
85
86 static void mxsfb_crtc_atomic_flush(struct drm_crtc *crtc,
87 --- a/drivers/gpu/drm/omapdrm/omap_crtc.c
88 +++ b/drivers/gpu/drm/omapdrm/omap_crtc.c
89 @@ -583,7 +583,7 @@ static int omap_crtc_atomic_check(struct
90 return -EINVAL;
91 }
92
93 - pri_state = drm_atomic_get_new_plane_state(crtc_state->state,
94 + pri_state = drm_atomic_get_new_plane_state(state,
95 crtc->primary);
96 if (pri_state) {
97 struct omap_crtc_state *omap_crtc_state =
98 --- a/drivers/gpu/drm/tilcdc/tilcdc_crtc.c
99 +++ b/drivers/gpu/drm/tilcdc/tilcdc_crtc.c
100 @@ -677,9 +677,9 @@ static int tilcdc_crtc_atomic_check(stru
101 if (!crtc_state->active)
102 return 0;
103
104 - if (crtc_state->state->planes[0].ptr != crtc->primary ||
105 - crtc_state->state->planes[0].state == NULL ||
106 - crtc_state->state->planes[0].state->crtc != crtc) {
107 + if (state->planes[0].ptr != crtc->primary ||
108 + state->planes[0].state == NULL ||
109 + state->planes[0].state->crtc != crtc) {
110 dev_dbg(crtc->dev->dev, "CRTC primary plane must be present");
111 return -EINVAL;
112 }
113 --- a/drivers/gpu/drm/vc4/vc4_crtc.c
114 +++ b/drivers/gpu/drm/vc4/vc4_crtc.c
115 @@ -650,7 +650,7 @@ static int vc4_crtc_atomic_check(struct
116 if (ret)
117 return ret;
118
119 - for_each_new_connector_in_state(crtc_state->state, conn, conn_state,
120 + for_each_new_connector_in_state(state, conn, conn_state,
121 i) {
122 if (conn_state->crtc != crtc)
123 continue;
124 --- a/drivers/gpu/drm/xlnx/zynqmp_disp.c
125 +++ b/drivers/gpu/drm/xlnx/zynqmp_disp.c
126 @@ -1508,9 +1508,7 @@ zynqmp_disp_crtc_atomic_disable(struct d
127 static int zynqmp_disp_crtc_atomic_check(struct drm_crtc *crtc,
128 struct drm_atomic_state *state)
129 {
130 - struct drm_crtc_state *crtc_state = drm_atomic_get_new_crtc_state(state,
131 - crtc);
132 - return drm_atomic_add_affected_planes(crtc_state->state, crtc);
133 + return drm_atomic_add_affected_planes(state, crtc);
134 }
135
136 static void