diff options
author | 2023-10-10 14:33:42 +0000 | |
---|---|---|
committer | 2023-10-10 14:33:42 +0000 | |
commit | af1a266670d040d2f4083ff309d732d648afba2a (patch) | |
tree | 2fc46203448ddcc6f81546d379abfaeb323575e9 /roms/u-boot/arch/nios2/include/asm/dma-mapping.h | |
parent | e02cda008591317b1625707ff8e115a4841aa889 (diff) |
Change-Id: Iaf8d18082d3991dec7c0ebbea540f092188eb4ec
Diffstat (limited to 'roms/u-boot/arch/nios2/include/asm/dma-mapping.h')
-rw-r--r-- | roms/u-boot/arch/nios2/include/asm/dma-mapping.h | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/roms/u-boot/arch/nios2/include/asm/dma-mapping.h b/roms/u-boot/arch/nios2/include/asm/dma-mapping.h new file mode 100644 index 000000000..65f67bc1f --- /dev/null +++ b/roms/u-boot/arch/nios2/include/asm/dma-mapping.h @@ -0,0 +1,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 */ |