diff options
Diffstat (limited to 'arch/arm/cpu/dma_32.c')
-rw-r--r-- | arch/arm/cpu/dma_32.c | 19 |
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); + } +} |