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 */
11static 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