| From e1cc9ddba7d43e584a4f0a5cebf984c61d586235 Mon Sep 17 00:00:00 2001 |
| From: Joonyoung Shim <jy0922.shim@samsung.com> |
| Date: Sun, 2 Feb 2014 10:14:56 +0900 |
| Subject: drm: add mmap function to prime helpers |
| |
| This adds to call low-level mmap() from prime helpers. |
| |
| 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> |
| (cherry picked from commit 7c397cd97b8f46659698396b420bd48c3e6703e6) |
| Signed-off-by: Simon Horman <horms@verge.net.au> |
| --- |
| drivers/gpu/drm/drm_prime.c | 8 +++++++- |
| include/drm/drmP.h | 2 ++ |
| 2 files changed, 9 insertions(+), 1 deletion(-) |
| |
| --- a/drivers/gpu/drm/drm_prime.c |
| +++ b/drivers/gpu/drm/drm_prime.c |
| @@ -155,7 +155,13 @@ static void drm_gem_dmabuf_kunmap(struct |
| 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 = { |
| --- a/include/drm/drmP.h |
| +++ b/include/drm/drmP.h |
| @@ -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); |