- 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>