diff options
| author | Joonyoung Shim <jy0922.shim@samsung.com> | 2013-06-28 01:24:53 -0400 |
|---|---|---|
| committer | Dave Airlie <airlied@redhat.com> | 2013-07-05 01:44:44 -0400 |
| commit | 7c397cd97b8f46659698396b420bd48c3e6703e6 (patch) | |
| tree | 9125dd69b151ae14c47fa4f3b9e11c27b626821a | |
| parent | f9d8a1294d37449f3f1b842ffb275e2ca41f5cf4 (diff) | |
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>
| -rw-r--r-- | drivers/gpu/drm/drm_prime.c | 8 | ||||
| -rw-r--r-- | include/drm/drmP.h | 2 |
2 files changed, 9 insertions, 1 deletions
diff --git a/drivers/gpu/drm/drm_prime.c b/drivers/gpu/drm/drm_prime.c index ff5fecef367b..85e450e3241c 100644 --- a/drivers/gpu/drm/drm_prime.c +++ b/drivers/gpu/drm/drm_prime.c | |||
| @@ -245,7 +245,13 @@ static void drm_gem_dmabuf_kunmap(struct dma_buf *dma_buf, | |||
| 245 | static int drm_gem_dmabuf_mmap(struct dma_buf *dma_buf, | 245 | static int drm_gem_dmabuf_mmap(struct dma_buf *dma_buf, |
| 246 | struct vm_area_struct *vma) | 246 | struct vm_area_struct *vma) |
| 247 | { | 247 | { |
| 248 | return -EINVAL; | 248 | struct drm_gem_object *obj = dma_buf->priv; |
| 249 | struct drm_device *dev = obj->dev; | ||
| 250 | |||
| 251 | if (!dev->driver->gem_prime_mmap) | ||
| 252 | return -ENOSYS; | ||
| 253 | |||
| 254 | return dev->driver->gem_prime_mmap(obj, vma); | ||
| 249 | } | 255 | } |
| 250 | 256 | ||
| 251 | static const struct dma_buf_ops drm_gem_prime_dmabuf_ops = { | 257 | static const struct dma_buf_ops drm_gem_prime_dmabuf_ops = { |
diff --git a/include/drm/drmP.h b/include/drm/drmP.h index 82670ac0d774..12083dc862a9 100644 --- a/include/drm/drmP.h +++ b/include/drm/drmP.h | |||
| @@ -937,6 +937,8 @@ struct drm_driver { | |||
| 937 | struct sg_table *sgt); | 937 | struct sg_table *sgt); |
| 938 | void *(*gem_prime_vmap)(struct drm_gem_object *obj); | 938 | void *(*gem_prime_vmap)(struct drm_gem_object *obj); |
| 939 | void (*gem_prime_vunmap)(struct drm_gem_object *obj, void *vaddr); | 939 | void (*gem_prime_vunmap)(struct drm_gem_object *obj, void *vaddr); |
| 940 | int (*gem_prime_mmap)(struct drm_gem_object *obj, | ||
| 941 | struct vm_area_struct *vma); | ||
| 940 | 942 | ||
| 941 | /* vga arb irq handler */ | 943 | /* vga arb irq handler */ |
| 942 | void (*vgaarb_irq)(struct drm_device *dev, bool state); | 944 | void (*vgaarb_irq)(struct drm_device *dev, bool state); |
