mirror of
				https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
				synced 2025-10-31 08:26:29 +00:00 
			
		
		
		
	ARM: dma-mapping: simplify page_to_dma() and __pfn_to_bus()
The non-highmem() and the __pfn_to_bus() based page_to_dma() both compile to the same code, so its pointless having these two different approaches. Use the __pfn_to_bus() based version. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Tested-By: Jamie Iles <jamie@jamieiles.com> Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
This commit is contained in:
		
							parent
							
								
									719301ff1c
								
							
						
					
					
						commit
						1c4a4f48a1
					
				| @ -15,20 +15,10 @@ | ||||
|  * must not be used by drivers. | ||||
|  */ | ||||
| #ifndef __arch_page_to_dma | ||||
| 
 | ||||
| #if !defined(CONFIG_HIGHMEM) | ||||
| static inline dma_addr_t page_to_dma(struct device *dev, struct page *page) | ||||
| { | ||||
| 	return (dma_addr_t)__virt_to_bus((unsigned long)page_address(page)); | ||||
| } | ||||
| #elif defined(__pfn_to_bus) | ||||
| static inline dma_addr_t page_to_dma(struct device *dev, struct page *page) | ||||
| { | ||||
| 	return (dma_addr_t)__pfn_to_bus(page_to_pfn(page)); | ||||
| } | ||||
| #else | ||||
| #error "this machine class needs to define __arch_page_to_dma to use HIGHMEM" | ||||
| #endif | ||||
| 
 | ||||
| static inline void *dma_to_virt(struct device *dev, dma_addr_t addr) | ||||
| { | ||||
|  | ||||
| @ -200,7 +200,8 @@ static inline void *phys_to_virt(unsigned long x) | ||||
| #ifndef __virt_to_bus | ||||
| #define __virt_to_bus	__virt_to_phys | ||||
| #define __bus_to_virt	__phys_to_virt | ||||
| #define __pfn_to_bus(x)	((x) << PAGE_SHIFT) | ||||
| #define __pfn_to_bus(x)	__pfn_to_phys(x) | ||||
| #define __bus_to_pfn(x)	__phys_to_pfn(x) | ||||
| #endif | ||||
| 
 | ||||
| static inline __deprecated unsigned long virt_to_bus(void *x) | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Russell King
						Russell King