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:
Russell King 2009-10-31 15:58:30 +00:00
parent 719301ff1c
commit 1c4a4f48a1
2 changed files with 2 additions and 11 deletions

View File

@ -15,20 +15,10 @@
* must not be used by drivers. * must not be used by drivers.
*/ */
#ifndef __arch_page_to_dma #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) 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)); 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) static inline void *dma_to_virt(struct device *dev, dma_addr_t addr)
{ {

View File

@ -200,7 +200,8 @@ static inline void *phys_to_virt(unsigned long x)
#ifndef __virt_to_bus #ifndef __virt_to_bus
#define __virt_to_bus __virt_to_phys #define __virt_to_bus __virt_to_phys
#define __bus_to_virt __phys_to_virt #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 #endif
static inline __deprecated unsigned long virt_to_bus(void *x) static inline __deprecated unsigned long virt_to_bus(void *x)