diff options
Diffstat (limited to 'arch/parisc')
-rw-r--r-- | arch/parisc/Kconfig | 11 | ||||
-rw-r--r-- | arch/parisc/mm/ioremap.c | 16 |
2 files changed, 2 insertions, 25 deletions
diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig index fc5755d1db57..6b3c50964ca9 100644 --- a/arch/parisc/Kconfig +++ b/arch/parisc/Kconfig | |||
@@ -138,17 +138,6 @@ config 64BIT | |||
138 | enable this option otherwise. The 64bit kernel is significantly bigger | 138 | enable this option otherwise. The 64bit kernel is significantly bigger |
139 | and slower than the 32bit one. | 139 | and slower than the 32bit one. |
140 | 140 | ||
141 | config HPPA_IOREMAP | ||
142 | bool "Enable IOREMAP functionality (EXPERIMENTAL)" | ||
143 | depends on EXPERIMENTAL | ||
144 | default n | ||
145 | help | ||
146 | Enable this option if you want to enable real IOREMAPPING on PA-RISC. | ||
147 | Currently we just "simulate" I/O remapping, and enabling this option | ||
148 | will just crash your machine. | ||
149 | |||
150 | Say N here, unless you are a real PA-RISC Linux kernel hacker. | ||
151 | |||
152 | config SMP | 141 | config SMP |
153 | bool "Symmetric multi-processing support" | 142 | bool "Symmetric multi-processing support" |
154 | ---help--- | 143 | ---help--- |
diff --git a/arch/parisc/mm/ioremap.c b/arch/parisc/mm/ioremap.c index 028772144191..5a22e1cab217 100644 --- a/arch/parisc/mm/ioremap.c +++ b/arch/parisc/mm/ioremap.c | |||
@@ -72,7 +72,6 @@ remap_area_pmd(pmd_t *pmd, unsigned long address, unsigned long size, | |||
72 | return 0; | 72 | return 0; |
73 | } | 73 | } |
74 | 74 | ||
75 | #ifdef CONFIG_HPPA_IOREMAP | ||
76 | static int | 75 | static int |
77 | remap_area_pages(unsigned long address, unsigned long phys_addr, | 76 | remap_area_pages(unsigned long address, unsigned long phys_addr, |
78 | unsigned long size, unsigned long flags) | 77 | unsigned long size, unsigned long flags) |
@@ -114,7 +113,6 @@ remap_area_pages(unsigned long address, unsigned long phys_addr, | |||
114 | 113 | ||
115 | return error; | 114 | return error; |
116 | } | 115 | } |
117 | #endif /* CONFIG_HPPA_IOREMAP */ | ||
118 | 116 | ||
119 | #ifdef CONFIG_DEBUG_IOREMAP | 117 | #ifdef CONFIG_DEBUG_IOREMAP |
120 | static unsigned long last = 0; | 118 | static unsigned long last = 0; |
@@ -154,21 +152,16 @@ EXPORT_SYMBOL(__raw_bad_addr); | |||
154 | */ | 152 | */ |
155 | void __iomem * __ioremap(unsigned long phys_addr, unsigned long size, unsigned long flags) | 153 | void __iomem * __ioremap(unsigned long phys_addr, unsigned long size, unsigned long flags) |
156 | { | 154 | { |
157 | #if !defined(CONFIG_HPPA_IOREMAP) | 155 | #ifdef CONFIG_EISA |
156 | #error FIXME. | ||
158 | unsigned long end = phys_addr + size - 1; | 157 | unsigned long end = phys_addr + size - 1; |
159 | /* Support EISA addresses */ | 158 | /* Support EISA addresses */ |
160 | if ((phys_addr >= 0x00080000 && end < 0x000fffff) | 159 | if ((phys_addr >= 0x00080000 && end < 0x000fffff) |
161 | || (phys_addr >= 0x00500000 && end < 0x03bfffff)) { | 160 | || (phys_addr >= 0x00500000 && end < 0x03bfffff)) { |
162 | phys_addr |= 0xfc000000; | 161 | phys_addr |= 0xfc000000; |
163 | } | 162 | } |
164 | |||
165 | #ifdef CONFIG_DEBUG_IOREMAP | ||
166 | return (void __iomem *)(phys_addr - (0x1UL << NYBBLE_SHIFT)); | ||
167 | #else | ||
168 | return (void __iomem *)phys_addr; | ||
169 | #endif | 163 | #endif |
170 | 164 | ||
171 | #else | ||
172 | void *addr; | 165 | void *addr; |
173 | struct vm_struct *area; | 166 | struct vm_struct *area; |
174 | unsigned long offset, last_addr; | 167 | unsigned long offset, last_addr; |
@@ -216,15 +209,10 @@ void __iomem * __ioremap(unsigned long phys_addr, unsigned long size, unsigned l | |||
216 | } | 209 | } |
217 | 210 | ||
218 | return (void __iomem *) (offset + (char *)addr); | 211 | return (void __iomem *) (offset + (char *)addr); |
219 | #endif | ||
220 | } | 212 | } |
221 | 213 | ||
222 | void iounmap(void __iomem *addr) | 214 | void iounmap(void __iomem *addr) |
223 | { | 215 | { |
224 | #ifdef CONFIG_HPPA_IOREMAP | ||
225 | if (addr > high_memory) | 216 | if (addr > high_memory) |
226 | return vfree((void *) (PAGE_MASK & (unsigned long __force) addr)); | 217 | return vfree((void *) (PAGE_MASK & (unsigned long __force) addr)); |
227 | #else | ||
228 | return; | ||
229 | #endif | ||
230 | } | 218 | } |