summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSzuying Chen <Chloe_Chen@asmedia.com.tw>2022-09-04 12:40:23 +0200
committerMika Westerberg <mika.westerberg@linux.intel.com>2022-09-07 08:06:50 +0200
commit5172eb9a16437af35f86ab66c8e6b55cc9a9cf78 (patch)
tree874cb40e2bce9907e73f6c09fe15853cbd460499
parentthunderbolt: Add support for receiver lane margining (diff)
downloadlinux-5172eb9a16437af35f86ab66c8e6b55cc9a9cf78.tar.xz
linux-5172eb9a16437af35f86ab66c8e6b55cc9a9cf78.zip
thunderbolt: Allow NVM upgrade of USB4 host routers
Intel pre-USB4 host routers required the firmware connection manager to be active in order to perform NVM firmware upgrade and for this reason it was disabled when software connection manager is active. However, this is not necessary for USB4 host routers as this functionality is part of router operations that the router implements if it wants to support this. Signed-off-by: Szuying Chen <Chloe_Chen@asmedia.com.tw> Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
-rw-r--r--drivers/thunderbolt/tb.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/thunderbolt/tb.c b/drivers/thunderbolt/tb.c
index 583c22df4040..e1c0cfeb854d 100644
--- a/drivers/thunderbolt/tb.c
+++ b/drivers/thunderbolt/tb.c
@@ -1442,8 +1442,11 @@ static int tb_start(struct tb *tb)
* ICM firmware upgrade needs running firmware and in native
* mode that is not available so disable firmware upgrade of the
* root switch.
+ *
+ * However, USB4 routers support NVM firmware upgrade if they
+ * implement the necessary router operations.
*/
- tb->root_switch->no_nvm_upgrade = true;
+ tb->root_switch->no_nvm_upgrade = !tb_switch_is_usb4(tb->root_switch);
/* All USB4 routers support runtime PM */
tb->root_switch->rpm = tb_switch_is_usb4(tb->root_switch);