aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm
diff options
context:
space:
mode:
authorJose Abreu <Jose.Abreu@synopsys.com>2017-07-17 08:08:25 -0400
committerAlexey Brodkin <abrodkin@synopsys.com>2017-08-02 17:11:01 -0400
commita8f8fb20579cc8a4e4472728380926410f20322a (patch)
treeea40d9addb43d621a47d8cbbb884756135d0f210 /drivers/gpu/drm
parent429ff616a5e8129e86312c841ca816d92f3cb8a1 (diff)
drm: arcpgu: Fix mmap() callback
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>
Diffstat (limited to 'drivers/gpu/drm')
-rw-r--r--drivers/gpu/drm/arc/arcpgu_drv.c24
1 files changed, 1 insertions, 23 deletions
diff --git a/drivers/gpu/drm/arc/arcpgu_drv.c b/drivers/gpu/drm/arc/arcpgu_drv.c
index a12fd8f64828..b9009b31dd45 100644
--- a/drivers/gpu/drm/arc/arcpgu_drv.c
+++ b/drivers/gpu/drm/arc/arcpgu_drv.c
@@ -48,29 +48,7 @@ static void arcpgu_setup_mode_config(struct drm_device *drm)
48 drm->mode_config.funcs = &arcpgu_drm_modecfg_funcs; 48 drm->mode_config.funcs = &arcpgu_drm_modecfg_funcs;
49} 49}
50 50
51static int arcpgu_gem_mmap(struct file *filp, struct vm_area_struct *vma) 51DEFINE_DRM_GEM_CMA_FOPS(arcpgu_drm_ops);
52{
53 int ret;
54
55 ret = drm_gem_mmap(filp, vma);
56 if (ret)
57 return ret;
58
59 vma->vm_page_prot = pgprot_noncached(vm_get_page_prot(vma->vm_flags));
60 return 0;
61}
62
63static const struct file_operations arcpgu_drm_ops = {
64 .owner = THIS_MODULE,
65 .open = drm_open,
66 .release = drm_release,
67 .unlocked_ioctl = drm_ioctl,
68 .compat_ioctl = drm_compat_ioctl,
69 .poll = drm_poll,
70 .read = drm_read,
71 .llseek = no_llseek,
72 .mmap = arcpgu_gem_mmap,
73};
74 52
75static void arcpgu_lastclose(struct drm_device *drm) 53static void arcpgu_lastclose(struct drm_device *drm)
76{ 54{