45 lines
1.4 KiB
Diff
45 lines
1.4 KiB
Diff
From c49b2d829aa1c816a46a577cdec6d2ff14d9f06e Mon Sep 17 00:00:00 2001
|
|
From: Gabor Juhos <juhosg@openwrt.org>
|
|
Date: Tue, 1 Oct 2013 15:40:08 +0200
|
|
Subject: [PATCH] rt2x00: rt2800lib: fix VGC setup for RT3883
|
|
|
|
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
|
---
|
|
drivers/net/wireless/rt2x00/rt2800lib.c | 11 +++++++++--
|
|
1 file changed, 9 insertions(+), 2 deletions(-)
|
|
|
|
--- a/drivers/net/wireless/rt2x00/rt2800lib.c
|
|
+++ b/drivers/net/wireless/rt2x00/rt2800lib.c
|
|
@@ -4780,7 +4780,8 @@ static u8 rt2800_get_default_vgc(struct
|
|
else
|
|
vgc = 0x2e + rt2x00dev->lna_gain;
|
|
} else { /* 5GHZ band */
|
|
- if (rt2x00_rt(rt2x00dev, RT3593))
|
|
+ if (rt2x00_rt(rt2x00dev, RT3593) ||
|
|
+ rt2x00_rt(rt2x00dev, RT3883))
|
|
vgc = 0x20 + (rt2x00dev->lna_gain * 5) / 3;
|
|
else if (rt2x00_rt(rt2x00dev, RT5592))
|
|
vgc = 0x24 + (2 * rt2x00dev->lna_gain);
|
|
@@ -4800,7 +4801,8 @@ static inline void rt2800_set_vgc(struct
|
|
{
|
|
if (qual->vgc_level != vgc_level) {
|
|
if (rt2x00_rt(rt2x00dev, RT3572) ||
|
|
- rt2x00_rt(rt2x00dev, RT3593)) {
|
|
+ rt2x00_rt(rt2x00dev, RT3593) ||
|
|
+ rt2x00_rt(rt2x00dev, RT3883)) {
|
|
rt2800_bbp_write_with_rx_chain(rt2x00dev, 66,
|
|
vgc_level);
|
|
} else if (rt2x00_rt(rt2x00dev, RT5592)) {
|
|
@@ -4847,6 +4849,11 @@ void rt2800_link_tuner(struct rt2x00_dev
|
|
}
|
|
break;
|
|
|
|
+ case RT3883:
|
|
+ if (qual->rssi > -65)
|
|
+ vgc += 0x10;
|
|
+ break;
|
|
+
|
|
case RT5592:
|
|
if (qual->rssi > -65)
|
|
vgc += 0x20;
|