diff options
author | Felix Fietkau <nbd@nbd.name> | 2024-08-27 11:29:49 +0200 |
---|---|---|
committer | Felix Fietkau <nbd@nbd.name> | 2024-09-06 11:14:37 +0200 |
commit | 3dd99b8f20154708ed51b5059ed5e260108d3bed (patch) | |
tree | 20c64d92b336a5708e30496c2fd50b2bfa83edbf /drivers/net/wireless | |
parent | 9b8d932053b8b45d650360b36f701cf0f9b6470e (diff) | |
download | lwn-3dd99b8f20154708ed51b5059ed5e260108d3bed.tar.gz lwn-3dd99b8f20154708ed51b5059ed5e260108d3bed.zip |
wifi: mt76: mt7603: fix reading target power from eeprom
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>
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r-- | drivers/net/wireless/mediatek/mt76/mt7603/init.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/net/wireless/mediatek/mt76/mt7603/init.c b/drivers/net/wireless/mediatek/mt76/mt7603/init.c index 6c55c72f28a2..f84c9a06af75 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7603/init.c +++ b/drivers/net/wireless/mediatek/mt76/mt7603/init.c @@ -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)); |