void __init __weak pci_mmcfg_late_init(void) { struct pci_mmcfg_region *cfg; acpi_table_parse(ACPI_SIG_MCFG, acpi_parse_mcfg); if (list_empty(&pci_mmcfg_list)) return; if (!pci_mmcfg_arch_init()) free_all_mmcfg(); list_for_each_entry(cfg, &pci_mmcfg_list, list) insert_resource(&iomem_resource, &cfg->res); }
static int __init jailhouse_pci_arch_init(void) { pci_direct_init(1); /* * There are no bridges on the virtual PCI root bus under Jailhouse, * thus no other way to discover all devices than a full scan. * Respect any overrides via the command line, though. */ if (pcibios_last_bus < 0) pcibios_last_bus = 0xff; #ifdef CONFIG_PCI_MMCONFIG if (setup_data.pci_mmconfig_base) { pci_mmconfig_add(0, 0, pcibios_last_bus, setup_data.pci_mmconfig_base); pci_mmcfg_arch_init(); } #endif return 0; }