From b8ce0aadcdebbaf5ec013c57e2a0803060817bcc Mon Sep 17 00:00:00 2001 From: Helge Deller Date: Tue, 7 Mar 2006 14:12:13 -0700 Subject: [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 Signed-off-by: Kyle McMartin --- arch/parisc/mm/ioremap.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'arch/parisc/mm/ioremap.c') 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 } -- cgit v1.2.2 From 29ef8295327653ff09a56285c35213cd31fa54b3 Mon Sep 17 00:00:00 2001 From: Helge Deller Date: Thu, 23 Mar 2006 00:32:46 -0700 Subject: [PARISC] Enable ioremap functionality unconditionally Enable CONFIG_HPPA_IOREMAP by default and remove all now unnecessary code. Signed-off-by: Helge Deller Signed-off-by: Kyle McMartin --- arch/parisc/mm/ioremap.c | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) (limited to 'arch/parisc/mm/ioremap.c') 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, return 0; } -#ifdef CONFIG_HPPA_IOREMAP static int remap_area_pages(unsigned long address, unsigned long phys_addr, unsigned long size, unsigned long flags) @@ -114,7 +113,6 @@ remap_area_pages(unsigned long address, unsigned long phys_addr, return error; } -#endif /* CONFIG_HPPA_IOREMAP */ #ifdef CONFIG_DEBUG_IOREMAP static unsigned long last = 0; @@ -154,21 +152,16 @@ EXPORT_SYMBOL(__raw_bad_addr); */ void __iomem * __ioremap(unsigned long phys_addr, unsigned long size, unsigned long flags) { -#if !defined(CONFIG_HPPA_IOREMAP) +#ifdef CONFIG_EISA + #error FIXME. unsigned long end = phys_addr + size - 1; /* Support EISA addresses */ if ((phys_addr >= 0x00080000 && end < 0x000fffff) || (phys_addr >= 0x00500000 && end < 0x03bfffff)) { phys_addr |= 0xfc000000; } - -#ifdef CONFIG_DEBUG_IOREMAP - return (void __iomem *)(phys_addr - (0x1UL << NYBBLE_SHIFT)); -#else - return (void __iomem *)phys_addr; #endif -#else void *addr; struct vm_struct *area; unsigned long offset, last_addr; @@ -216,15 +209,10 @@ void __iomem * __ioremap(unsigned long phys_addr, unsigned long size, unsigned l } return (void __iomem *) (offset + (char *)addr); -#endif } void iounmap(void __iomem *addr) { -#ifdef CONFIG_HPPA_IOREMAP if (addr > high_memory) return vfree((void *) (PAGE_MASK & (unsigned long __force) addr)); -#else - return; -#endif } -- cgit v1.2.2 From cb4ab59cd6136f6ad6b3513054ac969fea02dfc6 Mon Sep 17 00:00:00 2001 From: Helge Deller Date: Thu, 23 Mar 2006 00:40:10 -0700 Subject: [PARISC] Temporary FIXME for ioremapping EISA regions Signed-off-by: Helge Deller Signed-off-by: Kyle McMartin --- arch/parisc/mm/ioremap.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'arch/parisc/mm/ioremap.c') diff --git a/arch/parisc/mm/ioremap.c b/arch/parisc/mm/ioremap.c index 5a22e1cab217..21a16747e56e 100644 --- a/arch/parisc/mm/ioremap.c +++ b/arch/parisc/mm/ioremap.c @@ -152,20 +152,21 @@ EXPORT_SYMBOL(__raw_bad_addr); */ void __iomem * __ioremap(unsigned long phys_addr, unsigned long size, unsigned long flags) { + void *addr; + struct vm_struct *area; + unsigned long offset, last_addr; + #ifdef CONFIG_EISA - #error FIXME. unsigned long end = phys_addr + size - 1; /* Support EISA addresses */ if ((phys_addr >= 0x00080000 && end < 0x000fffff) || (phys_addr >= 0x00500000 && end < 0x03bfffff)) { phys_addr |= 0xfc000000; +#warning "FIXME: EISA regions do not work yet..." + return NULL; /* XXX */ } #endif - void *addr; - struct vm_struct *area; - unsigned long offset, last_addr; - /* Don't allow wraparound or zero size */ last_addr = phys_addr + size - 1; if (!size || last_addr < phys_addr) -- cgit v1.2.2 From a41d3862dfd44a1b09a0f6243bb34773061fd9a2 Mon Sep 17 00:00:00 2001 From: Helge Deller Date: Thu, 23 Mar 2006 01:07:00 -0700 Subject: [PARISC] Remove obsolete CONFIG_DEBUG_IOREMAP Remove CONFIG_DEBUG_IOREMAP, it's now obsolete and won't work anyway. Remove it from lib/KConfig since it was only available on parisc. Signed-off-by: Helge Deller Signed-off-by: Kyle McMartin --- arch/parisc/mm/ioremap.c | 24 ------------------------ 1 file changed, 24 deletions(-) (limited to 'arch/parisc/mm/ioremap.c') diff --git a/arch/parisc/mm/ioremap.c b/arch/parisc/mm/ioremap.c index 21a16747e56e..a5967b7d3726 100644 --- a/arch/parisc/mm/ioremap.c +++ b/arch/parisc/mm/ioremap.c @@ -114,30 +114,6 @@ remap_area_pages(unsigned long address, unsigned long phys_addr, return error; } -#ifdef CONFIG_DEBUG_IOREMAP -static unsigned long last = 0; - -void gsc_bad_addr(unsigned long addr) -{ - if (time_after(jiffies, last + HZ*10)) { - printk("gsc_foo() called with bad address 0x%lx\n", addr); - dump_stack(); - last = jiffies; - } -} -EXPORT_SYMBOL(gsc_bad_addr); - -void __raw_bad_addr(const volatile void __iomem *addr) -{ - if (time_after(jiffies, last + HZ*10)) { - printk("__raw_foo() called with bad address 0x%p\n", addr); - dump_stack(); - last = jiffies; - } -} -EXPORT_SYMBOL(__raw_bad_addr); -#endif - /* * Generic mapping function (not visible outside): */ -- cgit v1.2.2 From 10267cdd0c2dee46a3f59d93fbfac7229d416dba Mon Sep 17 00:00:00 2001 From: Helge Deller Date: Sun, 26 Mar 2006 01:54:16 -0700 Subject: [PARISC] Fixup CONFIG_EISA a bit Fix up some ISA/EISA stuff. (Note: isa_ accessors have been removed from asm/io.h) Signed-off-by: Helge Deller Signed-off-by: Kyle McMartin --- arch/parisc/mm/ioremap.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'arch/parisc/mm/ioremap.c') diff --git a/arch/parisc/mm/ioremap.c b/arch/parisc/mm/ioremap.c index a5967b7d3726..5067ea90d91a 100644 --- a/arch/parisc/mm/ioremap.c +++ b/arch/parisc/mm/ioremap.c @@ -135,11 +135,9 @@ void __iomem * __ioremap(unsigned long phys_addr, unsigned long size, unsigned l #ifdef CONFIG_EISA unsigned long end = phys_addr + size - 1; /* Support EISA addresses */ - if ((phys_addr >= 0x00080000 && end < 0x000fffff) - || (phys_addr >= 0x00500000 && end < 0x03bfffff)) { - phys_addr |= 0xfc000000; -#warning "FIXME: EISA regions do not work yet..." - return NULL; /* XXX */ + if ((phys_addr >= 0x00080000 && end < 0x000fffff) || + (phys_addr >= 0x00500000 && end < 0x03bfffff)) { + phys_addr |= F_EXTEND(0xfc000000); } #endif -- cgit v1.2.2 From d345fd362b1a8b14cc2dacf6a10c28b1962759d3 Mon Sep 17 00:00:00 2001 From: Kyle McMartin Date: Wed, 29 Mar 2006 15:18:32 -0700 Subject: [PARISC] Move ioremap EXPORT_SYMBOL from parisc_ksyms.c Move ioremap/iounmap EXPORT_SYMBOL to ioremap.c where they belong. Signed-off-by: Kyle McMartin --- arch/parisc/mm/ioremap.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'arch/parisc/mm/ioremap.c') diff --git a/arch/parisc/mm/ioremap.c b/arch/parisc/mm/ioremap.c index 5067ea90d91a..0db12818d7bc 100644 --- a/arch/parisc/mm/ioremap.c +++ b/arch/parisc/mm/ioremap.c @@ -185,9 +185,11 @@ void __iomem * __ioremap(unsigned long phys_addr, unsigned long size, unsigned l return (void __iomem *) (offset + (char *)addr); } +EXPORT_SYMBOL(__ioremap); void iounmap(void __iomem *addr) { if (addr > high_memory) return vfree((void *) (PAGE_MASK & (unsigned long __force) addr)); } +EXPORT_SYMBOL(iounmap); -- cgit v1.2.2