All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gerd Hoffmann <kraxel@redhat.com>
To: Thomas Zimmermann <tzimmermann@suse.de>
Cc: sean@poorly.run, dri-devel@lists.freedesktop.org,
	airlied@redhat.com, sam@ravnborg.org, emil.velikov@collabora.com
Subject: Re: [PATCH 2/3] drm/udl: Allocate GEM object via struct drm_driver.gem_create_object
Date: Tue, 5 Nov 2019 12:05:46 +0100	[thread overview]
Message-ID: <20191105110546.qrhqnd362jslsn7g@sirius.home.kraxel.org> (raw)
In-Reply-To: <20191028084549.30243-3-tzimmermann@suse.de>

On Mon, Oct 28, 2019 at 09:45:48AM +0100, Thomas Zimmermann wrote:
> In preparation of a switch to SHMEM, udl now allocates its GEM
> objects via struct drm_driver.gem_create_object. No functional
> changes are made.
> 
> For SHMEM GEM objects, udl will require the use of a special mmap
> function, which we set though the create-object function.

Acked-by: Gerd Hoffmann <kraxel@redhat.com>

> 
> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
> ---
>  drivers/gpu/drm/udl/udl_drv.c |  1 +
>  drivers/gpu/drm/udl/udl_drv.h |  2 ++
>  drivers/gpu/drm/udl/udl_gem.c | 25 +++++++++++++++++++++----
>  3 files changed, 24 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/gpu/drm/udl/udl_drv.c b/drivers/gpu/drm/udl/udl_drv.c
> index 8426669433e4..778a0b652f64 100644
> --- a/drivers/gpu/drm/udl/udl_drv.c
> +++ b/drivers/gpu/drm/udl/udl_drv.c
> @@ -64,6 +64,7 @@ static struct drm_driver driver = {
>  
>  	/* gem hooks */
>  	.gem_free_object_unlocked = udl_gem_free_object,
> +	.gem_create_object = udl_driver_gem_create_object,
>  	.gem_vm_ops = &udl_gem_vm_ops,
>  
>  	.dumb_create = udl_dumb_create,
> diff --git a/drivers/gpu/drm/udl/udl_drv.h b/drivers/gpu/drm/udl/udl_drv.h
> index e1306a51903c..fc312e791d18 100644
> --- a/drivers/gpu/drm/udl/udl_drv.h
> +++ b/drivers/gpu/drm/udl/udl_drv.h
> @@ -125,6 +125,8 @@ int udl_dumb_create(struct drm_file *file_priv,
>  int udl_gem_mmap(struct drm_file *file_priv, struct drm_device *dev,
>  		 uint32_t handle, uint64_t *offset);
>  
> +struct drm_gem_object *udl_driver_gem_create_object(struct drm_device *dev,
> +						    size_t size);
>  void udl_gem_free_object(struct drm_gem_object *gem_obj);
>  struct udl_gem_object *udl_gem_alloc_object(struct drm_device *dev,
>  					    size_t size);
> diff --git a/drivers/gpu/drm/udl/udl_gem.c b/drivers/gpu/drm/udl/udl_gem.c
> index 7d3c1b73ea02..628749cc1143 100644
> --- a/drivers/gpu/drm/udl/udl_gem.c
> +++ b/drivers/gpu/drm/udl/udl_gem.c
> @@ -6,26 +6,43 @@
>  #include <linux/dma-buf.h>
>  #include <linux/vmalloc.h>
>  
> +#include <drm/drm_drv.h>
>  #include <drm/drm_mode.h>
>  #include <drm/drm_prime.h>
>  
>  #include "udl_drv.h"
>  
> -struct udl_gem_object *udl_gem_alloc_object(struct drm_device *dev,
> -					    size_t size)
> +/*
> + * Helpers for struct drm_driver
> + */
> +
> +struct drm_gem_object *udl_driver_gem_create_object(struct drm_device *dev,
> +						    size_t size)
>  {
>  	struct udl_gem_object *obj;
>  
>  	obj = kzalloc(sizeof(*obj), GFP_KERNEL);
> +	if (!obj)
> +		return NULL;
> +
> +	return &obj->base;
> +}
> +
> +struct udl_gem_object *udl_gem_alloc_object(struct drm_device *dev,
> +					    size_t size)
> +{
> +	struct drm_gem_object *obj;
> +
> +	obj = dev->driver->gem_create_object(dev, size);
>  	if (obj == NULL)
>  		return NULL;
>  
> -	if (drm_gem_object_init(dev, &obj->base, size) != 0) {
> +	if (drm_gem_object_init(dev, obj, size) != 0) {
>  		kfree(obj);
>  		return NULL;
>  	}
>  
> -	return obj;
> +	return to_udl_bo(obj);
>  }
>  
>  static int
> -- 
> 2.23.0
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

  reply	other threads:[~2019-11-05 11:05 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-28  8:45 [PATCH 0/3] drm/udl: Convert to SHMEM Thomas Zimmermann
2019-10-28  8:45 ` [PATCH 1/3] drm/udl: Remove flags field from struct udl_gem_object Thomas Zimmermann
2019-11-05 11:05   ` Gerd Hoffmann
2019-10-28  8:45 ` [PATCH 2/3] drm/udl: Allocate GEM object via struct drm_driver.gem_create_object Thomas Zimmermann
2019-11-05 11:05   ` Gerd Hoffmann [this message]
2019-10-28  8:45 ` [PATCH 3/3] drm/udl: Switch to SHMEM Thomas Zimmermann
2019-10-30  0:15   ` kbuild test robot
2019-10-30  0:15     ` kbuild test robot
2019-10-30  0:15     ` kbuild test robot
2019-10-31 12:53   ` kbuild test robot
2019-10-31 12:53     ` kbuild test robot
2019-10-31 12:53     ` kbuild test robot
2019-11-05 11:05   ` Gerd Hoffmann
2019-11-06  8:22     ` Thomas Zimmermann
2019-10-28  8:48 ` [PATCH 0/3] drm/udl: Convert " Thomas Zimmermann
2019-10-28  8:48   ` 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=20191105110546.qrhqnd362jslsn7g@sirius.home.kraxel.org \
    --to=kraxel@redhat.com \
    --cc=airlied@redhat.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=emil.velikov@collabora.com \
    --cc=sam@ravnborg.org \
    --cc=sean@poorly.run \
    --cc=tzimmermann@suse.de \
    /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.