drm: arcpgu: Fix mmap() callback
authorJose Abreu <Jose.Abreu@synopsys.com>
Mon, 17 Jul 2017 12:08:25 +0000 (13:08 +0100)
committerAlexey Brodkin <abrodkin@synopsys.com>
Wed, 2 Aug 2017 21:11:01 +0000 (00:11 +0300)
Now that ARC properly supports DMA mmap() we can use the standard
CMA helper to map dumb buffers. This makes ARC PGU works with
standard DRM consumer applications like, for example, mpv/mplayer
via DRM. While at it, use the DEFINE_DRM_GEM_CMA_FOPS() helper.

This fixes the use of dumb buffers.

Signed-off-by: Jose Abreu <joabreu@synopsys.com>
Fixes: 0c4250e7b15e ("drm: Add support of ARC PGU display controller")
Cc: Carlos Palminha <palminha@synopsys.com>
Cc: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Daniel Vetter <daniel.vetter@intel.com>
Cc: Dave Airlie <airlied@gmail.com>
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
drivers/gpu/drm/arc/arcpgu_drv.c

index a12fd8f64828c959ab31e836d80495df970df1ae..b9009b31dd455e5efb62c055e4a7b643103689f4 100644 (file)
@@ -48,29 +48,7 @@ static void arcpgu_setup_mode_config(struct drm_device *drm)
        drm->mode_config.funcs = &arcpgu_drm_modecfg_funcs;
 }
 
-static int arcpgu_gem_mmap(struct file *filp, struct vm_area_struct *vma)
-{
-       int ret;
-
-       ret = drm_gem_mmap(filp, vma);
-       if (ret)
-               return ret;
-
-       vma->vm_page_prot = pgprot_noncached(vm_get_page_prot(vma->vm_flags));
-       return 0;
-}
-
-static const struct file_operations arcpgu_drm_ops = {
-       .owner = THIS_MODULE,
-       .open = drm_open,
-       .release = drm_release,
-       .unlocked_ioctl = drm_ioctl,
-       .compat_ioctl = drm_compat_ioctl,
-       .poll = drm_poll,
-       .read = drm_read,
-       .llseek = no_llseek,
-       .mmap = arcpgu_gem_mmap,
-};
+DEFINE_DRM_GEM_CMA_FOPS(arcpgu_drm_ops);
 
 static void arcpgu_lastclose(struct drm_device *drm)
 {