Skip to content

Commit b8cfd87

Browse files
committed
mt76: mt76x2: fix 2.4 GHz channel gain settings
AGC register 35, 37 override for the low gain setting should only be done on 5 GHz. Also, 2.4 GHz needs a different value for register 35 Signed-off-by: Felix Fietkau <nbd@nbd.name>
1 parent 45a042e commit b8cfd87

File tree

1 file changed

+14
-5
lines changed
  • drivers/net/wireless/mediatek/mt76/mt76x2

1 file changed

+14
-5
lines changed

drivers/net/wireless/mediatek/mt76/mt76x2/phy.c

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -285,6 +285,7 @@ void mt76x2_phy_update_channel_gain(struct mt76x02_dev *dev)
285285
{
286286
u8 *gain = dev->cal.agc_gain_init;
287287
u8 low_gain_delta, gain_delta;
288+
u32 agc_35, agc_37;
288289
bool gain_change;
289290
int low_gain;
290291
u32 val;
@@ -323,6 +324,16 @@ void mt76x2_phy_update_channel_gain(struct mt76x02_dev *dev)
323324
else
324325
low_gain_delta = 14;
325326

327+
agc_37 = 0x2121262c;
328+
if (dev->mt76.chandef.chan->band == NL80211_BAND_2GHZ)
329+
agc_35 = 0x11111516;
330+
else if (low_gain == 2)
331+
agc_35 = agc_37 = 0x08080808;
332+
else if (dev->mt76.chandef.width == NL80211_CHAN_WIDTH_80)
333+
agc_35 = 0x10101014;
334+
else
335+
agc_35 = 0x11111116;
336+
326337
if (low_gain == 2) {
327338
mt76_wr(dev, MT_BBP(RXO, 18), 0xf000a990);
328339
mt76_wr(dev, MT_BBP(AGC, 35), 0x08080808);
@@ -331,15 +342,13 @@ void mt76x2_phy_update_channel_gain(struct mt76x02_dev *dev)
331342
dev->cal.agc_gain_adjust = 0;
332343
} else {
333344
mt76_wr(dev, MT_BBP(RXO, 18), 0xf000a991);
334-
if (dev->mt76.chandef.width == NL80211_CHAN_WIDTH_80)
335-
mt76_wr(dev, MT_BBP(AGC, 35), 0x10101014);
336-
else
337-
mt76_wr(dev, MT_BBP(AGC, 35), 0x11111116);
338-
mt76_wr(dev, MT_BBP(AGC, 37), 0x2121262C);
339345
gain_delta = 0;
340346
dev->cal.agc_gain_adjust = low_gain_delta;
341347
}
342348

349+
mt76_wr(dev, MT_BBP(AGC, 35), agc_35);
350+
mt76_wr(dev, MT_BBP(AGC, 37), agc_37);
351+
343352
dev->cal.agc_gain_cur[0] = gain[0] - gain_delta;
344353
dev->cal.agc_gain_cur[1] = gain[1] - gain_delta;
345354
mt76x2_phy_set_gain_val(dev);

0 commit comments

Comments
 (0)