Re: 2.6.33-rc3 regression: leds_alix2: can't allocate I/O for GPIO

From: Arnd Hannemann
Date: Thu Jan 07 2010 - 09:00:46 EST


Hi,

Daniel Mack schrieb:
> On Thu, Jan 07, 2010 at 01:11:31PM +0100, Arnd Hannemann wrote:
>> Arnd Hannemann schrieb:
>>> Richard Purdie schrieb:
>>>> On Thu, 2010-01-07 at 11:26 +0100, Arnd Hannemann wrote:
>>>>> with 2.6.33-rc3 the LEDs are not working anymore on my Geode embedded board:
>>>>> If I remember correctly this was working fine with 2.6.32, but certainly with 2.6.31
>>>>>
>>>>> relevant dmesg output of 2.6.33-rc3:
>>>>>
>>>>> [ 0.709643] cs5535_gpio: base=0x6100 mask=0xb003c66 major=253
>>>>>
>>>>> [ 2.207947] leds_alix2: system is recognized as "PC Engines ALIX.2 v0.99h"
>>>>> [ 2.228678] leds_alix2: can't allocate I/O for GPIO
>>>>>
>>>>>
>>>>> For reference dmesg of 2.6.31.3:
>>>>>
>>>>> [ 0.611953] cs5535_gpio: base=0x6100 mask=0xb003c66 major=253
>>>>>
>>>>> [ 2.379114] leds_alix2: system is recognized as "PC Engines ALIX.2"
>>>>> [ 2.399097] Registered led device: alix:1
>>>>> [ 2.411404] Registered led device: alix:2
>>>>> [ 2.423720] Registered led device: alix:3
>>>> Its likely to be commit 7f131cf3ed96c969d7b092bf629e25c3df50901e. It
>>>> looks like the request_region() call is failing. Daniel, any idea why?
>>> Some additional debug information:
>>>
>>> elara:~# rdmsr 0x5140000C
>>> f00100006100
>>>
>>> /proc/ioports says:
>>> 6100-61ff : 0000:00:0f.0
>>> 6100-61ff : cs5535_gpio
>>>
>>> BTW: why is request_region() needed there after all?
>> Oh, maybe using cs5535_gpio AND leds_alix2 together was never supposed to work?
>
> That is the problem indeed. The problem is that three of these GPIOs are
> connected to LEDs, so if both drivers are enabled, they will both alter
> the same GPIOs. Hmm, don't know how to handle this. Maybe the LED driver
> should use the GPIO interface and that's it?

I'm not sure that this configuration needs to be supported at all,
so disallowing that both drivers are configured via Kconfig could be a simple solution.

If I understand correctly, for off-the-shelf ALIX2 boards, beside the LEDs,
there is only one other GPIO pin being usable (the "mode switch"), anyway.

Best regards,
Arnd

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/