[PATCH] ARM: fix __io macro for PCMCIA

Joachim Eastwood manabian at gmail.com
Wed Apr 4 08:49:52 EDT 2012


On Wed, Apr 4, 2012 at 2:45 PM, Rob Herring <robherring2 at gmail.com> wrote:
> On 04/04/2012 05:02 AM, Joachim Eastwood wrote:
>> On Wed, Apr 4, 2012 at 5:11 AM, Rob Herring <robherring2 at gmail.com> wrote:
>>> From: Rob Herring <rob.herring at calxeda.com>
>>>
>>> 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)
>>> --
>>> 1.7.5.4
>>
>> This doesn't work on my AT91RM9200 board. It still fails with the same
>> error as without this patch.
>>   [   80.500000] pata_pcmcia: probe of 0.0 failed with error -12
>>
>
> Are you building as a module? I need to add the module variant of the
> define.

That explains it I guess. Yes, I am building it as a module.

regards
Joachim Eastwood

> Otherwise, that doesn't make sense as this should be the same
> definitions as the at91 io.h header. Can you add some #warning lines to
> make sure you are picking up the correct definitions.
>
> Rob
>
>> regards
>> Joachim Eastwood
>>
>>> _______________________________________________
>>> linux-arm-kernel mailing list
>>> linux-arm-kernel at lists.infradead.org
>>> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>



More information about the linux-arm-kernel mailing list