media: coda: request to skip kernel mapping for decoded buffers
authorLucas Stach <l.stach@pengutronix.de>
Thu, 24 Oct 2019 10:32:49 +0000 (07:32 -0300)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Tue, 5 Nov 2019 11:59:50 +0000 (08:59 -0300)
The kernel driver never touches the decoded buffers with the CPU.
All accesses are either done by hardware DMA masters or userspace
mapping the buffers. This means we don't need a kernel virtual
address mapping for those buffers at all. As those buffers are
usually quite large, we can save a good deal of kernel vmalloc
space by requesting to not have a kernel mapping set up for them.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
drivers/media/platform/coda/coda-common.c

index 834f11fe9dc2944bceb219de82a84f03eb3d8b8e..287dc1692286c6ae02729d98a73864914d4fb7a4 100644 (file)
@@ -2387,6 +2387,7 @@ int coda_decoder_queue_init(void *priv, struct vb2_queue *src_vq,
 
        dst_vq->type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
        dst_vq->io_modes = VB2_DMABUF | VB2_MMAP;
+       dst_vq->dma_attrs = DMA_ATTR_NO_KERNEL_MAPPING;
        dst_vq->mem_ops = &vb2_dma_contig_memops;
 
        return coda_queue_init(priv, dst_vq);