media: vb2: add support for iovmm in vb2-dma-sg
authorCho KyongHo <pullip.cho@samsung.com>
Thu, 11 Jan 2018 00:51:20 +0000 (09:51 +0900)
committerSeungchul Kim <sc377.kim@samsung.com>
Mon, 28 May 2018 05:28:38 +0000 (14:28 +0900)
commit2add19dd0c3e600d1ccd7eb3c911c00ff6ce0e02
tree2cd7605d437c04a93ed86b659e056cc71c62c080
parentfdf1da8e67b4da542f1a8da0d5090ab2591e81ac
media: vb2: add support for iovmm in vb2-dma-sg

Address space management of DMA above System MMU in Exynos SoCs is not
constructed in dma-mapping but in iovmm that only provides address
space management for such DMAs. Therefore we should call iovmm_map()
and iovmm_unmap() explicitely even though videobuf2-dma-sg already
calls dma_map_sg() for mapping.
The client v4l2 drivers are intended to get DMA address from the
scatter-gather list returned by vb2_dma_sg_plane_desc() but
iovmm_map() leave it untouched because dma addresses in the scatter-
gather list is also used by cache maintenance. Therefore, DMA
addresses returned by iovmm_map() should be maintained separately.
We also provide vb2_dma_sg_plane_dma_addr() to find the DMA address
of a plane.

Change-Id: I4773d342716431d7ea889bb5e11ac3512d8193ba
Signed-off-by: Cho KyongHo <pullip.cho@samsung.com>
drivers/media/v4l2-core/videobuf2-dma-sg.c
include/media/videobuf2-dma-sg.h