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-gpio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html