Re: [PATCH V4 XDMA 2/2] dmaengine: xilinx: xdma: Add user logic interrupt support

From: Martin Tůma
Date: Tue Sep 27 2022 - 12:47:54 EST


On 27. 09. 22 18:28, Lizhi Hou wrote:

Okay, I got the point. How about changing request/remove APIs to enable/disable APIs as below

     xdma_enable_user_irq(struct platform_device *pdev, u32 user_irq_index, u32 *irq)

            user_irq_index: user logic interrupt wire index. (XDMA driver determines how system IRQs are mapped to DMA channels and user logic wires)

            irq: IRQ number returned for registering interrupt handler (request_irq()) or passing to existing platform driver.

    xdma_disable_user_irq(struct platform_device *pdev, u32 user_irq_index)

Does this make sense to you?


I think even the "irq" parameter in the enable function is surplus as the parent driver (the driver of the actual PCIe card) knows* what PCI irq he has to allocate without XDMA providing the number.

xdma_enable_user_irq(struct platform_device *pdev, u32 user_irq_index);
xdma_disable_user_irq(struct platform_device *pdev, u32 user_irq_index);

should be all that is needed.

M.

* something like:
pci_irq_vector((pdev), PCI_BAR_ID) + NUM_C2H_CHANNELS + NUM_H2C_CHANNELS
can be used from the PCIe driver