diff options
author | Nicolas Pitre <nico@cam.org> | 2008-09-05 21:53:30 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2008-11-28 10:36:49 -0500 |
commit | b5ee9002583fc14e6d45a04c18f208987a8fbced (patch) | |
tree | c0202fd968667710643144e036d369eef874c655 /arch/arm/mach-iop13xx | |
parent | 75f4aa15cf05ce6d99c8261cf57dcd749877fd1c (diff) |
[ARM] remove a common set of __virt_to_bus definitions
Let's provide an overridable default instead of having every machine
class define __virt_to_bus and __bus_to_virt to the same thing. What
most platforms are using is bus_addr == phys_addr so such is the default.
One exception is ebsa110 which has no DMA what so ever, so the actual
definition is not important except only for proper compilation. Also
added a comment about the special footbridge bus translation.
Let's also remove comments alluding to set_dma_addr which is not
(and should not) be commonly used.
Signed-off-by: Nicolas Pitre <nico@marvell.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mach-iop13xx')
-rw-r--r-- | arch/arm/mach-iop13xx/include/mach/memory.h | 16 |
1 files changed, 2 insertions, 14 deletions
diff --git a/arch/arm/mach-iop13xx/include/mach/memory.h b/arch/arm/mach-iop13xx/include/mach/memory.h index b82602d529bf..e012bf13c955 100644 --- a/arch/arm/mach-iop13xx/include/mach/memory.h +++ b/arch/arm/mach-iop13xx/include/mach/memory.h | |||
@@ -16,18 +16,6 @@ | |||
16 | #define IOP13XX_PMMR_P_START (IOP13XX_PMMR_PHYS_MEM_BASE) | 16 | #define IOP13XX_PMMR_P_START (IOP13XX_PMMR_PHYS_MEM_BASE) |
17 | #define IOP13XX_PMMR_P_END (IOP13XX_PMMR_PHYS_MEM_BASE + IOP13XX_PMMR_SIZE) | 17 | #define IOP13XX_PMMR_P_END (IOP13XX_PMMR_PHYS_MEM_BASE + IOP13XX_PMMR_SIZE) |
18 | 18 | ||
19 | /* | ||
20 | * Virtual view <-> PCI DMA view memory address translations | ||
21 | * virt_to_bus: Used to translate the virtual address to an | ||
22 | * address suitable to be passed to set_dma_addr | ||
23 | * bus_to_virt: Used to convert an address for DMA operations | ||
24 | * to an address that the kernel can use. | ||
25 | */ | ||
26 | |||
27 | /* RAM has 1:1 mapping on the PCIe/x Busses */ | ||
28 | #define __virt_to_bus(x) (__virt_to_phys(x)) | ||
29 | #define __bus_to_virt(x) (__phys_to_virt(x)) | ||
30 | |||
31 | static inline dma_addr_t __virt_to_lbus(unsigned long x) | 19 | static inline dma_addr_t __virt_to_lbus(unsigned long x) |
32 | { | 20 | { |
33 | return x + IOP13XX_PMMR_PHYS_MEM_BASE - IOP13XX_PMMR_VIRT_MEM_BASE; | 21 | return x + IOP13XX_PMMR_PHYS_MEM_BASE - IOP13XX_PMMR_VIRT_MEM_BASE; |
@@ -55,7 +43,7 @@ static inline unsigned long __lbus_to_virt(dma_addr_t x) | |||
55 | if (is_lbus_device(dev) && __is_lbus_dma(__dma)) \ | 43 | if (is_lbus_device(dev) && __is_lbus_dma(__dma)) \ |
56 | __virt = __lbus_to_virt(__dma); \ | 44 | __virt = __lbus_to_virt(__dma); \ |
57 | else \ | 45 | else \ |
58 | __virt = __bus_to_virt(__dma); \ | 46 | __virt = __phys_to_virt(__dma); \ |
59 | (void *)__virt; \ | 47 | (void *)__virt; \ |
60 | }) | 48 | }) |
61 | 49 | ||
@@ -66,7 +54,7 @@ static inline unsigned long __lbus_to_virt(dma_addr_t x) | |||
66 | if (is_lbus_device(dev) && __is_lbus_virt(__virt)) \ | 54 | if (is_lbus_device(dev) && __is_lbus_virt(__virt)) \ |
67 | __dma = __virt_to_lbus(__virt); \ | 55 | __dma = __virt_to_lbus(__virt); \ |
68 | else \ | 56 | else \ |
69 | __dma = __virt_to_bus(__virt); \ | 57 | __dma = __virt_to_phys(__virt); \ |
70 | __dma; \ | 58 | __dma; \ |
71 | }) | 59 | }) |
72 | 60 | ||