b43: N-PHY: add missing TX gain table for radio 0x2057 rev 5
authorRafał Miłecki <zajec5@gmail.com>
Sat, 12 Jul 2014 10:34:46 +0000 (12:34 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 15 Jul 2014 20:00:16 +0000 (16:00 -0400)
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/b43/tables_nphy.c

index 3a5cd902ff1fe1618acd7370b1adf03ffe32e3af..b39a8dd375e9b2a9c4ed5cbf17dd3dd632cd4cf2 100644 (file)
@@ -2692,6 +2692,42 @@ static const u32 b43_ntab_tx_gain_ipa_rev6_2g[] = {
        0x00f70028, 0x00f70027, 0x00f70026, 0x00f70025,
 };
 
+/* Copied from brcmsmac (5.75.11): nphy_tpc_txgain_ipa_2g_2057rev5 */
+static const u32 b43_ntab_tx_gain_ipa_2057_rev5_2g[] = {
+       0x30ff0031, 0x30e70031, 0x30e7002e, 0x30cf002e,
+       0x30bf002e, 0x30af002e, 0x309f002f, 0x307f0033,
+       0x307f0031, 0x307f002e, 0x3077002e, 0x306f002e,
+       0x3067002e, 0x305f002f, 0x30570030, 0x3057002d,
+       0x304f002e, 0x30470031, 0x3047002e, 0x3047002c,
+       0x30470029, 0x303f002c, 0x303f0029, 0x3037002d,
+       0x3037002a, 0x30370028, 0x302f002c, 0x302f002a,
+       0x302f0028, 0x302f0026, 0x3027002c, 0x30270029,
+       0x30270027, 0x30270025, 0x30270023, 0x301f002c,
+       0x301f002a, 0x301f0028, 0x301f0025, 0x301f0024,
+       0x301f0022, 0x301f001f, 0x3017002d, 0x3017002b,
+       0x30170028, 0x30170026, 0x30170024, 0x30170022,
+       0x30170020, 0x3017001e, 0x3017001d, 0x3017001b,
+       0x3017001a, 0x30170018, 0x30170017, 0x30170015,
+       0x300f002c, 0x300f0029, 0x300f0027, 0x300f0024,
+       0x300f0022, 0x300f0021, 0x300f001f, 0x300f001d,
+       0x300f001b, 0x300f001a, 0x300f0018, 0x300f0017,
+       0x300f0016, 0x300f0015, 0x300f0115, 0x300f0215,
+       0x300f0315, 0x300f0415, 0x300f0515, 0x300f0615,
+       0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
+       0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
+       0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
+       0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
+       0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
+       0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
+       0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
+       0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
+       0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
+       0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
+       0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
+       0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
+       0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715,
+};
+
 /* Extracted from MMIO dump of 6.30.223.141 */
 static const u32 b43_ntab_tx_gain_ipa_2057_rev9_2g[] = {
        0x60ff0031, 0x60e7002c, 0x60cf002a, 0x60c70029,
@@ -3550,6 +3586,11 @@ static const u32 *b43_nphy_get_ipa_gain_table(struct b43_wldev *dev)
                case 16:
                        if (phy->radio_rev == 9)
                                return b43_ntab_tx_gain_ipa_2057_rev9_2g;
+                       break;
+               case 8:
+                       if (phy->radio_rev == 5)
+                               return b43_ntab_tx_gain_ipa_2057_rev5_2g;
+                       break;
                case 6:
                        if (dev->dev->chip_id == BCMA_CHIP_ID_BCM47162)
                                return b43_ntab_tx_gain_ipa_rev5_2g;
@@ -3559,23 +3600,24 @@ static const u32 *b43_nphy_get_ipa_gain_table(struct b43_wldev *dev)
                case 4:
                case 3:
                        return b43_ntab_tx_gain_ipa_rev3_2g;
-               default:
-                       b43err(dev->wl,
-                              "No 2GHz IPA gain table available for this device\n");
-                       return NULL;
                }
+
+               b43err(dev->wl,
+                      "No 2GHz IPA gain table available for this device\n");
+               return NULL;
        } else {
                switch (phy->rev) {
                case 16:
                        if (phy->radio_rev == 9)
                                return b43_ntab_tx_gain_ipa_2057_rev9_5g;
+                       break;
                case 3 ... 6:
                        return b43_ntab_tx_gain_ipa_rev3_5g;
-               default:
-                       b43err(dev->wl,
-                              "No 5GHz IPA gain table available for this device\n");
-                       return NULL;
                }
+
+               b43err(dev->wl,
+                      "No 5GHz IPA gain table available for this device\n");
+               return NULL;
        }
 }