mt76: connac: fix last_chan configuration in mt76_connac_mcu_rate_txpower_band
authorLorenzo Bianconi <lorenzo@kernel.org>
Tue, 30 Nov 2021 09:36:15 +0000 (10:36 +0100)
committerFelix Fietkau <nbd@nbd.name>
Sun, 19 Dec 2021 14:24:02 +0000 (15:24 +0100)
last_ch configuration must not be dependent on the current configured band
but it is defined by hw capabilities since the fw always expects the
following order:
- 2GHz
- 5GHz
- 6GHz

Fixes: 9b2ea8eee42a1 ("mt76: connac: set 6G phymode in single-sku support")
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c

index 8198f17..e5e4af1 100644 (file)
@@ -1980,12 +1980,12 @@ mt76_connac_mcu_rate_txpower_band(struct mt76_phy *phy,
        }
        batch_size = DIV_ROUND_UP(n_chan, batch_len);
 
-       if (!phy->cap.has_5ghz)
-               last_ch = chan_list_2ghz[n_chan - 1];
-       else if (phy->cap.has_6ghz)
-               last_ch = chan_list_6ghz[n_chan - 1];
+       if (phy->cap.has_6ghz)
+               last_ch = chan_list_6ghz[ARRAY_SIZE(chan_list_6ghz) - 1];
+       else if (phy->cap.has_5ghz)
+               last_ch = chan_list_5ghz[ARRAY_SIZE(chan_list_5ghz) - 1];
        else
-               last_ch = chan_list_5ghz[n_chan - 1];
+               last_ch = chan_list_2ghz[ARRAY_SIZE(chan_list_2ghz) - 1];
 
        for (i = 0; i < batch_size; i++) {
                struct mt76_connac_tx_power_limit_tlv tx_power_tlv = {};