[PATCH v3 0/6] thunderbolt: CL1 support for USB4 and Titan Ridge

Gil Fine
2022-05-11T13:56:49Z

v1 can be found here:
https://lore.kernel.org/linux-usb/20220501203321.19021-1-gil.fine@intel.com/
v2 can be found here:
https://lore.kernel.org/linux-usb/20220509201656.502-1-gil.fine@intel.com/

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