Commit 7246a452 authored by Vidya Sagar's avatar Vidya Sagar Committed by Bjorn Helgaas

PCI: Use preserve_config in place of pci_flags

Use preserve_config in place of checking for PCI_PROBE_ONLY flag to enable
support for "linux,pci-probe-only" on a per host bridge basis.

This also obviates the use of adding PCI_REASSIGN_ALL_BUS flag if
!PCI_PROBE_ONLY, as pci_assign_unassigned_root_bus_resources() takes care
of reassigning the resources that are not already claimed.

Link: https://lore.kernel.org/r/20240508174138.3630283-5-vidyas@nvidia.comSigned-off-by: default avatarVidya Sagar <vidyas@nvidia.com>
Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
parent 1e692248
...@@ -73,10 +73,6 @@ int pci_host_common_probe(struct platform_device *pdev) ...@@ -73,10 +73,6 @@ int pci_host_common_probe(struct platform_device *pdev)
if (IS_ERR(cfg)) if (IS_ERR(cfg))
return PTR_ERR(cfg); return PTR_ERR(cfg);
/* Do not reassign resources if probe only */
if (!pci_has_flag(PCI_PROBE_ONLY))
pci_add_flags(PCI_REASSIGN_ALL_BUS);
bridge->sysdata = cfg; bridge->sysdata = cfg;
bridge->ops = (struct pci_ops *)&ops->pci_ops; bridge->ops = (struct pci_ops *)&ops->pci_ops;
bridge->msi_domain = true; bridge->msi_domain = true;
......
...@@ -3094,20 +3094,18 @@ int pci_host_probe(struct pci_host_bridge *bridge) ...@@ -3094,20 +3094,18 @@ int pci_host_probe(struct pci_host_bridge *bridge)
bus = bridge->bus; bus = bridge->bus;
/* If we must preserve the resource configuration, claim now */
if (bridge->preserve_config)
pci_bus_claim_resources(bus);
/* /*
* We insert PCI resources into the iomem_resource and * Assign whatever was left unassigned. If we didn't claim above,
* ioport_resource trees in either pci_bus_claim_resources() * this will reassign everything.
* or pci_bus_assign_resources().
*/ */
if (pci_has_flag(PCI_PROBE_ONLY)) { pci_assign_unassigned_root_bus_resources(bus);
pci_bus_claim_resources(bus);
} else {
pci_bus_size_bridges(bus);
pci_bus_assign_resources(bus);
list_for_each_entry(child, &bus->children, node) list_for_each_entry(child, &bus->children, node)
pcie_bus_configure_settings(child); pcie_bus_configure_settings(child);
}
pci_bus_add_devices(bus); pci_bus_add_devices(bus);
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment