aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGil Fine <[email protected]>2023-11-07 12:22:40 +0200
committerMika Westerberg <[email protected]>2023-11-17 13:05:57 +0200
commit24d85bb3be373b5831699bddf698b392bd2b904d (patch)
tree88971c58e5d26b77b1bbad90b33f2c767f894933
parentb85ea95d086471afb4ad062012a4d73cd328fa86 (diff)
thunderbolt: Set lane bonding bit only for downstream port
Fix the lane bonding procedure to follow the steps described in USB4 Connection Manager guide. Hence, set the lane bonding bit only for downstream port. This is needed for certain ASMedia device, otherwise lane bonding fails and the device disconnects. Cc: [email protected] Signed-off-by: Gil Fine <[email protected]> Signed-off-by: Mika Westerberg <[email protected]>
-rw-r--r--drivers/thunderbolt/switch.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/thunderbolt/switch.c b/drivers/thunderbolt/switch.c
index 1e15ffa79295..9e5cc285cc8d 100644
--- a/drivers/thunderbolt/switch.c
+++ b/drivers/thunderbolt/switch.c
@@ -1143,7 +1143,7 @@ int tb_port_lane_bonding_enable(struct tb_port *port)
* Only set bonding if the link was not already bonded. This
* avoids the lane adapter to re-enter bonding state.
*/
- if (width == TB_LINK_WIDTH_SINGLE) {
+ if (width == TB_LINK_WIDTH_SINGLE && !tb_is_upstream_port(port)) {
ret = tb_port_set_lane_bonding(port, true);
if (ret)
goto err_lane1;