Message ID | 1449769983-12948-6-git-send-email-jakeo@microsoft.com (mailing list archive) |
---|---|
State | New, archived |
Delegated to: | Bjorn Helgaas |
Headers | show |
On 10/12/15 17:53, jakeo@microsoft.com wrote: > From: Jake Oshins <jakeo@microsoft.com> > > This patch adds a second way of finding an IRQ domain associated with > a root PCI bus. After looking to see if one can be found through > the OF tree, it attempts to look up the IRQ domain through an > fwnode_handle stored in the pci_sysdata struct. > > Signed-off-by: Jake Oshins <jakeo@microsoft.com> > --- > drivers/pci/probe.c | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > > diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c > index 750f907..c6369dd 100644 > --- a/drivers/pci/probe.c > +++ b/drivers/pci/probe.c > @@ -674,6 +674,20 @@ static struct irq_domain *pci_host_bridge_msi_domain(struct pci_bus *bus) > */ > d = pci_host_bridge_of_msi_domain(bus); > > +#ifdef CONFIG_PCI_MSI_IRQ_DOMAIN > + /* > + * If no IRQ domain was found via the OF tree, try looking it up > + * directly through the fwnode_handle. > + */ > + if (!d) { > + struct fwnode_handle *fwnode = pci_root_bus_fwnode(bus); > + > + if (fwnode) > + d = irq_find_matching_fwnode(fwnode, > + DOMAIN_BUS_PCI_MSI); > + } > +#endif > + > return d; > } > > Reviewed-by: Marc Zyngier <marc.zyngier@arm.com> M.
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c index 750f907..c6369dd 100644 --- a/drivers/pci/probe.c +++ b/drivers/pci/probe.c @@ -674,6 +674,20 @@ static struct irq_domain *pci_host_bridge_msi_domain(struct pci_bus *bus) */ d = pci_host_bridge_of_msi_domain(bus); +#ifdef CONFIG_PCI_MSI_IRQ_DOMAIN + /* + * If no IRQ domain was found via the OF tree, try looking it up + * directly through the fwnode_handle. + */ + if (!d) { + struct fwnode_handle *fwnode = pci_root_bus_fwnode(bus); + + if (fwnode) + d = irq_find_matching_fwnode(fwnode, + DOMAIN_BUS_PCI_MSI); + } +#endif + return d; }