mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-11-03 21:48:15 +00: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 */
 |