* [BUG] thunderbolt: Anker Prime TB5 (1ea:83b5) reconnect-loops on Meteor Lake (8086:7ec3) unless clx=0
@ 2026-09-24 7:18 Kurt Lieber
2026-09-24 7:35 ` Mika Westerberg
0 siblings, 1 reply; 15+ messages in thread
From: Kurt Lieber @ 2026-09-24 7:18 UTC (permalink / raw)
To: linux-usb@vger.kernel.org
Cc: andreas.noever@gmail.com, westeri@kernel.org,
YehezkelShB@gmail.com
Hi,
The Anker Prime Thunderbolt 5 dock reconnect-loops on an LG Gram with Meteor Lake unless the thunderbolt module is loaded with clx=0. With the default (clx=Y) the router is found, TMU setup fails with -ENOTCONN, the USB3 and DisplayPort tunnels are aborted, and the router is dropped. That repeats about once a second, including from a cold plug at boot.
Hardware:
Laptop: LG Gram 17Z90S-H.ADB9U1, Intel Core Ultra 7 155H
Host router: 0000:00:0d.3 Intel Core Ultra 200 Series Thunderbolt DMA1
[8086:7ec3] (rev 10), subsystem [1854:051d]
Dock: Anker Prime Docking Station (14-in-1, 8K, Thunderbolt 5)
kernel: vendor=0x1ea device=0x83b5
bolt uuid: 8ab48780-00ce-1da2-ffff-ffffffffffff
negotiated link: 40 Gb/s = 2 lanes * 20 Gb/s (TB4 fallback)
Retimer on the host port: vendor=0x8087 device=0xd9c
External display behind the dock: LG ULTRAFINE, 3840x2160
Software:
Linux anarchy 7.2.5-3-omarchy #1 SMP PREEMPT_DYNAMIC Mon, 14 Sep 2026
This is the Omarchy build of 7.2.5. modinfo reports clx as "allow low
power states on the high-speed lanes (default: true)". The published
linux-omarchy patch set does not touch drivers/thunderbolt/. bolt 0.9.11.
thunderbolt.host_reset was Y. pcie_aspm=off was not set.
What happens with clx=Y, dock already plugged in at boot:
thunderbolt 0-1: new device found, vendor=0x1ea device=0x83b5
thunderbolt 0-1: Anker Prime Docking Station (14-in-1, 8K, Thunderbolt 5)
thunderbolt 0-0:1.1: new retimer found, vendor=0x8087 device=0xd9c
thunderbolt 0000:00:0d.3: 1: TMU: failed to enable mode uni-directional, LowRes: -107
thunderbolt 0000:00:0d.3: 1: failed to enable TMU
thunderbolt 0000:00:0d.3: 1: USB3 tunnel creation failed
thunderbolt 0000:00:0d.3: 1:12: DP tunnel activation failed, aborting
thunderbolt 0000:00:0d.3: 1:12: DP tunnel activation failed, aborting
thunderbolt 0-0:1.1: retimer disconnected
thunderbolt 0-1: device disconnected
The same sequence then repeats. While bolt policy was iommu, boltd also logged
"auto-auth: authorization failed: kernel error: write error: Input/output error"
and the kernel additionally logged "PCIe tunnel activation failed, aborting".
Setting the stored bolt policy to manual stopped those authorization attempts.
The TMU / USB3 / DP disconnect loop continued with the router left at
authorized=0.
Workaround, same boot, no dock power cycle:
modprobe -r thunderbolt (typec consumers unloaded first)
modprobe thunderbolt clx=0
After that, /sys/module/thunderbolt/parameters/clx reads N, the router stays
connected, DP-1 comes up at 3840x2160, and the dock USB3 hub, keyboard, and
mouse enumerate. No further TMU or tunnel failures. Authorizing the router
with boltctl after that succeeded on the first try. host_reset was left at Y.
This looks like the same class of failure as Launchpad 2165852 (AMD Rembrandt
plus a ThinkPad TB4 dock, Goshen Ridge 0108:2031), which also loops on
"failed to enable TMU" / "USB3 tunnel creation failed" unless thunderbolt.clx=0.
The pair here is different: Meteor Lake host 8086:7ec3 and Anker router
1ea:83b5. QUIRK_NO_CLX already exists; this router does not hit it.
I can retest with thunderbolt.dyndbg=+p or try a patch if that is useful.
Thanks,
Kurt
^ permalink raw reply [flat|nested] 15+ messages in thread* Re: [BUG] thunderbolt: Anker Prime TB5 (1ea:83b5) reconnect-loops on Meteor Lake (8086:7ec3) unless clx=0
2026-09-24 7:18 [BUG] thunderbolt: Anker Prime TB5 (1ea:83b5) reconnect-loops on Meteor Lake (8086:7ec3) unless clx=0 Kurt Lieber
@ 2026-09-24 7:35 ` Mika Westerberg
2026-09-24 7:57 ` Kurt Lieber
0 siblings, 1 reply; 15+ messages in thread
From: Mika Westerberg @ 2026-09-24 7:35 UTC (permalink / raw)
To: Kurt Lieber
Cc: linux-usb@vger.kernel.org, andreas.noever@gmail.com,
westeri@kernel.org, YehezkelShB@gmail.com
Hi,
On Thu, Sep 24, 2026 at 07:18:14AM +0000, Kurt Lieber wrote:
> Hi,
>
> The Anker Prime Thunderbolt 5 dock reconnect-loops on an LG Gram with Meteor Lake unless the thunderbolt module is loaded with clx=0. With the default (clx=Y) the router is found, TMU setup fails with -ENOTCONN, the USB3 and DisplayPort tunnels are aborted, and the router is dropped. That repeats about once a second, including from a cold plug at boot.
>
> Hardware:
> Laptop: LG Gram 17Z90S-H.ADB9U1, Intel Core Ultra 7 155H
> Host router: 0000:00:0d.3 Intel Core Ultra 200 Series Thunderbolt DMA1
> [8086:7ec3] (rev 10), subsystem [1854:051d]
> Dock: Anker Prime Docking Station (14-in-1, 8K, Thunderbolt 5)
> kernel: vendor=0x1ea device=0x83b5
> bolt uuid: 8ab48780-00ce-1da2-ffff-ffffffffffff
> negotiated link: 40 Gb/s = 2 lanes * 20 Gb/s (TB4 fallback)
> Retimer on the host port: vendor=0x8087 device=0xd9c
> External display behind the dock: LG ULTRAFINE, 3840x2160
>
> Software:
> Linux anarchy 7.2.5-3-omarchy #1 SMP PREEMPT_DYNAMIC Mon, 14 Sep 2026
> This is the Omarchy build of 7.2.5. modinfo reports clx as "allow low
> power states on the high-speed lanes (default: true)". The published
> linux-omarchy patch set does not touch drivers/thunderbolt/. bolt 0.9.11.
> thunderbolt.host_reset was Y. pcie_aspm=off was not set.
>
> What happens with clx=Y, dock already plugged in at boot:
>
> thunderbolt 0-1: new device found, vendor=0x1ea device=0x83b5
> thunderbolt 0-1: Anker Prime Docking Station (14-in-1, 8K, Thunderbolt 5)
> thunderbolt 0-0:1.1: new retimer found, vendor=0x8087 device=0xd9c
> thunderbolt 0000:00:0d.3: 1: TMU: failed to enable mode uni-directional, LowRes: -107
> thunderbolt 0000:00:0d.3: 1: failed to enable TMU
> thunderbolt 0000:00:0d.3: 1: USB3 tunnel creation failed
> thunderbolt 0000:00:0d.3: 1:12: DP tunnel activation failed, aborting
> thunderbolt 0000:00:0d.3: 1:12: DP tunnel activation failed, aborting
> thunderbolt 0-0:1.1: retimer disconnected
> thunderbolt 0-1: device disconnected
>
> The same sequence then repeats. While bolt policy was iommu, boltd also logged
> "auto-auth: authorization failed: kernel error: write error: Input/output error"
> and the kernel additionally logged "PCIe tunnel activation failed, aborting".
> Setting the stored bolt policy to manual stopped those authorization attempts.
> The TMU / USB3 / DP disconnect loop continued with the router left at
> authorized=0.
>
> Workaround, same boot, no dock power cycle:
>
> modprobe -r thunderbolt (typec consumers unloaded first)
> modprobe thunderbolt clx=0
>
> After that, /sys/module/thunderbolt/parameters/clx reads N, the router stays
> connected, DP-1 comes up at 3840x2160, and the dock USB3 hub, keyboard, and
> mouse enumerate. No further TMU or tunnel failures. Authorizing the router
> with boltctl after that succeeded on the first try. host_reset was left at Y.
>
> This looks like the same class of failure as Launchpad 2165852 (AMD Rembrandt
> plus a ThinkPad TB4 dock, Goshen Ridge 0108:2031), which also loops on
> "failed to enable TMU" / "USB3 tunnel creation failed" unless thunderbolt.clx=0.
> The pair here is different: Meteor Lake host 8086:7ec3 and Anker router
> 1ea:83b5. QUIRK_NO_CLX already exists; this router does not hit it.
>
> I can retest with thunderbolt.dyndbg=+p or try a patch if that is useful.
Can you test with the dynamic debug enabled and provide full dmesg? Or
alternatively run:
# tbdump -r 1 -a 1 -vv -N2 LANE_ADP_CS_0
and provide the output. This needs to be done when the dock is connected
(with clx=0 is okay). This should show if the dock claims to support CL
states.
You can get tbdump from tbtools [1].
[1] https://github.com/intel/tbtools
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [BUG] thunderbolt: Anker Prime TB5 (1ea:83b5) reconnect-loops on Meteor Lake (8086:7ec3) unless clx=0
2026-09-24 7:35 ` Mika Westerberg
@ 2026-09-24 7:57 ` Kurt Lieber
2026-09-24 10:10 ` Mika Westerberg
0 siblings, 1 reply; 15+ messages in thread
From: Kurt Lieber @ 2026-09-24 7:57 UTC (permalink / raw)
To: Mika Westerberg
Cc: linux-usb@vger.kernel.org, andreas.noever@gmail.com,
westeri@kernel.org, YehezkelShB@gmail.com
Hi Mika,
On Thu, Sep 24, 2026 at 07:35:22AM +0000, Mika Westerberg wrote:
> Can you test with the dynamic debug enabled and provide full dmesg? Or
> alternatively run:
>
> # tbdump -r 1 -a 1 -vv -N2 LANE_ADP_CS_0
>
> and provide the output. This needs to be done when the dock is connected
> (with clx=0 is okay). This should show if the dock claims to support CL
> states.
The dock was connected and authorized. thunderbolt is loaded with clx=0
(/sys/module/thunderbolt/parameters/clx reads N).
# tbdump -r 1 -a 1 -vv -N2 LANE_ADP_CS_0
0x0036 0x1cfe01c0 0b00011100 11111110 00000001 11000000 .... LANE_ADP_CS_0
[00:07] 0xc0 Next Capability Pointer
[08:15] 0x1 Capability ID
[16:19] 0xe Supported Link Speeds
[20:21] 0x3 Supported Link Widths (SLW)
[22:23] 0x3 Gen 4 Asymmetric Support (G4AS)
[26:26] 0x1 CL0s Support
[27:27] 0x1 CL1 Support
[28:28] 0x1 CL2 Support
0x0037 0x4824003e 0b01001000 00100100 00000000 00111110 H$.> LANE_ADP_CS_1
[00:03] 0xe Target Link Speed -> Router shall attempt Gen 4 speed
[04:05] 0x3 Target Link Width -> Establish a Symmetric Link
[06:07] 0x0 Target Asymmetric Link -> Establish Symmetric Link
[10:10] 0x0 CL0s Enable
[11:11] 0x0 CL1 Enable
[12:12] 0x0 CL2 Enable
[14:14] 0x0 Lane Disable (LD)
[15:15] 0x0 Lane Bonding (LB)
[16:19] 0x4 Current Link Speed -> Gen 3
[20:25] 0x2 Negotiated Link Width -> Symmetric Link (x2)
[26:29] 0x2 Adapter State -> CL0
[30:30] 0x1 PM Secondary (PMS)
CL0s Support, CL1 Support, and CL2 Support are all set. The three enable
bits are clear and the adapter state is CL0, which matches clx=0.
Please let me know if there's any additional information required.
Kurt
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [BUG] thunderbolt: Anker Prime TB5 (1ea:83b5) reconnect-loops on Meteor Lake (8086:7ec3) unless clx=0
2026-09-24 7:57 ` Kurt Lieber
@ 2026-09-24 10:10 ` Mika Westerberg
2026-09-24 12:26 ` [PATCH] thunderbolt: Disable CL states for the Anker Prime TB5 dock Kurt Lieber
0 siblings, 1 reply; 15+ messages in thread
From: Mika Westerberg @ 2026-09-24 10:10 UTC (permalink / raw)
To: Kurt Lieber
Cc: linux-usb@vger.kernel.org, andreas.noever@gmail.com,
westeri@kernel.org, YehezkelShB@gmail.com
Hi,
On Thu, Sep 24, 2026 at 07:57:10AM +0000, Kurt Lieber wrote:
> Hi Mika,
>
> On Thu, Sep 24, 2026 at 07:35:22AM +0000, Mika Westerberg wrote:
> > Can you test with the dynamic debug enabled and provide full dmesg? Or
> > alternatively run:
> >
> > # tbdump -r 1 -a 1 -vv -N2 LANE_ADP_CS_0
> >
> > and provide the output. This needs to be done when the dock is connected
> > (with clx=0 is okay). This should show if the dock claims to support CL
> > states.
>
> The dock was connected and authorized. thunderbolt is loaded with clx=0
> (/sys/module/thunderbolt/parameters/clx reads N).
>
> # tbdump -r 1 -a 1 -vv -N2 LANE_ADP_CS_0
> 0x0036 0x1cfe01c0 0b00011100 11111110 00000001 11000000 .... LANE_ADP_CS_0
> [00:07] 0xc0 Next Capability Pointer
> [08:15] 0x1 Capability ID
> [16:19] 0xe Supported Link Speeds
> [20:21] 0x3 Supported Link Widths (SLW)
> [22:23] 0x3 Gen 4 Asymmetric Support (G4AS)
> [26:26] 0x1 CL0s Support
> [27:27] 0x1 CL1 Support
> [28:28] 0x1 CL2 Support
Yeah this is what I suspected. It claims to support all of them but
probably actually does not. This should have an entry in quirks.c then.
Want to do that? If not let me know and I'll make a patch.
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH] thunderbolt: Disable CL states for the Anker Prime TB5 dock
2026-09-24 10:10 ` Mika Westerberg
@ 2026-09-24 12:26 ` Kurt Lieber
2026-09-24 12:57 ` Mika Westerberg
2026-09-28 9:36 ` Mika Westerberg
0 siblings, 2 replies; 15+ messages in thread
From: Kurt Lieber @ 2026-09-24 12:26 UTC (permalink / raw)
To: Mika Westerberg
Cc: linux-usb@vger.kernel.org, andreas.noever@gmail.com,
westeri@kernel.org, YehezkelShB@gmail.com,
linux-kernel@vger.kernel.org
The Anker Prime TB5 dock identifies itself in the DROM as 01ea:83b5.
Its router config space is an Intel Barlow Ridge 80G hub (8087:5786).
The upstream lane adapter advertises CL0s, CL1, and CL2. With CLx left
enabled, TMU uni-directional LowRes setup fails with -ENOTCONN, the USB3
and DisplayPort tunnels are aborted, and the router reconnects in a loop.
Loading thunderbolt with clx=0 keeps the link up on this machine.
Match the DROM id together with the Barlow Ridge hub id and disable CL
states for this dock only. QUIRK_NO_CLX takes the same early-out as the
module parameter, without disabling CLx for every other router.
Assisted-by: LLM
Signed-off-by: Kurt Lieber <kurt@lieber.org>
---
Runtime-tested on linux-omarchy 7.2.5-3 (LG Gram 17Z90S, Meteor Lake).
Booted with thunderbolt.clx left at the default (Y). The dock came up
once, CL0s/CL1/CL2 Enable stayed 0 while the support bits stayed 1, the
link stayed in CL0 at 40 Gb/s, and the TMU uni-directional reconnect
loop did not occur.
drivers/thunderbolt/quirks.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/thunderbolt/quirks.c b/drivers/thunderbolt/quirks.c
--- a/drivers/thunderbolt/quirks.c
+++ b/drivers/thunderbolt/quirks.c
@@ -116,2 +116,5 @@
{ 0x0438, 0x020b, 0x0000, 0x0000, quirk_clx_disable },
+ /* CLx is unstable on the Anker Prime TB5 dock (DROM 01ea:83b5). */
+ { 0x8087, PCI_DEVICE_ID_INTEL_BARLOW_RIDGE_HUB_80G_BRIDGE, 0x01ea, 0x83b5,
+ quirk_clx_disable },
};
^ permalink raw reply [flat|nested] 15+ messages in thread* Re: [PATCH] thunderbolt: Disable CL states for the Anker Prime TB5 dock
2026-09-24 12:26 ` [PATCH] thunderbolt: Disable CL states for the Anker Prime TB5 dock Kurt Lieber
@ 2026-09-24 12:57 ` Mika Westerberg
2026-09-24 13:33 ` Kurt Lieber
2026-09-28 9:36 ` Mika Westerberg
1 sibling, 1 reply; 15+ messages in thread
From: Mika Westerberg @ 2026-09-24 12:57 UTC (permalink / raw)
To: Kurt Lieber
Cc: linux-usb@vger.kernel.org, andreas.noever@gmail.com,
westeri@kernel.org, YehezkelShB@gmail.com,
linux-kernel@vger.kernel.org
Hi,
On Thu, Sep 24, 2026 at 12:26:37PM +0000, Kurt Lieber wrote:
> The Anker Prime TB5 dock identifies itself in the DROM as 01ea:83b5.
> Its router config space is an Intel Barlow Ridge 80G hub (8087:5786).
> The upstream lane adapter advertises CL0s, CL1, and CL2. With CLx left
> enabled, TMU uni-directional LowRes setup fails with -ENOTCONN, the USB3
> and DisplayPort tunnels are aborted, and the router reconnects in a loop.
> Loading thunderbolt with clx=0 keeps the link up on this machine.
Hmm, I missed that it's Barlow Ridge. That should definitely support CL
states. I have one here and it for sure works.
What's the NVM version can you check? It could be that some older ones have
issues.
> Match the DROM id together with the Barlow Ridge hub id and disable CL
> states for this dock only. QUIRK_NO_CLX takes the same early-out as the
> module parameter, without disabling CLx for every other router.
>
> Assisted-by: LLM
> Signed-off-by: Kurt Lieber <kurt@lieber.org>
> ---
> Runtime-tested on linux-omarchy 7.2.5-3 (LG Gram 17Z90S, Meteor Lake).
> Booted with thunderbolt.clx left at the default (Y). The dock came up
> once, CL0s/CL1/CL2 Enable stayed 0 while the support bits stayed 1, the
> link stayed in CL0 at 40 Gb/s, and the TMU uni-directional reconnect
> loop did not occur.
>
> drivers/thunderbolt/quirks.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/thunderbolt/quirks.c b/drivers/thunderbolt/quirks.c
> --- a/drivers/thunderbolt/quirks.c
> +++ b/drivers/thunderbolt/quirks.c
> @@ -116,2 +116,5 @@
> { 0x0438, 0x020b, 0x0000, 0x0000, quirk_clx_disable },
> + /* CLx is unstable on the Anker Prime TB5 dock (DROM 01ea:83b5). */
> + { 0x8087, PCI_DEVICE_ID_INTEL_BARLOW_RIDGE_HUB_80G_BRIDGE, 0x01ea, 0x83b5,
> + quirk_clx_disable },
> };
^ permalink raw reply [flat|nested] 15+ messages in thread* Re: [PATCH] thunderbolt: Disable CL states for the Anker Prime TB5 dock
2026-09-24 12:57 ` Mika Westerberg
@ 2026-09-24 13:33 ` Kurt Lieber
2026-09-24 14:54 ` Mika Westerberg
0 siblings, 1 reply; 15+ messages in thread
From: Kurt Lieber @ 2026-09-24 13:33 UTC (permalink / raw)
To: Mika Westerberg
Cc: linux-usb@vger.kernel.org, andreas.noever@gmail.com,
westeri@kernel.org, YehezkelShB@gmail.com
Hello -
> Hmm, I missed that it's Barlow Ridge. That should definitely support CL
> states. I have one here and it for sure works.
>
> What's the NVM version can you check? It could be that some older ones have
> issues.
The dock router (route 0-1, DROM 01ea:83b5) reports:
/sys/bus/thunderbolt/devices/0-1/nvm_version
62.2
Read with the dock authorized and thunderbolt.clx=0.
Kurt
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH] thunderbolt: Disable CL states for the Anker Prime TB5 dock
2026-09-24 13:33 ` Kurt Lieber
@ 2026-09-24 14:54 ` Mika Westerberg
2026-09-25 0:02 ` Kurt Lieber
0 siblings, 1 reply; 15+ messages in thread
From: Mika Westerberg @ 2026-09-24 14:54 UTC (permalink / raw)
To: Kurt Lieber
Cc: linux-usb@vger.kernel.org, andreas.noever@gmail.com,
westeri@kernel.org, YehezkelShB@gmail.com
On Thu, Sep 24, 2026 at 01:33:01PM +0000, Kurt Lieber wrote:
> Hello -
>
> > Hmm, I missed that it's Barlow Ridge. That should definitely support CL
> > states. I have one here and it for sure works.
> >
> > What's the NVM version can you check? It could be that some older ones have
> > issues.
>
> The dock router (route 0-1, DROM 01ea:83b5) reports:
>
> /sys/bus/thunderbolt/devices/0-1/nvm_version
> 62.2
>
> Read with the dock authorized and thunderbolt.clx=0.
Okay that's recent enough. I do wonder if we try to enable CL2 too. We
should only do that for Gen 4 link. Can you still take dynamic debug log
for me without clx=0 so we can see that it tries to enable?
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH] thunderbolt: Disable CL states for the Anker Prime TB5 dock
2026-09-24 14:54 ` Mika Westerberg
@ 2026-09-25 0:02 ` Kurt Lieber
2026-09-25 5:01 ` Mika Westerberg
0 siblings, 1 reply; 15+ messages in thread
From: Kurt Lieber @ 2026-09-25 0:02 UTC (permalink / raw)
To: Mika Westerberg
Cc: linux-usb@vger.kernel.org, andreas.noever@gmail.com,
westeri@kernel.org, YehezkelShB@gmail.com
Hi Mika,
On Thu, Sep 24, 2026 at 02:54:56PM +0000, Mika Westerberg wrote:
> Okay that's recent enough. I do wonder if we try to enable CL2 too. We
> should only do that for Gen 4 link. Can you still take dynamic debug log
> for me without clx=0 so we can see that it tries to enable?
Dynamic debug with thunderbolt.clx left at Y, dock plugged in (route 1,
DROM 01ea:83b5, NVM 62.2). The same sequence repeats about once a
second. CL2 does not appear in the trace. What it enables is CL0s/CL1:
thunderbolt 0000:00:0d.3: 1: current link speed 20.0 Gb/s
thunderbolt 0000:00:0d.3: 1: current link width symmetric, single lane
thunderbolt 0000:00:0d.3: 1: link width set to symmetric, dual lanes
thunderbolt 0000:00:0d.3: 1:1: CLx: CL0s/CL1 supported
thunderbolt 0000:00:0d.3: 0:1: CLx: CL0s/CL1 supported
thunderbolt 0000:00:0d.3: 1: CLx: CL0s/CL1 enabled
thunderbolt 0000:00:0d.3: 1: TMU: mode change off -> uni-directional, LowRes requested
thunderbolt 0000:00:0d.3: 1: TMU: failed to enable mode uni-directional, LowRes: -107
thunderbolt 0000:00:0d.3: 1: failed to enable TMU
thunderbolt 0000:00:0d.3: 1: USB3 tunnel creation failed
thunderbolt 0000:00:0d.3: 1:12: DP tunnel activation failed, aborting
thunderbolt 0-1: device disconnected
Kurt
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH] thunderbolt: Disable CL states for the Anker Prime TB5 dock
2026-09-25 0:02 ` Kurt Lieber
@ 2026-09-25 5:01 ` Mika Westerberg
2026-09-26 7:02 ` Kurt Lieber
0 siblings, 1 reply; 15+ messages in thread
From: Mika Westerberg @ 2026-09-25 5:01 UTC (permalink / raw)
To: Kurt Lieber
Cc: linux-usb@vger.kernel.org, andreas.noever@gmail.com,
westeri@kernel.org, YehezkelShB@gmail.com
Hi,
On Fri, Sep 25, 2026 at 12:02:28AM +0000, Kurt Lieber wrote:
> Hi Mika,
>
> On Thu, Sep 24, 2026 at 02:54:56PM +0000, Mika Westerberg wrote:
> > Okay that's recent enough. I do wonder if we try to enable CL2 too. We
> > should only do that for Gen 4 link. Can you still take dynamic debug log
> > for me without clx=0 so we can see that it tries to enable?
>
> Dynamic debug with thunderbolt.clx left at Y, dock plugged in (route 1,
> DROM 01ea:83b5, NVM 62.2). The same sequence repeats about once a
> second. CL2 does not appear in the trace. What it enables is CL0s/CL1:
>
> thunderbolt 0000:00:0d.3: 1: current link speed 20.0 Gb/s
> thunderbolt 0000:00:0d.3: 1: current link width symmetric, single lane
> thunderbolt 0000:00:0d.3: 1: link width set to symmetric, dual lanes
> thunderbolt 0000:00:0d.3: 1:1: CLx: CL0s/CL1 supported
> thunderbolt 0000:00:0d.3: 0:1: CLx: CL0s/CL1 supported
> thunderbolt 0000:00:0d.3: 1: CLx: CL0s/CL1 enabled
> thunderbolt 0000:00:0d.3: 1: TMU: mode change off -> uni-directional, LowRes requested
> thunderbolt 0000:00:0d.3: 1: TMU: failed to enable mode uni-directional, LowRes: -107
> thunderbolt 0000:00:0d.3: 1: failed to enable TMU
> thunderbolt 0000:00:0d.3: 1: USB3 tunnel creation failed
> thunderbolt 0000:00:0d.3: 1:12: DP tunnel activation failed, aborting
> thunderbolt 0-1: device disconnected
I just tried on my side MTL/PTL + BR Hub and works fine with CL0s/CL1
enabled. Also checked release notes of the NVM and there are no mention
about issues with CLx with the one you are running.
There is one more thing that we can check though, can you run:
# tbdump -r 1 -a 1 -vv -N 1 PORT_CS_18
and provide the output?
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH] thunderbolt: Disable CL states for the Anker Prime TB5 dock
2026-09-25 5:01 ` Mika Westerberg
@ 2026-09-26 7:02 ` Kurt Lieber
2026-09-26 10:27 ` Mika Westerberg
0 siblings, 1 reply; 15+ messages in thread
From: Kurt Lieber @ 2026-09-26 7:02 UTC (permalink / raw)
To: Mika Westerberg
Cc: linux-usb@vger.kernel.org, andreas.noever@gmail.com,
westeri@kernel.org, YehezkelShB@gmail.com
Hello,
On Fri, Sep 25, 2026 at 05:01:36AM +0000, Mika Westerberg wrote:
> I just tried on my side MTL/PTL + BR Hub and works fine with CL0s/CL1
> enabled. Also checked release notes of the NVM and there are no mention
> about issues with CLx with the one you are running.
>
> There is one more thing that we can check though, can you run:
>
> # tbdump -r 1 -a 1 -vv -N 1 PORT_CS_18
>
> and provide the output?
Route 1 is not present on this boot. The dock enumerated behind host
port 3, so it is route 3. The upstream adapter is still 1. Read with
the dock authorized and thunderbolt.clx=0 (tbtools aa0b1be):
# tbdump -r 3 -a 1 -vv -N 1 PORT_CS_18
0x00d2 0x00f03510 0b00000000 11110000 00110101 00010000 PORT_CS_18
[00:07] 0x10 Cable USB4 Version
[08:08] 0x1 Bonding Enabled (BE)
[09:09] 0x0 TBT3-Compatible Mode (TCM)
[10:10] 0x1 CLx Protocol Support (CPS)
[11:11] 0x0 RS-FEC Enabled (Gen 2) (RE2)
[12:12] 0x1 RS-FEC Enabled (Gen 3) (RE3)
[13:13] 0x1 Router Detected (RD)
[16:16] 0x0 Wake on Connect Status
[17:17] 0x0 Wake on Disconnect Status
[18:18] 0x0 Wake on USB4 Wake Status
[19:19] 0x0 Wake on Inter-Domain Status
[20:20] 0x1 Cable Gen 3 Support (CG3)
[21:21] 0x1 Cable Gen 4 Support (CG4)
[22:22] 0x1 Cable Asymmetric Support (CSA)
[23:23] 0x1 Cable CLx Support (CSC)
[24:24] 0x0 AsymmetricTransitionInProgress (TIP)
The host downstream port on the other side of that link:
# tbdump -r 0 -a 3 -vv -N 1 PORT_CS_18
0x00ae 0x00003510 0b00000000 00000000 00110101 00010000 PORT_CS_18
[00:07] 0x10 Cable USB4 Version
[08:08] 0x1 Bonding Enabled (BE)
[09:09] 0x0 TBT3-Compatible Mode (TCM)
[10:10] 0x1 CLx Protocol Support (CPS)
[11:11] 0x0 RS-FEC Enabled (Gen 2) (RE2)
[12:12] 0x1 RS-FEC Enabled (Gen 3) (RE3)
[13:13] 0x1 Router Detected (RD)
[16:16] 0x0 Wake on Connect Status
[17:17] 0x0 Wake on Disconnect Status
[18:18] 0x0 Wake on USB4 Wake Status
[19:19] 0x0 Wake on Inter-Domain Status
[20:20] 0x0 Cable Gen 3 Support (CG3)
[21:21] 0x0 Cable Gen 4 Support (CG4)
[22:22] 0x0 Cable Asymmetric Support (CSA)
[23:23] 0x0 Cable CLx Support (CSC)
[24:24] 0x0 AsymmetricTransitionInProgress (TIP)
Kurt
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH] thunderbolt: Disable CL states for the Anker Prime TB5 dock
2026-09-26 7:02 ` Kurt Lieber
@ 2026-09-26 10:27 ` Mika Westerberg
2026-09-26 11:37 ` Kurt Lieber
0 siblings, 1 reply; 15+ messages in thread
From: Mika Westerberg @ 2026-09-26 10:27 UTC (permalink / raw)
To: Kurt Lieber
Cc: linux-usb@vger.kernel.org, andreas.noever@gmail.com,
westeri@kernel.org, YehezkelShB@gmail.com
Hi,
On Sat, Sep 26, 2026 at 07:02:01AM +0000, Kurt Lieber wrote:
> Hello,
>
> On Fri, Sep 25, 2026 at 05:01:36AM +0000, Mika Westerberg wrote:
> > I just tried on my side MTL/PTL + BR Hub and works fine with CL0s/CL1
> > enabled. Also checked release notes of the NVM and there are no mention
> > about issues with CLx with the one you are running.
> >
> > There is one more thing that we can check though, can you run:
> >
> > # tbdump -r 1 -a 1 -vv -N 1 PORT_CS_18
> >
> > and provide the output?
>
> Route 1 is not present on this boot. The dock enumerated behind host
> port 3, so it is route 3. The upstream adapter is still 1. Read with
> the dock authorized and thunderbolt.clx=0 (tbtools aa0b1be):
>
> # tbdump -r 3 -a 1 -vv -N 1 PORT_CS_18
> 0x00d2 0x00f03510 0b00000000 11110000 00110101 00010000 PORT_CS_18
> [00:07] 0x10 Cable USB4 Version
> [08:08] 0x1 Bonding Enabled (BE)
> [09:09] 0x0 TBT3-Compatible Mode (TCM)
> [10:10] 0x1 CLx Protocol Support (CPS)
> [11:11] 0x0 RS-FEC Enabled (Gen 2) (RE2)
> [12:12] 0x1 RS-FEC Enabled (Gen 3) (RE3)
> [13:13] 0x1 Router Detected (RD)
> [16:16] 0x0 Wake on Connect Status
> [17:17] 0x0 Wake on Disconnect Status
> [18:18] 0x0 Wake on USB4 Wake Status
> [19:19] 0x0 Wake on Inter-Domain Status
> [20:20] 0x1 Cable Gen 3 Support (CG3)
> [21:21] 0x1 Cable Gen 4 Support (CG4)
> [22:22] 0x1 Cable Asymmetric Support (CSA)
> [23:23] 0x1 Cable CLx Support (CSC)
> [24:24] 0x0 AsymmetricTransitionInProgress (TIP)
>
> The host downstream port on the other side of that link:
>
> # tbdump -r 0 -a 3 -vv -N 1 PORT_CS_18
> 0x00ae 0x00003510 0b00000000 00000000 00110101 00010000 PORT_CS_18
> [00:07] 0x10 Cable USB4 Version
> [08:08] 0x1 Bonding Enabled (BE)
> [09:09] 0x0 TBT3-Compatible Mode (TCM)
> [10:10] 0x1 CLx Protocol Support (CPS)
> [11:11] 0x0 RS-FEC Enabled (Gen 2) (RE2)
> [12:12] 0x1 RS-FEC Enabled (Gen 3) (RE3)
> [13:13] 0x1 Router Detected (RD)
> [16:16] 0x0 Wake on Connect Status
> [17:17] 0x0 Wake on Disconnect Status
> [18:18] 0x0 Wake on USB4 Wake Status
> [19:19] 0x0 Wake on Inter-Domain Status
> [20:20] 0x0 Cable Gen 3 Support (CG3)
> [21:21] 0x0 Cable Gen 4 Support (CG4)
> [22:22] 0x0 Cable Asymmetric Support (CSA)
> [23:23] 0x0 Cable CLx Support (CSC)
This is the smoking gun! Thanks for taking the dump from the other side as
well. CM guide actually says we cannot enable CL states if this bit is not
set. Can you try the below patch (without clx=0)?
diff --git a/drivers/thunderbolt/tb_regs.h b/drivers/thunderbolt/tb_regs.h
index 35ba8abe9ece..677b059cf088 100644
--- a/drivers/thunderbolt/tb_regs.h
+++ b/drivers/thunderbolt/tb_regs.h
@@ -391,6 +391,7 @@ struct tb_regs_port_header {
#define PORT_CS_18_WODS BIT(17)
#define PORT_CS_18_WOU4S BIT(18)
#define PORT_CS_18_CSA BIT(22)
+#define PORT_CS_18_CSC BIT(23)
#define PORT_CS_18_TIP BIT(24)
#define PORT_CS_19 0x13
#define PORT_CS_19_DPR BIT(0)
diff --git a/drivers/thunderbolt/usb4.c b/drivers/thunderbolt/usb4.c
index f02c9f646833..1ce001c37c23 100644
--- a/drivers/thunderbolt/usb4.c
+++ b/drivers/thunderbolt/usb4.c
@@ -1662,7 +1662,11 @@ bool usb4_port_clx_supported(struct tb_port *port)
if (ret)
return false;
- return !!(val & PORT_CS_18_CPS);
+ /* Both CPS and CSC must be set for CLx support */
+ if ((val & (PORT_CS_18_CPS | PORT_CS_18_CSC)) ==
+ (PORT_CS_18_CPS | PORT_CS_18_CSC))
+ return true;
+ return false;
}
/**
^ permalink raw reply related [flat|nested] 15+ messages in thread* Re: [PATCH] thunderbolt: Disable CL states for the Anker Prime TB5 dock
2026-09-26 10:27 ` Mika Westerberg
@ 2026-09-26 11:37 ` Kurt Lieber
2026-09-28 9:25 ` Mika Westerberg
0 siblings, 1 reply; 15+ messages in thread
From: Kurt Lieber @ 2026-09-26 11:37 UTC (permalink / raw)
To: Mika Westerberg
Cc: linux-usb@vger.kernel.org, andreas.noever@gmail.com,
westeri@kernel.org, YehezkelShB@gmail.com
Hi -
On Sat, Sep 26, 2026 at 10:27:14AM +0000, Mika Westerberg wrote:
> This is the smoking gun! Thanks for taking the dump from the other side as
> well. CM guide actually says we cannot enable CL states if this bit is not
> set. Can you try the below patch (without clx=0)?
The patch works here with thunderbolt.clx left at Y.
linux-omarchy 7.2.5-4. I built your change into the 7.2.5
thunderbolt module (usb4_port_clx_supported requires both
PORT_CS_18_CPS and PORT_CS_18_CSC; the function tests mask
0x800400) and loaded that module with the clx=0 option not
applied. The Anker Prime (DROM 01ea:83b5, NVM 62.2) disconnected
when the old module unloaded, then came back once:
thunderbolt 0-3: new device found, vendor=0x1ea device=0x83b5
thunderbolt 0-3: Anker Prime Docking Station (14-in-1, 8K, Thunderbolt 5)
It stayed authorized at 40 Gb/s (2 x 20 Gb/s). For the next 15
seconds dmesg had no "TMU: failed to enable mode uni-directional,
LowRes: -107" and no further thunderbolt disconnect. The dock USB
devices enumerated and stayed.
So the patch is successful, I believe. Thank you for puzzling through it. Let me know if there's anything else I can do on my end. Cheers!
Kurt
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH] thunderbolt: Disable CL states for the Anker Prime TB5 dock
2026-09-26 11:37 ` Kurt Lieber
@ 2026-09-28 9:25 ` Mika Westerberg
0 siblings, 0 replies; 15+ messages in thread
From: Mika Westerberg @ 2026-09-28 9:25 UTC (permalink / raw)
To: Kurt Lieber
Cc: linux-usb@vger.kernel.org, andreas.noever@gmail.com,
westeri@kernel.org, YehezkelShB@gmail.com
Hi,
On Sat, Sep 26, 2026 at 11:37:09AM +0000, Kurt Lieber wrote:
> Hi -
>
> On Sat, Sep 26, 2026 at 10:27:14AM +0000, Mika Westerberg wrote:
>
> > This is the smoking gun! Thanks for taking the dump from the other side as
> > well. CM guide actually says we cannot enable CL states if this bit is not
> > set. Can you try the below patch (without clx=0)?
>
> The patch works here with thunderbolt.clx left at Y.
>
> linux-omarchy 7.2.5-4. I built your change into the 7.2.5
> thunderbolt module (usb4_port_clx_supported requires both
> PORT_CS_18_CPS and PORT_CS_18_CSC; the function tests mask
> 0x800400) and loaded that module with the clx=0 option not
> applied. The Anker Prime (DROM 01ea:83b5, NVM 62.2) disconnected
> when the old module unloaded, then came back once:
>
> thunderbolt 0-3: new device found, vendor=0x1ea device=0x83b5
> thunderbolt 0-3: Anker Prime Docking Station (14-in-1, 8K, Thunderbolt 5)
>
> It stayed authorized at 40 Gb/s (2 x 20 Gb/s). For the next 15
> seconds dmesg had no "TMU: failed to enable mode uni-directional,
> LowRes: -107" and no further thunderbolt disconnect. The dock USB
> devices enumerated and stayed.
>
> So the patch is successful, I believe. Thank you for puzzling through it. Let me know if there's anything else I can do on my end. Cheers!
Thanks for testing! I realized now that the host side shows the CSC bit 0
because that was added in USB4 v2 so the v1 host does not know about that
bit and that's why we see different values between the ends. So the cable
supports it, the host supports it and the dock (well BR) should support too
but we don't know if there is something in the Anker firmwares like the
PD/retimer that could have issues with CL states.
I'm going to apply your quirk instead.
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH] thunderbolt: Disable CL states for the Anker Prime TB5 dock
2026-09-24 12:26 ` [PATCH] thunderbolt: Disable CL states for the Anker Prime TB5 dock Kurt Lieber
2026-09-24 12:57 ` Mika Westerberg
@ 2026-09-28 9:36 ` Mika Westerberg
1 sibling, 0 replies; 15+ messages in thread
From: Mika Westerberg @ 2026-09-28 9:36 UTC (permalink / raw)
To: Kurt Lieber
Cc: linux-usb@vger.kernel.org, andreas.noever@gmail.com,
westeri@kernel.org, YehezkelShB@gmail.com,
linux-kernel@vger.kernel.org
On Thu, Sep 24, 2026 at 12:26:37PM +0000, Kurt Lieber wrote:
> The Anker Prime TB5 dock identifies itself in the DROM as 01ea:83b5.
> Its router config space is an Intel Barlow Ridge 80G hub (8087:5786).
> The upstream lane adapter advertises CL0s, CL1, and CL2. With CLx left
> enabled, TMU uni-directional LowRes setup fails with -ENOTCONN, the USB3
> and DisplayPort tunnels are aborted, and the router reconnects in a loop.
> Loading thunderbolt with clx=0 keeps the link up on this machine.
>
> Match the DROM id together with the Barlow Ridge hub id and disable CL
> states for this dock only. QUIRK_NO_CLX takes the same early-out as the
> module parameter, without disabling CLx for every other router.
>
> Assisted-by: LLM
> Signed-off-by: Kurt Lieber <kurt@lieber.org>
Applied to thunderbolt.git/fixes with stable tag, thanks!
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2026-09-28 9:36 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-24 7:18 [BUG] thunderbolt: Anker Prime TB5 (1ea:83b5) reconnect-loops on Meteor Lake (8086:7ec3) unless clx=0 Kurt Lieber
2026-09-24 7:35 ` Mika Westerberg
2026-09-24 7:57 ` Kurt Lieber
2026-09-24 10:10 ` Mika Westerberg
2026-09-24 12:26 ` [PATCH] thunderbolt: Disable CL states for the Anker Prime TB5 dock Kurt Lieber
2026-09-24 12:57 ` Mika Westerberg
2026-09-24 13:33 ` Kurt Lieber
2026-09-24 14:54 ` Mika Westerberg
2026-09-25 0:02 ` Kurt Lieber
2026-09-25 5:01 ` Mika Westerberg
2026-09-26 7:02 ` Kurt Lieber
2026-09-26 10:27 ` Mika Westerberg
2026-09-26 11:37 ` Kurt Lieber
2026-09-28 9:25 ` Mika Westerberg
2026-09-28 9:36 ` Mika Westerberg
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox