OSDN Git Service

rtl8xxxu: Load AGC table before patching for 1T2R parts
authorJes Sorensen <Jes.Sorensen@redhat.com>
Thu, 14 Apr 2016 18:58:58 +0000 (14:58 -0400)
committerKalle Valo <kvalo@codeaurora.org>
Fri, 15 Apr 2016 18:36:39 +0000 (21:36 +0300)
This should get the order right and avoid patching something that is
later overwritten.

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 43359a3..2127507 100644 (file)
@@ -3811,6 +3811,20 @@ static int rtl8xxxu_init_phy_bb(struct rtl8xxxu_priv *priv)
 
        priv->fops->init_phy_bb(priv);
 
+       if (priv->rtl_chip == RTL8723B)
+               rtl8xxxu_init_phy_regs(priv, rtl8xxx_agc_8723bu_table);
+       else if (priv->rtl_chip == RTL8192E) {
+               if (priv->hi_pa)
+                       rtl8xxxu_init_phy_regs(priv,
+                                              rtl8xxx_agc_8192eu_highpa_table);
+               else
+                       rtl8xxxu_init_phy_regs(priv,
+                                              rtl8xxx_agc_8192eu_std_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);
+
        if (priv->tx_paths == 1 && priv->rx_paths == 2) {
                /*
                 * For 1T2R boards, patch the registers.
@@ -3871,20 +3885,6 @@ static int rtl8xxxu_init_phy_bb(struct rtl8xxxu_priv *priv)
                rtl8xxxu_write32(priv, REG_TX_TO_TX, val32);
        }
 
-       if (priv->rtl_chip == RTL8723B)
-               rtl8xxxu_init_phy_regs(priv, rtl8xxx_agc_8723bu_table);
-       else if (priv->rtl_chip == RTL8192E) {
-               if (priv->hi_pa)
-                       rtl8xxxu_init_phy_regs(priv,
-                                              rtl8xxx_agc_8192eu_highpa_table);
-               else
-                       rtl8xxxu_init_phy_regs(priv,
-                                              rtl8xxx_agc_8192eu_std_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);
-
        if (priv->has_xtalk) {
                val32 = rtl8xxxu_read32(priv, REG_MAC_PHY_CTRL);