mirror of
				https://source.denx.de/u-boot/u-boot.git
				synced 2025-10-26 22:11:49 +01:00 
			
		
		
		
	The implementation of dma_map_single() and dma_unmap_single() is exactly the same for all the architectures that support them. Factor them out to <linux/dma-mapping.h>, and make all drivers to include <linux/dma-mapping.h> instead of <asm/dma-mapping.h>. If we need to differentiate them for some architectures, we can move the generic definitions to <asm-generic/dma-mapping.h>. Add some comments to the helpers. The concept is quite similar to the DMA-API of Linux kernel. Drivers are agnostic about what is going on behind the scene. Just call dma_map_single() before the DMA, and dma_unmap_single() after it. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
		
			
				
	
	
		
			29 lines
		
	
	
		
			627 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			627 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /* SPDX-License-Identifier: GPL-2.0+ */
 | |
| /*
 | |
|  * (C) Copyright 2007
 | |
|  * Stelian Pop <stelian@popies.net>
 | |
|  * Lead Tech Design <www.leadtechdesign.com>
 | |
|  */
 | |
| #ifndef __ASM_X86_DMA_MAPPING_H
 | |
| #define __ASM_X86_DMA_MAPPING_H
 | |
| 
 | |
| #include <common.h>
 | |
| #include <asm/cache.h>
 | |
| #include <cpu_func.h>
 | |
| #include <linux/dma-direction.h>
 | |
| #include <linux/types.h>
 | |
| #include <malloc.h>
 | |
| 
 | |
| static inline void *dma_alloc_coherent(size_t len, unsigned long *handle)
 | |
| {
 | |
| 	*handle = (unsigned long)memalign(ARCH_DMA_MINALIGN, len);
 | |
| 	return (void *)*handle;
 | |
| }
 | |
| 
 | |
| static inline void dma_free_coherent(void *addr)
 | |
| {
 | |
| 	free(addr);
 | |
| }
 | |
| 
 | |
| #endif /* __ASM_X86_DMA_MAPPING_H */
 |