OpenCloudOS-Kernel/drivers/gpu/drm/armada
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
..
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
Makefile drm/armada: move primary plane to separate file 2018-07-30 11:52:34 +01:00
armada_510.c drm main pull request for v5.3-rc1 (sans mm changes) 2019-07-15 19:04:27 -07:00
armada_crtc.c drm: automatic legacy gamma support 2020-12-15 15:46:03 +02:00
armada_crtc.h drm main pull request for v5.3-rc1 (sans mm changes) 2019-07-15 19:04:27 -07:00
armada_debugfs.c drm/armada: Don't use drm_device->dev_private 2020-09-11 10:47:19 +02:00
armada_drm.h drm/armada: Don't use drm_device->dev_private 2020-09-11 10:47:19 +02:00
armada_drv.c drm/<drivers>: Constify struct drm_driver 2020-11-06 10:31:26 +01:00
armada_fb.c drm/armada: remove _unlocked suffix in drm_gem_object_put_unlocked 2020-05-19 22:31:32 +01:00
armada_fb.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
armada_fbdev.c drm/armada: Don't use drm_device->dev_private 2020-09-11 10:47:19 +02:00
armada_gem.c Merge drm/drm-next into drm-misc-next 2020-11-02 11:17:54 +01:00
armada_gem.h drm/armada: Introduce GEM object functions 2020-09-25 09:20:13 +02:00
armada_hw.h drm main pull request for v5.3-rc1 (sans mm changes) 2019-07-15 19:04:27 -07:00
armada_ioctlP.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
armada_overlay.c drm: Use state helper instead of the plane state pointer 2021-02-25 08:05:28 +01:00
armada_plane.c drm: Use state helper instead of the plane state pointer 2021-02-25 08:05:28 +01:00
armada_plane.h drm/atomic: Pass the full state to planes atomic_check 2021-02-24 20:27:00 +01:00
armada_trace.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
armada_trace.h drm/armada: drop use of drmP.h 2019-08-14 18:31:10 +02:00