Subject: Re: [PATCH] gpio: gpio-omap: Fix lost edge wake-up interrupts

From: Tony Lindgren <[email-masked]>
Date: Wed, 8 May 2019 13:40:15 -0700

* Tony Lindgren <[email-masked]> [190508 11:20]:
> --- 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
[email-masked]
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel