Hi Maxime, Thank you for the patch. On Fri, Jan 15, 2021 at 01:56:54PM +0100, Maxime Ripard wrote: > Most drivers call the argument to the plane atomic_check hook simply > state, which is going to conflict with the global atomic state in a > later rework. Let's rename it to new_plane_state (or new_state depending > on the convention used in the driver). > > This was done using the coccinelle script below, and built tested: > > @ plane_atomic_func @ > identifier helpers; > identifier func; > @@ > > static const struct drm_plane_helper_funcs helpers = { > .atomic_check = func, > }; > > @ has_old_state @ > identifier plane_atomic_func.func; > identifier plane; > expression e; > symbol old_state; > symbol state; > @@ > > func(struct drm_plane *plane, struct drm_plane_state *state) > { > ... > struct drm_plane_state *old_state = e; > ... > } > > @ depends on has_old_state @ > identifier plane_atomic_func.func; > identifier plane; > symbol old_state; > @@ > > func(struct drm_plane *plane, > - struct drm_plane_state *state > + struct drm_plane_state *new_state > ) > { > <+... > - state > + new_state > ...+> > } > > @ has_state @ > identifier plane_atomic_func.func; > identifier plane; > symbol state; > @@ > > func(struct drm_plane *plane, struct drm_plane_state *state) > { > ... > } > > @ depends on has_state @ > identifier plane_atomic_func.func; > identifier plane; > symbol old_state; > @@ > > func(struct drm_plane *plane, > - struct drm_plane_state *state > + struct drm_plane_state *new_plane_state > ) > { > <+... > - state > + new_plane_state > ...+> > } > > Signed-off-by: Maxime Ripard <maxime@xxxxxxxxxx> > --- [...] > drivers/gpu/drm/omapdrm/omap_plane.c | 19 +++++---- > drivers/gpu/drm/rcar-du/rcar_du_plane.c | 7 ++-- > drivers/gpu/drm/rcar-du/rcar_du_vsp.c | 7 ++-- > drivers/gpu/drm/xlnx/zynqmp_disp.c | 10 +++-- For these, with the comment below addressed, Reviewed-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> > 41 files changed, 402 insertions(+), 357 deletions(-) [snip] > diff --git a/drivers/gpu/drm/omapdrm/omap_plane.c b/drivers/gpu/drm/omapdrm/omap_plane.c > index 51dc24acea73..78d0eb1fd69d 100644 > --- a/drivers/gpu/drm/omapdrm/omap_plane.c > +++ b/drivers/gpu/drm/omapdrm/omap_plane.c > @@ -99,18 +99,19 @@ static void omap_plane_atomic_disable(struct drm_plane *plane, > } > > static int omap_plane_atomic_check(struct drm_plane *plane, > - struct drm_plane_state *state) > + struct drm_plane_state *new_plane_state) > { > struct drm_crtc_state *crtc_state; > > - if (!state->fb) > + if (!new_plane_state->fb) > return 0; > > /* crtc should only be NULL when disabling (i.e., !state->fb) */ s/state/new_plane_state/ here too ? > - if (WARN_ON(!state->crtc)) > + if (WARN_ON(!new_plane_state->crtc)) > return 0; > > - crtc_state = drm_atomic_get_existing_crtc_state(state->state, state->crtc); > + crtc_state = drm_atomic_get_existing_crtc_state(new_plane_state->state, > + new_plane_state->crtc); > /* we should have a crtc state if the plane is attached to a crtc */ > if (WARN_ON(!crtc_state)) > return 0; > @@ -118,17 +119,17 @@ static int omap_plane_atomic_check(struct drm_plane *plane, > if (!crtc_state->enable) > return 0; > > - if (state->crtc_x < 0 || state->crtc_y < 0) > + if (new_plane_state->crtc_x < 0 || new_plane_state->crtc_y < 0) > return -EINVAL; > > - if (state->crtc_x + state->crtc_w > crtc_state->adjusted_mode.hdisplay) > + if (new_plane_state->crtc_x + new_plane_state->crtc_w > crtc_state->adjusted_mode.hdisplay) I can't help thinking we're using too long variable names... :-( > return -EINVAL; > > - if (state->crtc_y + state->crtc_h > crtc_state->adjusted_mode.vdisplay) > + if (new_plane_state->crtc_y + new_plane_state->crtc_h > crtc_state->adjusted_mode.vdisplay) > return -EINVAL; > > - if (state->rotation != DRM_MODE_ROTATE_0 && > - !omap_framebuffer_supports_rotation(state->fb)) > + if (new_plane_state->rotation != DRM_MODE_ROTATE_0 && > + !omap_framebuffer_supports_rotation(new_plane_state->fb)) > return -EINVAL; > > return 0; [...] -- Regards, Laurent Pinchart _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization