diff options
author | Helge Deller <deller@parisc-linux.org> | 2006-03-07 14:12:13 -0700 |
---|---|---|
committer | Kyle McMartin <kyle@hera.kernel.org> | 2006-03-30 17:48:46 +0000 |
commit | b8ce0aadcdebbaf5ec013c57e2a0803060817bcc (patch) | |
tree | c910b16935911a5cfaee98b5e6040fe6e1918fd9 /arch/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 'arch/parisc')
-rw-r--r-- | arch/parisc/Kconfig | 11 | ||||
-rw-r--r-- | arch/parisc/mm/ioremap.c | 13 |
2 files changed, 17 insertions, 7 deletions
diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig index 6b3c50964ca9..fc5755d1db57 100644 --- a/arch/parisc/Kconfig +++ b/arch/parisc/Kconfig @@ -138,6 +138,17 @@ config 64BIT enable this option otherwise. The 64bit kernel is significantly bigger and slower than the 32bit one. +config HPPA_IOREMAP + bool "Enable IOREMAP functionality (EXPERIMENTAL)" + depends on EXPERIMENTAL + default n + help + Enable this option if you want to enable real IOREMAPPING on PA-RISC. + Currently we just "simulate" I/O remapping, and enabling this option + will just crash your machine. + + Say N here, unless you are a real PA-RISC Linux kernel hacker. + config SMP bool "Symmetric multi-processing support" ---help--- diff --git a/arch/parisc/mm/ioremap.c b/arch/parisc/mm/ioremap.c index edd9a9559cba..028772144191 100644 --- a/arch/parisc/mm/ioremap.c +++ b/arch/parisc/mm/ioremap.c @@ -72,7 +72,7 @@ remap_area_pmd(pmd_t *pmd, unsigned long address, unsigned long size, return 0; } -#if USE_HPPA_IOREMAP +#ifdef CONFIG_HPPA_IOREMAP static int remap_area_pages(unsigned long address, unsigned long phys_addr, unsigned long size, unsigned long flags) @@ -114,7 +114,7 @@ remap_area_pages(unsigned long address, unsigned long phys_addr, return error; } -#endif /* USE_HPPA_IOREMAP */ +#endif /* CONFIG_HPPA_IOREMAP */ #ifdef CONFIG_DEBUG_IOREMAP static unsigned long last = 0; @@ -154,8 +154,7 @@ EXPORT_SYMBOL(__raw_bad_addr); */ void __iomem * __ioremap(unsigned long phys_addr, unsigned long size, unsigned long flags) { -#if !(USE_HPPA_IOREMAP) - +#if !defined(CONFIG_HPPA_IOREMAP) unsigned long end = phys_addr + size - 1; /* Support EISA addresses */ if ((phys_addr >= 0x00080000 && end < 0x000fffff) @@ -222,10 +221,10 @@ void __iomem * __ioremap(unsigned long phys_addr, unsigned long size, unsigned l void iounmap(void __iomem *addr) { -#if !(USE_HPPA_IOREMAP) - return; -#else +#ifdef CONFIG_HPPA_IOREMAP if (addr > high_memory) return vfree((void *) (PAGE_MASK & (unsigned long __force) addr)); +#else + return; #endif } |