1 #ifndef __ASM_NIOS2_DMA_MAPPING_H
2 #define __ASM_NIOS2_DMA_MAPPING_H
3 
4 #include <memalign.h>
5 #include <asm/io.h>
6 
7 /*
8  * dma_alloc_coherent() return cache-line aligned allocation which is mapped
9  * to uncached io region.
10  */
11 static inline void *dma_alloc_coherent(size_t len, unsigned long *handle)
12 {
13 	unsigned long addr = (unsigned long)malloc_cache_aligned(len);
14 
15 	if (!addr)
16 		return NULL;
17 
18 	invalidate_dcache_range(addr, addr + len);
19 	if (handle)
20 		*handle = addr;
21 
22 	return map_physmem(addr, len, MAP_NOCACHE);
23 }
24 #endif /* __ASM_NIOS2_DMA_MAPPING_H */
25