diff options
Diffstat (limited to 'drivers/gpio')
-rw-r--r-- | drivers/gpio/gpio-omap.c | 7 |
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. |