]> pilppa.com Git - linux-2.6-omap-h63xx.git/commit
twl4030-gpio irq simplification
authorDavid Brownell <dbrownell@users.sourceforge.net>
Mon, 6 Oct 2008 07:41:32 +0000 (00:41 -0700)
committerTony Lindgren <tony@atomide.com>
Tue, 7 Oct 2008 09:03:18 +0000 (12:03 +0300)
commitf9ceca72acc061166df583e85deed5dfc1f0d86d
tree83bb1c05ad0b081659183b10555a83523ef2b4dd
parent83f474a268ce0a5c704ed26a6e78096837b9046f
twl4030-gpio irq simplification

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>
drivers/gpio/twl4030-gpio.c