wifi: mt76: mt7603: fix reading target power from eeprom
authorFelix Fietkau <nbd@nbd.name>
Tue, 27 Aug 2024 09:29:49 +0000 (11:29 +0200)
committerFelix Fietkau <nbd@nbd.name>
Fri, 6 Sep 2024 09:14:37 +0000 (11:14 +0200)
If the ext-PA target power is unset, fall back to the standard EEPROM value.

Link: https://patch.msgid.link/20240827093011.18621-2-nbd@nbd.name
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt7603/init.c

index 6c55c72f28a282564ba1f3088262a28cbd621852..f84c9a06af753dbc69e9e0d479135f8d0d4234c8 100644 (file)
@@ -456,11 +456,13 @@ mt7603_init_txpower(struct mt7603_dev *dev,
        int target_power = eeprom[MT_EE_TX_POWER_0_START_2G + 2] & ~BIT(7);
        u8 *rate_power = &eeprom[MT_EE_TX_POWER_CCK];
        bool ext_pa = eeprom[MT_EE_NIC_CONF_0 + 1] & BIT(1);
+       u8 ext_pa_pwr;
        int max_offset, cur_offset;
        int i;
 
-       if (ext_pa && is_mt7603(dev))
-               target_power = eeprom[MT_EE_TX_POWER_TSSI_OFF] & ~BIT(7);
+       ext_pa_pwr = eeprom[MT_EE_TX_POWER_TSSI_OFF];
+       if (ext_pa && is_mt7603(dev) && ext_pa_pwr != 0 && ext_pa_pwr != 0xff)
+               target_power = ext_pa_pwr & ~BIT(7);
 
        if (target_power & BIT(6))
                target_power = -(target_power & GENMASK(5, 0));