[PATCH 1/3] drm/prime: forward begin_cpu_access callback to drivers

Daniel Vetter daniel at ffwll.ch
Wed Dec 20 19:43:30 UTC 2017


On Wed, Dec 20, 2017 at 6:20 PM, Li, Samuel <Samuel.Li at amd.com> wrote:
> Ping... can someone please review this patch?

Might be simpler to implement your own dma-buf backend instead of
going through the drm_prime midlayer. That was mostly written to give
nvidia a set of non-EXPORT_GPL symbols to support dma-buf. Or
something like that.

Also don't expect people to look at patches when CI bots spot issues.
-Daniel

>
> Samuel Li
>
>
>
>> -----Original Message-----
>> From: amd-gfx [mailto:amd-gfx-bounces at lists.freedesktop.org] On Behalf
>> Of Samuel Li
>> Sent: Friday, December 15, 2017 11:28 AM
>> To: dri-devel at lists.freedesktop.org; amd-gfx at lists.freedesktop.org
>> Cc: Koenig, Christian <Christian.Koenig at amd.com>
>> Subject: [PATCH 1/3] drm/prime: forward begin_cpu_access callback to
>> drivers
>>
>> From: Christian König <christian.koenig at amd.com>
>>
>> Allow drivers to implement their own begin_cpu_access callback.
>>
>> Change-Id: I97709b42b9351a04ee7e01106107a87bc56ea258
>> Signed-off-by: Christian König <christian.koenig at amd.com>
>> ---
>>  drivers/gpu/drm/drm_prime.c | 13 +++++++++++++
>>  include/drm/drm_drv.h       |  2 ++
>>  2 files changed, 15 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/drm_prime.c b/drivers/gpu/drm/drm_prime.c
>> index 8de93a2..b4b0e64 100644
>> --- a/drivers/gpu/drm/drm_prime.c
>> +++ b/drivers/gpu/drm/drm_prime.c
>> @@ -346,6 +346,18 @@ void drm_gem_dmabuf_release(struct dma_buf
>> *dma_buf)  }  EXPORT_SYMBOL(drm_gem_dmabuf_release);
>>
>> +static int drm_gem_dmabuf_begin_cpu_access(struct dma_buf *dma_buf,
>> +                                         enum dma_data_direction
>> direction) {
>> +     struct drm_gem_object *obj = dma_buf->priv;
>> +     struct drm_device *dev = obj->dev;
>> +
>> +     if (!dev->driver->gem_prime_begin_cpu_access)
>> +             return 0;
>> +
>> +     return dev->driver->gem_prime_begin_cpu_access(obj, direction); }
>> +
>>  static void *drm_gem_dmabuf_vmap(struct dma_buf *dma_buf)  {
>>       struct drm_gem_object *obj = dma_buf->priv; @@ -403,6 +415,7
>> @@ static const struct dma_buf_ops drm_gem_prime_dmabuf_ops =  {
>>       .map_dma_buf = drm_gem_map_dma_buf,
>>       .unmap_dma_buf = drm_gem_unmap_dma_buf,
>>       .release = drm_gem_dmabuf_release,
>> +     .begin_cpu_access = drm_gem_dmabuf_begin_cpu_access,
>>       .map = drm_gem_dmabuf_kmap,
>>       .map_atomic = drm_gem_dmabuf_kmap_atomic,
>>       .unmap = drm_gem_dmabuf_kunmap,
>> diff --git a/include/drm/drm_drv.h b/include/drm/drm_drv.h index
>> 412e83a..1fbf298 100644
>> --- a/include/drm/drm_drv.h
>> +++ b/include/drm/drm_drv.h
>> @@ -475,6 +475,8 @@ struct drm_driver {
>>                               struct drm_device *dev,
>>                               struct dma_buf_attachment *attach,
>>                               struct sg_table *sgt);
>> +     int (*gem_prime_begin_cpu_access)(struct drm_gem_object *obj,
>> +                                        enum dma_data_direction
>> direction);
>>       void *(*gem_prime_vmap)(struct drm_gem_object *obj);
>>       void (*gem_prime_vunmap)(struct drm_gem_object *obj, void
>> *vaddr);
>>       int (*gem_prime_mmap)(struct drm_gem_object *obj,
>> --
>> 2.7.4
>>
>> _______________________________________________
>> amd-gfx mailing list
>> amd-gfx at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel



-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch


More information about the amd-gfx mailing list