diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2006-11-11 01:25:19 -0500 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2006-12-04 04:39:04 -0500 |
commit | 3d1ea8e8cb4d497a2dd73176cc82095b8f193589 (patch) | |
tree | 0eabd236ff6fdf59fa50c54e5b09f4c69818d03f | |
parent | 165785e5c0be3ad43e8b8eadfbd25e92c2cd002a (diff) |
[POWERPC] Remove ioremap64 and fixup_bigphys_addr
In order to suppose platforms with devices above 4Gb on 32 bits platforms
with a >32 bits physical address space, we used to have a special ioremap64
along with a fixup routine fixup_bigphys_addr.
This shouldn't be necessary anymore as struct resource now supports 64 bits
addresses even on 32 bits archs. This patch enables that option when
CONFIG_PHYS_64BIT is set and removes ioremap64 and fixup_bigphys_addr.
This is a preliminary work for the upcoming merge of 32 and 64 bits io.h
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
-rw-r--r-- | arch/powerpc/Kconfig | 1 | ||||
-rw-r--r-- | arch/powerpc/mm/pgtable_32.c | 17 | ||||
-rw-r--r-- | arch/powerpc/platforms/85xx/misc.c | 8 |
3 files changed, 1 insertions, 25 deletions
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index 9547aacc3193..b4a3b699433e 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig | |||
@@ -247,6 +247,7 @@ config PTE_64BIT | |||
247 | config PHYS_64BIT | 247 | config PHYS_64BIT |
248 | bool 'Large physical address support' if E500 | 248 | bool 'Large physical address support' if E500 |
249 | depends on 44x || E500 | 249 | depends on 44x || E500 |
250 | select RESOURCES_64BIT | ||
250 | default y if 44x | 251 | default y if 44x |
251 | ---help--- | 252 | ---help--- |
252 | This option enables kernel support for larger than 32-bit physical | 253 | This option enables kernel support for larger than 32-bit physical |
diff --git a/arch/powerpc/mm/pgtable_32.c b/arch/powerpc/mm/pgtable_32.c index 8fcacb0239da..7750c4425688 100644 --- a/arch/powerpc/mm/pgtable_32.c +++ b/arch/powerpc/mm/pgtable_32.c | |||
@@ -141,28 +141,11 @@ void pte_free(struct page *ptepage) | |||
141 | __free_page(ptepage); | 141 | __free_page(ptepage); |
142 | } | 142 | } |
143 | 143 | ||
144 | #ifndef CONFIG_PHYS_64BIT | ||
145 | void __iomem * | 144 | void __iomem * |
146 | ioremap(phys_addr_t addr, unsigned long size) | 145 | ioremap(phys_addr_t addr, unsigned long size) |
147 | { | 146 | { |
148 | return __ioremap(addr, size, _PAGE_NO_CACHE); | 147 | return __ioremap(addr, size, _PAGE_NO_CACHE); |
149 | } | 148 | } |
150 | #else /* CONFIG_PHYS_64BIT */ | ||
151 | void __iomem * | ||
152 | ioremap64(unsigned long long addr, unsigned long size) | ||
153 | { | ||
154 | return __ioremap(addr, size, _PAGE_NO_CACHE); | ||
155 | } | ||
156 | EXPORT_SYMBOL(ioremap64); | ||
157 | |||
158 | void __iomem * | ||
159 | ioremap(phys_addr_t addr, unsigned long size) | ||
160 | { | ||
161 | phys_addr_t addr64 = fixup_bigphys_addr(addr, size); | ||
162 | |||
163 | return ioremap64(addr64, size); | ||
164 | } | ||
165 | #endif /* CONFIG_PHYS_64BIT */ | ||
166 | EXPORT_SYMBOL(ioremap); | 149 | EXPORT_SYMBOL(ioremap); |
167 | 150 | ||
168 | void __iomem * | 151 | void __iomem * |
diff --git a/arch/powerpc/platforms/85xx/misc.c b/arch/powerpc/platforms/85xx/misc.c index 26c5e822c7c8..3e62fcb04c1c 100644 --- a/arch/powerpc/platforms/85xx/misc.c +++ b/arch/powerpc/platforms/85xx/misc.c | |||
@@ -21,11 +21,3 @@ void mpc85xx_restart(char *cmd) | |||
21 | local_irq_disable(); | 21 | local_irq_disable(); |
22 | abort(); | 22 | abort(); |
23 | } | 23 | } |
24 | |||
25 | /* For now this is a pass through */ | ||
26 | phys_addr_t fixup_bigphys_addr(phys_addr_t addr, phys_addr_t size) | ||
27 | { | ||
28 | return addr; | ||
29 | }; | ||
30 | |||
31 | EXPORT_SYMBOL(fixup_bigphys_addr); | ||