e05162c017
In order to store the new plane state in a subsequent helper, let's move the plane->state dereferences into a variable. This was done using the following coccinelle script, plus some hand changes for vmwgfx: @ 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, ..., }; ) @ has_new_state_old_state @ identifier plane_atomic_func.func; identifier plane; identifier new_state; symbol old_state; @@ func(struct drm_plane *plane, struct drm_plane_state *old_state) { ... struct drm_plane_state *new_state = plane->state; ... } @ depends on !has_new_state_old_state @ identifier plane_atomic_func.func; identifier plane; symbol old_state; @@ func(struct drm_plane *plane, struct drm_plane_state *old_state) { + struct drm_plane_state *new_state = plane->state; <+... - plane->state + new_state ...+> } @ has_new_state_state @ identifier plane_atomic_func.func; identifier plane; identifier new_state; symbol state; @@ func(struct drm_plane *plane, struct drm_plane_state *state) { ... struct drm_plane_state *new_state = plane->state; ... } @ depends on !has_new_state_state @ identifier plane_atomic_func.func; identifier plane; symbol state; @@ func(struct drm_plane *plane, struct drm_plane_state *state) { + struct drm_plane_state *new_plane_state = plane->state; <+... - plane->state + new_plane_state ...+> } @ has_new_state_old_s @ identifier plane_atomic_func.func; identifier plane; identifier new_state; symbol old_s; @@ func(struct drm_plane *plane, struct drm_plane_state *old_s) { ... struct drm_plane_state *new_state = plane->state; ... } @ depends on !has_new_state_old_s @ identifier plane_atomic_func.func; identifier plane; symbol old_s; @@ func(struct drm_plane *plane, struct drm_plane_state *old_s) { + struct drm_plane_state *new_s = plane->state; <+... - plane->state + new_s ...+> } Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.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 |
||
---|---|---|
.. | ||
device_include | ||
Kconfig | ||
Makefile | ||
ttm_lock.c | ||
ttm_lock.h | ||
ttm_memory.c | ||
ttm_memory.h | ||
ttm_object.c | ||
ttm_object.h | ||
vmwgfx_binding.c | ||
vmwgfx_binding.h | ||
vmwgfx_blit.c | ||
vmwgfx_bo.c | ||
vmwgfx_cmd.c | ||
vmwgfx_cmdbuf_res.c | ||
vmwgfx_cmdbuf.c | ||
vmwgfx_context.c | ||
vmwgfx_cotable.c | ||
vmwgfx_drv.c | ||
vmwgfx_drv.h | ||
vmwgfx_execbuf.c | ||
vmwgfx_fb.c | ||
vmwgfx_fence.c | ||
vmwgfx_fence.h | ||
vmwgfx_gmr.c | ||
vmwgfx_gmrid_manager.c | ||
vmwgfx_ioctl.c | ||
vmwgfx_irq.c | ||
vmwgfx_kms.c | ||
vmwgfx_kms.h | ||
vmwgfx_ldu.c | ||
vmwgfx_mob.c | ||
vmwgfx_msg.c | ||
vmwgfx_msg.h | ||
vmwgfx_overlay.c | ||
vmwgfx_page_dirty.c | ||
vmwgfx_prime.c | ||
vmwgfx_reg.h | ||
vmwgfx_resource_priv.h | ||
vmwgfx_resource.c | ||
vmwgfx_scrn.c | ||
vmwgfx_shader.c | ||
vmwgfx_simple_resource.c | ||
vmwgfx_so.c | ||
vmwgfx_so.h | ||
vmwgfx_stdu.c | ||
vmwgfx_streamoutput.c | ||
vmwgfx_surface.c | ||
vmwgfx_thp.c | ||
vmwgfx_ttm_buffer.c | ||
vmwgfx_ttm_glue.c | ||
vmwgfx_va.c | ||
vmwgfx_validation.c | ||
vmwgfx_validation.h |