diff options
author | Helge Deller <deller@parisc-linux.org> | 2006-03-07 16:12:13 -0500 |
---|---|---|
committer | Kyle McMartin <kyle@hera.kernel.org> | 2006-03-30 12:48:46 -0500 |
commit | b8ce0aadcdebbaf5ec013c57e2a0803060817bcc (patch) | |
tree | c910b16935911a5cfaee98b5e6040fe6e1918fd9 /include/asm-parisc | |
parent | b31059f7634931a06f6811247ae9217d1a833a46 (diff) |
[PARISC] Add CONFIG_HPPA_IOREMAP to conditionally enable ioremap
Instead of making it a #define in asm/io.h, allow user to select
to turn on IOREMAP from the config menu.
Signed-off-by: Helge Deller <deller@parisc-linux.org>
Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
Diffstat (limited to 'include/asm-parisc')
-rw-r--r-- | include/asm-parisc/io.h | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/include/asm-parisc/io.h b/include/asm-parisc/io.h index be0c7234a6da..2fb253255102 100644 --- a/include/asm-parisc/io.h +++ b/include/asm-parisc/io.h | |||
@@ -26,11 +26,7 @@ extern unsigned long parisc_vmerge_max_size; | |||
26 | */ | 26 | */ |
27 | 27 | ||
28 | #ifdef CONFIG_DEBUG_IOREMAP | 28 | #ifdef CONFIG_DEBUG_IOREMAP |
29 | #ifdef CONFIG_64BIT | 29 | #define NYBBLE_SHIFT (BITS_PER_LONG - 4) |
30 | #define NYBBLE_SHIFT 60 | ||
31 | #else | ||
32 | #define NYBBLE_SHIFT 28 | ||
33 | #endif | ||
34 | extern void gsc_bad_addr(unsigned long addr); | 30 | extern void gsc_bad_addr(unsigned long addr); |
35 | extern void __raw_bad_addr(const volatile void __iomem *addr); | 31 | extern void __raw_bad_addr(const volatile void __iomem *addr); |
36 | #define gsc_check_addr(addr) \ | 32 | #define gsc_check_addr(addr) \ |
@@ -181,13 +177,11 @@ extern inline void * ioremap_nocache(unsigned long offset, unsigned long size) | |||
181 | extern void iounmap(void __iomem *addr); | 177 | extern void iounmap(void __iomem *addr); |
182 | 178 | ||
183 | /* | 179 | /* |
184 | * USE_HPPA_IOREMAP is the magic flag to enable or disable real ioremap() | 180 | * CONFIG_HPPA_IOREMAP is the magic flag to enable or disable real ioremap() |
185 | * functionality. It's currently disabled because it may not work on some | 181 | * functionality. It's currently disabled because it may not work on some |
186 | * machines. | 182 | * machines. |
187 | */ | 183 | */ |
188 | #define USE_HPPA_IOREMAP 0 | 184 | #ifdef CONFIG_HPPA_IOREMAP |
189 | |||
190 | #if USE_HPPA_IOREMAP | ||
191 | static inline unsigned char __raw_readb(const volatile void __iomem *addr) | 185 | static inline unsigned char __raw_readb(const volatile void __iomem *addr) |
192 | { | 186 | { |
193 | return (*(volatile unsigned char __force *) (addr)); | 187 | return (*(volatile unsigned char __force *) (addr)); |
@@ -221,7 +215,7 @@ static inline void __raw_writeq(unsigned long long b, volatile void __iomem *add | |||
221 | { | 215 | { |
222 | *(volatile unsigned long long __force *) addr = b; | 216 | *(volatile unsigned long long __force *) addr = b; |
223 | } | 217 | } |
224 | #else /* !USE_HPPA_IOREMAP */ | 218 | #else /* !CONFIG_HPPA_IOREMAP */ |
225 | static inline unsigned char __raw_readb(const volatile void __iomem *addr) | 219 | static inline unsigned char __raw_readb(const volatile void __iomem *addr) |
226 | { | 220 | { |
227 | __raw_check_addr(addr); | 221 | __raw_check_addr(addr); |
@@ -271,7 +265,7 @@ static inline void __raw_writeq(unsigned long long b, volatile void __iomem *add | |||
271 | 265 | ||
272 | gsc_writeq(b, (unsigned long) addr); | 266 | gsc_writeq(b, (unsigned long) addr); |
273 | } | 267 | } |
274 | #endif /* !USE_HPPA_IOREMAP */ | 268 | #endif /* !CONFIG_HPPA_IOREMAP */ |
275 | 269 | ||
276 | /* readb can never be const, so use __fswab instead of le*_to_cpu */ | 270 | /* readb can never be const, so use __fswab instead of le*_to_cpu */ |
277 | #define readb(addr) __raw_readb(addr) | 271 | #define readb(addr) __raw_readb(addr) |