aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2006-11-11 01:25:19 -0500
committerPaul Mackerras <paulus@samba.org>2006-12-04 04:39:04 -0500
commit3d1ea8e8cb4d497a2dd73176cc82095b8f193589 (patch)
tree0eabd236ff6fdf59fa50c54e5b09f4c69818d03f
parent165785e5c0be3ad43e8b8eadfbd25e92c2cd002a (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/Kconfig1
-rw-r--r--arch/powerpc/mm/pgtable_32.c17
-rw-r--r--arch/powerpc/platforms/85xx/misc.c8
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
247config PHYS_64BIT 247config 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
145void __iomem * 144void __iomem *
146ioremap(phys_addr_t addr, unsigned long size) 145ioremap(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 */
151void __iomem *
152ioremap64(unsigned long long addr, unsigned long size)
153{
154 return __ioremap(addr, size, _PAGE_NO_CACHE);
155}
156EXPORT_SYMBOL(ioremap64);
157
158void __iomem *
159ioremap(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 */
166EXPORT_SYMBOL(ioremap); 149EXPORT_SYMBOL(ioremap);
167 150
168void __iomem * 151void __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 */
26phys_addr_t fixup_bigphys_addr(phys_addr_t addr, phys_addr_t size)
27{
28 return addr;
29};
30
31EXPORT_SYMBOL(fixup_bigphys_addr);