Skip to content

Commit

Permalink
thunderbolt: Check that lane 1 is in CL0 before enabling lane bonding
Browse files Browse the repository at this point in the history
Marek reported that when BlackMagic UltraStudio device is connected the
kernel repeatedly tries to enable lane bonding without success making
the device non-functional. It looks like the device does not have lane 1
connected at all so even though it is enabled we should not try to bond
the lanes. For this reason check that lane 1 is in fact CL0 (connected,
active) before attempting to bond the lanes.

Reported-by: Marek Šanta <[email protected]>
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=217737
Cc: [email protected]
Signed-off-by: Mika Westerberg <[email protected]>
  • Loading branch information
westeri committed Sep 15, 2023
1 parent 582620d commit a9fdf5f
Showing 1 changed file with 7 additions and 0 deletions.
7 changes: 7 additions & 0 deletions drivers/thunderbolt/switch.c
Original file line number Diff line number Diff line change
Expand Up @@ -2725,6 +2725,13 @@ int tb_switch_lane_bonding_enable(struct tb_switch *sw)
!tb_port_is_width_supported(down, TB_LINK_WIDTH_DUAL))
return 0;

/*
* Both lanes need to be in CL0. Here we assume lane 0 already be in
* CL0 and check just for lane 1.
*/
if (tb_wait_for_port(down->dual_link_port, false) <= 0)
return -ENOTCONN;

ret = tb_port_lane_bonding_enable(up);
if (ret) {
tb_port_warn(up, "failed to enable lane bonding\n");
Expand Down

0 comments on commit a9fdf5f

Please sign in to comment.