Message ID | 1446162376-43419-6-git-send-email-jakeo@microsoft.com (mailing list archive) |
---|---|
State | New, archived |
Delegated to: | Bjorn Helgaas |
Headers | show |
On Fri, Oct 30, 2015 at 1:46 AM, <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. > +#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) { > + if (pci_fwnode(bus)) { Isn't it the same to if (!d && pci_fwnode(bus)) d = ... ? > + d = irq_find_matching_fwnode(pci_fwnode(bus), > + DOMAIN_BUS_PCI_MSI); > + } > + } > +#endif
PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBBbmR5IFNoZXZjaGVua28gW21h aWx0bzphbmR5LnNoZXZjaGVua29AZ21haWwuY29tXQ0KPiBTZW50OiBUaHVyc2RheSwgT2N0b2Jl ciAyOSwgMjAxNSA1OjI4IFBNDQo+IFRvOiBKYWtlIE9zaGlucyA8amFrZW9AbWljcm9zb2Z0LmNv bT4NCj4gQ2M6IEdyZWcgS3JvYWgtSGFydG1hbiA8Z3JlZ2toQGxpbnV4Zm91bmRhdGlvbi5vcmc+ OyBLWSBTcmluaXZhc2FuDQo+IDxreXNAbWljcm9zb2Z0LmNvbT47IGxpbnV4LWtlcm5lbEB2Z2Vy Lmtlcm5lbC5vcmc7DQo+IGRldmVsQGxpbnV4ZHJpdmVycHJvamVjdC5vcmc7IG9sYWZAYWVwZmxl LmRlOyBhcHdAY2Fub25pY2FsLmNvbTsgVml0YWx5DQo+IEt1em5ldHNvdiA8dmt1em5ldHNAcmVk aGF0LmNvbT47IHRnbHhAcmVkaGF0LmNvbTsgSGFpeWFuZyBaaGFuZw0KPiA8aGFpeWFuZ3pAbWlj cm9zb2Z0LmNvbT47IG1hcmMuenluZ2llckBhcm0uY29tOyBKaWFuZyBMaXUNCj4gPGppYW5nLmxp dUBsaW51eC5pbnRlbC5jb20+OyBCam9ybiBIZWxnYWFzIDxiaGVsZ2Fhc0Bnb29nbGUuY29tPjsg bGludXgtDQo+IHBjaUB2Z2VyLmtlcm5lbC5vcmcNCj4gU3ViamVjdDogUmU6IFtQQVRDSCB2NCA1 LzddIFBDSTogaXJxZG9tYWluOiBMb29rIHVwIElSUSBkb21haW4gYnkNCj4gZndub2RlX2hhbmRs ZQ0KPiANCj4gT24gRnJpLCBPY3QgMzAsIDIwMTUgYXQgMTo0NiBBTSwgIDxqYWtlb0BtaWNyb3Nv ZnQuY29tPiB3cm90ZToNCj4gPiBGcm9tOiBKYWtlIE9zaGlucyA8amFrZW9AbWljcm9zb2Z0LmNv bT4NCj4gPg0KPiA+IFRoaXMgcGF0Y2ggYWRkcyBhIHNlY29uZCB3YXkgb2YgZmluZGluZyBhbiBJ UlEgZG9tYWluIGFzc29jaWF0ZWQgd2l0aA0KPiA+IGEgcm9vdCBQQ0kgYnVzLiAgQWZ0ZXIgbG9v a2luZyB0byBzZWUgaWYgb25lIGNhbiBiZSBmb3VuZCB0aHJvdWdoDQo+ID4gdGhlIE9GIHRyZWUs IGl0IGF0dGVtcHRzIHRvIGxvb2sgdXAgdGhlIElSUSBkb21haW4gdGhyb3VnaCBhbg0KPiA+IGZ3 bm9kZV9oYW5kbGUgc3RvcmVkIGluIHRoZSBwY2lfc3lzZGF0YSBzdHJ1Y3QuDQo+IA0KPiANCj4g PiArI2lmZGVmIENPTkZJR19QQ0lfTVNJX0lSUV9ET01BSU4NCj4gPiArICAgICAgIC8qDQo+ID4g KyAgICAgICAgKiBJZiBubyBJUlEgZG9tYWluIHdhcyBmb3VuZCB2aWEgdGhlIE9GIHRyZWUsIHRy eSBsb29raW5nIGl0IHVwDQo+ID4gKyAgICAgICAgKiBkaXJlY3RseSB0aHJvdWdoIHRoZSBmd25v ZGVfaGFuZGxlLg0KPiA+ICsgICAgICAgICovDQo+ID4gKyAgICAgICBpZiAoIWQpIHsNCj4gPiAr ICAgICAgICAgICAgICAgaWYgKHBjaV9md25vZGUoYnVzKSkgew0KPiANCj4gSXNuJ3QgaXQgdGhl IHNhbWUgdG8NCj4gaWYgKCFkICYmIHBjaV9md25vZGUoYnVzKSkNCj4gIGQgPSAuLi4NCj4gDQoN ClRoYW5rcy4gIEknbGwgbWFrZSB0aGlzIGNoYW5nZSBhbmQgcmVzZW5kLg0KDQotLSBKYWtlIE9z aGlucw0K -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c index f441d1b..3d5d7d6 100644 --- a/drivers/pci/probe.c +++ b/drivers/pci/probe.c @@ -671,6 +671,19 @@ 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) { + if (pci_fwnode(bus)) { + d = irq_find_matching_fwnode(pci_fwnode(bus), + DOMAIN_BUS_PCI_MSI); + } + } +#endif + return d; }