* Tony Lindgren [off-list ref] [190508 11:20]:
quoted hunk ↗ jump to hunk
--- a/drivers/gpio/gpio-omap.c
+++ b/drivers/gpio/gpio-omap.c
@@ -1279,7 +1279,14 @@ static void omap_gpio_idle(struct gpio_bank *bank, bool may_lose_context)
void __iomem *base = bank->base;
u32 nowake;
+ /*
+ * Save datain register to trigger edge interrupts on unidle for GPIOS
+ * that are not wake-up capable. Ignore any enabled_non_wakeup_gpios
+ * that may have just triggered as we're entering idle. Otherwise unidle
+ * will not notice them.
+ */
bank->saved_datain = readl_relaxed(base + bank->regs->datain);
+ bank->saved_datain |= bank->enabled_non_wakeup_gpios;
Oops, sorry this is not complete yet. We need to enable or clear
the possible pending interrupt in saved_datain based on the edge
interrupt polarity. I'll fix and resend.
Regards,
Tony
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel