CHROMIUM: v4l2-mem2mem: Implement dmabuf mmap for videobuf2-dma-contig
authorJohn Sheu <sheu@chromium.org>
Wed, 30 Jan 2013 05:27:07 +0000 (21:27 -0800)
committerChromeBot <chrome-bot@google.com>
Thu, 31 Jan 2013 00:36:22 +0000 (16:36 -0800)
videobuf2-dma-contig buffers already allow DMABUF exporting; now hook up
the mmap functions for these DMABUFs.

Signed-off-by: John Sheu <sheu@google.com>
BUG=chromium-os:38376
BUG=chromium:167417
TEST=local build, run on snow
Change-Id: Ia415c037b1fe9d1a18a86b1315f6945849940369
Reviewed-on: https://gerrit.chromium.org/gerrit/42296
Reviewed-by: Pawel Osciak <posciak@chromium.org>
Commit-Queue: John Sheu <sheu@chromium.org>
Tested-by: John Sheu <sheu@chromium.org>
drivers/media/video/videobuf2-dma-contig.c

index 4930f01..e7da195 100644 (file)
@@ -340,22 +340,23 @@ static void *vb2_dc_dmabuf_ops_kmap(struct dma_buf *dbuf, unsigned long pgnum)
 {
        struct vb2_dc_buf *buf = dbuf->priv;
 
-       return buf->vaddr + pgnum * PAGE_SIZE;
+       return vb2_dc_vaddr(buf) + pgnum * PAGE_SIZE;
 }
 
 static void *vb2_dc_dmabuf_ops_vmap(struct dma_buf *dbuf)
 {
        struct vb2_dc_buf *buf = dbuf->priv;
 
-       return buf->vaddr;
+       return vb2_dc_vaddr(buf);
 }
 
 /* a dummy function to support the mmap functionality for now */
 static int vb2_dc_dmabuf_ops_mmap(struct dma_buf *dbuf,
                                  struct vm_area_struct *vma)
 {
-       /* do nothing */
-       return -EINVAL;
+       struct vb2_dc_buf *buf = dbuf->priv;
+
+       return vb2_dc_mmap(buf, vma);
 }
 
 static struct dma_buf_ops vb2_dc_dmabuf_ops = {