summaryrefslogtreecommitdiffstats
path: root/arch/arm/cpu/dma_32.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/cpu/dma_32.c')
-rw-r--r--arch/arm/cpu/dma_32.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/arch/arm/cpu/dma_32.c b/arch/arm/cpu/dma_32.c
new file mode 100644
index 0000000000..842ea7033a
--- /dev/null
+++ b/arch/arm/cpu/dma_32.c
@@ -0,0 +1,19 @@
+#include <dma.h>
+#include <asm/mmu.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) {
+ __dma_inv_range(start, end);
+ if (outer_cache.inv_range)
+ outer_cache.inv_range(start, end);
+ } else {
+ __dma_clean_range(start, end);
+ if (outer_cache.clean_range)
+ outer_cache.clean_range(start, end);
+ }
+}