Hi Maxime, Thank you for the patch. On Fri, Jan 15, 2021 at 01:56:56PM +0100, Maxime Ripard wrote: > The current atomic helpers have either their object state being passed as > an argument or the full atomic state. > > The former is the pattern that was done at first, before switching to the > latter for new hooks or when it was needed. > > Let's start convert all the remaining helpers to provide a consistent s/start convert/convert/ ? > interface, starting with the planes atomic_check. > > The conversion was done using the coccinelle script below plus some > manual changes for vmwgfx, built tested on all the drivers. > > @@ > identifier plane, plane_state; > symbol state; > @@ > > struct drm_plane_helper_funcs { > ... > int (*atomic_check)(struct drm_plane *plane, > - struct drm_plane_state *plane_state); > + struct drm_atomic_state *state); > ... > } > > @ plane_atomic_func @ > identifier helpers; > identifier func; > @@ > > static const struct drm_plane_helper_funcs helpers = { > ..., > .atomic_check = func, > ..., > }; > > @@ > struct drm_plane_helper_funcs *FUNCS; > identifier f; > identifier dev; > identifier plane, plane_state, state; > @@ > > f(struct drm_device *dev, struct drm_atomic_state *state) > { > <+... > - FUNCS->atomic_check(plane, plane_state) > + FUNCS->atomic_check(plane, 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) > { > <... > - state > + new_plane_state > ...> > } > Is this needed, or is it a leftover from 02/10 ? > @ ignores_new_state @ > identifier plane_atomic_func.func; > identifier plane, new_plane_state; > @@ > > func(struct drm_plane *plane, struct drm_plane_state *new_plane_state) > { > ... when != new_plane_state > } > > @ adds_new_state depends on plane_atomic_func && !ignores_new_state @ > identifier plane_atomic_func.func; > identifier plane, new_plane_state; > @@ > > func(struct drm_plane *plane, struct drm_plane_state *new_plane_state) > { > + struct drm_plane_state *new_plane_state = drm_atomic_get_new_plane_state(state, plane); > ... > } > > @ depends on plane_atomic_func @ > identifier plane_atomic_func.func; > identifier plane, new_plane_state; > @@ > > func(struct drm_plane *plane, > - struct drm_plane_state *new_plane_state > + struct drm_atomic_state *state > ) > { ... } > > @ 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/...> > > Signed-off-by: Maxime Ripard <maxime@xxxxxxxxxx> > --- [snip] > drivers/gpu/drm/drm_atomic_helper.c | 2 +- > drivers/gpu/drm/drm_simple_kms_helper.c | 4 +++- > drivers/gpu/drm/omapdrm/omap_plane.c | 4 +++- > drivers/gpu/drm/rcar-du/rcar_du_plane.c | 4 +++- > drivers/gpu/drm/rcar-du/rcar_du_vsp.c | 5 ++++- > drivers/gpu/drm/xlnx/zynqmp_disp.c | 4 +++- For these, Reviewed-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> [snip] -- Regards, Laurent Pinchart _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel