This series is based Linux 3.18-rc1 and Lorenzo Pieralisi's arm PCI domain cleanup patches, link: https://patchwork.ozlabs.org/patch/407585/ Current pci scan interfaces like pci_scan_root_bus() and directly call pci_create_root_bus()/pci_scan_child_bus() lack flexiblity. Some platform infos like PCI domain and msi_chip have to be associated to PCI bus by some arch specific function. We want to make a generic pci_host_bridge, and make it hold the platform infos or hook. Then we could eliminate the lots of arch pci_domain_nr, also we could associate some platform ops something like pci_get_msi_chip(struct pci_dev *dev) with pci_host_bridge to avoid introduce arch weak functions. This RFC version not for all platforms, just applied the new scan interface in x86/arm/powerpc/ia64, I will refresh other platforms after the core pci scan interfaces are ok. Only test in x86. Thanks! Yijing. Yijing Wang (16): PCI: Enhance pci_scan_root_bus() to support default IO/MEM resources PCI: Use pci_scan_root_bus() instead of pci_scan_bus() PCI: Clean up pci_scan_bus() PCI: Rip out pci_bus_add_devices() from pci_scan_root_bus() PCI: Use pci_scan_root_bus() instead of pci_scan_bus_parented() PCI: Use u32 type to combine PCI domain and bus number PCI: Separate pci_host_bridge creation out of pci_create_root_bus() PCI: Introduce pci_scan_host_bridge() and pci_host_info PCI: Associate .get_msi_ctrl() with pci_host_bridge PCI: Add of_scan_bus() to pci_host_info x86/PCI: Use pci_scan_host_bridge() instead of pci_create_root_bus() ia64/PCI: Remove the redundant bus variable ia64/PCI: Use pci_scan_host_bridge() to refactor pci_acpi_scan_root() arm/PCI: Introduce pci_get_domain_nr() arm/PCI: Use pci_scan_host_bridge() instead of pci_scan_root_bus() powerpc/PCI: Use pci_scan_host_bridge() to scan PCI bus arch/alpha/include/asm/pci.h | 2 +- arch/alpha/kernel/pci.c | 1 + arch/alpha/kernel/sys_nautilus.c | 3 +- arch/arm/include/asm/mach/pci.h | 10 ++ arch/arm/kernel/bios32.c | 60 +++++++---- arch/cris/include/asm/pci.h | 2 +- arch/frv/mb93090-mb00/pci-vdk.c | 8 +- arch/ia64/include/asm/pci.h | 2 +- arch/ia64/pci/pci.c | 85 +++++++-------- arch/ia64/sn/kernel/io_init.c | 2 + arch/m68k/coldfire/pci.c | 3 +- arch/microblaze/pci/pci-common.c | 2 +- arch/mips/include/asm/pci.h | 2 +- arch/mips/pci/pci.c | 1 + arch/mn10300/include/asm/pci.h | 2 +- arch/mn10300/unit-asb2305/pci.c | 7 +- arch/powerpc/kernel/pci-common.c | 81 ++++++++------ arch/s390/pci/pci.c | 2 +- arch/sh/drivers/pci/pci.c | 1 + arch/sh/include/asm/pci.h | 2 +- arch/sparc/include/asm/pci_32.h | 2 +- arch/sparc/include/asm/pci_64.h | 2 +- arch/sparc/kernel/leon_pci.c | 1 + arch/sparc/kernel/pcic.c | 5 +- arch/tile/kernel/pci.c | 3 +- arch/tile/kernel/pci_gx.c | 3 +- arch/unicore32/kernel/pci.c | 4 +- arch/x86/include/asm/pci.h | 2 +- arch/x86/pci/acpi.c | 65 +++++++----- arch/x86/pci/amd_bus.c | 2 +- arch/x86/pci/common.c | 27 ++++-- arch/xtensa/include/asm/pci.h | 2 +- arch/xtensa/kernel/pci.c | 1 + drivers/parisc/dino.c | 4 +- drivers/pci/host-bridge.c | 104 ++++++++++++++++++ drivers/pci/host/pci-xgene.c | 2 +- drivers/pci/hotplug/ibmphp_core.c | 6 +- drivers/pci/probe.c | 214 +++++++++++++++++++------------------ drivers/pci/xen-pcifront.c | 6 +- include/linux/pci.h | 41 ++++++- include/uapi/linux/pci.h | 3 + 41 files changed, 497 insertions(+), 280 deletions(-) -- 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