Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 225a644a authored by Daniel Golle's avatar Daniel Golle Committed by Kalle Valo
Browse files

rt2800: fix LNA gain assignment for MT7620



The base value used for MT7620 differs from Rt5392 which resulted in
quite bad RX signal quality. Fix this by using the correct base value as
well as the LNA calibration values for HT20.

Reported-by: default avatarTom Psyborg <pozega.tomislav@gmail.com>
Signed-off-by: default avatarDaniel Golle <daniel@makrotopia.org>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
parent 0b16e0e9
Loading
Loading
Loading
Loading
+16 −2
Original line number Diff line number Diff line
@@ -3806,11 +3806,25 @@ static void rt2800_config_channel(struct rt2x00_dev *rt2x00dev,
	}

	if (rt2x00_rt(rt2x00dev, RT5592) || rt2x00_rt(rt2x00dev, RT6352)) {
		reg = 0x10;
		if (!conf_is_ht40(conf)) {
			if (rt2x00_rt(rt2x00dev, RT6352) &&
			    rt2x00_has_cap_external_lna_bg(rt2x00dev)) {
				reg |= 0x5;
			} else {
				reg |= 0xa;
			}
		}
		rt2800_bbp_write(rt2x00dev, 195, 141);
		rt2800_bbp_write(rt2x00dev, 196, conf_is_ht40(conf) ? 0x10 : 0x1a);
		rt2800_bbp_write(rt2x00dev, 196, reg);

		/* AGC init */
		reg = (rf->channel <= 14 ? 0x1c : 0x24) + 2 * rt2x00dev->lna_gain;
		if (rt2x00_rt(rt2x00dev, RT6352))
			reg = 0x04;
		else
			reg = rf->channel <= 14 ? 0x1c : 0x24;

		reg += 2 * rt2x00dev->lna_gain;
		rt2800_bbp_write_with_rx_chain(rt2x00dev, 66, reg);

		rt2800_iq_calibrate(rt2x00dev, rf->channel);