On Mon, Apr 25, 2022 at 3:41 PM Heikki Krogerus <heikki.krogerus@xxxxxxxxxxxxxxx> wrote: > > The controller device (hcd) does not always have the ACPI > companion assigned to it at all. We can not rely on it when > finding the ACPI companion for the root hub. Instead we need > to use the sysdev pointer here. ... > if (!udev->parent) { > /* root hub is only child (_ADR=0) under its parent, the HC */ I believe the comment can be amended now to point out that we use the physical device representing the parent of this child, and not (always) a direct parent of the device in terms of Linux device model. > - adev = ACPI_COMPANION(udev->dev.parent); > + adev = ACPI_COMPANION(udev->bus->sysdev); > return acpi_find_child_device(adev, 0, false); > } -- With Best Regards, Andy Shevchenko