On Wed, May 6, 2015 at 6:42 PM, Dmitry Eremin-Solenikov dbaryshkov@gmail.com wrote:
2015-05-06 17:15 GMT+03:00 Linus Walleij linus.walleij@linaro.org:
On Tue, Apr 28, 2015 at 1:55 AM, Dmitry Eremin-Solenikov dbaryshkov@gmail.com wrote:
LoCoMo has a possibility to generate per-GPIO edge irqs. Support for that was there in old locomo driver, got 'cleaned up' during old driver IRQ cascading cleanup and is now reimplemented. It is expected that SL-5500 (collie) will use locomo gpio irqs for mmc detection irq.
Signed-off-by: Dmitry Eremin-Solenikov dbaryshkov@gmail.com
Reviewed-by: Linus Walleij linus.walleij@linaro.org
Thanks for review of the patches.
Assume this will also go through MFD.
irq_set_chained_handler(lg->irq, NULL);
irq_set_handler_data(lg->irq, NULL);
Why is this needed? If the GPIOLIB_IRQCHIP code in gpiolib.c is not doing this then maybe it's the core code that needs fixing rather than having this in the driver.
I have skimmed through the rest of drivers using gpiochip_set_chained_irqchip(). Indeed none of the drivers NULL the chained handled and handler data. However I couldn't locate the code where they would be cleared.
Should I still send the patch fixing the GPIOLIB_IRQCHIP?
Yes I guess you need to save parent_irq in struct gpio_chip and remove it in gpiochip_irqchip_remove() if it's != 0.
Yours, Linus Walleij