aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-parisc
diff options
context:
space:
mode:
authorHelge Deller <deller@parisc-linux.org>2006-03-07 16:12:13 -0500
committerKyle McMartin <kyle@hera.kernel.org>2006-03-30 12:48:46 -0500
commitb8ce0aadcdebbaf5ec013c57e2a0803060817bcc (patch)
treec910b16935911a5cfaee98b5e6040fe6e1918fd9 /include/asm-parisc
parentb31059f7634931a06f6811247ae9217d1a833a46 (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.h16
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
34extern void gsc_bad_addr(unsigned long addr); 30extern void gsc_bad_addr(unsigned long addr);
35extern void __raw_bad_addr(const volatile void __iomem *addr); 31extern 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)
181extern void iounmap(void __iomem *addr); 177extern 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
191static inline unsigned char __raw_readb(const volatile void __iomem *addr) 185static 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 */
225static inline unsigned char __raw_readb(const volatile void __iomem *addr) 219static 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)