Merge branch 'remotes/lorenzo/pci/hyper-v'
- Add domain_nr in struct pci_host_bridge (Boqun Feng) - Use host bridge MSI domain for root buses if present (Boqun Feng) - Allow ARM64 virtual host bridge with no ACPI companion (e.g., Hyper-V) (Boqun Feng) - Make Hyper-V enumeration more generic (Arnd Bergmann) - Set Hyper-V domain_nr at probe-time (Boqun Feng) - Set up Hyper-V MSI domain at bridge probe-time (Boqun Feng) - Enable Hyper-V bridge probing on ARM64 (Boqun Feng) * remotes/lorenzo/pci/hyper-v: PCI: hv: Turn on the host bridge probing on ARM64 PCI: hv: Set up MSI domain at bridge probing time PCI: hv: Set ->domain_nr of pci_host_bridge at probing time PCI: hv: Generify PCI probing arm64: PCI: Support root bridge preparation for Hyper-V arm64: PCI: Restructure pcibios_root_bridge_prepare() PCI: Support populating MSI domains of root buses via bridges PCI: Introduce domain_nr in pci_host_bridge
This commit is contained in:
@@ -595,6 +595,7 @@ static void pci_init_host_bridge(struct pci_host_bridge *bridge)
|
||||
bridge->native_pme = 1;
|
||||
bridge->native_ltr = 1;
|
||||
bridge->native_dpc = 1;
|
||||
bridge->domain_nr = PCI_DOMAIN_NR_NOT_SET;
|
||||
|
||||
device_initialize(&bridge->dev);
|
||||
}
|
||||
@@ -829,11 +830,15 @@ static struct irq_domain *pci_host_bridge_msi_domain(struct pci_bus *bus)
|
||||
{
|
||||
struct irq_domain *d;
|
||||
|
||||
/* If the host bridge driver sets a MSI domain of the bridge, use it */
|
||||
d = dev_get_msi_domain(bus->bridge);
|
||||
|
||||
/*
|
||||
* Any firmware interface that can resolve the msi_domain
|
||||
* should be called from here.
|
||||
*/
|
||||
d = pci_host_bridge_of_msi_domain(bus);
|
||||
if (!d)
|
||||
d = pci_host_bridge_of_msi_domain(bus);
|
||||
if (!d)
|
||||
d = pci_host_bridge_acpi_msi_domain(bus);
|
||||
|
||||
@@ -899,7 +904,10 @@ static int pci_register_host_bridge(struct pci_host_bridge *bridge)
|
||||
bus->ops = bridge->ops;
|
||||
bus->number = bus->busn_res.start = bridge->busnr;
|
||||
#ifdef CONFIG_PCI_DOMAINS_GENERIC
|
||||
bus->domain_nr = pci_bus_find_domain_nr(bus, parent);
|
||||
if (bridge->domain_nr == PCI_DOMAIN_NR_NOT_SET)
|
||||
bus->domain_nr = pci_bus_find_domain_nr(bus, parent);
|
||||
else
|
||||
bus->domain_nr = bridge->domain_nr;
|
||||
#endif
|
||||
|
||||
b = pci_find_bus(pci_domain_nr(bus), bridge->busnr);
|
||||
|
||||
Reference in New Issue
Block a user