drm: Use the state pointer directly in atomic_check
authorMaxime Ripard <maxime@cerno.tech>
Mon, 2 Nov 2020 13:38:34 +0000 (14:38 +0100)
committerMaxime Ripard <maxime@cerno.tech>
Tue, 3 Nov 2020 11:20:09 +0000 (12:20 +0100)
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
drivers/gpu/drm/mxsfb/mxsfb_kms.c
drivers/gpu/drm/omapdrm/omap_crtc.c
drivers/gpu/drm/tilcdc/tilcdc_crtc.c
drivers/gpu/drm/vc4/vc4_crtc.c
drivers/gpu/drm/xlnx/zynqmp_disp.c

index 4b46689634dde777b9ee4f66489d5c8f7dfd2151..743e57c1b44f3eeecbbd475caba851efe48f5206 100644 (file)
@@ -97,7 +97,7 @@ static int drm_simple_kms_crtc_check(struct drm_crtc *crtc,
        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,
index eb0e2b08329b4d5a2b3f07e251bb5bdd286183f2..9040835289a8c165d408dd89e35dfe9ad66c4886 100644 (file)
@@ -281,7 +281,7 @@ static int mxsfb_crtc_atomic_check(struct drm_crtc *crtc,
                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,
index d7442aa55f89c5bc02d631e36914e34d15a872a3..49621b2e1ab57bba8b13ae2f7ccfa1f11ee16804 100644 (file)
@@ -583,7 +583,7 @@ static int omap_crtc_atomic_check(struct drm_crtc *crtc,
                        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 =
index 40c59f4bd962adbc838a2ae91c027402123274b7..30213708fc990e7ea1359a490b42de20b1b82203 100644 (file)
@@ -665,9 +665,9 @@ static int tilcdc_crtc_atomic_check(struct drm_crtc *crtc,
        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;
        }
index 06088854c6478592ec856d6bff1cb114a319f0a1..ea710beb8e005d7655496df362e09e6a290e8cd1 100644 (file)
@@ -597,7 +597,7 @@ static int vc4_crtc_atomic_check(struct drm_crtc *crtc,
        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;
index 444865af9e36ee14bd343ae9a893ddd785fc85a5..c685d94409b0997e841c14c93c0a3510e82d138e 100644 (file)
@@ -1506,9 +1506,7 @@ zynqmp_disp_crtc_atomic_disable(struct drm_crtc *crtc,
 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