• Maxime Ripard's avatar
    drm: Use state helper instead of the plane state pointer · 37418bf1
    Maxime Ripard authored
    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: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
    Signed-off-by: default avatarMaxime Ripard <maxime@cerno.tech>
    Acked-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
    Link: https://lore.kernel.org/r/20210219120032.260676-1-maxime@cerno.tech
    37418bf1
omap_plane.c 9.18 KB