projects
/
linux.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
d1134d6
)
dmaengine: idxd: clear misc interrupt cause after read
author
Dave Jiang
<dave.jiang@intel.com>
Wed, 29 Jul 2020 15:57:26 +0000
(08:57 -0700)
committer
Vinod Koul
<vkoul@kernel.org>
Mon, 17 Aug 2020 05:19:11 +0000
(10:49 +0530)
Move the clearing of misc interrupt cause to immediately after reading the
register in order to allow the next interrupt to be asserted.
Suggested-by: Nikhil Rao <nikhil.rao@intel.com>
Signed-off-by: Dave Jiang <dave.jiang@intel.com>
Link:
https://lore.kernel.org/r/159603824665.28647.5344356370364397996.stgit@djiang5-desk3.ch.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/idxd/irq.c
patch
|
blob
|
history
diff --git
a/drivers/dma/idxd/irq.c
b/drivers/dma/idxd/irq.c
index b5142556cc4e8648867d0d8162e1f835916801d3..11ac0703b371bcbaeb3076b18e0ef829d756ad06 100644
(file)
--- a/
drivers/dma/idxd/irq.c
+++ b/
drivers/dma/idxd/irq.c
@@
-76,6
+76,7
@@
irqreturn_t idxd_misc_thread(int vec, void *data)
bool err = false;
cause = ioread32(idxd->reg_base + IDXD_INTCAUSE_OFFSET);
+ iowrite32(cause, idxd->reg_base + IDXD_INTCAUSE_OFFSET);
if (cause & IDXD_INTC_ERR) {
spin_lock_bh(&idxd->dev_lock);
@@
-133,7
+134,6
@@
irqreturn_t idxd_misc_thread(int vec, void *data)
dev_warn_once(dev, "Unexpected interrupt cause bits set: %#x\n",
val);
- iowrite32(cause, idxd->reg_base + IDXD_INTCAUSE_OFFSET);
if (!err)
goto out;