media: vb2-dma-contig: add helper for setting dma max seg size
authorMarek Szyprowski <m.szyprowski@samsung.com>
Tue, 24 May 2016 07:16:06 +0000 (09:16 +0200)
committerSylwester Nawrocki <s.nawrocki@samsung.com>
Fri, 3 Jun 2016 09:12:50 +0000 (11:12 +0200)
commit3f03396918962b2f8b888d02b23cd1e0c88bf5e5
treede42cca354178aca1f9588536eee6e35dfd1c417
parentc974c436eaf406225b7f4c5d27ae033a12667a38
media: vb2-dma-contig: add helper for setting dma max seg size

Add a helper function for device drivers to set DMA's max_seg_size.
Setting it to largest possible value lets DMA-mapping API always create
contiguous mappings in DMA address space. This is essential for all
devices, which use dma-contig videobuf2 memory allocator and shared
buffers.

Till now, the only case when vb2-dma-contig really 'worked' was a case
where userspace provided USERPTR buffer, which was in fact mmaped
contiguous buffer from the other v4l2/drm device. Also DMABUF made of
contiguous buffer worked only when its exporter did not split it into
several chunks in the scatter-list. Any other buffer failed, regardless
of the arch/platform used and the presence of the IOMMU of the device bus.

This patch provides interface to fix this issue.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
drivers/media/v4l2-core/videobuf2-dma-contig.c
include/media/videobuf2-dma-contig.h