From: Gabor Juhos <juh...@openwrt.org>

Signed-off-by: Gabor Juhos <juh...@openwrt.org>
Signed-off-by: Stanislaw Gruszka <sgrus...@redhat.com>
---
 drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c 
b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
index a3b5b51d7779..b0701aba50de 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
@@ -5526,7 +5526,8 @@ static u8 rt2800_get_default_vgc(struct rt2x00_dev 
*rt2x00dev)
                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);
@@ -5546,7 +5547,8 @@ static inline void rt2800_set_vgc(struct rt2x00_dev 
*rt2x00dev,
 {
        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)) {
@@ -5593,6 +5595,11 @@ void rt2800_link_tuner(struct rt2x00_dev *rt2x00dev, 
struct link_qual *qual,
                }
                break;
 
+       case RT3883:
+               if (qual->rssi > -65)
+                       vgc += 0x10;
+               break;
+
        case RT5592:
                if (qual->rssi > -65)
                        vgc += 0x20;
-- 
2.7.5

Reply via email to