linux/drivers/gpu/drm/omapdrm
Maxime Ripard 37418bf14c
drm: Use state helper instead of the plane state pointer
Many drivers reference the plane->state pointer in order to get the
current plane state in their atomic_update or atomic_disable hooks,
which would be the new plane state in the global atomic state since
_swap_state happened when those hooks are run.

Use the drm_atomic_get_new_plane_state helper to get that state to make it
more obvious.

This was made using the coccinelle script below:

@ plane_atomic_func @
identifier helpers;
identifier func;
@@

(
 static const struct drm_plane_helper_funcs helpers = {
 	...,
 	.atomic_disable = func,
	...,
 };
|
 static const struct drm_plane_helper_funcs helpers = {
 	...,
 	.atomic_update = func,
	...,
 };
)

@ adds_new_state @
identifier plane_atomic_func.func;
identifier plane, state;
identifier new_state;
@@

 func(struct drm_plane *plane, struct drm_atomic_state *state)
 {
 	...
-	struct drm_plane_state *new_state = plane->state;
+	struct drm_plane_state *new_state = drm_atomic_get_new_plane_state(state, plane);
	...
 }

@ include depends on adds_new_state @
@@

 #include <drm/drm_atomic.h>

@ no_include depends on !include && adds_new_state @
@@

+ #include <drm/drm_atomic.h>
  #include <drm/...>

Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
Acked-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://lore.kernel.org/r/20210219120032.260676-1-maxime@cerno.tech
2021-02-25 08:05:28 +01:00
..
dss drm/omap: dsi: fix unreachable code in dsi_vc_send_short() 2021-01-27 16:21:36 +02:00
Kconfig drm/omap: squash omapdrm sub-modules into one 2020-12-15 16:08:27 +02:00
Makefile drm/omap: remove unused display.c 2020-12-15 16:08:27 +02:00
omap_crtc.c drm/omap: remove dss_mgr_ops 2020-12-15 16:17:30 +02:00
omap_crtc.h drm/omap: remove dss_mgr_ops 2020-12-15 16:17:30 +02:00
omap_debugfs.c drm: omapdrm: Replace HTTP links with HTTPS ones 2020-11-10 14:41:22 +02:00
omap_dmm_priv.h drm: omapdrm: Replace HTTP links with HTTPS ones 2020-11-10 14:41:22 +02:00
omap_dmm_tiler.c drm/omap: dmm_tiler: fix return error code in omap_dmm_probe() 2020-11-17 14:43:19 +01:00
omap_dmm_tiler.h drm: omapdrm: Replace HTTP links with HTTPS ones 2020-11-10 14:41:22 +02:00
omap_drv.c drm/omapdrm: Annotate dma-fence critical section in commit path 2021-02-23 12:54:19 +01:00
omap_drv.h drm/omap: remove dispc_ops 2020-12-15 16:15:06 +02:00
omap_encoder.c drm/omap: drop unused DSS next pointer 2020-12-15 16:08:26 +02:00
omap_encoder.h
omap_fb.c drm: omapdrm: Replace HTTP links with HTTPS ones 2020-11-10 14:41:22 +02:00
omap_fb.h
omap_fbdev.c drm: omapdrm: Replace HTTP links with HTTPS ones 2020-11-10 14:41:22 +02:00
omap_fbdev.h
omap_gem_dmabuf.c drm: omapdrm: Replace HTTP links with HTTPS ones 2020-11-10 14:41:22 +02:00
omap_gem.c drm/prime: split array import functions v4 2020-11-30 15:00:45 +01:00
omap_gem.h
omap_irq.c drm/omap: remove dispc_ops 2020-12-15 16:15:06 +02:00
omap_irq.h
omap_plane.c drm: Use state helper instead of the plane state pointer 2021-02-25 08:05:28 +01:00
omap_plane.h
tcm-sita.c drm/omap: Delete useless kfree code 2020-12-15 17:19:54 +02:00
tcm.h
TODO