From: Matthew Gerlach <matthew.gerlach@xxxxxxxxxxxxxxx> Add support for the device tree binding update. As part of converting the binding document from text to yaml, with schema validation, a device tree subnode was added to properly map legacy interrupts. Maintain backward compatibility with previous binding. Signed-off-by: Matthew Gerlach <matthew.gerlach@xxxxxxxxxxxxxxx> --- drivers/pci/controller/pcie-altera.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/pci/controller/pcie-altera.c b/drivers/pci/controller/pcie-altera.c index a9536dc4bf96..88511fa2f078 100644 --- a/drivers/pci/controller/pcie-altera.c +++ b/drivers/pci/controller/pcie-altera.c @@ -667,11 +667,20 @@ static void altera_pcie_isr(struct irq_desc *desc) static int altera_pcie_init_irq_domain(struct altera_pcie *pcie) { struct device *dev = &pcie->pdev->dev; - struct device_node *node = dev->of_node; + struct device_node *node, *child; /* Setup INTx */ + child = of_get_next_child(dev->of_node, NULL); + if (child) + node = child; + else + node = dev->of_node; + pcie->irq_domain = irq_domain_add_linear(node, PCI_NUM_INTX, - &intx_domain_ops, pcie); + &intx_domain_ops, pcie); + if (child) + of_node_put(child); + if (!pcie->irq_domain) { dev_err(dev, "Failed to get a INTx IRQ domain\n"); return -ENOMEM; -- 2.34.1