rtl8xxxu: Add 8723by AGC table
authorJes Sorensen <Jes.Sorensen@redhat.com>
Mon, 29 Feb 2016 22:04:18 +0000 (17:04 -0500)
committerKalle Valo <kvalo@codeaurora.org>
Thu, 10 Mar 2016 13:28:57 +0000 (15:28 +0200)
The different RF module seems to require a different AGC table as well

Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c

index 813aadb3e47334013eb848483cb47f572f9ce0bc..89c66a2e49c1fd40a5cb2112416a1ea92c937b24 100644 (file)
@@ -748,6 +748,77 @@ static struct rtl8xxxu_reg32val rtl8xxx_agc_highpa_table[] = {
        {0xffff, 0xffffffff}
 };
 
+static struct rtl8xxxu_reg32val rtl8xxx_agc_8723bu_table[] = {
+       {0xc78, 0xfd000001}, {0xc78, 0xfc010001},
+       {0xc78, 0xfb020001}, {0xc78, 0xfa030001},
+       {0xc78, 0xf9040001}, {0xc78, 0xf8050001},
+       {0xc78, 0xf7060001}, {0xc78, 0xf6070001},
+       {0xc78, 0xf5080001}, {0xc78, 0xf4090001},
+       {0xc78, 0xf30a0001}, {0xc78, 0xf20b0001},
+       {0xc78, 0xf10c0001}, {0xc78, 0xf00d0001},
+       {0xc78, 0xef0e0001}, {0xc78, 0xee0f0001},
+       {0xc78, 0xed100001}, {0xc78, 0xec110001},
+       {0xc78, 0xeb120001}, {0xc78, 0xea130001},
+       {0xc78, 0xe9140001}, {0xc78, 0xe8150001},
+       {0xc78, 0xe7160001}, {0xc78, 0xe6170001},
+       {0xc78, 0xe5180001}, {0xc78, 0xe4190001},
+       {0xc78, 0xe31a0001}, {0xc78, 0xa51b0001},
+       {0xc78, 0xa41c0001}, {0xc78, 0xa31d0001},
+       {0xc78, 0x671e0001}, {0xc78, 0x661f0001},
+       {0xc78, 0x65200001}, {0xc78, 0x64210001},
+       {0xc78, 0x63220001}, {0xc78, 0x4a230001},
+       {0xc78, 0x49240001}, {0xc78, 0x48250001},
+       {0xc78, 0x47260001}, {0xc78, 0x46270001},
+       {0xc78, 0x45280001}, {0xc78, 0x44290001},
+       {0xc78, 0x432a0001}, {0xc78, 0x422b0001},
+       {0xc78, 0x292c0001}, {0xc78, 0x282d0001},
+       {0xc78, 0x272e0001}, {0xc78, 0x262f0001},
+       {0xc78, 0x0a300001}, {0xc78, 0x09310001},
+       {0xc78, 0x08320001}, {0xc78, 0x07330001},
+       {0xc78, 0x06340001}, {0xc78, 0x05350001},
+       {0xc78, 0x04360001}, {0xc78, 0x03370001},
+       {0xc78, 0x02380001}, {0xc78, 0x01390001},
+       {0xc78, 0x013a0001}, {0xc78, 0x013b0001},
+       {0xc78, 0x013c0001}, {0xc78, 0x013d0001},
+       {0xc78, 0x013e0001}, {0xc78, 0x013f0001},
+       {0xc78, 0xfc400001}, {0xc78, 0xfb410001},
+       {0xc78, 0xfa420001}, {0xc78, 0xf9430001},
+       {0xc78, 0xf8440001}, {0xc78, 0xf7450001},
+       {0xc78, 0xf6460001}, {0xc78, 0xf5470001},
+       {0xc78, 0xf4480001}, {0xc78, 0xf3490001},
+       {0xc78, 0xf24a0001}, {0xc78, 0xf14b0001},
+       {0xc78, 0xf04c0001}, {0xc78, 0xef4d0001},
+       {0xc78, 0xee4e0001}, {0xc78, 0xed4f0001},
+       {0xc78, 0xec500001}, {0xc78, 0xeb510001},
+       {0xc78, 0xea520001}, {0xc78, 0xe9530001},
+       {0xc78, 0xe8540001}, {0xc78, 0xe7550001},
+       {0xc78, 0xe6560001}, {0xc78, 0xe5570001},
+       {0xc78, 0xe4580001}, {0xc78, 0xe3590001},
+       {0xc78, 0xa65a0001}, {0xc78, 0xa55b0001},
+       {0xc78, 0xa45c0001}, {0xc78, 0xa35d0001},
+       {0xc78, 0x675e0001}, {0xc78, 0x665f0001},
+       {0xc78, 0x65600001}, {0xc78, 0x64610001},
+       {0xc78, 0x63620001}, {0xc78, 0x62630001},
+       {0xc78, 0x61640001}, {0xc78, 0x48650001},
+       {0xc78, 0x47660001}, {0xc78, 0x46670001},
+       {0xc78, 0x45680001}, {0xc78, 0x44690001},
+       {0xc78, 0x436a0001}, {0xc78, 0x426b0001},
+       {0xc78, 0x286c0001}, {0xc78, 0x276d0001},
+       {0xc78, 0x266e0001}, {0xc78, 0x256f0001},
+       {0xc78, 0x24700001}, {0xc78, 0x09710001},
+       {0xc78, 0x08720001}, {0xc78, 0x07730001},
+       {0xc78, 0x06740001}, {0xc78, 0x05750001},
+       {0xc78, 0x04760001}, {0xc78, 0x03770001},
+       {0xc78, 0x02780001}, {0xc78, 0x01790001},
+       {0xc78, 0x017a0001}, {0xc78, 0x017b0001},
+       {0xc78, 0x017c0001}, {0xc78, 0x017d0001},
+       {0xc78, 0x017e0001}, {0xc78, 0x017f0001},
+       {0xc50, 0x69553422},
+       {0xc50, 0x69553420},
+       {0x824, 0x00390204},
+       {0xffff, 0xffffffff}
+};
+
 static struct rtl8xxxu_rfregval rtl8723au_radioa_1t_init_table[] = {
        {0x00, 0x00030159}, {0x01, 0x00031284},
        {0x02, 0x00098000}, {0x03, 0x00039c63},
@@ -2895,7 +2966,9 @@ static int rtl8xxxu_init_phy_bb(struct rtl8xxxu_priv *priv)
                rtl8xxxu_write32(priv, REG_TX_TO_TX, val32);
        }
 
-       if (priv->hi_pa)
+       if (priv->rtlchip == 0x8723b)
+               rtl8xxxu_init_phy_regs(priv, rtl8xxx_agc_8723bu_table);
+       else if (priv->hi_pa)
                rtl8xxxu_init_phy_regs(priv, rtl8xxx_agc_highpa_table);
        else
                rtl8xxxu_init_phy_regs(priv, rtl8xxx_agc_standard_table);