+CC Mario from AMD side to check that we are good and don't break anything accidentally. On Wed, Jun 19, 2024 at 04:03:01PM +0300, 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. > > Mathias Nyman (4): > xhci: Add USB4 tunnel detection for USB3 devices on Intel hosts > usb: Add tunneled 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 | 52 ++++++++++++++++++++++++++++++++ > drivers/usb/host/xhci-ext-caps.h | 5 +++ > drivers/usb/host/xhci-hub.c | 29 ++++++++++++++++++ > drivers/usb/host/xhci.c | 12 ++++++++ > drivers/usb/host/xhci.h | 1 + > include/linux/usb.h | 2 ++ > 7 files changed, 111 insertions(+), 30 deletions(-) > > -- > 2.25.1