~funderscore blog cgit wiki get in touch
aboutsummaryrefslogtreecommitdiff
blob: 65f67bc1f442041dba9d747600b7857ab06a59dc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#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 */