From: Mika Westerberg Date: Wed, 29 Dec 2010 11:01:31 +0000 (+0200) Subject: OMAP: GPIO: fix _set_gpio_triggering() for OMAP2+ X-Git-Tag: v2.6.38-rc1~52^2~17 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f7c5cc456211da7d0b0aefd3886e57b313a0e00f;p=platform%2Fkernel%2Flinux-exynos.git OMAP: GPIO: fix _set_gpio_triggering() for OMAP2+ In case on OMAP2+ we call set_24xx_gpio_triggering() instead of updating reg and l values. However, at the end of the function we perform a write: __raw_writel(l, reg); So on OMAP2+ we end up writing 0 to the bank->base which is not correct (typically this points to GPIO_REVISION register). Fix this by returning immediately after call to set_24xx_gpio_triggering(). Signed-off-by: Mika Westerberg Signed-off-by: Kevin Hilman --- diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c index 1f98e0b..60631f2 100644 --- a/arch/arm/plat-omap/gpio.c +++ b/arch/arm/plat-omap/gpio.c @@ -718,7 +718,7 @@ static int _set_gpio_triggering(struct gpio_bank *bank, int gpio, int trigger) case METHOD_GPIO_24XX: case METHOD_GPIO_44XX: set_24xx_gpio_triggering(bank, gpio, trigger); - break; + return 0; #endif default: goto bad;