+274
−1
+32
−0
Loading
Introduce new DMA APIs to perform DMA linkage of buffers
in layers higher than DMA.
In proposed API, the callers will perform the following steps.
In map path:
if (dma_can_use_iova(...))
dma_iova_alloc()
for (page in range)
dma_iova_link_next(...)
dma_iova_sync(...)
else
/* Fallback to legacy map pages */
for (all pages)
dma_map_page(...)
In unmap path:
if (dma_can_use_iova(...))
dma_iova_destroy()
else
for (all pages)
dma_unmap_page(...)
Reviewed-by:
Christoph Hellwig <hch@lst.de>
Tested-by:
Jens Axboe <axboe@kernel.dk>
Reviewed-by:
Luis Chamberlain <mcgrof@kernel.org>
Signed-off-by:
Leon Romanovsky <leonro@nvidia.com>
Signed-off-by:
Marek Szyprowski <m.szyprowski@samsung.com>