diff options
Diffstat (limited to 'arch/sandbox/include/asm/dma.h')
-rw-r--r-- | arch/sandbox/include/asm/dma.h | 43 |
1 files changed, 42 insertions, 1 deletions
diff --git a/arch/sandbox/include/asm/dma.h b/arch/sandbox/include/asm/dma.h index 459536779e..cafbb7fe6a 100644 --- a/arch/sandbox/include/asm/dma.h +++ b/arch/sandbox/include/asm/dma.h @@ -8,6 +8,47 @@ #ifndef __ASM_DMA_H #define __ASM_DMA_H -/* empty*/ +#include <linux/kernel.h> +#include <linux/string.h> +#include <driver.h> + +#define DMA_ALIGNMENT 64 + +#define dma_alloc_coherent dma_alloc_coherent +static inline void *dma_alloc_coherent(size_t size, dma_addr_t *dma_handle) +{ + void *ret = xmemalign(4096, size); + if (dma_handle) + *dma_handle = (dma_addr_t)ret; + + memset(ret, 0, size); + + return ret; +} + +#define dma_alloc_writecombine dma_alloc_writecombine +static inline void *dma_alloc_writecombine(size_t size, dma_addr_t *dma_handle) +{ + return dma_alloc_coherent(size, dma_handle); +} + +#define dma_free_coherent dma_free_coherent +static inline void dma_free_coherent(void *mem, dma_addr_t dma_handle, + size_t size) +{ + free(mem); +} + +#define arch_sync_dma_for_cpu arch_sync_dma_for_cpu +static inline void arch_sync_dma_for_cpu(void *vaddr, size_t size, + enum dma_data_direction dir) +{ +} + +#define arch_sync_dma_for_device arch_sync_dma_for_device +static inline void arch_sync_dma_for_device(void *vaddr, size_t size, + enum dma_data_direction dir) +{ +} #endif /* __ASM_DMA_H */ |