]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
ENGR00280115 videobuf-dma-contig: make mmapped video buffer bufferable
authorLiu Ying <Ying.Liu@freescale.com>
Wed, 18 Sep 2013 02:15:34 +0000 (10:15 +0800)
committerLothar Waßmann <LW@KARO-electronics.de>
Wed, 20 Aug 2014 08:06:32 +0000 (10:06 +0200)
This patch makes mmapped video buffers bufferable so that software
decoders may render the video buffers efficiently.

Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
drivers/media/v4l2-core/videobuf-dma-contig.c

index bf80f0f7dfb853ab367887fb76cfc1d0be6c907e..14830e71f558f62459532085d56f88ebb24af885 100644 (file)
@@ -304,8 +304,12 @@ static int __videobuf_mmap_mapper(struct videobuf_queue *q,
 
        /* Try to remap memory */
        size = vma->vm_end - vma->vm_start;
-       vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
-       retval = vm_iomap_memory(vma, mem->dma_handle, size);
+       size = (size < mem->size) ? size : mem->size;
+
+       vma->vm_page_prot = pgprot_writecombine(vma->vm_page_prot);
+       retval = remap_pfn_range(vma, vma->vm_start,
+                                mem->dma_handle >> PAGE_SHIFT,
+                                size, vma->vm_page_prot);
        if (retval) {
                dev_err(q->dev, "mmap: remap failed with error %d. ",
                        retval);