mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-09 22:50:41 +00:00
gpio/omap: (re)fix wakeups on level-triggered GPIOs
commit 1b1287032 (gpio/omap: fix missing check in *_runtime_suspend()) broke wakeups on level-triggered GPIOs by adding the enabled non-wakeup GPIO check before the workaround that enables wakeups on level-triggered IRQs, effectively disabling that workaround. To fix, move the enabled non-wakeup GPIO check after the level-triggered IRQ workaround. Reported-by: Tony Lindgren <tony@atomide.com> Tested-by: Tony Lindgren <tony@atomide.com> Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Acked-by: Tarun Kanti DebBarma <tarun.kanti@ti.com> Tested-by: Tarun Kanti DebBarma <tarun.kanti@ti.com> Signed-off-by: Kevin Hilman <khilman@ti.com>
This commit is contained in:
parent
22770de11c
commit
b3c64bc30a
@ -1157,9 +1157,6 @@ static int omap_gpio_runtime_suspend(struct device *dev)
|
||||
|
||||
spin_lock_irqsave(&bank->lock, flags);
|
||||
|
||||
if (!bank->enabled_non_wakeup_gpios)
|
||||
goto update_gpio_context_count;
|
||||
|
||||
/*
|
||||
* Only edges can generate a wakeup event to the PRCM.
|
||||
*
|
||||
@ -1180,6 +1177,9 @@ static int omap_gpio_runtime_suspend(struct device *dev)
|
||||
__raw_writel(wake_hi | bank->context.risingdetect,
|
||||
bank->base + bank->regs->risingdetect);
|
||||
|
||||
if (!bank->enabled_non_wakeup_gpios)
|
||||
goto update_gpio_context_count;
|
||||
|
||||
if (bank->power_mode != OFF_MODE) {
|
||||
bank->power_mode = 0;
|
||||
goto update_gpio_context_count;
|
||||
|
Loading…
x
Reference in New Issue
Block a user