dmaengine: idxd: move idxd interrupt handling to mask instead of ignore
authorDave Jiang <dave.jiang@intel.com>
Fri, 26 Jun 2020 18:12:56 +0000 (11:12 -0700)
committerVinod Koul <vkoul@kernel.org>
Mon, 13 Jul 2020 09:18:02 +0000 (14:48 +0530)
commit4548a6ad3d50c398aa12fa3ad45dd0611328f13b
treec3cc9d9f57620eb52ba2cf9f5b0a9618b46ba457
parent0d5c10b4c84d6ae6255129e5f16a0d2119c74334
dmaengine: idxd: move idxd interrupt handling to mask instead of ignore

Switch driver to use MSIX mask and unmask instead of the ignore bit.
When ignore bit is cleared, we must issue an MMIO read to ensure writes
have all arrived and check and process any additional completions. The
ignore bit does not queue up any pending MSIX interrupts. The mask bit
however does. Use API call from interrupt subsystem to mask MSIX
interrupt since the hardware does not have convenient mask bit register.

Suggested-by: Ashok Raj <ashok.raj@intel.com>
Signed-off-by: Dave Jiang <dave.jiang@intel.com>
Link: https://lore.kernel.org/r/159319517621.70410.11816465052708900506.stgit@djiang5-desk3.ch.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/idxd/device.c
drivers/dma/idxd/idxd.h
drivers/dma/idxd/irq.c