|
@@ -114,6 +114,19 @@ int pcibios_root_bridge_prepare(struct pci_host_bridge *bridge)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
+static int pci_acpi_root_prepare_resources(struct acpi_pci_root_info *ci)
|
|
|
+{
|
|
|
+ struct resource_entry *entry, *tmp;
|
|
|
+ int status;
|
|
|
+
|
|
|
+ status = acpi_pci_probe_root_resources(ci);
|
|
|
+ resource_list_for_each_entry_safe(entry, tmp, &ci->resources) {
|
|
|
+ if (!(entry->res->flags & IORESOURCE_WINDOW))
|
|
|
+ resource_list_destroy_entry(entry);
|
|
|
+ }
|
|
|
+ return status;
|
|
|
+}
|
|
|
+
|
|
|
/*
|
|
|
* Lookup the bus range for the domain in MCFG, and set up config space
|
|
|
* mapping.
|
|
@@ -196,6 +209,7 @@ struct pci_bus *pci_acpi_scan_root(struct acpi_pci_root *root)
|
|
|
}
|
|
|
|
|
|
root_ops->release_info = pci_acpi_generic_release_info;
|
|
|
+ root_ops->prepare_resources = pci_acpi_root_prepare_resources;
|
|
|
root_ops->pci_ops = &ri->cfg->ops->pci_ops;
|
|
|
bus = acpi_pci_root_create(root, root_ops, &ri->common, ri->cfg);
|
|
|
if (!bus)
|