[PATCH] ARM: fix __io macro for PCMCIA

Paul Parsons lost.distance at yahoo.com
Wed Apr 4 07:05:05 EDT 2012


--- On Wed, 4/4/12, Rob Herring <robherring2 at gmail.com> wrote:
> With commit c334bc1 (ARM: make mach/io.h include optional),
> PCMCIA was
> broken as PCMCIA depends on __io() being just a cast. This
> needs a better
> fix with a fixed i/o address mapping, but for now we just
> restore things
> to the previous behavior.
> 
> Signed-off-by: Rob Herring <rob.herring at calxeda.com>
> Cc: Joachim Eastwood <joachim.eastwood at jotron.com>
> Cc: Paul Parsons <lost.distance at yahoo.com>
> ---
>  arch/arm/include/asm/io.h |    6 ++++--
>  1 files changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/arm/include/asm/io.h
> b/arch/arm/include/asm/io.h
> index df0ac0b..00262a4 100644
> --- a/arch/arm/include/asm/io.h
> +++ b/arch/arm/include/asm/io.h
> @@ -118,6 +118,8 @@ static inline void __iomem
> *__typesafe_io(unsigned long addr)
>   */
>  #ifdef CONFIG_NEED_MACH_IO_H
>  #include <mach/io.h>
> +#elif defined(CONFIG_PCCARD)
> +#define __io(a)       
> __typesafe_io(a)
>  #else
>  #define __io(a)        ({
> (void)(a); __typesafe_io(0); })
>  #endif
> @@ -134,9 +136,9 @@ static inline void __iomem
> *__typesafe_io(unsigned long addr)
>   * readb() et.al. on such platforms.
>   */
>  #ifndef IO_SPACE_LIMIT
> -#if defined(CONFIG_PCMCIA_SOC_COMMON) ||
> defined(CONFIG_PCMCIA_SOC_COMMON_MODULE)
> +#if defined(CONFIG_PCCARD)
>  #define IO_SPACE_LIMIT ((resource_size_t)0xffffffff)
> -#elif defined(CONFIG_PCI) || defined(CONFIG_ISA) ||
> defined(CONFIG_PCCARD)
> +#elif defined(CONFIG_PCI) || defined(CONFIG_ISA)
>  #define IO_SPACE_LIMIT ((resource_size_t)0xffff)
>  #else
>  #define IO_SPACE_LIMIT ((resource_size_t)0)
> -- 

This works for me on my hx4700 (PXA270) running linux-3.4-rc1.

Tested-by: Paul Parsons <lost.distance at yahoo.com>




More information about the linux-arm-kernel mailing list