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)
committerCosmin Tanislav <demonsingur@gmail.com>
Mon, 22 Apr 2024 17:22:17 +0000 (20:22 +0300)
commit856808df82d21dd4a7d45f215e8a785d974b3dc5
tree3c984c168fe343edeab005958b5a9b73fb6ad287
parent19ee27c72796e827bf9b5f510e160fd29bd4877e
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