summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPei Xiao <xiaopei01@kylinos.cn>2026-07-10 15:21:13 +0800
committerAndi Shyti <andi.shyti@kernel.org>2026-07-14 17:38:13 +0200
commit9db20d23aac7916ff49be409a4bfd48fe7cbbfb4 (patch)
treef95f750f9349fea3d27cb3c9ed93ef03a07a0bfe
parent07fd9385f0d87dff4b34f355f68adf701080cb24 (diff)
downloadlinux-next-9db20d23aac7916ff49be409a4bfd48fe7cbbfb4.tar.gz
linux-next-9db20d23aac7916ff49be409a4bfd48fe7cbbfb4.zip
i2c: spacemit: fix spurious IRQ handling returning IRQ_HANDLED
When the interrupt status register reads zero, the handler should return IRQ_NONE instead of IRQ_HANDLED. What the return value actually feeds into is the spurious interrupt accounting in note_interrupt(): falsely claiming IRQ_HANDLED defeats the "irq XX: nobody cared" detection, so a stuck interrupt source would never be caught. Fixes: 5ea558473fa3 ("i2c: spacemit: add support for SpacemiT K1 SoC") Signed-off-by: Pei Xiao <xiaopei01@kylinos.cn> Cc: <stable@vger.kernel.org> # v6.15+ Reviewed-by: Troy Mitchell <troy.mitchell@linux.spacemit.com> Reviewed-by: Mukesh Savaliya <mukesh.savaliya@oss.qualcomm.com> Signed-off-by: Andi Shyti <andi.shyti@kernel.org> Link: https://lore.kernel.org/r/ef8b623f45d4e430721e46572c2598d882044aed.1783667875.git.xiaopei01@kylinos.cn
-rw-r--r--drivers/i2c/busses/i2c-k1.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/i2c/busses/i2c-k1.c b/drivers/i2c/busses/i2c-k1.c
index 9152cf436bea..51a0c3d80fc9 100644
--- a/drivers/i2c/busses/i2c-k1.c
+++ b/drivers/i2c/busses/i2c-k1.c
@@ -596,7 +596,7 @@ static irqreturn_t spacemit_i2c_irq_handler(int irq, void *devid)
status = readl(i2c->base + SPACEMIT_ISR);
if (!status)
- return IRQ_HANDLED;
+ return IRQ_NONE;
i2c->status = status;