On Sun, Jun 29, 2014 at 4:11 PM, Hans de Goede <hdego...@redhat.com> wrote:
> Some drivers use disable_irq / enable_irq and do the work clearing the source > in another thread instead of using a threaded interrupt handler. > > The irqchip used not having irq_disable and irq_enable callbacks in this case, > will lead to unnecessary spurious interrupts: > > On a disable_irq in a chip without a handller for this, the irq core will > remember the disable, but not actually call into the irqchip. With a level > triggered interrupt (where the source has not been cleared) this will lead > to an immediate retrigger, at which point the irq-core will mask the irq. > So having an irq_disable callback in the irqchip will save us the interrupt > firing a 2nd time for nothing. > > Drivers using disable / enable_irq like this, will call enable_irq when > they finally have cleared the interrupt source, without an enable_irq > callback, > this will turn into an unmask, at which point the irq will trigger immediately > because when it was originally acked the level was still high, so the ack was > a nop. > > Signed-off-by: Hans de Goede <hdego...@redhat.com> Patch applied with Maxime's ACK. Yours, Linus Walleij -- You received this message because you are subscribed to the Google Groups "linux-sunxi" group. To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.