All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Zimmermann <tzimmermann@suse.de>
To: Maxime Ripard <mripard@kernel.org>,
	Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
	David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>
Cc: dri-devel@lists.freedesktop.org,
	Zack Rusin <zack.rusin@broadcom.com>,
	bcm-kernel-feedback-list@broadcom.com
Subject: Re: [PATCH v4 39/41] drm/vmwgfx: Convert to atomic_create_state
Date: Thu, 10 Sep 2026 09:00:29 +0200	[thread overview]
Message-ID: <79e6c340-abea-4d83-adb1-e1a40cc190c4@suse.de> (raw)
In-Reply-To: <20260908-drm-no-more-plane-reset-v4-39-a31b3fcfc989@kernel.org>



Am 08.09.26 um 16:47 schrieb Maxime Ripard:
> 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.
>
> Reviewed-by: Zack Rusin <zack.rusin@broadcom.com>
> Signed-off-by: Maxime Ripard <mripard@kernel.org>
> ---
> Cc: bcm-kernel-feedback-list@broadcom.com
> Cc: zack.rusin@broadcom.com
> ---
>   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");

I think this is another case where kzalloc already prints a warning for us.

> -		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,
>   };
>   
>   
>

-- 
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstr. 146, 90461 Nürnberg, Germany, www.suse.com
GF: Jochen Jaser, Andrew McDonald, (HRB 36809, AG Nürnberg)



  reply	other threads:[~2026-09-10  7:00 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-08 14:46 [PATCH v4 00/41] drm/plane: Convert all drivers to atomic_create_state and remove reset Maxime Ripard
2026-09-08 14:46 ` Maxime Ripard
2026-09-08 14:46 ` [PATCH v4 01/41] drm/simple-kms: Remove unused reset_plane hook Maxime Ripard
2026-09-10  6:30   ` Thomas Zimmermann
2026-09-08 14:46 ` [PATCH v4 02/41] drm/vkms: Move frame_info into vkms_plane_state Maxime Ripard
2026-09-10  6:33   ` Thomas Zimmermann
2026-09-08 14:46 ` [PATCH v4 03/41] drm/vkms: Convert to atomic_create_state Maxime Ripard
2026-09-08 14:46 ` [PATCH v4 04/41] drm/gem-atomic-helper: Remove __drm_gem_reset_shadow_plane() Maxime Ripard
2026-09-08 14:46 ` [PATCH v4 05/41] drm/amdgpu: Convert to atomic_create_state Maxime Ripard
2026-09-08 14:46 ` [PATCH v4 06/41] drm/fsl-dcu: " Maxime Ripard
2026-09-08 14:46 ` [PATCH v4 07/41] drm/hisilicon/kirin: " Maxime Ripard
2026-09-08 14:46 ` [PATCH v4 08/41] drm/imx/dc: " Maxime Ripard
2026-09-08 14:46 ` [PATCH v4 09/41] drm/kmb: " Maxime Ripard
2026-09-08 14:46 ` [PATCH v4 10/41] drm/logicvc: " Maxime Ripard
2026-09-08 14:46 ` [PATCH v4 11/41] drm/loongson: " Maxime Ripard
2026-09-08 14:46 ` [PATCH v4 12/41] drm/lcdif: " Maxime Ripard
2026-09-08 14:46 ` [PATCH v4 13/41] drm/mxsfb: " Maxime Ripard
2026-09-08 14:46 ` [PATCH v4 14/41] drm/qxl: " Maxime Ripard
2026-09-08 14:46 ` [PATCH v4 15/41] drm/rockchip: " Maxime Ripard
2026-09-08 14:46   ` Maxime Ripard
2026-09-09 10:00   ` Heiko Stübner
2026-09-09 10:00     ` Heiko Stübner
2026-09-08 14:46 ` [PATCH v4 16/41] drm/sprd: " Maxime Ripard
2026-09-08 14:46 ` [PATCH v4 17/41] drm/sti: " Maxime Ripard
2026-09-08 14:46 ` [PATCH v4 18/41] drm/stm: " Maxime Ripard
2026-09-08 14:46 ` [PATCH v4 19/41] drm/tests: kunit: " Maxime Ripard
2026-09-08 14:46 ` [PATCH v4 20/41] drm/tilcdc: " Maxime Ripard
2026-09-08 14:46 ` [PATCH v4 21/41] drm/vboxvideo: " Maxime Ripard
2026-09-08 14:46 ` [PATCH v4 22/41] drm/verisilicon: " Maxime Ripard
2026-09-08 14:46 ` [PATCH v4 23/41] drm/virtio: " Maxime Ripard
2026-09-08 14:46 ` [PATCH v4 24/41] drm/xlnx: " Maxime Ripard
2026-09-08 14:46 ` [PATCH v4 25/41] drm/atomic-state-helper: Remove drm_atomic_helper_plane_reset() Maxime Ripard
2026-09-08 14:46 ` [PATCH v4 26/41] drm/amdgpu_dm: Convert to atomic_create_state Maxime Ripard
2026-09-10 16:31   ` Leo Li
2026-09-08 14:46 ` [PATCH v4 27/41] drm/armada: " Maxime Ripard
2026-09-08 14:46 ` [PATCH v4 28/41] drm/atmel-hlcdc: Drop spurious csc_init call from reset Maxime Ripard
2026-09-10  6:48   ` Thomas Zimmermann
2026-09-08 14:47 ` [PATCH v4 29/41] drm/atmel-hlcdc: Convert to atomic_create_state Maxime Ripard
2026-09-08 14:47 ` [PATCH v4 30/41] drm/exynos: " Maxime Ripard
2026-09-08 14:47 ` [PATCH v4 31/41] drm/imx/ipuv3: " Maxime Ripard
2026-09-08 14:47 ` [PATCH v4 32/41] drm/mediatek: " Maxime Ripard
2026-09-10  6:54   ` Thomas Zimmermann
2026-09-08 14:47 ` [PATCH v4 33/41] drm/nouveau: " Maxime Ripard
2026-09-08 14:47   ` Maxime Ripard
2026-09-10  6:55   ` Thomas Zimmermann
2026-09-10  6:55     ` Thomas Zimmermann
2026-09-08 14:47 ` [PATCH v4 34/41] drm/omap: " Maxime Ripard
2026-09-08 14:47 ` [PATCH v4 35/41] drm/rcar-du: " Maxime Ripard
2026-09-10  6:57   ` Thomas Zimmermann
2026-09-10 12:00   ` Laurent Pinchart
2026-09-08 14:47 ` [PATCH v4 36/41] drm/rz-du: " Maxime Ripard
2026-09-08 14:47 ` [PATCH v4 37/41] drm/shmobile: " Maxime Ripard
2026-09-10  6:58   ` Thomas Zimmermann
2026-09-08 14:47 ` [PATCH v4 38/41] drm/sun4i: layer: " Maxime Ripard
2026-09-08 14:47 ` [PATCH v4 39/41] drm/vmwgfx: " Maxime Ripard
2026-09-10  7:00   ` Thomas Zimmermann [this message]
2026-09-08 14:47 ` [PATCH v4 40/41] drm/atomic-state-helper: Remove __drm_atomic_helper_plane_reset() Maxime Ripard
2026-09-08 14:47 ` [PATCH v4 41/41] drm/plane: Remove reset Maxime Ripard
2026-09-10  7:03 ` [PATCH v4 00/41] drm/plane: Convert all drivers to atomic_create_state and remove reset Thomas Zimmermann
2026-09-10  7:03   ` Thomas Zimmermann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=79e6c340-abea-4d83-adb1-e1a40cc190c4@suse.de \
    --to=tzimmermann@suse.de \
    --cc=airlied@gmail.com \
    --cc=bcm-kernel-feedback-list@broadcom.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=maarten.lankhorst@linux.intel.com \
    --cc=mripard@kernel.org \
    --cc=simona@ffwll.ch \
    --cc=zack.rusin@broadcom.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.