irqchip: sun4i: Don't ack IRQs > 0, fix acking of IRQ 0
authorHans de Goede <hdegoede@redhat.com>
Thu, 13 Mar 2014 18:03:54 +0000 (19:03 +0100)
committerThomas Gleixner <tglx@linutronix.de>
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 <hdegoede@redhat.com>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-sunxi@googlegroups.com
Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
Link: http://lkml.kernel.org/r/1394733834-26839-5-git-send-email-hdegoede@redhat.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
drivers/irqchip/irq-sun4i.c