Skip to content

Commit 09fefb2

Browse files
floatiousbjorn-helgaas
authored andcommitted
PCI: dwc: Verify the single eDMA IRQ in dw_pcie_edma_irq_verify()
dw_pcie_edma_irq_verify() is supposed to verify the eDMA IRQs in devicetree by fetching them using either 'dma' or 'dmaX' IRQ names. Former is used when the platform uses a single IRQ for all eDMA channels and latter is used when the platform uses separate IRQ per channel. But currently, dw_pcie_edma_irq_verify() bails out early if edma::nr_irqs is 1, i.e., when a single IRQ is used. This gives an impression that the driver could work with any single IRQ in devicetree, not necessarily with name 'dma'. But dw_pcie_edma_irq_vector(), which actually requests the IRQ, does require the single IRQ to be named as 'dma'. So this creates inconsistency between dw_pcie_edma_irq_verify() and dw_pcie_edma_irq_vector(). Thus, to fix this inconsistency, make sure dw_pcie_edma_irq_verify() also verifies the single IRQ name by removing the bail out code. Signed-off-by: Niklas Cassel <[email protected]> [mani: reworded subject and description] Signed-off-by: Manivannan Sadhasivam <[email protected]> [bhelgaas: fix typos] Signed-off-by: Bjorn Helgaas <[email protected]> Link: https://patch.msgid.link/[email protected]
1 parent 8f5ae30 commit 09fefb2

File tree

1 file changed

+1
-3
lines changed

1 file changed

+1
-3
lines changed

drivers/pci/controller/dwc/pcie-designware.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1045,9 +1045,7 @@ static int dw_pcie_edma_irq_verify(struct dw_pcie *pci)
10451045
char name[15];
10461046
int ret;
10471047

1048-
if (pci->edma.nr_irqs == 1)
1049-
return 0;
1050-
else if (pci->edma.nr_irqs > 1)
1048+
if (pci->edma.nr_irqs > 1)
10511049
return pci->edma.nr_irqs != ch_cnt ? -EINVAL : 0;
10521050

10531051
ret = platform_get_irq_byname_optional(pdev, "dma");

0 commit comments

Comments
 (0)