* [PATCH] omap: gpio: fix incorrect matching of IRQ_TYPE_EDGE_BOTH
@ 2010-04-05 11:38 Janusz Krzysztofik
2010-04-22 23:58 ` [APPLIED] " Tony Lindgren
0 siblings, 1 reply; 2+ messages in thread
From: Janusz Krzysztofik @ 2010-04-05 11:38 UTC (permalink / raw)
To: linux-omap@vger.kernel.org; +Cc: Tony Lindgren, Greg Kroah-Hartman
Since IRQ_TYPE_EDGE_BOTH is defined as (IRQ_TYPE_EDGE_FALLING |
IRQ_TYPE_EDGE_RISING), testing against it with a bitwise AND also matches
both single-edge cases in addition to the intended both edges case. Fix it,
replacing with a more accurate expression.
Created and tested againts linux-2.6.34-rc3.
Applicable to 2.6.33-stable as well.
Signed-off-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
---
--- git/arch/arm/plat-omap/gpio.c.orig 2010-04-01 17:54:17.000000000 +0200
+++ git/arch/arm/plat-omap/gpio.c 2010-04-04 02:34:44.000000000 +0200
@@ -798,7 +798,7 @@ static int _set_gpio_triggering(struct g
case METHOD_MPUIO:
reg += OMAP_MPUIO_GPIO_INT_EDGE;
l = __raw_readl(reg);
- if (trigger & IRQ_TYPE_EDGE_BOTH)
+ if ((trigger & IRQ_TYPE_SENSE_MASK) == IRQ_TYPE_EDGE_BOTH)
bank->toggle_mask |= 1 << gpio;
if (trigger & IRQ_TYPE_EDGE_RISING)
l |= 1 << gpio;
@@ -812,7 +812,7 @@ static int _set_gpio_triggering(struct g
case METHOD_GPIO_1510:
reg += OMAP1510_GPIO_INT_CONTROL;
l = __raw_readl(reg);
- if (trigger & IRQ_TYPE_EDGE_BOTH)
+ if ((trigger & IRQ_TYPE_SENSE_MASK) == IRQ_TYPE_EDGE_BOTH)
bank->toggle_mask |= 1 << gpio;
if (trigger & IRQ_TYPE_EDGE_RISING)
l |= 1 << gpio;
@@ -846,7 +846,7 @@ static int _set_gpio_triggering(struct g
case METHOD_GPIO_7XX:
reg += OMAP7XX_GPIO_INT_CONTROL;
l = __raw_readl(reg);
- if (trigger & IRQ_TYPE_EDGE_BOTH)
+ if ((trigger & IRQ_TYPE_SENSE_MASK) == IRQ_TYPE_EDGE_BOTH)
bank->toggle_mask |= 1 << gpio;
if (trigger & IRQ_TYPE_EDGE_RISING)
l |= 1 << gpio;
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2010-04-22 23:58 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-04-05 11:38 [PATCH] omap: gpio: fix incorrect matching of IRQ_TYPE_EDGE_BOTH Janusz Krzysztofik
2010-04-22 23:58 ` [APPLIED] " Tony Lindgren
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.