rt2x00: rt2800: add antenna diversity for RT5370G
authorXose Vazquez Perez <[email protected]>
Thu, 5 Apr 2018 12:22:32 +0000 (14:22 +0200)
committerKalle Valo <[email protected]>
Wed, 25 Apr 2018 08:24:30 +0000 (11:24 +0300)
RT5370G has hardware RX antenna diversity like RT5390R.
Based on DPO_RT5572_LinuxSTA_2.6.1.3_20121022.tar.bz2 manufacturer driver:
https://d86o2zu8ugzlg.cloudfront.net/mediatek-craft/drivers/DPO_RT5572_LinuxSTA_2.6.1.3_20121022.tar.bz2

Cc: Stanislaw Gruszka <[email protected]>
Cc: Helmut Schaa <[email protected]>
Cc: Gertjan van Wingerde <[email protected]>
Cc: Jakub Kicinski <[email protected]>
Cc: wireless newbie <[email protected]>
Cc: Kalle Valo <[email protected]>
Cc: linux wireless ml <[email protected]>
Signed-off-by: Xose Vazquez Perez <[email protected]>
Acked-by: Stanislaw Gruszka <[email protected]>
Signed-off-by: Kalle Valo <[email protected]>
drivers/net/wireless/ralink/rt2x00/rt2800.h
drivers/net/wireless/ralink/rt2x00/rt2800lib.c

index 6a8c93fb6a43587614d27a734306e350ef509efe..7a133e94b1bf4738f0b1b76462b63a4d8cc17c52 100644 (file)
@@ -94,6 +94,7 @@
 #define REV_RT3390E                    0x0211
 #define REV_RT3593E                    0x0211
 #define REV_RT5390F                    0x0502
+#define REV_RT5370G                    0x0503
 #define REV_RT5390R                    0x1502
 #define REV_RT5592C                    0x0221
 
index 429d07b651dd198e29d91b425a57bf299725fe25..e827dc522580f4a38b0820dcabc519a6fe9b9f4c 100644 (file)
@@ -6220,8 +6220,9 @@ static void rt2800_init_bbp_53xx(struct rt2x00_dev *rt2x00dev)
                rt2800_register_write(rt2x00dev, GPIO_CTRL, reg);
        }
 
-       /* This chip has hardware antenna diversity*/
-       if (rt2x00_rt_rev_gte(rt2x00dev, RT5390, REV_RT5390R)) {
+       /* These chips have hardware RX antenna diversity */
+       if (rt2x00_rt_rev_gte(rt2x00dev, RT5390, REV_RT5390R) ||
+           rt2x00_rt_rev_gte(rt2x00dev, RT5390, REV_RT5370G)) {
                rt2800_bbp_write(rt2x00dev, 150, 0); /* Disable Antenna Software OFDM */
                rt2800_bbp_write(rt2x00dev, 151, 0); /* Disable Antenna Software CCK */
                rt2800_bbp_write(rt2x00dev, 154, 0); /* Clear previously selected antenna */
@@ -8748,7 +8749,9 @@ static int rt2800_init_eeprom(struct rt2x00_dev *rt2x00dev)
                rt2x00dev->default_ant.rx = ANTENNA_A;
        }
 
-       if (rt2x00_rt_rev_gte(rt2x00dev, RT5390, REV_RT5390R)) {
+       /* These chips have hardware RX antenna diversity */
+       if (rt2x00_rt_rev_gte(rt2x00dev, RT5390, REV_RT5390R) ||
+           rt2x00_rt_rev_gte(rt2x00dev, RT5390, REV_RT5370G)) {
                rt2x00dev->default_ant.tx = ANTENNA_HW_DIVERSITY; /* Unused */
                rt2x00dev->default_ant.rx = ANTENNA_HW_DIVERSITY; /* Unused */
        }