Convert to pci_create_bus() so we can supply the correct root bus resources up front. Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx> --- arch/sparc/kernel/leon_pci.c | 27 +++++++++++++++------------ 1 files changed, 15 insertions(+), 12 deletions(-) diff --git a/arch/sparc/kernel/leon_pci.c b/arch/sparc/kernel/leon_pci.c index a8a9a27..a9cd28c 100644 --- a/arch/sparc/kernel/leon_pci.c +++ b/arch/sparc/kernel/leon_pci.c @@ -20,21 +20,24 @@ void leon_pci_init(struct platform_device *ofdev, struct leon_pci_info *info) { struct pci_bus *root_bus; - root_bus = pci_scan_bus_parented(&ofdev->dev, 0, info->ops, info); - if (root_bus) { - root_bus->resource[0] = &info->io_space; - root_bus->resource[1] = &info->mem_space; - root_bus->resource[2] = NULL; + root_bus = pci_create_bus(&ofdev->dev, 0, info->ops, info, NULL); + if (!root_bus) + return; - /* Init all PCI devices into PCI tree */ - pci_bus_add_devices(root_bus); + root_bus->subordinate = pci_scan_child_bus(root_bus); - /* Setup IRQs of all devices using custom routines */ - pci_fixup_irqs(pci_common_swizzle, info->map_irq); + root_bus->resource[0] = &info->io_space; + root_bus->resource[1] = &info->mem_space; + root_bus->resource[2] = NULL; - /* Assign devices with resources */ - pci_assign_unassigned_resources(); - } + /* Init all PCI devices into PCI tree */ + pci_bus_add_devices(root_bus); + + /* Setup IRQs of all devices using custom routines */ + pci_fixup_irqs(pci_common_swizzle, info->map_irq); + + /* Assign devices with resources */ + pci_assign_unassigned_resources(); } /* PCI Memory and Prefetchable Memory is direct-mapped. However I/O Space is -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html