summaryrefslogtreecommitdiffstats
path: root/arch/arm/cpu/dma_64.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/cpu/dma_64.c')
-rw-r--r--arch/arm/cpu/dma_64.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/arch/arm/cpu/dma_64.c b/arch/arm/cpu/dma_64.c
new file mode 100644
index 0000000000..b50572f5e6
--- /dev/null
+++ b/arch/arm/cpu/dma_64.c
@@ -0,0 +1,15 @@
+#include <dma.h>
+#include <asm/mmu.h>
+#include <asm/cache.h>
+
+void arch_sync_dma_for_device(void *vaddr, size_t size,
+ enum dma_data_direction dir)
+{
+ unsigned long start = (unsigned long)vaddr;
+ unsigned long end = start + size;
+
+ if (dir == DMA_FROM_DEVICE)
+ v8_inv_dcache_range(start, end);
+ else
+ v8_flush_dcache_range(start, end);
+}