linux/kernel/dma
Christoph Hellwig 7d5b5738d1 dma-mapping: add a dma_alloc_noncontiguous API
Add a new API that returns a potentiall virtually non-contigous sg_table
and a DMA address.  This API is only properly implemented for dma-iommu
and will simply return a contigious chunk as a fallback.

The intent is that drivers can use this API if either:

 - no kernel mapping or only temporary kernel mappings are required.
   That is as a better replacement for DMA_ATTR_NO_KERNEL_MAPPING
 - a kernel mapping is required for cached and DMA mapped pages, but
   the driver also needs the pages to e.g. map them to userspace.
   In that sense it is a replacement for some aspects of the recently
   removed and never fully implemented DMA_ATTR_NON_CONSISTENT

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Tomasz Figa <tfiga@chromium.org>
Tested-by: Ricardo Ribalda <ribalda@chromium.org>
2021-03-15 10:02:31 +01:00
..
coherent.c dma-mapping: split <linux/dma-mapping.h> 2020-10-06 07:07:03 +02:00
contiguous.c dma-contiguous: fix a typo error in a comment 2020-11-27 10:33:42 +01:00
debug.c dma-mapping: move dma-debug.h to kernel/dma/ 2020-10-06 07:07:05 +02:00
debug.h dma-mapping: move dma-debug.h to kernel/dma/ 2020-10-06 07:07:05 +02:00
direct.c dma-mapping: remove the dma_direct_set_offset export 2020-11-18 09:11:38 +01:00
direct.h dma-mapping: move large parts of <linux/dma-direct.h> to kernel/dma 2020-10-06 07:07:06 +02:00
dummy.c dma-mapping: split <linux/dma-mapping.h> 2020-10-06 07:07:03 +02:00
Kconfig driver core: lift dma_default_coherent into common code 2021-02-13 09:51:45 +01:00
Makefile dma-mapping updates for 5.11: 2020-12-22 13:19:43 -08:00
map_benchmark.c dma-mapping: benchmark: pretend DMA is transmitting 2021-02-05 12:48:46 +01:00
mapping.c dma-mapping: add a dma_alloc_noncontiguous API 2021-03-15 10:02:31 +01:00
ops_helpers.c dma-mapping: merge <linux/dma-noncoherent.h> into <linux/dma-map-ops.h> 2020-10-06 07:07:06 +02:00
pool.c dma-pool: no need to check return value of debugfs_create functions 2020-11-27 10:33:42 +01:00
remap.c dma-mapping: move more functions to dma-map-ops.h 2020-10-20 10:41:07 +02:00
swiotlb.c swiotlb: Validate bounce size in the sync/unmap path 2021-02-26 10:52:51 -05:00