Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c8d17588 authored by Marc Zyngier's avatar Marc Zyngier
Browse files

PCI/MSI: Use of_msi_get_domain instead of open-coded "msi-parent" parsing



Now that we have a function that implements the complexity of the
"msi-parent" property parsing, switch to that.

Acked-by: default avatarRob Herring <robh@kernel.org>
Acked-by: default avatarBjorn Helgaas <bhelgaas@google.com>
Signed-off-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
parent 61c08240
Loading
Loading
Loading
Loading
+6 −7
Original line number Diff line number Diff line
@@ -13,6 +13,7 @@
#include <linux/kernel.h>
#include <linux/pci.h>
#include <linux/of.h>
#include <linux/of_irq.h>
#include <linux/of_pci.h>
#include "pci.h"

@@ -64,27 +65,25 @@ struct device_node * __weak pcibios_get_phb_of_node(struct pci_bus *bus)
struct irq_domain *pci_host_bridge_of_msi_domain(struct pci_bus *bus)
{
#ifdef CONFIG_IRQ_DOMAIN
	struct device_node *np;
	struct irq_domain *d;

	if (!bus->dev.of_node)
		return NULL;

	/* Start looking for a phandle to an MSI controller. */
	np = of_parse_phandle(bus->dev.of_node, "msi-parent", 0);
	d = of_msi_get_domain(&bus->dev, bus->dev.of_node, DOMAIN_BUS_PCI_MSI);
	if (d)
		return d;

	/*
	 * If we don't have an msi-parent property, look for a domain
	 * directly attached to the host bridge.
	 */
	if (!np)
		np = bus->dev.of_node;

	d = irq_find_matching_host(np, DOMAIN_BUS_PCI_MSI);
	d = irq_find_matching_host(bus->dev.of_node, DOMAIN_BUS_PCI_MSI);
	if (d)
		return d;

	return irq_find_host(np);
	return irq_find_host(bus->dev.of_node);
#else
	return NULL;
#endif