Hi, On Tue, Sep 03, 2024 at 10:35:00AM -0500, Mario Limonciello wrote: > On 8/30/2024 10:26, Mathias Nyman wrote: > > The relationship between a USB4 Host Interface providing USB3 tunnels, > > and tunneled USB3 devices is not represented in device hierarchy. > > > > This caused issues with power managment as devices may suspend and > > resume in incorrect order. > > A device link between the USB4 Host Interface and the USB3 xHCI was > > originally added to solve this, preventing the USB4 Host Interface from > > suspending if the USB3 xHCI Host was still active. > > This unfortunately also prevents USB4 Host Interface from suspending even > > if the USB3 xHCI Host is only serving native non-tunneled USB devices. > > > > Improve the current powermanagement situation by creating device links > > directly from tunneled USB3 devices to the USB4 Host Interface they depend > > on instead of a device link between the hosts. > > This way USB4 host may suspend when the last tunneled device is > > disconnected. > > > > Intel xHCI hosts are capable of reporting if connected USB3 devices are > > tunneled via vendor specific capabilities. > > Use this until a standard way is available. > > > > v2: > > Create device link by default if xHC host is not capable of tunnel > > detection but the USB3 ports have tunnel capability reported in ACPI > > _DSD object > > > > Mathias Nyman (4): > > xhci: Add USB4 tunnel detection for USB3 devices on Intel hosts > > usb: Add tunnel_mode parameter to usb device structure > > usb: acpi: add device link between tunneled USB3 device and USB4 Host > > Interface > > thunderbolt: Don't create device link from USB4 Host Interface to USB3 > > xHC host > > > > drivers/thunderbolt/acpi.c | 40 ++++++------------------ > > drivers/usb/core/usb-acpi.c | 53 ++++++++++++++++++++++++++++++++ > > drivers/usb/host/xhci-ext-caps.h | 5 +++ > > drivers/usb/host/xhci-hub.c | 36 ++++++++++++++++++++++ > > drivers/usb/host/xhci.c | 14 +++++++++ > > drivers/usb/host/xhci.h | 3 +- > > include/linux/usb.h | 8 +++++ > > 7 files changed, 128 insertions(+), 31 deletions(-) > > > > Hello, > > I had a try with this version of the series but I'm missing a device link > from XHCI controller after applying it. > > Before series these are the two links (6.11-rc6): > consumer:pci:0000:00:03.1 -> > ../../../virtual/devlink/pci:0000:c4:00.5--pci:0000:00:03.1 > consumer:pci:0000:c4:00.3 -> > ../../../virtual/devlink/pci:0000:c4:00.5--pci:0000:c4:00.3 > > After 6.11-rc6 + v2 series only this link: > consumer:pci:0000:00:03.1 -> > ../../../virtual/devlink/pci:0000:c4:00.5--pci:0000:00:03.1 Do you have device connected? The link will now be created only when there is a device router with USB 3.x hub/device connected.