Skip to content
  • Bjorn Helgaas's avatar
    x86/PCI: convert to pci_create_root_bus() and pci_scan_root_bus() · 2cd6975a
    Bjorn Helgaas authored
    
    
    x86 has two kinds of PCI root bus scanning:
    
    (1) ACPI-based, using _CRS resources.  This used pci_create_bus(), not
        pci_scan_bus(), because ACPI hotplug needed to split the
        pci_bus_add_devices() into a separate host bridge .start() method.
    
        This patch parses the _CRS resources earlier, so we can build a list of
        resources and pass it to pci_create_root_bus().
    
        Note that as before, we parse the _CRS even if we aren't going to use
        it so we can print it for debugging purposes.
    
    (2) All other, which used either default resources (ioport_resource and
        iomem_resource) or information read from the hardware via amd_bus.c or
        similar.  This used pci_scan_bus().
    
        This patch converts x86_pci_root_bus_res_quirks() (previously called
        from pcibios_fixup_bus()) to x86_pci_root_bus_resources(), which builds
        a list of resources before we call pci_scan_root_bus().
    
        We also use x86_pci_root_bus_resources() if we have ACPI but are
        ignoring _CRS.
    
    CC: Yinghai Lu <yinghai.lu@oracle.com>
    Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
    Signed-off-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
    2cd6975a