From: Tarun Kanti DebBarma Date: Wed, 29 Feb 2012 16:19:21 +0000 (+0530) Subject: gpio/omap: fix wakeup_en register update in _set_gpio_wakeup() X-Git-Tag: v3.4-rc1~65^2~2^2~6 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=381a752f291763bd6971521fa44c76ad9e937f7b;p=karo-tx-linux.git gpio/omap: fix wakeup_en register update in _set_gpio_wakeup() There are two ways through which wakeup_en register can be programmed using gpiolib APIs as shown below. It is seen that in the second case in _set_gpio_wakeup(), even though bank->suspend_wakeup is updated correctly, its value is not programmed in wakeup_en register. Fix this. irq_set_type()->gpio_irq_type()->_set_gpio_triggering()->set_gpio_trigger() irq_set_wake()->gpio_wake_enable()->_set_gpio_wakeup() Signed-off-by: Tarun Kanti DebBarma Reviewed-by: Kevin Hilman Signed-off-by: Kevin Hilman --- diff --git a/drivers/gpio/gpio-omap.c b/drivers/gpio/gpio-omap.c index 7cbad8569268..1a144ac3b34e 100644 --- a/drivers/gpio/gpio-omap.c +++ b/drivers/gpio/gpio-omap.c @@ -511,6 +511,7 @@ static int _set_gpio_wakeup(struct gpio_bank *bank, int gpio, int enable) else bank->suspend_wakeup &= ~gpio_bit; + __raw_writel(bank->suspend_wakeup, bank->base + bank->regs->wkup_en); spin_unlock_irqrestore(&bank->lock, flags); return 0;