aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpio/gpio-omap.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpio/gpio-omap.c')
-rw-r--r--drivers/gpio/gpio-omap.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/gpio/gpio-omap.c b/drivers/gpio/gpio-omap.c
index 6a9bca6..561cb4f 100644
--- a/drivers/gpio/gpio-omap.c
+++ b/drivers/gpio/gpio-omap.c
@@ -1398,6 +1398,8 @@ static int omap_gpio_pm_runtime_resume(struct device *dev)
struct gpio_bank *bank = platform_get_drvdata(pdev);
u32 l = 0, gen, gen0, gen1;
int j;
+ unsigned long pad_wakeup;
+ int i;
for (j = 0; j < hweight_long(bank->dbck_enable_mask); j++)
clk_enable(bank->dbck);
@@ -1421,6 +1423,11 @@ static int omap_gpio_pm_runtime_resume(struct device *dev)
l ^= bank->saved_datain;
l &= bank->enabled_non_wakeup_gpios;
+ pad_wakeup = bank->enabled_non_wakeup_gpios;
+ for_each_set_bit(i, &pad_wakeup, bank->width)
+ if (omap_mux_get_wakeupevent(bank->mux[i]))
+ l |= BIT(i);
+
/*
* No need to generate IRQs for the rising edge for gpio IRQs
* configured with falling edge only; and vice versa.