]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
drm/vgem: Drop vgem_drm_gem_mmap
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 15 Oct 2015 07:36:23 +0000 (09:36 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Mon, 19 Oct 2015 09:00:44 +0000 (11:00 +0200)
It's duplicating (without using some of the helpers) drm_gem_mmap with
the addition that it can redirect to drm-buf mmap support. But prime
import/export was dropped in

commit 990ed2720717173bbdea4cfb2bad37cc7aa91495
Author: Rob Clark <robdclark@gmail.com>
Date:   Thu May 21 11:58:30 2015 -0400

    drm/vgem: drop DRIVER_PRIME (v2)

for now, so this is dead code. And since I want to rework the locking
for drm_gem_mmap it seems simpler to de-dupe this code for now and
then start over with the reworked one again, if we want to resurrect
this all indeed.

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Link: http://mid.gmane.org/1444894601-5200-8-git-send-email-daniel.vetter@ffwll.ch
Acked-by: Rob Clark <robdclark@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/vgem/vgem_drv.c

index 860062ef88144e6fe4351b386328954be2293201..c503a840fd889fd5cea318a60266c21159eda9ca 100644 (file)
@@ -235,66 +235,13 @@ unlock:
        return ret;
 }
 
-int vgem_drm_gem_mmap(struct file *filp, struct vm_area_struct *vma)
-{
-       struct drm_file *priv = filp->private_data;
-       struct drm_device *dev = priv->minor->dev;
-       struct drm_vma_offset_node *node;
-       struct drm_gem_object *obj;
-       struct drm_vgem_gem_object *vgem_obj;
-       int ret = 0;
-
-       mutex_lock(&dev->struct_mutex);
-
-       node = drm_vma_offset_exact_lookup(dev->vma_offset_manager,
-                                          vma->vm_pgoff,
-                                          vma_pages(vma));
-       if (!node) {
-               ret = -EINVAL;
-               goto out_unlock;
-       } else if (!drm_vma_node_is_allowed(node, filp)) {
-               ret = -EACCES;
-               goto out_unlock;
-       }
-
-       obj = container_of(node, struct drm_gem_object, vma_node);
-
-       vgem_obj = to_vgem_bo(obj);
-
-       if (obj->dma_buf && vgem_obj->use_dma_buf) {
-               ret = dma_buf_mmap(obj->dma_buf, vma, 0);
-               goto out_unlock;
-       }
-
-       if (!obj->dev->driver->gem_vm_ops) {
-               ret = -EINVAL;
-               goto out_unlock;
-       }
-
-       vma->vm_flags |= VM_IO | VM_MIXEDMAP | VM_DONTEXPAND | VM_DONTDUMP;
-       vma->vm_ops = obj->dev->driver->gem_vm_ops;
-       vma->vm_private_data = vgem_obj;
-       vma->vm_page_prot =
-               pgprot_writecombine(vm_get_page_prot(vma->vm_flags));
-
-       mutex_unlock(&dev->struct_mutex);
-       drm_gem_vm_open(vma);
-       return ret;
-
-out_unlock:
-       mutex_unlock(&dev->struct_mutex);
-
-       return ret;
-}
-
-
 static struct drm_ioctl_desc vgem_ioctls[] = {
 };
 
 static const struct file_operations vgem_driver_fops = {
        .owner          = THIS_MODULE,
        .open           = drm_open,
-       .mmap           = vgem_drm_gem_mmap,
+       .mmap           = drm_gem_mmap,
        .poll           = drm_poll,
        .read           = drm_read,
        .unlocked_ioctl = drm_ioctl,