Hi Rafael, Thank you for the review. On Tue, May 09, 2023 at 08:06:28PM +0200, Rafael J. Wysocki wrote: > On Wed, Mar 29, 2023 at 12:10 PM Sakari Ailus > <sakari.ailus@xxxxxxxxxxxxxxx> wrote: > > > > Collect the devices with _DEP into a list and continue processing them > > after a full traversal, instead of doing a full second traversal of the > > tree. > > > > This makes the second DSDT traversal pass unnecessary as we already have > > the nodes we're interested in in a linked list. > > The second traversal of the ACPI namespace (it may not be just the > DSDT at that point to be precise) is not really about _DEP handling. > In fact, the latter has been added on top of it. > > It is about the PCI enumeration. Namely, when acpi_pci_root_add() > runs for the PCI host bridge object in the ACPI namespace, the entire > device hierarchy below it is walked and all of the ACPI device objects > corresponding to the PCI devices on the bus are assumed to be present. > This means that all of the ACPI device objects need to be created in > the first walk, without binding any ACPI drivers or scan handlers to > them, and the second walk is to find out what is actually represented > by those objects. > > It cannot be eliminated in any simple way. My understanding still remains that this patch does not (or other patches in this set) change the above. It is just how those nodes are reached: instead of traversing the entire tree and ignoring the devices that have already an acpi_device created for them, a linked list of devices of interest is traversed. Of course it is possible that I have missed something. The codebase isn't entirely trivial. -- Kind regards, Sakari Ailus