Hi, The following patches change the ordering of the ACPI namespace scanning code so that all struct acpi_device objects in the given scope are registered before ACPI drivers are probed against them. They also do some simplifications and clarifications of the code made possible by this main change.
This is done for three basic reasons. First, we need the boot ACPI namespace scanning code to be as similar as reasonably possible to the hot-plug ACPI namespace scanning code. Second, the ordering of PCI devices enumeration versus ACPI-backed platform devices registration needs to be such that the PCI devices in the given scope are all registered first. Finally, when we start to actually manage ACPI device resources as appropriate (e.g. resolve resource conflicts properly) we'll need all struct acpi_device nodes to be registered before any "companion" physical nodes or ACPI drivers are bound to them. The patches have been tested on Toshiba Portege R500 without breaking stuff (I used some additional debug code to verify that the ordering of device discovery had not been modified by them), but if you see any problems with them regarding hot-plug, please let me know. [1/6] - Separate adding ACPI device objects from probing ACPI drivers. [2/6] - Change the ordering of PCI root bridge driver registration. [3/6] - Make acpi_bus_add() and acpi_bus_start() visibly different. [4/6] - Reduce the usage of struct acpi_bus_ops [5/6] - Replace struct acpi_bus_ops with an enum type [6/6] - Change the ordering of acpi_bus_check_add() to avoid unnecessary checks. Thanks, Rafael -- I speak only for myself. Rafael J. Wysocki, Intel Open Source Technology Center. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/