Hi all, This series improves power management in the Thunderbolt driver. We already have a quite complete power management on systems where Firmware based Connection Manager is used (this is pretty much all non-Apple systems out there) so this series adds a couple of optimizations to make certain power transitions slightly faster, hopefully improving user experience. Rest of the patches improve power management in the Software Connection manager side of the driver. USB4 spec covers power management for USB4 hosts and devices, and also TBT3 compatible devices so these patches implement that. We also switch to use device links instead of PCI quirk to make sure the Thunderbolt/USB4 host controller is resumed before tunneled PCIe and USB 3.x ports (so that it gets the chance to restore the tunnels properly before). Tiger Lake systems with Software Connection Manager enabled describe these relationships using a new ACPI _DSD property that we parse in the driver and populate device links accordingly. Mika Westerberg (17): thunderbolt: Software CM only should set force power in Tiger Lake thunderbolt: Use bit 31 to check if Firmware CM is running in Tiger Lake thunderbolt: Do not program NFC buffers for USB4 router protocol adapters thunderbolt: No need to log an error if tb_switch_lane_bonding_enable() fails thunderbolt: Send reset only to first generation routers thunderbolt: Tear down DP tunnels when suspending thunderbolt: Initialize TMU again on resume thunderbolt: Do not change default USB4 router notification timeout thunderbolt: Configure link after lane bonding is enabled thunderbolt: Set port configured for both ends of the link thunderbolt: Configure port for XDomain thunderbolt: Disable lane 1 for XDomain connection thunderbolt: Enable wakes from system suspend PCI / thunderbolt: Switch to use device links instead of PCI quirk ACPI: Export acpi_get_first_physical_node() to modules thunderbolt: Create device links from ACPI description thunderbolt: Add runtime PM for Software CM Rajmohan Mani (2): thunderbolt: Optimize Force Power logic thunderbolt: Optimize NHI LC mailbox command processing drivers/acpi/bus.c | 1 + drivers/pci/quirks.c | 57 -------- drivers/thunderbolt/Makefile | 2 + drivers/thunderbolt/acpi.c | 117 ++++++++++++++++ drivers/thunderbolt/domain.c | 2 + drivers/thunderbolt/icm.c | 5 +- drivers/thunderbolt/lc.c | 151 ++++++++++++++++---- drivers/thunderbolt/nhi.c | 69 ++++++++++ drivers/thunderbolt/nhi_ops.c | 31 +++-- drivers/thunderbolt/switch.c | 209 +++++++++++++++++++++++----- drivers/thunderbolt/tb.c | 189 +++++++++++++++++++++++-- drivers/thunderbolt/tb.h | 35 ++++- drivers/thunderbolt/tb_regs.h | 16 +++ drivers/thunderbolt/usb4.c | 251 ++++++++++++++++++++++++++-------- 14 files changed, 935 insertions(+), 200 deletions(-) create mode 100644 drivers/thunderbolt/acpi.c -- 2.28.0