diff options
author | Uwe Kleine-König <u.kleine-koenig@pengutronix.de> | 2010-02-05 16:14:37 -0500 |
---|---|---|
committer | Uwe Kleine-König <u.kleine-koenig@pengutronix.de> | 2010-02-24 04:06:56 -0500 |
commit | 3d40f7fef45c0173e98dcdad6a9d642127331c66 (patch) | |
tree | 4d5e06cce70da54e198a1bd96793825a2a937217 /arch/arm | |
parent | 4a50d00cb90dd5dd79e40281a8719a1fc673c2a5 (diff) |
arm/imx/gpio: GPIO_INT_{HIGH,LOW}_LEV are not necessarily constant
GPIO_INT_LOW_LEV is defined as
(cpu_is_mx1_mx2() ? 0x3 : 0x0)
so depending on compiler optimisation and enabled SoCs this doesn't
qualify as a constant expression as needed by a switch statement.
Ditto for GPIO_INT_HIGH_LEV.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/plat-mxc/gpio.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/arch/arm/plat-mxc/gpio.c b/arch/arm/plat-mxc/gpio.c index d65ebe303b9..3cba1dd9d85 100644 --- a/arch/arm/plat-mxc/gpio.c +++ b/arch/arm/plat-mxc/gpio.c | |||
@@ -140,16 +140,13 @@ static void mxc_flip_edge(struct mxc_gpio_port *port, u32 gpio) | |||
140 | val = __raw_readl(reg); | 140 | val = __raw_readl(reg); |
141 | edge = (val >> (bit << 1)) & 3; | 141 | edge = (val >> (bit << 1)) & 3; |
142 | val &= ~(0x3 << (bit << 1)); | 142 | val &= ~(0x3 << (bit << 1)); |
143 | switch (edge) { | 143 | if (edge == GPIO_INT_HIGH_LEV) { |
144 | case GPIO_INT_HIGH_LEV: | ||
145 | edge = GPIO_INT_LOW_LEV; | 144 | edge = GPIO_INT_LOW_LEV; |
146 | pr_debug("mxc: switch GPIO %d to low trigger\n", gpio); | 145 | pr_debug("mxc: switch GPIO %d to low trigger\n", gpio); |
147 | break; | 146 | } else if (edge == GPIO_INT_LOW_LEV) { |
148 | case GPIO_INT_LOW_LEV: | ||
149 | edge = GPIO_INT_HIGH_LEV; | 147 | edge = GPIO_INT_HIGH_LEV; |
150 | pr_debug("mxc: switch GPIO %d to high trigger\n", gpio); | 148 | pr_debug("mxc: switch GPIO %d to high trigger\n", gpio); |
151 | break; | 149 | } else { |
152 | default: | ||
153 | pr_err("mxc: invalid configuration for GPIO %d: %x\n", | 150 | pr_err("mxc: invalid configuration for GPIO %d: %x\n", |
154 | gpio, edge); | 151 | gpio, edge); |
155 | return; | 152 | return; |