thunderbolt: Allow NVM upgrade of USB4 host routers
authorSzuying Chen <Chloe_Chen@asmedia.com.tw>
Sun, 4 Sep 2022 10:40:23 +0000 (13:40 +0300)
committerMika Westerberg <mika.westerberg@linux.intel.com>
Wed, 7 Sep 2022 06:06:50 +0000 (09:06 +0300)
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>
drivers/thunderbolt/tb.c

index 583c22df40403905a12f7b9215d002abcab7e290..e1c0cfeb854d03db85d6219aaa13e060843e3349 100644 (file)
@@ -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);