Re: [PATCH 2/2] pinctrl: sirf: switch driver to use gpiolib irqchip helpers

From: Barry Song
Date: Thu Apr 10 2014 - 05:31:23 EST


2014-04-10 11:48 GMT+08:00 Barry Song <baohua@xxxxxxxxxx>:
> 2014-04-08 20:27 GMT+08:00 Linus Walleij <linus.walleij@xxxxxxxxxx>:
>> This switches the Sirf pinctrl driver over to using the gpiolib
>> irqchip helpers simplifying some of the code.
>>
>> Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
>> ---
>> This really needs testing on real hardware before I dare to
>> merge it, but the driver seems simple and straight-forward to
>> convert.
>
> Linus, this broke the irq/gpio mapping. for example:
>
> without this:
> # cat /proc/interrupts
> CPU0
> 16: 181 irq_sirfsoc 0 sirfsoc_timer0
> ...
> 62: 0 sirf-gpio-irq 45 extcon-gpio
> ...
>
> with this:
> # cat /proc/interrupts
> CPU0
> 16: 944 irq_sirfsoc 0 sirfsoc_timer0
> ...
> 105: 0 sirf-gpio-irq 13 extcon-gpio
> ...
>
> i will do a debug to find why. any idea from you?

hi linus, after reading the source codes of GPIOLIB_IRQCHIP, i think
the new irq number after applying your patch should not be a problem.
the reason is that you create irq mapping earlier in
gpiochip_irqchip_add(), but the old codes did it later on demand in
sirfsoc_gpio_to_irq().

the real problem here is that we have several gpio banks, but there is
only one device node, so i think this should be not good and will make
the gpiochip_irq_reqres(), gpiochip_irq_relres() fail since
sub-devices can only point its interrupt parent to the only gpio node,
this makes hwirq bigger than the size of the gpio bank.

so will you wait for me to send a patch to merge all banks into one
gpio_chip just as i have done by commit
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=8daeffb058f78deb0b0ef2cb67ef741c38788bf9
to merge irq_domain?

then i think your patch will work. thank you!

-barry
--
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/