Skip to content

Commit 59b03d1

Browse files
Rene Sapienswesteri
authored andcommitted
thunderbolt: Disable CLx on Titan Ridge-based devices with old firmware
Thunderbolt 3 devices based on Titan Ridge routers with NVM firmware version < 0x65 have been observed to become unstable when CL states are enabled. This can lead to link disconnect events and the device failing to enumerate. Enable CLx on Titan Ridge only when the running NVM firmware version is >= 0x65. Signed-off-by: Rene Sapiens <rene.sapiens@linux.intel.com> Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
1 parent 4573add commit 59b03d1

1 file changed

Lines changed: 7 additions & 0 deletions

File tree

drivers/thunderbolt/quirks.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ static void quirk_dp_credit_allocation(struct tb_switch *sw)
2323

2424
static void quirk_clx_disable(struct tb_switch *sw)
2525
{
26+
if (tb_switch_is_titan_ridge(sw) && sw->nvm && sw->nvm->major >= 0x65)
27+
return;
28+
2629
sw->quirks |= QUIRK_NO_CLX;
2730
tb_sw_dbg(sw, "disabling CL states\n");
2831
}
@@ -61,6 +64,10 @@ static const struct tb_quirk tb_quirks[] = {
6164
/* Dell WD19TB supports self-authentication on unplug */
6265
{ 0x0000, 0x0000, 0x00d4, 0xb070, quirk_force_power_link },
6366
{ 0x0000, 0x0000, 0x00d4, 0xb071, quirk_force_power_link },
67+
68+
/* Intel Titan Ridge CLx is unstable on early firmware versions */
69+
{ 0x8086, PCI_DEVICE_ID_INTEL_TITAN_RIDGE_DD_BRIDGE, 0x0000, 0x0000,
70+
quirk_clx_disable },
6471
/*
6572
* Intel Goshen Ridge NVM 27 and before report wrong number of
6673
* DP buffers.

0 commit comments

Comments
 (0)