Re: [RESEND PATCH] mfd: rk8xx-core: Fix interrupt processing order for power key button

From: Lee Jones
Date: Fri Feb 23 2024 - 11:19:51 EST


On Sat, 17 Feb 2024, Ondřej Jirman wrote:

> From: Ondrej Jirman <megi@xxxxxx>
>
> Process rise event last, to avoid stuck keys when multiple interrupts
> are coalesced. This can happen typically when resuming from suspend
> via power key press and holding the power button for a bit too short,
> so that RISE an FALL IRQ flags are set before any interrupt routine
> has a chance to run.
>
> Input subsystem will interpret it as holding down a power key for
> a long time, which leads to unintended initiation of shutdown UI
> on some OSes.
>
> Signed-off-by: Ondrej Jirman <megi@xxxxxx>
> ---
> Sorry, resent without the bogous patch series numbering.
>
> drivers/mfd/rk8xx-core.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/mfd/rk8xx-core.c b/drivers/mfd/rk8xx-core.c
> index b1ffc3b9e2be..e2261b68b844 100644
> --- a/drivers/mfd/rk8xx-core.c
> +++ b/drivers/mfd/rk8xx-core.c
> @@ -43,8 +43,8 @@ static struct resource rk806_pwrkey_resources[] = {
> };
>
> static const struct resource rk817_pwrkey_resources[] = {
> - DEFINE_RES_IRQ(RK817_IRQ_PWRON_RISE),
> DEFINE_RES_IRQ(RK817_IRQ_PWRON_FALL),
> + DEFINE_RES_IRQ(RK817_IRQ_PWRON_RISE),

FWIW, basing solutions on ordering like this is often fragile!

> };
>
> static const struct resource rk817_charger_resources[] = {
> --
> 2.43.0
>

--
Lee Jones [李琼斯]