mirror of
https://github.com/openwrt/openwrt.git
synced 2025-02-13 22:22:10 +00:00
This patch contains some performance and stability improvements for MT7620: 1. Always calibrate MT7620 when switching channel. 2. Rework link tuner for MT7620. 3. Correct MT7620 SDM mode register value. 4. Fix register operation on RXIQ calibration. 5. Fix TX_PIN_CFG and TX_ALC_VGA3 init values. Signed-off-by: Shiji Yang <yangshiji66@qq.com> Link: https://github.com/openwrt/openwrt/pull/16845 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> (cherry picked from commit 5d583901657bdfbbf9fad77d9247872427aa5c99)
49 lines
1.6 KiB
Diff
49 lines
1.6 KiB
Diff
From aaa57924324c1ee77afa5e3effc95cc86158ddcc Mon Sep 17 00:00:00 2001
|
|
From: Shiji Yang <yangshiji66@outlook.com>
|
|
Date: Sun, 22 Dec 2024 17:06:59 +0800
|
|
Subject: [PATCH 2/4] rt2x00: rework link tuner for MT7620
|
|
|
|
Correct the VGC gain value for MT7620 and only do gain calibration
|
|
for supported devices.
|
|
|
|
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
|
|
---
|
|
drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 11 ++++++++---
|
|
1 file changed, 8 insertions(+), 3 deletions(-)
|
|
|
|
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
|
|
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
|
|
@@ -5561,6 +5561,9 @@ static void rt2800_config_txpower(struct
|
|
|
|
void rt2800_gain_calibration(struct rt2x00_dev *rt2x00dev)
|
|
{
|
|
+ if (rt2x00_rt(rt2x00dev, RT6352))
|
|
+ return;
|
|
+
|
|
rt2800_config_txpower(rt2x00dev, rt2x00dev->hw->conf.chandef.chan,
|
|
rt2x00dev->tx_power);
|
|
}
|
|
@@ -5773,9 +5776,10 @@ static u8 rt2800_get_default_vgc(struct
|
|
rt2x00_rt(rt2x00dev, RT3593) ||
|
|
rt2x00_rt(rt2x00dev, RT5390) ||
|
|
rt2x00_rt(rt2x00dev, RT5392) ||
|
|
- rt2x00_rt(rt2x00dev, RT5592) ||
|
|
- rt2x00_rt(rt2x00dev, RT6352))
|
|
+ rt2x00_rt(rt2x00dev, RT5592))
|
|
vgc = 0x1c + (2 * rt2x00dev->lna_gain);
|
|
+ else if(rt2x00_rt(rt2x00dev, RT6352))
|
|
+ vgc = 0x04 + (2 * rt2x00dev->lna_gain);
|
|
else
|
|
vgc = 0x2e + rt2x00dev->lna_gain;
|
|
} else { /* 5GHZ band */
|
|
@@ -5828,7 +5832,8 @@ void rt2800_link_tuner(struct rt2x00_dev
|
|
{
|
|
u8 vgc;
|
|
|
|
- if (rt2x00_rt_rev(rt2x00dev, RT2860, REV_RT2860C))
|
|
+ if (rt2x00_rt_rev(rt2x00dev, RT2860, REV_RT2860C) ||
|
|
+ rt2x00_rt(rt2x00dev, RT6352))
|
|
return;
|
|
|
|
/* When RSSI is better than a certain threshold, increase VGC
|