rtl8xxxu: Correct struct rtl8723bu_efuse to list power bases correctly
authorJes Sorensen <Jes.Sorensen@redhat.com>
Mon, 29 Feb 2016 22:05:18 +0000 (17:05 -0500)
committerKalle Valo <kvalo@codeaurora.org>
Thu, 10 Mar 2016 13:29:12 +0000 (15:29 +0200)
Correct TX power definitions in rtl8723bu_efuse

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

index 5b6b9c5efc86901384bdddf9e5fcd1939817aea3..40447e4eb1d929e946af780d34a044b89310fa7d 100644 (file)
@@ -2338,16 +2338,6 @@ static int rtl8723bu_parse_efuse(struct rtl8xxxu_priv *priv)
 
        ether_addr_copy(priv->mac_addr, efuse->mac_addr);
 
-       memcpy(priv->cck_tx_power_index_A, efuse->cck_tx_power_index_A,
-              sizeof(priv->cck_tx_power_index_A));
-       memcpy(priv->cck_tx_power_index_B, efuse->cck_tx_power_index_B,
-              sizeof(priv->cck_tx_power_index_B));
-
-       memcpy(priv->ht40_1s_tx_power_index_A, efuse->ht40_1s_tx_power_index_A,
-              sizeof(priv->ht40_1s_tx_power_index_A));
-       memcpy(priv->ht40_1s_tx_power_index_B, efuse->ht40_1s_tx_power_index_B,
-              sizeof(priv->ht40_1s_tx_power_index_B));
-
        priv->has_xtalk = 1;
        priv->xtalk = priv->efuse_wifi.efuse8723bu.xtal_k & 0x3f;
 
index ac8f47f66d5f69d7f6cd7215f134806a4dfedcbd..6d565812a4b132492d4f6eb0e87256127cb597b5 100644 (file)
@@ -53,6 +53,7 @@
 
 #define RTL8723A_CHANNEL_GROUPS                3
 #define RTL8723A_MAX_RF_PATHS          2
+#define RTL8723B_MAX_RF_PATHS          4
 #define RF6052_MAX_TX_PWR              0x3f
 
 #define EFUSE_MAP_LEN                  512
@@ -631,14 +632,26 @@ struct rtl8192cu_efuse {
        u8 customer_id;
 };
 
+struct rtl8723bu_efuse_tx_power {
+       u8 cck_base[6];
+       u8 ht40_base[5];
+       struct rtl8723au_idx ht20_ofdm_1s_diff;
+       struct rtl8723au_idx ht40_ht20_2s_diff;
+       struct rtl8723au_idx ofdm_cck_2s_diff; /* not used */
+       struct rtl8723au_idx ht40_ht20_3s_diff;
+       struct rtl8723au_idx ofdm_cck_3s_diff; /* not used */
+       struct rtl8723au_idx ht40_ht20_4s_diff;
+       struct rtl8723au_idx ofdm_cck_4s_diff; /* not used */
+       u8 dummy5g[24]; /* max channel group (14) + power diff offset (10) */
+};
+
 struct rtl8723bu_efuse {
        __le16 rtl_id;
        u8 res0[0x0e];
-       u8 cck_tx_power_index_A[3];     /* 0x10 */
-       u8 cck_tx_power_index_B[3];
-       u8 ht40_1s_tx_power_index_A[3]; /* 0x16 */
-       u8 ht40_1s_tx_power_index_B[3];
-       u8 res1[0x9c];
+       struct rtl8723bu_efuse_tx_power tx_power_index_A;       /* 0x10 */
+       struct rtl8723bu_efuse_tx_power tx_power_index_B;       /* 0x3a */
+       struct rtl8723bu_efuse_tx_power tx_power_index_C;       /* 0x64 */
+       struct rtl8723bu_efuse_tx_power tx_power_index_D;       /* 0x8e */
        u8 channel_plan;                /* 0xb8 */
        u8 xtal_k;
        u8 thermal_meter;