diff options
author | Stephen Rothwell <sfr@canb.auug.org.au> | 2006-09-24 23:36:31 -0400 |
---|---|---|
committer | Stephen Rothwell <sfr@canb.auug.org.au> | 2006-09-24 23:36:31 -0400 |
commit | 5e203d686277d87f0a6c9521a3a099ca10ee808d (patch) | |
tree | 35f17e78b6e4ffbba81f88d41b9f2208191beffb /arch/powerpc/mm | |
parent | eecba334bdef03ce4918c3193f9b81791a715fb9 (diff) |
[POWERPC] fix ioremap for a combined kernel
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Diffstat (limited to 'arch/powerpc/mm')
-rw-r--r-- | arch/powerpc/mm/pgtable_64.c | 29 |
1 files changed, 7 insertions, 22 deletions
diff --git a/arch/powerpc/mm/pgtable_64.c b/arch/powerpc/mm/pgtable_64.c index b1da03165496..ac64f4aaa509 100644 --- a/arch/powerpc/mm/pgtable_64.c +++ b/arch/powerpc/mm/pgtable_64.c | |||
@@ -63,32 +63,13 @@ | |||
63 | #include <asm/iommu.h> | 63 | #include <asm/iommu.h> |
64 | #include <asm/abs_addr.h> | 64 | #include <asm/abs_addr.h> |
65 | #include <asm/vdso.h> | 65 | #include <asm/vdso.h> |
66 | #include <asm/firmware.h> | ||
66 | 67 | ||
67 | #include "mmu_decl.h" | 68 | #include "mmu_decl.h" |
68 | 69 | ||
69 | unsigned long ioremap_bot = IMALLOC_BASE; | 70 | unsigned long ioremap_bot = IMALLOC_BASE; |
70 | static unsigned long phbs_io_bot = PHBS_IO_BASE; | 71 | static unsigned long phbs_io_bot = PHBS_IO_BASE; |
71 | 72 | ||
72 | #ifdef CONFIG_PPC_ISERIES | ||
73 | |||
74 | void __iomem *ioremap(unsigned long addr, unsigned long size) | ||
75 | { | ||
76 | return (void __iomem *)addr; | ||
77 | } | ||
78 | |||
79 | extern void __iomem *__ioremap(unsigned long addr, unsigned long size, | ||
80 | unsigned long flags) | ||
81 | { | ||
82 | return (void __iomem *)addr; | ||
83 | } | ||
84 | |||
85 | void iounmap(volatile void __iomem *addr) | ||
86 | { | ||
87 | return; | ||
88 | } | ||
89 | |||
90 | #else | ||
91 | |||
92 | /* | 73 | /* |
93 | * map_io_page currently only called by __ioremap | 74 | * map_io_page currently only called by __ioremap |
94 | * map_io_page adds an entry to the ioremap page table | 75 | * map_io_page adds an entry to the ioremap page table |
@@ -161,6 +142,9 @@ void __iomem * __ioremap(unsigned long addr, unsigned long size, | |||
161 | unsigned long pa, ea; | 142 | unsigned long pa, ea; |
162 | void __iomem *ret; | 143 | void __iomem *ret; |
163 | 144 | ||
145 | if (firmware_has_feature(FW_FEATURE_ISERIES)) | ||
146 | return (void __iomem *)addr; | ||
147 | |||
164 | /* | 148 | /* |
165 | * Choose an address to map it to. | 149 | * Choose an address to map it to. |
166 | * Once the imalloc system is running, we use it. | 150 | * Once the imalloc system is running, we use it. |
@@ -255,6 +239,9 @@ void iounmap(volatile void __iomem *token) | |||
255 | { | 239 | { |
256 | void *addr; | 240 | void *addr; |
257 | 241 | ||
242 | if (firmware_has_feature(FW_FEATURE_ISERIES)) | ||
243 | return; | ||
244 | |||
258 | if (!mem_init_done) | 245 | if (!mem_init_done) |
259 | return; | 246 | return; |
260 | 247 | ||
@@ -315,8 +302,6 @@ int iounmap_explicit(volatile void __iomem *start, unsigned long size) | |||
315 | return 0; | 302 | return 0; |
316 | } | 303 | } |
317 | 304 | ||
318 | #endif | ||
319 | |||
320 | EXPORT_SYMBOL(ioremap); | 305 | EXPORT_SYMBOL(ioremap); |
321 | EXPORT_SYMBOL(__ioremap); | 306 | EXPORT_SYMBOL(__ioremap); |
322 | EXPORT_SYMBOL(iounmap); | 307 | EXPORT_SYMBOL(iounmap); |