summaryrefslogtreecommitdiffstats
path: root/arch/arm64/include/asm/dma-mapping.h
diff options
context:
space:
mode:
authorCatalin Marinas <catalin.marinas@arm.com>2013-05-21 18:35:19 +0200
committerCatalin Marinas <catalin.marinas@arm.com>2014-02-27 18:16:59 +0100
commit7363590d2c4691593fd280f94b3deaeb5e83dbbd (patch)
tree892b7ac3974015dd23401a1d993cbd930cee2fb9 /arch/arm64/include/asm/dma-mapping.h
parentarm64: Use swiotlb late initialisation (diff)
downloadlinux-7363590d2c4691593fd280f94b3deaeb5e83dbbd.tar.xz
linux-7363590d2c4691593fd280f94b3deaeb5e83dbbd.zip
arm64: Implement coherent DMA API based on swiotlb
This patch adds support for DMA API cache maintenance on SoCs without hardware device cache coherency. Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Diffstat (limited to 'arch/arm64/include/asm/dma-mapping.h')
-rw-r--r--arch/arm64/include/asm/dma-mapping.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/arm64/include/asm/dma-mapping.h b/arch/arm64/include/asm/dma-mapping.h
index fd0c0c0e447a..3a4572ec3273 100644
--- a/arch/arm64/include/asm/dma-mapping.h
+++ b/arch/arm64/include/asm/dma-mapping.h
@@ -30,6 +30,8 @@
#define DMA_ERROR_CODE (~(dma_addr_t)0)
extern struct dma_map_ops *dma_ops;
+extern struct dma_map_ops coherent_swiotlb_dma_ops;
+extern struct dma_map_ops noncoherent_swiotlb_dma_ops;
static inline struct dma_map_ops *__generic_dma_ops(struct device *dev)
{
@@ -47,6 +49,11 @@ static inline struct dma_map_ops *get_dma_ops(struct device *dev)
return __generic_dma_ops(dev);
}
+static inline void set_dma_ops(struct device *dev, struct dma_map_ops *ops)
+{
+ dev->archdata.dma_ops = ops;
+}
+
#include <asm-generic/dma-mapping-common.h>
static inline dma_addr_t phys_to_dma(struct device *dev, phys_addr_t paddr)