projects
/
linux.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
da3b8dd
)
dmaengine: stm32-mdma: use dev_dbg on non-busy channel spurious it
author
Amelie Delaunay
<amelie.delaunay@foss.st.com>
Wed, 4 May 2022 15:53:22 +0000
(17:53 +0200)
committer
Vinod Koul
<vkoul@kernel.org>
Thu, 19 May 2022 17:51:28 +0000
(23:21 +0530)
If interrupt occurs while !chan->busy, it means channel has been disabled
between the raise of the interruption and the read of status and ien, so,
spurious interrupt can be silently discarded.
Signed-off-by: Amelie Delaunay <amelie.delaunay@foss.st.com>
Link:
https://lore.kernel.org/r/20220504155322.121431-4-amelie.delaunay@foss.st.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/stm32-mdma.c
patch
|
blob
|
history
diff --git
a/drivers/dma/stm32-mdma.c
b/drivers/dma/stm32-mdma.c
index a5cbfbbb93d1007450e6852cf7eaa285cfaf846d..caf0cce8f528acac8e91cffedd9e79d316e8a472 100644
(file)
--- a/
drivers/dma/stm32-mdma.c
+++ b/
drivers/dma/stm32-mdma.c
@@
-1345,9
+1345,12
@@
static irqreturn_t stm32_mdma_irq_handler(int irq, void *devid)
if (!(status & ien)) {
spin_unlock(&chan->vchan.lock);
- dev_warn(chan2dev(chan),
- "spurious it (status=0x%04x, ien=0x%04x)\n",
- status, ien);
+ if (chan->busy)
+ dev_warn(chan2dev(chan),
+ "spurious it (status=0x%04x, ien=0x%04x)\n", status, ien);
+ else
+ dev_dbg(chan2dev(chan),
+ "spurious it (status=0x%04x, ien=0x%04x)\n", status, ien);
return IRQ_NONE;
}