25 lines
		
	
	
		
			553 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			25 lines
		
	
	
		
			553 B
		
	
	
	
		
			C
		
	
	
	
	
	
#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 */
 |