aboutsummaryrefslogtreecommitdiffstats
path: root/arch/parisc
diff options
context:
space:
mode:
Diffstat (limited to 'arch/parisc')
-rw-r--r--arch/parisc/Kconfig11
-rw-r--r--arch/parisc/mm/ioremap.c16
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
141config 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
152config SMP 141config 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
76static int 75static int
77remap_area_pages(unsigned long address, unsigned long phys_addr, 76remap_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
120static unsigned long last = 0; 118static unsigned long last = 0;
@@ -154,21 +152,16 @@ EXPORT_SYMBOL(__raw_bad_addr);
154 */ 152 */
155void __iomem * __ioremap(unsigned long phys_addr, unsigned long size, unsigned long flags) 153void __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
222void iounmap(void __iomem *addr) 214void 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}