All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sean Paul <seanpaul@chromium.org>
To: Haneen Mohammed <hamohammed.sa@gmail.com>
Cc: rodrigosiqueiramelo@gmail.com, dri-devel@lists.freedesktop.org
Subject: Re: [PATCH 1/2] drm/vkms: Subclass plane state
Date: Tue, 31 Jul 2018 14:01:41 -0400	[thread overview]
Message-ID: <20180731180141.GI20303@art_vandelay> (raw)
In-Reply-To: <698d87d7fea0f5574975d82c058291b6ae3dd8ce.1532767204.git.hamohammed.sa@gmail.com>

On Sat, Jul 28, 2018 at 12:11:08PM +0300, Haneen Mohammed wrote:
> Subclass plane state struct to enable storing driver's private
> state. This patch only adds the base drm_plane_state struct and
> the atomic functions that handle it.
> 
> Signed-off-by: Haneen Mohammed <hamohammed.sa@gmail.com>

Reviewed-by: Sean Paul <seanpaul@chromium.org>

> ---
>  drivers/gpu/drm/vkms/vkms_drv.h   | 10 +++++++
>  drivers/gpu/drm/vkms/vkms_plane.c | 47 +++++++++++++++++++++++++++++--
>  2 files changed, 54 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/vkms/vkms_drv.h b/drivers/gpu/drm/vkms/vkms_drv.h
> index 75e52d61e65d..aa2632ff5f06 100644
> --- a/drivers/gpu/drm/vkms/vkms_drv.h
> +++ b/drivers/gpu/drm/vkms/vkms_drv.h
> @@ -20,6 +20,13 @@ static const u32 vkms_formats[] = {
>  	DRM_FORMAT_XRGB8888,
>  };
>  
> +/* vkms_plane_state - Driver specific plane state
> + * @base: base plane state
> + */
> +struct vkms_plane_state {
> +	struct drm_plane_state base;
> +};
> +
>  /**
>   * vkms_crtc_state - Driver specific CRTC state
>   * @base: base CRTC state
> @@ -63,6 +70,9 @@ struct vkms_gem_object {
>  #define to_vkms_crtc_state(target)\
>  	container_of(target, struct vkms_crtc_state, base)
>  
> +#define to_vkms_plane_state(target)\
> +	container_of(target, struct vkms_plane_state, base)
> +
>  /* CRTC */
>  int vkms_crtc_init(struct drm_device *dev, struct drm_crtc *crtc,
>  		   struct drm_plane *primary, struct drm_plane *cursor);
> diff --git a/drivers/gpu/drm/vkms/vkms_plane.c b/drivers/gpu/drm/vkms/vkms_plane.c
> index 8191940844e5..70fca22bc51b 100644
> --- a/drivers/gpu/drm/vkms/vkms_plane.c
> +++ b/drivers/gpu/drm/vkms/vkms_plane.c
> @@ -12,13 +12,54 @@
>  #include <drm/drm_atomic_helper.h>
>  #include <drm/drm_gem_framebuffer_helper.h>
>  
> +static struct drm_plane_state *
> +vkms_plane_duplicate_state(struct drm_plane *plane)
> +{
> +	struct vkms_plane_state *vkms_state;
> +
> +	vkms_state = kzalloc(sizeof(*vkms_state), GFP_KERNEL);
> +	if (!vkms_state)
> +		return NULL;
> +
> +	__drm_atomic_helper_plane_duplicate_state(plane,
> +						  &vkms_state->base);
> +
> +	return &vkms_state->base;
> +}
> +
> +static void vkms_plane_destroy_state(struct drm_plane *plane,
> +				     struct drm_plane_state *old_state)
> +{
> +	struct vkms_plane_state *vkms_state = to_vkms_plane_state(old_state);
> +
> +	__drm_atomic_helper_plane_destroy_state(old_state);
> +	kfree(vkms_state);
> +}
> +
> +static void vkms_plane_reset(struct drm_plane *plane)
> +{
> +	struct vkms_plane_state *vkms_state;
> +
> +	if (plane->state)
> +		vkms_plane_destroy_state(plane, plane->state);
> +
> +	vkms_state = kzalloc(sizeof(*vkms_state), GFP_KERNEL);
> +	if (!vkms_state) {
> +		DRM_ERROR("Cannot allocate vkms_plane_state\n");
> +		return;
> +	}
> +
> +	plane->state = &vkms_state->base;
> +	plane->state->plane = plane;
> +}
> +
>  static const struct drm_plane_funcs vkms_plane_funcs = {
>  	.update_plane		= drm_atomic_helper_update_plane,
>  	.disable_plane		= drm_atomic_helper_disable_plane,
>  	.destroy		= drm_plane_cleanup,
> -	.reset			= drm_atomic_helper_plane_reset,
> -	.atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
> -	.atomic_destroy_state	= drm_atomic_helper_plane_destroy_state,
> +	.reset			= vkms_plane_reset,
> +	.atomic_duplicate_state = vkms_plane_duplicate_state,
> +	.atomic_destroy_state	= vkms_plane_destroy_state,
>  };
>  
>  static void vkms_primary_plane_update(struct drm_plane *plane,
> -- 
> 2.17.1
> 

-- 
Sean Paul, Software Engineer, Google / Chromium OS
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

  reply	other threads:[~2018-07-31 18:01 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-28  9:10 [PATCH 0/2] drm/vkms: Add CRC support Haneen Mohammed
2018-07-28  9:11 ` [PATCH 1/2] drm/vkms: Subclass plane state Haneen Mohammed
2018-07-31 18:01   ` Sean Paul [this message]
2018-07-28  9:11 ` [PATCH 2/2] drm/vkms: Implement CRC debugfs API Haneen Mohammed
2018-07-31 18:01   ` Sean Paul

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=20180731180141.GI20303@art_vandelay \
    --to=seanpaul@chromium.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=hamohammed.sa@gmail.com \
    --cc=rodrigosiqueiramelo@gmail.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.