mirror of https://gitee.com/openkylin/linux.git
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: Rob Herring <robh@kernel.org> Acked-by: Bjorn Helgaas <bhelgaas@google.com> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
This commit is contained in:
parent
61c08240a1
commit
c8d175883e
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue