[PATCH v2] pinctrl/at91: Fix lockup when IRQ on PIOC and PIOD occurs

Linus Walleij linus.walleij at linaro.org
Fri Apr 25 02:18:46 PDT 2014


On Thu, Apr 24, 2014 at 7:55 PM, Alexander Stein <alexanders83 at web.de> wrote:

> With commit 80cc3732 (pinctrl/at91: convert driver to use gpiolib irqchip)
> gpiochip_set_chained_irqchip is called for PIOC, PIOD and PIOE. The
> associated GPIO chip for the IRQ chip is overwritten each time, because
> they share the same hard IRQ line.
> Thus if an IRQ occurs on PIOC or PIOD, gpio_irq_handler will only check on
> PIOE (the assigned GPIO chip) where no event occured. Thus the IRQ will
> not be cleared, retriggering the ISR.
> Fix that (like done before) by only set the PIOC GPIO chip to the IRQ chip
> and walk the list in the irq handler.
>
> Signed-off-by: Alexander Stein <alexanders83 at web.de>
> ---
> Changes in v2:
> * Fix git SHA1 in commit message (used local one)
> * Switch to the next gpio_chip when walking the list

This v2 patch applied for next.

Yours,
Linus Walleij



More information about the linux-arm-kernel mailing list