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