Skip to content
Snippets Groups Projects
dma-mapping.h 553 B
Newer Older
  • Learn to ignore specific revisions
  • #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 */