drm: add mmap function to prime helpers
authorJoonyoung Shim <jy0922.shim@samsung.com>
Fri, 28 Jun 2013 05:24:53 +0000 (14:24 +0900)
committerJoonyoung Shim <jy0922.shim@samsung.com>
Wed, 13 Jan 2016 01:29:11 +0000 (10:29 +0900)
This adds to call low-level mmap() from prime helpers.

Change-Id: I964a481a729c7d9dd23a9d55e2a4ec08091ca5a5
Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/drm_prime.c
include/drm/drmP.h

index ff5fece..85e450e 100644 (file)
@@ -245,7 +245,13 @@ static void drm_gem_dmabuf_kunmap(struct dma_buf *dma_buf,
 static int drm_gem_dmabuf_mmap(struct dma_buf *dma_buf,
                struct vm_area_struct *vma)
 {
-       return -EINVAL;
+       struct drm_gem_object *obj = dma_buf->priv;
+       struct drm_device *dev = obj->dev;
+
+       if (!dev->driver->gem_prime_mmap)
+               return -ENOSYS;
+
+       return dev->driver->gem_prime_mmap(obj, vma);
 }
 
 static const struct dma_buf_ops drm_gem_prime_dmabuf_ops =  {
index 9b9e0f2..4bac19d 100644 (file)
@@ -950,6 +950,8 @@ struct drm_driver {
                                struct sg_table *sgt);
        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,
+                               struct vm_area_struct *vma);
 
        /* vga arb irq handler */
        void (*vgaarb_irq)(struct drm_device *dev, bool state);