[PATCH] drm/prime: Allow internal imports without import_sg_table
Daniel Vetter
daniel at ffwll.ch
Fri May 8 01:44:34 PDT 2015
On Fri, May 08, 2015 at 05:13:45PM +0900, Tomasz Figa wrote:
> Currently drm_gem_prime_import() checks if gem_prime_import_sg_table()
> is implemented in DRM driver ops. However it is not necessary for
> internal imports (i.e. dma_buf->ops == &drm_gem_prime_dmabuf_ops
> and obj->dev == dev), which only increment reference count on respective
> GEM objects.
>
> This patch makes the helper check this condition only in case of
> external imports fo rwhich importing sg table is indeed needed.
>
> Signed-off-by: Tomasz Figa <tfiga at chromium.org>
Makes sense, applied to drm-misc.
Thanks, Daniel
> ---
> drivers/gpu/drm/drm_prime.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_prime.c b/drivers/gpu/drm/drm_prime.c
> index 7fec191..162dd29 100644
> --- a/drivers/gpu/drm/drm_prime.c
> +++ b/drivers/gpu/drm/drm_prime.c
> @@ -502,9 +502,6 @@ struct drm_gem_object *drm_gem_prime_import(struct drm_device *dev,
> struct drm_gem_object *obj;
> int ret;
>
> - if (!dev->driver->gem_prime_import_sg_table)
> - return ERR_PTR(-EINVAL);
> -
> if (dma_buf->ops == &drm_gem_prime_dmabuf_ops) {
> obj = dma_buf->priv;
> if (obj->dev == dev) {
> @@ -517,6 +514,9 @@ struct drm_gem_object *drm_gem_prime_import(struct drm_device *dev,
> }
> }
>
> + if (!dev->driver->gem_prime_import_sg_table)
> + return ERR_PTR(-EINVAL);
> +
> attach = dma_buf_attach(dma_buf, dev->dev);
> if (IS_ERR(attach))
> return ERR_CAST(attach);
> --
> 2.2.0.rc0.207.ga3a616c
>
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
More information about the dri-devel
mailing list