-
David Brownell authored
Simplify and correct TWL4030 GPIO IRQ handling: - support mask() not just unmask() - use genirq handle_edge_irq() handler not custom hacks - let that handle (correct) accounting of chained IRQ counts - use the more efficient clear-on-read mechanism - don't misuse IRQ_LEVEL - remove some superfluous locking - locking fix: all irq_chip data needs spinlock protection Cleanups: - give the helper thread a more accurate name - don't name the NOP ack() method misleadingly - use generic_handle_irq(), not a manually unrolled version thereof - comment fixes Note that the previous IRQ dispatch code was somewhat confused. It seemed not to know that it was working with edge triggered interrupts, much less ones which could be transparently acked. (Also note that COR=1 doesn't enable Clear-On-Read for all modules; some are documented as using COR=0 for that. GPIO uses COR=1.) Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Tony Lindgren <tony@atomide.com>
f9ceca72