Hi All, On Sunday, December 09, 2012 11:58:42 PM Rafael J. Wysocki wrote: > 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. The second revision is necessary to address problems found by Yijing Wang during testing and explained by Jiang Liu (thanks guys!). The problem is that acpi_walk_namespace() doesn't execute the pre_order_visit callback for the starting handle, so the callback routine has the be executed for it directly, if necessary. I also modified a couple of changelogs to better explain the motivation of the patches. Boot sequence tested on Toshiba Portege R500, but testing on systems with hotplug will be appreciated. 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-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html