On Fri, Jul 18, 2014 at 11:52 AM, Lars-Peter Clausen <lars@xxxxxxxxxx> wrote: > The Zynq GPIO interrupt handling code as two main issues: > 1) It does not support IRQF_ONESHOT interrupt since it uses handle_simple_irq() > for the interrupt handler. handle_simple_irq() does not do masking and unmasking > of the IRQ that is required for this chip to be able to support IRQF_ONESHOT > IRQs, causing the CPU to lock up in a interrupt storm if such a interrupt is > requested. > 2) Interrupts are acked after the primary interrupt handlers for all asserted > interrupts in a bank have been called. For edge triggered interrupt this is to > late and may cause a interrupt to be missed. For level triggered oneshot > interrupts this is to early and causes the interrupt handler to run twice per > interrupt. > > This patch addresses the issue by updating the driver to use the correct IRQ > chip handler functions that are appropriate for this kind of IRQ controller. This looks very thought-through. I will give Harini and Soren some days more to react before applying (unless patch 1/3 is required to apply this). I can fix up Varka's comment when applying, no need to resend for that feedback only. Yours, Linus Walleij -- 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