summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMika Westerberg <mika.westerberg@linux.intel.com>2024-01-31 11:12:59 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2024-04-27 17:13:04 +0200
commit2e7b443ef6ad6c95b0aaf4493bce53d674ec97f1 (patch)
tree6e866da690c31a3cd9ab03dab1cd536c33e498c2
parentb45259d419d682ec26351eda34395e306bd05253 (diff)
downloadlinux-stable-2e7b443ef6ad6c95b0aaf4493bce53d674ec97f1.tar.gz
linux-stable-2e7b443ef6ad6c95b0aaf4493bce53d674ec97f1.tar.bz2
linux-stable-2e7b443ef6ad6c95b0aaf4493bce53d674ec97f1.zip
thunderbolt: Reset only non-USB4 host routers in resume
commit 8cf9926c537ce8b0c7783afebe752e084765d553 upstream. There is no need to reset the USB4 host routers on resume because they are reset already and this may cause problems if the link does not come up soon enough. For this reason limit this to happen in non-USB4 host routers only (that's Apple systems with Intel Thunderbolt controllers). Fixes: 59a54c5f3dbd ("thunderbolt: Reset topology created by the boot firmware") Cc: Sanath S <Sanath.S@amd.com> Reviewed-by: Mario Limonciello <mario.limonciello@amd.com> Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/thunderbolt/tb.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/thunderbolt/tb.c b/drivers/thunderbolt/tb.c
index 50dbdbdf930b..525f515e8b48 100644
--- a/drivers/thunderbolt/tb.c
+++ b/drivers/thunderbolt/tb.c
@@ -2763,8 +2763,12 @@ static int tb_resume_noirq(struct tb *tb)
tb_dbg(tb, "resuming...\n");
- /* remove any pci devices the firmware might have setup */
- tb_switch_reset(tb->root_switch);
+ /*
+ * For non-USB4 hosts (Apple systems) remove any PCIe devices
+ * the firmware might have setup.
+ */
+ if (!tb_switch_is_usb4(tb->root_switch))
+ tb_switch_reset(tb->root_switch);
tb_switch_resume(tb->root_switch, false);
tb_free_invalid_tunnels(tb);