irqchip: sun4i: Don't ack IRQs > 0, fix acking of IRQ 0
authorHans de Goede <[email protected]>
Thu, 13 Mar 2014 18:03:54 +0000 (19:03 +0100)
committerThomas Gleixner <[email protected]>
Fri, 14 Mar 2014 12:43:33 +0000 (13:43 +0100)
commite9df9e221665d40928e25a02c2700ac12eda7270
tree02f1f48fc7a236291837007cf97cc99835beb4ae
parent649ff46e5e29868e915354ed1e9bebcf0faec3ae
irqchip: sun4i: Don't ack IRQs > 0, fix acking of IRQ 0

All IRQs except for IRQ 0 seem to not need acking, so drop acking for them.

The ENMI needs to have the ack done *after* clearing the interrupt source,
otherwise we will get a spurious interrupt for each real interrupt.

So use the new IRQCHIP_EOI_THREADED flag for this in combination with
handle_fasteoi_irq. This uses a separate irq_chip struct for IRQ 0,
since we only want this behavior for IRQ 0.

Signed-off-by: Hans de Goede <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: Maxime Ripard <[email protected]>
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Thomas Gleixner <[email protected]>
drivers/irqchip/irq-sun4i.c