v1 can be found here: https://lore.kernel.org/linux-usb/20220501203321.19021-1-gil.fine@xxxxxxxxx/ v2 can be found here: https://lore.kernel.org/linux-usb/20220509201656.502-1-gil.fine@xxxxxxxxx/ Changes in v3: * Fix to support the case of enabling CL1 entry after resume from runtime PM (if CL1 suppported in the connected device) Changes in v2: * Handle CL1 and CL0s together since on the hardware level they are supported and enabled together * Use device_for_each_child() to set TMU mode of host router's 1st children * Use FIELD_x macros from include/linux/bitfield.h * Split single patch into two for clarity * Fix commit message In this series of patches, first, we address several issues in the CL0s implementation. Then, we add support for a second low power state of the link: CL1. Low power states (called collectively CLx) are used to reduce transmitter and receiver power when a high-speed lane is idle. We enable it, if both sides of the link support it, and only for the first hop router (i.e. the first device that connected to the host router). This is needed for better thermal management. CL1 improves power management that was intoduced by CL0s. Also, we add support of dynamic change of TMU mode to HiFi uni-directional once DisplayPort tunnel is created. This enables CL0s while DP tunnel exists. Due to Intel hardware limitation, once we changed the TMU mode to HiFi uni-directional (when DP tunnel exists), we don't change TMU mode back to normal uni-directional, even if DP tunnel is torn down later. Though, after sleep or runtime PM resume, the TMU is changed to normal uni-directional (if CLx suppported in the connected device) to enable CL1 entry. Gil Fine (6): thunderbolt: Silently ignore CLx enabling in case CLx is not supported thunderbolt: CLx disable before system suspend only if previously enabled thunderbolt: Fix typos in CLx enabling thunderbolt: Change downstream router's TMU rate in both TMU uni/bidir mode thunderbolt: Add CL1 support for USB4 and Titan Ridge routers thunderbolt: Change TMU mode to HiFi uni-directional once DisplayPort tunneled drivers/thunderbolt/switch.c | 91 ++++++++-------- drivers/thunderbolt/tb.c | 83 +++++++++++--- drivers/thunderbolt/tb.h | 51 +++++---- drivers/thunderbolt/tb_regs.h | 6 ++ drivers/thunderbolt/tmu.c | 198 ++++++++++++++++++++++++++++------ 5 files changed, 322 insertions(+), 107 deletions(-) -- 2.17.1 --------------------------------------------------------------------- Intel Israel (74) Limited This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). Any review or distribution by others is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies.