Add device drivers_autoprobe to make hotplug path more like booting path: create all acpi device and add them to device tree at first then attach acpi drivers. create all pci devices and add them to device tree at first then attach pci drivers. 1. kill acpi_pci_root_start. 2. register pci devices to device tree as soon as possible after pci devices and bus get created. After pci_scan_child_bus, all bus and devices get into devices already. pci_bus_add_devices will only attach driver to pci devices. could get from git://git.kernel.org/pub/scm/linux/kernel/git/yinghai/linux-yinghai.git for-pci-next Yinghai Lu (10): device: add drivers_autoprobe in struct device ACPI: use device drivers_autoprobe to delay loading acpi drivers PCI: prepare to use device drivers_autoprobe to delay attach drivers PCI: Use device_add for device and bus early PCI, ACPI: Separate out acpi_pci_root_osc_contorl_set PCI, ACPI: Move hot add root bus conf code to acpi_pci_root_add PCI, ACPI: Remove not used acpi_pci_root_start() PCI: Add dev_is_pci_host_bridge() helper PCI, ACPI: using acpi/pci bind path for pci_host_bridge PCI, ACPI: use bus_type notifier for acpi_pci_bind_notify drivers/acpi/glue.c | 4 - drivers/acpi/pci_bind.c | 99 +++++++++++++++---- drivers/acpi/pci_root.c | 223 +++++++++++++++++++++++-------------------- drivers/acpi/scan.c | 48 +++++++++- drivers/base/bus.c | 2 +- drivers/base/core.c | 1 + drivers/pci/bus.c | 45 +++------ drivers/pci/hotplug.c | 25 +++++ drivers/pci/iov.c | 7 -- drivers/pci/probe.c | 25 ++++-- include/acpi/acpi_drivers.h | 2 + include/linux/device.h | 1 + include/linux/pci.h | 1 + 13 files changed, 310 insertions(+), 173 deletions(-) -- 1.7.7 -- 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