rtl8xxxu: Introduce fops bitflag indicating type of thermal meter
authorJes Sorensen <Jes.Sorensen@redhat.com>
Fri, 19 Aug 2016 21:46:36 +0000 (17:46 -0400)
committerKalle Valo <kvalo@codeaurora.org>
Sat, 3 Sep 2016 16:57:22 +0000 (19:57 +0300)
Do not rely on TX descriptor size to determine the thermal meter
type.

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

index c5b684622ed666a3919d7172cc735dedbbd54d71..68d80c437449b02c580fbfa0f8821d82df9c7a73 100644 (file)
@@ -1342,6 +1342,7 @@ struct rtl8xxxu_fileops {
        char rx_desc_size;
        u8 has_s0s1:1;
        u8 has_tx_report:1;
+       u8 gen2_thermal_meter:1;
        u32 adda_1t_init;
        u32 adda_1t_path_on;
        u32 adda_2t_path_on_a;
index 9a1994f49b7b817bc35959fecc3cd4c647fb88f3..99011999829a17f6cda5bcdcdfaabc43e4987227 100644 (file)
@@ -1505,6 +1505,7 @@ struct rtl8xxxu_fileops rtl8192eu_fops = {
        .tx_desc_size = sizeof(struct rtl8xxxu_txdesc40),
        .rx_desc_size = sizeof(struct rtl8xxxu_rxdesc24),
        .has_s0s1 = 0,
+       .gen2_thermal_meter = 1,
        .adda_1t_init = 0x0fc01616,
        .adda_1t_path_on = 0x0fc01616,
        .adda_2t_path_on_a = 0x0fc01616,
index 0b6a6ca40b980e1bed63003cd546a95bdb7ce4c3..dd2c0f0ec0aabb4808849d86f820fb187ab6ec1a 100644 (file)
@@ -1667,6 +1667,7 @@ struct rtl8xxxu_fileops rtl8723bu_fops = {
        .rx_desc_size = sizeof(struct rtl8xxxu_rxdesc24),
        .has_s0s1 = 1,
        .has_tx_report = 1,
+       .gen2_thermal_meter = 1,
        .adda_1t_init = 0x01c00014,
        .adda_1t_path_on = 0x01c00014,
        .adda_2t_path_on_a = 0x01c00014,
index 81b95825bc848f492b74729aadc94bcb95d594b6..6de5b8f9340fc3c41a4a8ef152205a71eafc9623 100644 (file)
@@ -4195,7 +4195,7 @@ static int rtl8xxxu_init_device(struct ieee80211_hw *hw)
        /*
         * This should enable thermal meter
         */
-       if (priv->fops->tx_desc_size == sizeof(struct rtl8xxxu_txdesc40))
+       if (priv->fops->gen2_thermal_meter)
                rtl8xxxu_write_rfreg(priv,
                                     RF_A, RF6052_REG_T_METER_8723B, 0x37cf8);
        else