mirror-linux/drivers/usb/core
Mathias Nyman f1bfb4a6fe usb: acpi: add device link between tunneled USB3 device and USB4 Host Interface
Describe the power management relationship between a tunneled USB3 device
and the tunnel providing USB4 host with a device link as the relationship
between them is not evident from normal device hierarchy.

Tunneling capable ports have an ACPI _DSD object pointing to the USB4
Host Interface that is used to establish USB3 3.x tunnels

Set the link directly between tunneled USB3 devices and USB4 Host
Interface to ensure that the USB4 host can runtime suspend if no tunneled
USB 3.x devices exist.
Current Thunderbolt code sets a link between USB4 Host Interface and USB3
xHCI host which prevents USB4 Host Interface from runtime suspending even
if the USB3 host is only serving native USB devices.

See commit b2be2b05cf ("thunderbolt: Create device links from ACPI
description") for details.

As the device link is only set for USB3 devices that are already tunneled
we know that USB4 Host Interface exists and is bound to its driver.

Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Link: https://lore.kernel.org/r/20240830152630.3943215-4-mathias.nyman@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-09-03 09:54:39 +02:00
..
Kconfig usb: core: Kconfig: Improve USB authorization mode help 2024-02-17 16:38:35 +01:00
Makefile usb: misc: onboard_hub: rename to onboard_dev 2024-03-27 07:57:16 +01:00
buffer.c
config.c USB: core: Fix duplicate endpoint bug by clearing reserved bits in the descriptor 2024-07-03 16:03:25 +02:00
devices.c USB: Remove remnants of Wireless USB and UWB 2023-08-09 14:17:06 +02:00
devio.c usb: convert to new timestamp accessors 2023-10-18 13:26:17 +02:00
driver.c Driver core changes for 6.11-rc1 2024-07-25 10:42:22 -07:00
endpoint.c usb: core: constify the struct device_type usage 2024-02-19 09:35:46 +01:00
file.c USB: make usb class a const structure 2023-07-25 17:49:30 +02:00
generic.c usb: core: Fix crash w/ usb_choose_configuration() if no driver 2023-12-15 13:54:09 +01:00
hcd-pci.c usb: hcd-pci: Use PCI_IRQ_INTX instead of PCI_IRQ_LEGACY 2024-04-25 12:53:30 -05:00
hcd.c kcov, usb: disable interrupts in kcov_remote_start_usb_softirq 2024-06-04 15:34:44 +02:00
hub.c Linux 6.9-rc7 2024-05-10 09:38:01 +01:00
hub.h Merge 6.9-rc2 into usb-next 2024-04-01 17:02:18 +02:00
ledtrig-usbport.c usb: core: Use module_led_trigger macro to simplify the code 2023-08-22 14:44:23 +02:00
message.c USB: document some API requirements on disconnection 2024-03-02 20:37:14 +01:00
notify.c
of.c usb: core: add missing of_node_put() in usb_of_has_devices_or_graph 2024-07-03 16:04:10 +02:00
otg_productlist.h
phy.c usb: core: add phy notify connect and disconnect 2024-01-27 17:36:14 -08:00
phy.h usb: core: add phy notify connect and disconnect 2024-01-27 17:36:14 -08:00
port.c USB: core: Fix access violation during port device removal 2024-04-23 16:25:49 -07:00
quirks.c USB: Add USB_QUIRK_NO_SET_INTF quirk for START BP-850k 2024-07-03 16:03:40 +02:00
sysfs.c usb: core: sysfs: Unmerge @usb3_hardware_lpm_attr_group in remove_power_attributes() 2024-08-22 17:29:50 +08:00
urb.c USB: Remove remnants of Wireless USB and UWB 2023-08-09 14:17:06 +02:00
usb-acpi.c usb: acpi: add device link between tunneled USB3 device and USB4 Host Interface 2024-09-03 09:54:39 +02:00
usb.c usb: add missing MODULE_DESCRIPTION() macros 2024-06-20 19:18:52 +02:00
usb.h usb: core: constify the struct device_type usage 2024-02-19 09:35:46 +01:00