#ifndef __ASM_NIOS2_DMA_MAPPING_H | |
#define __ASM_NIOS2_DMA_MAPPING_H | |
#include <memalign.h> | |
#include <asm/io.h> | |
/* | |
* dma_alloc_coherent() return cache-line aligned allocation which is mapped | |
* to uncached io region. | |
*/ | |
static inline void *dma_alloc_coherent(size_t len, unsigned long *handle) | |
{ | |
unsigned long addr = (unsigned long)malloc_cache_aligned(len); | |
if (!addr) | |
return NULL; | |
invalidate_dcache_range(addr, addr + len); | |
if (handle) | |
*handle = addr; | |
return map_physmem(addr, len, MAP_NOCACHE); | |
} | |
#endif /* __ASM_NIOS2_DMA_MAPPING_H */ |