From 2daab8ad4e4bbf0916dee599bc25fb83f13f2ca8 Mon Sep 17 00:00:00 2001 From: Paul Mundt Date: Thu, 12 Nov 2009 16:36:26 +0900 Subject: [PATCH] --- yaml --- r: 173489 b: refs/heads/master c: e9c58fc57b17bfa75c256fb4f45ce22de6626858 h: refs/heads/master i: 173487: c407041022a74c52b1d267e6bf81048402ae791a v: v3 --- [refs] | 2 +- trunk/arch/sh/include/asm/io.h | 12 +++--------- trunk/arch/sh/kernel/io_generic.c | 4 +++- trunk/arch/sh/kernel/machvec.c | 4 ++++ 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/[refs] b/[refs] index 5ecba79f9a0f..cfddb3f3b36f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: c4e708dc52b0e68d81a322ad11b280374685956e +refs/heads/master: e9c58fc57b17bfa75c256fb4f45ce22de6626858 diff --git a/trunk/arch/sh/include/asm/io.h b/trunk/arch/sh/include/asm/io.h index 0cf2a5708e26..512cd3e9d0ca 100644 --- a/trunk/arch/sh/include/asm/io.h +++ b/trunk/arch/sh/include/asm/io.h @@ -90,15 +90,11 @@ #define ctrl_outl __raw_writel #define ctrl_outq __raw_writeq +extern unsigned long generic_io_base; + static inline void ctrl_delay(void) { -#ifdef CONFIG_CPU_SH4 - __raw_readw(CCN_PVR); -#elif defined(P2SEG) - __raw_readw(P2SEG); -#else -#error "Need a dummy address for delay" -#endif + __raw_readw(generic_io_base); } #define __BUILD_MEMORY_STRING(bwlq, type) \ @@ -186,8 +182,6 @@ __BUILD_MEMORY_STRING(q, u64) #define IO_SPACE_LIMIT 0xffffffff -extern unsigned long generic_io_base; - /* * This function provides a method for the generic case where a * board-specific ioport_map simply needs to return the port + some diff --git a/trunk/arch/sh/kernel/io_generic.c b/trunk/arch/sh/kernel/io_generic.c index b8fa6524760a..e1e1dbd19557 100644 --- a/trunk/arch/sh/kernel/io_generic.c +++ b/trunk/arch/sh/kernel/io_generic.c @@ -24,7 +24,7 @@ #define dummy_read() #endif -unsigned long generic_io_base; +unsigned long generic_io_base = 0; u8 generic_inb(unsigned long port) { @@ -147,8 +147,10 @@ void generic_outsl(unsigned long port, const void *src, unsigned long count) void __iomem *generic_ioport_map(unsigned long addr, unsigned int size) { +#ifdef P1SEG if (PXSEG(addr) >= P1SEG) return (void __iomem *)addr; +#endif return (void __iomem *)(addr + generic_io_base); } diff --git a/trunk/arch/sh/kernel/machvec.c b/trunk/arch/sh/kernel/machvec.c index cbce639b108a..1652340ba3f2 100644 --- a/trunk/arch/sh/kernel/machvec.c +++ b/trunk/arch/sh/kernel/machvec.c @@ -135,5 +135,9 @@ void __init sh_mv_setup(void) if (!sh_mv.mv_nr_irqs) sh_mv.mv_nr_irqs = NR_IRQS; +#ifdef P2SEG __set_io_port_base(P2SEG); +#else + __set_io_port_base(0); +#endif }