[ARM] dma-mapping: improve type-safeness of DMA translations
OMAP at least gets the return type(s) for the DMA translation functions wrong, which can lead to subtle errors. Avoid this by moving the DMA translation functions to asm/dma-mapping.h, and converting them to inline functions. Fix the OMAP DMA translation macros to use the correct argument and result types. Also, remove the unnecessary casts in dmabounce.c. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
committed by
Russell King
parent
492c71dd54
commit
98ed7d4b1a
@@ -313,20 +313,6 @@ static inline __deprecated void *bus_to_virt(unsigned long x)
|
||||
*/
|
||||
#define page_to_phys(page) (page_to_pfn(page) << PAGE_SHIFT)
|
||||
|
||||
/*
|
||||
* Optional device DMA address remapping. Do _not_ use directly!
|
||||
* We should really eliminate virt_to_bus() here - it's deprecated.
|
||||
*/
|
||||
#ifndef __arch_page_to_dma
|
||||
#define page_to_dma(dev, page) ((dma_addr_t)__virt_to_bus((unsigned long)page_address(page)))
|
||||
#define dma_to_virt(dev, addr) ((void *)__bus_to_virt(addr))
|
||||
#define virt_to_dma(dev, addr) ((dma_addr_t)__virt_to_bus((unsigned long)(addr)))
|
||||
#else
|
||||
#define page_to_dma(dev, page) (__arch_page_to_dma(dev, page))
|
||||
#define dma_to_virt(dev, addr) (__arch_dma_to_virt(dev, addr))
|
||||
#define virt_to_dma(dev, addr) (__arch_virt_to_dma(dev, addr))
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Optional coherency support. Currently used only by selected
|
||||
* Intel XSC3-based systems.
|
||||
|
Reference in New Issue
Block a user