On Thursday, July 9, 2026 8:51 PM Maxime Ripard wrote: > The plane reset implementation creates a custom state subclass, but > only initializes a pristine state without resetting any hardware. This > is equivalent to what atomic_create_state expects. Convert to it. > > Signed-off-by: Maxime Ripard <[email protected]> > --- > Cc: [email protected] > Cc: [email protected] > Cc: [email protected] > Cc: [email protected] > --- > drivers/gpu/drm/tegra/plane.c | 28 ++++++++++++---------------- > 1 file changed, 12 insertions(+), 16 deletions(-) > > diff --git a/drivers/gpu/drm/tegra/plane.c b/drivers/gpu/drm/tegra/plane.c > index 0cb30910773f..2148b0c59815 100644 > --- a/drivers/gpu/drm/tegra/plane.c > +++ b/drivers/gpu/drm/tegra/plane.c > @@ -22,32 +22,28 @@ static void tegra_plane_destroy(struct drm_plane *plane) > > drm_plane_cleanup(plane); > kfree(p); > } > > -static void tegra_plane_reset(struct drm_plane *plane) > +static struct drm_plane_state *tegra_plane_atomic_create_state(struct > drm_plane *plane) > { > struct tegra_plane *p = to_tegra_plane(plane); > struct tegra_plane_state *state; > unsigned int i; > > - if (plane->state) > - __drm_atomic_helper_plane_destroy_state(plane->state); > - > - kfree(plane->state); > - plane->state = NULL; > - > state = kzalloc_obj(*state); > - if (state) { > - plane->state = &state->base; > - plane->state->plane = plane; > - plane->state->zpos = p->index; > - plane->state->normalized_zpos = p->index; > + if (!state) > + return ERR_PTR(-ENOMEM); > > - for (i = 0; i < 3; i++) > - state->iova[i] = DMA_MAPPING_ERROR; > - } > + state->base.plane = plane; > + state->base.zpos = p->index; > + state->base.normalized_zpos = p->index; > + > + for (i = 0; i < 3; i++) > + state->iova[i] = DMA_MAPPING_ERROR; > + > + return &state->base; > } > > static struct drm_plane_state * > tegra_plane_atomic_duplicate_state(struct drm_plane *plane) > { > @@ -129,11 +125,11 @@ static bool tegra_plane_format_mod_supported(struct > drm_plane *plane, > > const struct drm_plane_funcs tegra_plane_funcs = { > .update_plane = drm_atomic_helper_update_plane, > .disable_plane = drm_atomic_helper_disable_plane, > .destroy = tegra_plane_destroy, > - .reset = tegra_plane_reset, > + .atomic_create_state = tegra_plane_atomic_create_state, > .atomic_duplicate_state = tegra_plane_atomic_duplicate_state, > .atomic_destroy_state = tegra_plane_atomic_destroy_state, > .format_mod_supported = tegra_plane_format_mod_supported, > }; > > > -- > 2.54.0 > >
Reviewed-by: Mikko Perttunen <[email protected]>
