diff options
author | Uwe Kleine-König <u.kleine-koenig@pengutronix.de> | 2009-10-19 16:19:28 -0400 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2009-11-14 04:29:15 -0500 |
commit | 060d20d32ae7c6a20a8eac465795ed5bc9b37f7c (patch) | |
tree | e4525571e291da8c499b82327a98ff8e80f3e096 /arch/arm/plat-mxc | |
parent | f4f8bda2321d5ecbfeef878a50c996e3a32a75e6 (diff) |
imx/gpio: Use handle_level_irq
According to Russell King handle_edge_irq is only useful for "edge-based
inputs where the controller does not remember transitions with the input
masked."
So using handle_edge_irq unconditionally for both edge and level irqs is
wrong. Testing showed that the controller does remember transitions
while the interrupt is masked. So use handle_level_irq unconditionally.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Cc: Russell King <rmk@arm.linux.org.uk>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm/plat-mxc')
-rw-r--r-- | arch/arm/plat-mxc/gpio.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/arm/plat-mxc/gpio.c b/arch/arm/plat-mxc/gpio.c index cfc4a8b43e6a..d65ebe303b9f 100644 --- a/arch/arm/plat-mxc/gpio.c +++ b/arch/arm/plat-mxc/gpio.c | |||
@@ -282,7 +282,7 @@ int __init mxc_gpio_init(struct mxc_gpio_port *port, int cnt) | |||
282 | for (j = port[i].virtual_irq_start; | 282 | for (j = port[i].virtual_irq_start; |
283 | j < port[i].virtual_irq_start + 32; j++) { | 283 | j < port[i].virtual_irq_start + 32; j++) { |
284 | set_irq_chip(j, &gpio_irq_chip); | 284 | set_irq_chip(j, &gpio_irq_chip); |
285 | set_irq_handler(j, handle_edge_irq); | 285 | set_irq_handler(j, handle_level_irq); |
286 | set_irq_flags(j, IRQF_VALID); | 286 | set_irq_flags(j, IRQF_VALID); |
287 | } | 287 | } |
288 | 288 | ||