diff options
author | Christoph Hellwig <hch@lst.de> | 2018-11-04 22:29:28 +0300 |
---|---|---|
committer | Christoph Hellwig <hch@lst.de> | 2018-12-01 20:07:11 +0300 |
commit | 0c3b3171ceccb8830c2bb5adff1b4e9b204c1450 (patch) | |
tree | c7dbe5478677405c690334e59acc392c5db86858 /include/linux/dma-noncoherent.h | |
parent | f0edfea8ef93ed6cc5f747c46c85c8e53e0798a0 (diff) | |
download | linux-0c3b3171ceccb8830c2bb5adff1b4e9b204c1450.tar.xz |
dma-mapping: move the arm64 noncoherent alloc/free support to common code
The arm64 codebase to implement coherent dma allocation for architectures
with non-coherent DMA is a good start for a generic implementation, given
that is uses the generic remap helpers, provides the atomic pool for
allocations that can't sleep and still is realtively simple and well
tested. Move it to kernel/dma and allow architectures to opt into it
using a config symbol. Architectures just need to provide a new
arch_dma_prep_coherent helper to writeback an invalidate the caches
for any memory that gets remapped for uncached access.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Will Deacon <will.deacon@arm.com>
Reviewed-by: Robin Murphy <robin.murphy@arm.com>
Diffstat (limited to 'include/linux/dma-noncoherent.h')
-rw-r--r-- | include/linux/dma-noncoherent.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/dma-noncoherent.h b/include/linux/dma-noncoherent.h index 9051b055beec..306557331d7d 100644 --- a/include/linux/dma-noncoherent.h +++ b/include/linux/dma-noncoherent.h @@ -69,4 +69,6 @@ static inline void arch_sync_dma_for_cpu_all(struct device *dev) } #endif /* CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU_ALL */ +void arch_dma_prep_coherent(struct page *page, size_t size); + #endif /* _LINUX_DMA_NONCOHERENT_H */ |