summaryrefslogtreecommitdiffstats
path: root/drivers/gpio
diff options
context:
space:
mode:
authorGrant Likely <grant.likely@secretlab.ca>2012-05-19 00:50:01 +0200
committerGrant Likely <grant.likely@secretlab.ca>2012-05-19 00:50:01 +0200
commitadf11b62f3ef59b72f280df44f129e36091b242f (patch)
treea9165d05b06db4bdaa2402f6cd469195ff693119 /drivers/gpio
parentgpio: mpc8xxx: Prevent NULL pointer deref in demux handler (diff)
parentgpio/omap: (re)fix wakeups on level-triggered GPIOs (diff)
downloadlinux-adf11b62f3ef59b72f280df44f129e36091b242f.tar.xz
linux-adf11b62f3ef59b72f280df44f129e36091b242f.zip
Merge branch 'for_3.5/fixes/gpio-2' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap-pm into gpio/next
Diffstat (limited to 'drivers/gpio')
-rw-r--r--drivers/gpio/gpio-omap.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/gpio/gpio-omap.c b/drivers/gpio/gpio-omap.c
index 9b71f04538aa..c4ed1722734c 100644
--- a/drivers/gpio/gpio-omap.c
+++ b/drivers/gpio/gpio-omap.c
@@ -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;
@@ -1238,8 +1238,7 @@ static int omap_gpio_runtime_resume(struct device *dev)
if (bank->get_context_loss_count) {
context_lost_cnt_after =
bank->get_context_loss_count(bank->dev);
- if (context_lost_cnt_after != bank->context_loss_count ||
- !context_lost_cnt_after) {
+ if (context_lost_cnt_after != bank->context_loss_count) {
omap_gpio_restore_context(bank);
} else {
spin_unlock_irqrestore(&bank->lock, flags);