From c04957d2fc45af6f637cb21b21a15e05aa8bddfc Mon Sep 17 00:00:00 2001 From: Tsz Shan Chan Date: Wed, 5 Aug 2026 15:55:15 +1000 Subject: [PATCH] pinctrl: sx150x: Return IRQ_NONE if no pending irq The driver currently reads the interrupt source register, writes the value back to clear it, and always returns IRQ_HANDLED. When the IRQ is shared, the handler should not claim interrupts that are not from this device. Check for zero interrupt source first. It no interrupt is pending, return IRQ_NONE and skip the register write. Signed-off-by: Tsz Shan Chan Signed-off-by: Linus Walleij --- drivers/pinctrl/pinctrl-sx150x.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/pinctrl/pinctrl-sx150x.c b/drivers/pinctrl/pinctrl-sx150x.c index 89fdfa96843f..3c1309e8a844 100644 --- a/drivers/pinctrl/pinctrl-sx150x.c +++ b/drivers/pinctrl/pinctrl-sx150x.c @@ -550,6 +550,9 @@ static irqreturn_t sx150x_irq_thread_fn(int irq, void *dev_id) if (err < 0) return IRQ_NONE; + if (!val) + return IRQ_NONE; + err = regmap_write(pctl->regmap, pctl->data->reg_irq_src, val); if (err < 0) return IRQ_NONE;