thunderbolt: Correct TMU mode initialization from hardware
authorMika Westerberg <mika.westerberg@linux.intel.com>
Thu, 31 Aug 2023 11:10:46 +0000 (14:10 +0300)
committerMika Westerberg <mika.westerberg@linux.intel.com>
Fri, 15 Sep 2023 09:59:02 +0000 (12:59 +0300)
David reported that cppcheck found following possible copy & paste
error from tmu_mode_init():

  tmu.c:385:50: style: Expression is always false because 'else if' condition matches previous condition at line 383. [multiCondition]

And indeed this is a bug. Fix it to use correct index
(TB_SWITCH_TMU_MODE_HIFI_UNI).

Reported-by: David Binderman <dcb314@hotmail.com>
Fixes: d49b4f043d63 ("thunderbolt: Add support for enhanced uni-directional TMU mode")
Cc: stable@vger.kernel.org
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
drivers/thunderbolt/tmu.c

index 747f887..11f2aec 100644 (file)
@@ -382,7 +382,7 @@ static int tmu_mode_init(struct tb_switch *sw)
                } else if (ucap && tb_port_tmu_is_unidirectional(up)) {
                        if (tmu_rates[TB_SWITCH_TMU_MODE_LOWRES] == rate)
                                sw->tmu.mode = TB_SWITCH_TMU_MODE_LOWRES;
-                       else if (tmu_rates[TB_SWITCH_TMU_MODE_LOWRES] == rate)
+                       else if (tmu_rates[TB_SWITCH_TMU_MODE_HIFI_UNI] == rate)
                                sw->tmu.mode = TB_SWITCH_TMU_MODE_HIFI_UNI;
                } else if (rate) {
                        sw->tmu.mode = TB_SWITCH_TMU_MODE_HIFI_BI;