thunderbolt: Add only on-board retimers when !CONFIG_USB4_DEBUGFS_MARGINING
authorMika Westerberg <mika.westerberg@linux.intel.com>
Thu, 24 Oct 2024 09:26:53 +0000 (12:26 +0300)
committerMika Westerberg <mika.westerberg@linux.intel.com>
Tue, 29 Oct 2024 05:48:42 +0000 (07:48 +0200)
Normally there is no need to enumerate retimers on the other side of the
cable. This is only needed in special cases where user wants to run
receiver lane margining against the downstream facing port of a retimer.
Furthermore this might confuse the userspace tools such as fwupd because
it cannot read the information it expects from these retimers.

Fix this by changing the retimer enumeration code to add only on-board
retimers when CONFIG_USB4_DEBUGFS_MARGINING is not enabled.

Reported-by: AceLan Kao <acelan.kao@canonical.com>
Tested-by: AceLan Kao <acelan.kao@canonical.com>
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=219420
Cc: stable@vger.kernel.org
Fixes: ff6ab055e070 ("thunderbolt: Add receiver lane margining support for retimers")
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
drivers/thunderbolt/retimer.c

index 721319329afa96b34ff7518c3c06b27273cc753c..bdf641489f8222f503f04e036ad0a554eda5f85b 100644 (file)
@@ -531,6 +531,8 @@ int tb_retimer_scan(struct tb_port *port, bool add)
 
        max = i;
        ret = 0;
+       if (!IS_ENABLED(CONFIG_USB4_DEBUGFS_MARGINING))
+               max = min(last_idx, max);
 
        /* Add retimers if they do not exist already */
        for (i = 1; i <= max; i++) {