hc
2024-01-03 2f7c68cb55ecb7331f2381deb497c27155f32faf
kernel/drivers/net/wireless/mediatek/mt76/mt76x2/eeprom.c
....@@ -256,7 +256,8 @@
256256 struct ieee80211_channel *chan = dev->mphy.chandef.chan;
257257 int channel = chan->hw_value;
258258 s8 lna_5g[3], lna_2g;
259
- u8 lna;
259
+ bool use_lna;
260
+ u8 lna = 0;
260261 u16 val;
261262
262263 if (chan->band == NL80211_BAND_2GHZ)
....@@ -275,7 +276,15 @@
275276 dev->cal.rx.mcu_gain |= (lna_5g[1] & 0xff) << 16;
276277 dev->cal.rx.mcu_gain |= (lna_5g[2] & 0xff) << 24;
277278
278
- lna = mt76x02_get_lna_gain(dev, &lna_2g, lna_5g, chan);
279
+ val = mt76x02_eeprom_get(dev, MT_EE_NIC_CONF_1);
280
+ if (chan->band == NL80211_BAND_2GHZ)
281
+ use_lna = !(val & MT_EE_NIC_CONF_1_LNA_EXT_2G);
282
+ else
283
+ use_lna = !(val & MT_EE_NIC_CONF_1_LNA_EXT_5G);
284
+
285
+ if (use_lna)
286
+ lna = mt76x02_get_lna_gain(dev, &lna_2g, lna_5g, chan);
287
+
279288 dev->cal.rx.lna_gain = mt76x02_sign_extend(lna, 8);
280289 }
281290 EXPORT_SYMBOL_GPL(mt76x2_read_rx_gain);