On Mon, Aug 31, 2026 at 12:20 PM Maxime Ripard <[email protected]> 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] > --- > drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 17 +++++++---------- > drivers/gpu/drm/vmwgfx/vmwgfx_kms.h | 2 +- > drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c | 4 ++-- > drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c | 4 ++-- > drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c | 4 ++-- > 5 files changed, 14 insertions(+), 17 deletions(-) > > diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c > b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c > index 0b470809661c..9031dccad31d 100644 > --- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c > +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c > @@ -277,31 +277,28 @@ vmw_du_plane_duplicate_state(struct drm_plane *plane) > return state; > } > > > /** > - * vmw_du_plane_reset - creates a blank vmw plane state > + * vmw_du_plane_create_state - creates a blank vmw plane state > * @plane: drm plane > * > - * Resets the atomic state for @plane by freeing the state pointer (which > might > - * be NULL, e.g. at driver load time) and allocating a new empty state > object. > + * Allocates a new empty state object. > */ > -void vmw_du_plane_reset(struct drm_plane *plane) > +struct drm_plane_state *vmw_du_plane_create_state(struct drm_plane *plane) > { > struct vmw_plane_state *vps; > > - if (plane->state) > - vmw_du_plane_destroy_state(plane, plane->state); > - > vps = kzalloc_obj(*vps); > - > if (!vps) { > DRM_ERROR("Cannot allocate vmw_plane_state\n"); > - return; > + return ERR_PTR(-ENOMEM); > } > > - __drm_atomic_helper_plane_reset(plane, &vps->base); > + __drm_atomic_helper_plane_state_init(&vps->base, plane); > + > + return &vps->base; > } > > > /** > * vmw_du_plane_destroy_state - destroy plane state > diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.h > b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.h > index e641f33341e6..5085d8bccf0a 100644 > --- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.h > +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.h > @@ -409,11 +409,11 @@ void vmw_du_primary_plane_destroy(struct drm_plane > *plane); > /* Atomic Helpers */ > int vmw_du_primary_plane_atomic_check(struct drm_plane *plane, > struct drm_atomic_commit *state); > void vmw_du_plane_cleanup_fb(struct drm_plane *plane, > struct drm_plane_state *old_state); > -void vmw_du_plane_reset(struct drm_plane *plane); > +struct drm_plane_state *vmw_du_plane_create_state(struct drm_plane *plane); > struct drm_plane_state *vmw_du_plane_duplicate_state(struct drm_plane > *plane); > void vmw_du_plane_destroy_state(struct drm_plane *plane, > struct drm_plane_state *state); > void vmw_du_plane_unpin_surf(struct vmw_plane_state *vps); > > diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c > b/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c > index a4b28341f622..b147f5db9df5 100644 > --- a/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c > +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c > @@ -362,20 +362,20 @@ vmw_ldu_primary_plane_atomic_update(struct drm_plane > *plane, > > static const struct drm_plane_funcs vmw_ldu_plane_funcs = { > .update_plane = drm_atomic_helper_update_plane, > .disable_plane = drm_atomic_helper_disable_plane, > .destroy = vmw_du_primary_plane_destroy, > - .reset = vmw_du_plane_reset, > + .atomic_create_state = vmw_du_plane_create_state, > .atomic_duplicate_state = vmw_du_plane_duplicate_state, > .atomic_destroy_state = vmw_du_plane_destroy_state, > }; > > static const struct drm_plane_funcs vmw_ldu_cursor_funcs = { > .update_plane = drm_atomic_helper_update_plane, > .disable_plane = drm_atomic_helper_disable_plane, > .destroy = vmw_cursor_plane_destroy, > - .reset = vmw_du_plane_reset, > + .atomic_create_state = vmw_du_plane_create_state, > .atomic_duplicate_state = vmw_du_plane_duplicate_state, > .atomic_destroy_state = vmw_du_plane_destroy_state, > }; > > /* > diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c > b/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c > index a05f935f1841..89714d5c235b 100644 > --- a/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c > +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c > @@ -754,20 +754,20 @@ vmw_sou_primary_plane_atomic_update(struct drm_plane > *plane, > > static const struct drm_plane_funcs vmw_sou_plane_funcs = { > .update_plane = drm_atomic_helper_update_plane, > .disable_plane = drm_atomic_helper_disable_plane, > .destroy = vmw_du_primary_plane_destroy, > - .reset = vmw_du_plane_reset, > + .atomic_create_state = vmw_du_plane_create_state, > .atomic_duplicate_state = vmw_du_plane_duplicate_state, > .atomic_destroy_state = vmw_du_plane_destroy_state, > }; > > static const struct drm_plane_funcs vmw_sou_cursor_funcs = { > .update_plane = drm_atomic_helper_update_plane, > .disable_plane = drm_atomic_helper_disable_plane, > .destroy = vmw_cursor_plane_destroy, > - .reset = vmw_du_plane_reset, > + .atomic_create_state = vmw_du_plane_create_state, > .atomic_duplicate_state = vmw_du_plane_duplicate_state, > .atomic_destroy_state = vmw_du_plane_destroy_state, > }; > > /* > diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c > b/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c > index 939da0e11dbb..cbf55084110a 100644 > --- a/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c > +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c > @@ -1472,20 +1472,20 @@ vmw_stdu_crtc_atomic_flush(struct drm_crtc *crtc, > > static const struct drm_plane_funcs vmw_stdu_plane_funcs = { > .update_plane = drm_atomic_helper_update_plane, > .disable_plane = drm_atomic_helper_disable_plane, > .destroy = vmw_du_primary_plane_destroy, > - .reset = vmw_du_plane_reset, > + .atomic_create_state = vmw_du_plane_create_state, > .atomic_duplicate_state = vmw_du_plane_duplicate_state, > .atomic_destroy_state = vmw_du_plane_destroy_state, > }; > > static const struct drm_plane_funcs vmw_stdu_cursor_funcs = { > .update_plane = drm_atomic_helper_update_plane, > .disable_plane = drm_atomic_helper_disable_plane, > .destroy = vmw_cursor_plane_destroy, > - .reset = vmw_du_plane_reset, > + .atomic_create_state = vmw_du_plane_create_state, > .atomic_duplicate_state = vmw_du_plane_duplicate_state, > .atomic_destroy_state = vmw_du_plane_destroy_state, > }; > > > > -- > 2.55.0 >
LGTM. Thanks. Reviewed-by: Zack Rusin <[email protected]> z
smime.p7s
Description: S/MIME Cryptographic Signature
