Skip to content

Commit

Permalink
thunderbolt: Ignore port locked error in tb_port_wait_for_link_width()
Browse files Browse the repository at this point in the history
Sometimes when polling for the port after target link width is changed
we get back port locked notification (because the link actually was
reset and then re-trained). Instead of bailing out we can ignore these
when polling for the width change as this is expected.

Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
  • Loading branch information
Mika Westerberg committed May 5, 2022
1 parent 0e14dd5 commit 0a2e166
Showing 1 changed file with 10 additions and 3 deletions.
13 changes: 10 additions & 3 deletions drivers/thunderbolt/switch.c
Original file line number Diff line number Diff line change
@@ -1168,10 +1168,17 @@ int tb_port_wait_for_link_width(struct tb_port *port, int width,

do {
ret = tb_port_get_link_width(port);
if (ret < 0)
return ret;
else if (ret == width)
if (ret < 0) {
/*
* Sometimes we get port locked error when
* polling the lanes so we can ignore it and
* retry.
*/
if (ret != -EACCES)
return ret;
} else if (ret == width) {
return 0;
}

usleep_range(1000, 2000);
} while (ktime_before(ktime_get(), timeout));

0 comments on commit 0a2e166

Please sign in to comment.