On Fri, Jul 18, 2014 at 11:52 AM, Lars-Peter Clausen <[email protected]> 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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to