Skip to content

Commit

Permalink
PCI/MSI: Use of_msi_get_domain instead of open-coded "msi-parent" par…
Browse files Browse the repository at this point in the history
…sing

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>
  • Loading branch information
Marc Zyngier committed Oct 16, 2015
1 parent 61c0824 commit c8d1758
Showing 1 changed file with 6 additions and 7 deletions.
13 changes: 6 additions & 7 deletions drivers/pci/of.c
Original file line number Diff line number Diff line change
Expand Up @@ -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"

Expand Down Expand Up @@ -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
Expand Down

0 comments on commit c8d1758

Please sign in to comment.