[PATCH v2] PCI: xilinx-xdma: Enable INTx interrupts
Ravi Kumar Bandi
ravib at amazon.com
Sat Sep 20 15:52:32 PDT 2025
The pcie-xilinx-dma-pl driver does not enable INTx interrupts
after initializing the port, preventing INTx interrupts from
PCIe endpoints from flowing through the Xilinx XDMA root port
bridge. This issue affects kernel 6.6.0 and later versions.
This patch allows INTx interrupts generated by PCIe endpoints
to flow through the root port. Tested the fix on a board with
two endpoints generating INTx interrupts. Interrupts are
properly detected and serviced. The /proc/interrupts output
shows:
[...]
32: 320 0 pl_dma:RC-Event 16 Level 400000000.axi-pcie, azdrv
52: 470 0 pl_dma:RC-Event 16 Level 500000000.axi-pcie, azdrv
[...]
Changes since v1::
- Fixed commit message per reviewer's comments
Fixes: 8d786149d78c ("PCI: xilinx-xdma: Add Xilinx XDMA Root Port driver")
Cc: stable at vger.kernel.org
Signed-off-by: Ravi Kumar Bandi <ravib at amazon.com>
---
drivers/pci/controller/pcie-xilinx-dma-pl.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/pci/controller/pcie-xilinx-dma-pl.c b/drivers/pci/controller/pcie-xilinx-dma-pl.c
index b037c8f315e4..cc539292d10a 100644
--- a/drivers/pci/controller/pcie-xilinx-dma-pl.c
+++ b/drivers/pci/controller/pcie-xilinx-dma-pl.c
@@ -659,6 +659,12 @@ static int xilinx_pl_dma_pcie_setup_irq(struct pl_dma_pcie *port)
return err;
}
+ /* Enable interrupts */
+ pcie_write(port, XILINX_PCIE_DMA_IMR_ALL_MASK,
+ XILINX_PCIE_DMA_REG_IMR);
+ pcie_write(port, XILINX_PCIE_DMA_IDRN_MASK,
+ XILINX_PCIE_DMA_REG_IDRN_MASK);
+
return 0;
}
--
2.47.3
More information about the linux-arm-kernel
mailing list