diff --git a/drivers/pci/controller/pci-msm.c b/drivers/pci/controller/pci-msm.c index 18dd212e44e1..b983b734da7d 100644 --- a/drivers/pci/controller/pci-msm.c +++ b/drivers/pci/controller/pci-msm.c @@ -4848,7 +4848,7 @@ int msm_pcie_enumerate(u32 rc_idx) struct pci_dev *pcidev = NULL; struct pci_host_bridge *bridge; bool found = false; - struct pci_bus *bus; + struct pci_bus *bus, *child; resource_size_t iobase = 0; u32 ids, vendor_id, device_id; LIST_HEAD(res); @@ -4930,6 +4930,9 @@ int msm_pcie_enumerate(u32 rc_idx) bus = bridge->bus; pci_assign_unassigned_bus_resources(bus); + list_for_each_entry(child, &bus->children, node) + pcie_bus_configure_settings(child); + pci_bus_add_devices(bus); dev->enumerated = true;