[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <472oclxowztq4zfvtqjdrn4whe2hpcecgmgmsrkw2gwfuvac7r@xrgouxxp3qva>
Date: Sat, 20 Sep 2025 21:21:12 +0530
From: Manivannan Sadhasivam <mani@...nel.org>
To: Ravi Kumar Bandi <ravib@...zon.com>,
Thippeswamy Havalige <thippeswamy.havalige@....com>
Cc: lpieralisi@...nel.org, bhelgaas@...gle.com, linux-pci@...r.kernel.org,
kwilczynski@...nel.org, robh@...nel.org, michal.simek@....com,
linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] PCI: xilinx-xdma: Enable legacy interrupts
On Fri, Sep 19, 2025 at 11:13:30PM +0000, Ravi Kumar Bandi wrote:
+ Thippeswamy (author or 8d786149d78c)
> Starting with kernel 6.6.0, legacy interrupts from PCIe endpoints
> do not flow through the Xilinx XDMA root port bridge because
> interrupts are not enabled after initializing the port.
>
> This issue is seen after XDMA driver received support for QDMA and
> underwent relevant code restructuring of old xdma-pl driver to
> xilinx-dma-pl (ref commit: 8d786149d78c).
>
The above mentioned commmit added a new driver. So I don't see when the driver
restructuring happened.
> This patch re-enables legacy interrupts to use with PCIe endpoints
> with legacy interrupts.
s/legacy/INTx, here and everywhere.
> Tested the fix on a board with two endpoints
> generating legacy 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
> [...]
>
> Signed-off-by: Ravi Kumar Bandi <ravib@...zon.com>
Missing Fixes tag and you should CC stable list for backporting.
- Mani
> ---
> 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
>
--
மணிவண்ணன் சதாசிவம்
Powered by blists - more mailing lists