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
Showing
- drivers/gpu/drm/arc/arcpgu_crtc.c 3 additions, 1 deletiondrivers/gpu/drm/arc/arcpgu_crtc.c
- drivers/gpu/drm/arm/hdlcd_crtc.c 2 additions, 1 deletiondrivers/gpu/drm/arm/hdlcd_crtc.c
- drivers/gpu/drm/arm/malidp_planes.c 2 additions, 1 deletiondrivers/gpu/drm/arm/malidp_planes.c
- drivers/gpu/drm/armada/armada_overlay.c 2 additions, 1 deletiondrivers/gpu/drm/armada/armada_overlay.c
- drivers/gpu/drm/armada/armada_plane.c 2 additions, 1 deletiondrivers/gpu/drm/armada/armada_plane.c
- drivers/gpu/drm/ast/ast_mode.c 4 additions, 2 deletionsdrivers/gpu/drm/ast/ast_mode.c
- drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c 2 additions, 1 deletiondrivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c
- drivers/gpu/drm/exynos/exynos_drm_plane.c 2 additions, 1 deletiondrivers/gpu/drm/exynos/exynos_drm_plane.c
- drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c 2 additions, 1 deletiondrivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c
- drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c 2 additions, 1 deletiondrivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c
- drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c 2 additions, 1 deletiondrivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
- drivers/gpu/drm/imx/dcss/dcss-plane.c 2 additions, 1 deletiondrivers/gpu/drm/imx/dcss/dcss-plane.c
- drivers/gpu/drm/imx/ipuv3-plane.c 2 additions, 1 deletiondrivers/gpu/drm/imx/ipuv3-plane.c
- drivers/gpu/drm/ingenic/ingenic-drm-drv.c 2 additions, 1 deletiondrivers/gpu/drm/ingenic/ingenic-drm-drv.c
- drivers/gpu/drm/ingenic/ingenic-ipu.c 2 additions, 1 deletiondrivers/gpu/drm/ingenic/ingenic-ipu.c
- drivers/gpu/drm/kmb/kmb_plane.c 2 additions, 1 deletiondrivers/gpu/drm/kmb/kmb_plane.c
- drivers/gpu/drm/mediatek/mtk_drm_plane.c 4 additions, 2 deletionsdrivers/gpu/drm/mediatek/mtk_drm_plane.c
- drivers/gpu/drm/meson/meson_overlay.c 2 additions, 1 deletiondrivers/gpu/drm/meson/meson_overlay.c
- drivers/gpu/drm/meson/meson_plane.c 2 additions, 1 deletiondrivers/gpu/drm/meson/meson_plane.c
- drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c 2 additions, 1 deletiondrivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
Loading
Please register or sign in to comment