rtlwifi: Create new routine to initialize the DM tables
authorLarry Finger <Larry.Finger@lwfinger.net>
Tue, 6 Jan 2015 15:58:04 +0000 (09:58 -0600)
committerKalle Valo <kvalo@codeaurora.org>
Fri, 9 Jan 2015 13:48:10 +0000 (15:48 +0200)
Each of the drivers contains a routine that initializes the dm_digtable
member of the driver's private area. As a first step toward reducing the
size of the drivers, a copy of this driver is created in rtlwifi, and the
definitions of the parameters are moved there.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
20 files changed:
drivers/net/wireless/rtlwifi/core.c
drivers/net/wireless/rtlwifi/core.h
drivers/net/wireless/rtlwifi/rtl8188ee/dm.c
drivers/net/wireless/rtlwifi/rtl8188ee/dm.h
drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c
drivers/net/wireless/rtlwifi/rtl8192c/dm_common.h
drivers/net/wireless/rtlwifi/rtl8192ce/dm.c
drivers/net/wireless/rtlwifi/rtl8192ce/dm.h
drivers/net/wireless/rtlwifi/rtl8192de/dm.c
drivers/net/wireless/rtlwifi/rtl8192de/dm.h
drivers/net/wireless/rtlwifi/rtl8192ee/dm.c
drivers/net/wireless/rtlwifi/rtl8192ee/dm.h
drivers/net/wireless/rtlwifi/rtl8192se/dm.c
drivers/net/wireless/rtlwifi/rtl8192se/dm.h
drivers/net/wireless/rtlwifi/rtl8723ae/dm.c
drivers/net/wireless/rtlwifi/rtl8723ae/dm.h
drivers/net/wireless/rtlwifi/rtl8723be/dm.c
drivers/net/wireless/rtlwifi/rtl8723be/dm.h
drivers/net/wireless/rtlwifi/rtl8821ae/dm.c
drivers/net/wireless/rtlwifi/rtl8821ae/dm.h

index deab852..5aa3ab3 100644 (file)
@@ -1871,3 +1871,37 @@ bool rtl_btc_status_false(void)
        return false;
 }
 EXPORT_SYMBOL_GPL(rtl_btc_status_false);
+
+void rtl_dm_diginit(struct ieee80211_hw *hw, u32 cur_igvalue)
+{
+       struct rtl_priv *rtlpriv = rtl_priv(hw);
+       struct dig_t *dm_digtable = &rtlpriv->dm_digtable;
+
+       dm_digtable->dig_enable_flag = true;
+       dm_digtable->cur_igvalue = cur_igvalue;
+       dm_digtable->pre_igvalue = 0;
+       dm_digtable->cur_sta_cstate = DIG_STA_DISCONNECT;
+       dm_digtable->presta_cstate = DIG_STA_DISCONNECT;
+       dm_digtable->curmultista_cstate = DIG_MULTISTA_DISCONNECT;
+       dm_digtable->rssi_lowthresh = DM_DIG_THRESH_LOW;
+       dm_digtable->rssi_highthresh = DM_DIG_THRESH_HIGH;
+       dm_digtable->fa_lowthresh = DM_FALSEALARM_THRESH_LOW;
+       dm_digtable->fa_highthresh = DM_FALSEALARM_THRESH_HIGH;
+       dm_digtable->rx_gain_max = DM_DIG_MAX;
+       dm_digtable->rx_gain_min = DM_DIG_MIN;
+       dm_digtable->back_val = DM_DIG_BACKOFF_DEFAULT;
+       dm_digtable->back_range_max = DM_DIG_BACKOFF_MAX;
+       dm_digtable->back_range_min = DM_DIG_BACKOFF_MIN;
+       dm_digtable->pre_cck_cca_thres = 0xff;
+       dm_digtable->cur_cck_cca_thres = 0x83;
+       dm_digtable->forbidden_igi = DM_DIG_MIN;
+       dm_digtable->large_fa_hit = 0;
+       dm_digtable->recover_cnt = 0;
+       dm_digtable->dig_min_0 = 0x25;
+       dm_digtable->dig_min_1 = 0x25;
+       dm_digtable->media_connect_0 = false;
+       dm_digtable->media_connect_1 = false;
+       rtlpriv->dm.dm_initialgain_enable = true;
+       dm_digtable->bt30_cur_igi = 0x32;
+}
+EXPORT_SYMBOL(rtl_dm_diginit);
index 8c87eb5..c0a0317 100644 (file)
 
 #define RTL_SUPPORTED_CTRL_FILTER      0xFF
 
+#define DM_DIG_THRESH_HIGH             40
+#define DM_DIG_THRESH_LOW              35
+#define DM_FALSEALARM_THRESH_LOW       400
+#define DM_FALSEALARM_THRESH_HIGH      1000
+
+#define DM_DIG_MAX                     0x3e
+#define DM_DIG_MIN                     0x1e
+#define DM_DIG_BACKOFF_MAX             12
+#define DM_DIG_BACKOFF_MIN             -4
+#define DM_DIG_BACKOFF_DEFAULT         10
+
+enum dm_dig_connect_e {
+       DIG_STA_DISCONNECT,
+       DIG_STA_CONNECT,
+       DIG_STA_BEFORE_CONNECT,
+       DIG_MULTISTA_DISCONNECT,
+       DIG_MULTISTA_CONNECT,
+       DIG_AP_DISCONNECT,
+       DIG_AP_CONNECT,
+       DIG_AP_ADD_STATION,
+       DIG_CONNECT_MAX
+};
+
 extern const struct ieee80211_ops rtl_ops;
 void rtl_fw_cb(const struct firmware *firmware, void *context);
 void rtl_wowlan_fw_cb(const struct firmware *firmware, void *context);
@@ -44,5 +67,6 @@ void rtl_rfreg_delay(struct ieee80211_hw *hw, enum radio_path rfpath, u32 addr,
 void rtl_bb_delay(struct ieee80211_hw *hw, u32 addr, u32 data);
 bool rtl_cmd_send_packet(struct ieee80211_hw *hw, struct sk_buff *skb);
 bool rtl_btc_status_false(void);
+void rtl_dm_diginit(struct ieee80211_hw *hw, u32 cur_igval);
 
 #endif
index 2aa34d9..7ebf6e0 100644 (file)
@@ -26,6 +26,7 @@
 #include "../wifi.h"
 #include "../base.h"
 #include "../pci.h"
+#include "../core.h"
 #include "reg.h"
 #include "def.h"
 #include "phy.h"
index 64f1f3e..6217b7c 100644 (file)
 #define BW_AUTO_SWITCH_HIGH_LOW                                25
 #define BW_AUTO_SWITCH_LOW_HIGH                                30
 
-#define DM_DIG_THRESH_HIGH                             40
-#define DM_DIG_THRESH_LOW                              35
-
-#define DM_FALSEALARM_THRESH_LOW                       400
-#define DM_FALSEALARM_THRESH_HIGH                      1000
-
-#define DM_DIG_MAX                                     0x3e
-#define DM_DIG_MIN                                     0x1e
-
 #define DM_DIG_MAX_AP                                  0x32
 #define DM_DIG_MIN_AP                                  0x20
 
 #define DM_DIG_FA_TH1                                  0x300
 #define DM_DIG_FA_TH2                                  0x400
 
-#define DM_DIG_BACKOFF_MAX                             12
-#define DM_DIG_BACKOFF_MIN                             -4
-#define DM_DIG_BACKOFF_DEFAULT                         10
-
 #define RXPATHSELECTION_SS_TH_W                                30
 #define RXPATHSELECTION_DIFF_TH                                18
 
@@ -296,15 +283,6 @@ enum dm_dig_ext_port_alg_e {
        DIG_EXT_PORT_STAGE_MAX = 4,
 };
 
-enum dm_dig_connect_e {
-       DIG_STA_DISCONNECT = 0,
-       DIG_STA_CONNECT = 1,
-       DIG_STA_BEFORE_CONNECT = 2,
-       DIG_MULTISTA_DISCONNECT = 3,
-       DIG_MULTISTA_CONNECT = 4,
-       DIG_CONNECT_MAX
-};
-
 enum pwr_track_control_method {
        BBSWING,
        TXAGC
index c3aad76..dabe18f 100644 (file)
@@ -32,6 +32,7 @@
 #include "phy_common.h"
 #include "../pci.h"
 #include "../base.h"
+#include "../core.h"
 
 #define BT_RSSI_STATE_NORMAL_POWER     BIT_OFFSET_LEN_MASK_32(0, 1)
 #define BT_RSSI_STATE_AMDPU_OFF                BIT_OFFSET_LEN_MASK_32(1, 1)
index 4f232a0..55ebffd 100644 (file)
 #define BW_AUTO_SWITCH_HIGH_LOW                        25
 #define BW_AUTO_SWITCH_LOW_HIGH                        30
 
-#define DM_DIG_THRESH_HIGH                     40
-#define DM_DIG_THRESH_LOW                      35
-
-#define DM_FALSEALARM_THRESH_LOW               400
-#define DM_FALSEALARM_THRESH_HIGH              1000
-
-#define DM_DIG_MAX                             0x3e
-#define DM_DIG_MIN                             0x1e
-
 #define DM_DIG_FA_UPPER                                0x32
 #define DM_DIG_FA_LOWER                                0x20
 #define DM_DIG_FA_TH0                          0x20
 #define DM_DIG_FA_TH1                          0x100
 #define DM_DIG_FA_TH2                          0x200
 
-#define DM_DIG_BACKOFF_MAX                     12
-#define DM_DIG_BACKOFF_MIN                     -4
-#define DM_DIG_BACKOFF_DEFAULT                 10
-
 #define RXPATHSELECTION_SS_TH_lOW              30
 #define RXPATHSELECTION_DIFF_TH                        18
 
@@ -157,15 +144,6 @@ enum dm_dig_ext_port_alg_e {
        DIG_EXT_PORT_STAGE_MAX = 4,
 };
 
-enum dm_dig_connect_e {
-       DIG_STA_DISCONNECT = 0,
-       DIG_STA_CONNECT = 1,
-       DIG_STA_BEFORE_CONNECT = 2,
-       DIG_MULTISTA_DISCONNECT = 3,
-       DIG_MULTISTA_CONNECT = 4,
-       DIG_CONNECT_MAX
-};
-
 void rtl92c_dm_init(struct ieee80211_hw *hw);
 void rtl92c_dm_watchdog(struct ieee80211_hw *hw);
 void rtl92c_dm_write_dig(struct ieee80211_hw *hw);
index 74f9c08..09898cf 100644 (file)
@@ -30,6 +30,7 @@
 #include "../wifi.h"
 #include "../base.h"
 #include "../pci.h"
+#include "../core.h"
 #include "reg.h"
 #include "def.h"
 #include "phy.h"
index 9c5311c..38ba707 100644 (file)
 #define BW_AUTO_SWITCH_HIGH_LOW                        25
 #define BW_AUTO_SWITCH_LOW_HIGH                        30
 
-#define DM_DIG_THRESH_HIGH                     40
-#define DM_DIG_THRESH_LOW                      35
-
-#define DM_FALSEALARM_THRESH_LOW               400
-#define DM_FALSEALARM_THRESH_HIGH              1000
-
-#define DM_DIG_MAX                             0x3e
-#define DM_DIG_MIN                             0x1e
-
 #define DM_DIG_FA_UPPER                                0x32
 #define DM_DIG_FA_LOWER                                0x20
 #define DM_DIG_FA_TH0                          0x20
 #define DM_DIG_FA_TH1                          0x100
 #define DM_DIG_FA_TH2                          0x200
 
-#define DM_DIG_BACKOFF_MAX                     12
-#define DM_DIG_BACKOFF_MIN                     -4
-#define DM_DIG_BACKOFF_DEFAULT                 10
-
 #define RXPATHSELECTION_SS_TH_lOW              30
 #define RXPATHSELECTION_DIFF_TH                        18
 
index 304c443..75643ab 100644 (file)
@@ -29,6 +29,7 @@
 
 #include "../wifi.h"
 #include "../base.h"
+#include "../core.h"
 #include "reg.h"
 #include "def.h"
 #include "phy.h"
index 3fea0c1..d21b3bc 100644 (file)
 #define BW_AUTO_SWITCH_HIGH_LOW                        25
 #define BW_AUTO_SWITCH_LOW_HIGH                        30
 
-#define DM_DIG_THRESH_HIGH                     40
-#define DM_DIG_THRESH_LOW                      35
-
-#define DM_FALSEALARM_THRESH_LOW               400
-#define DM_FALSEALARM_THRESH_HIGH              1000
-
-#define DM_DIG_MAX                             0x3e
-#define DM_DIG_MIN                             0x1c
-
 #define DM_DIG_FA_UPPER                                0x32
 #define DM_DIG_FA_LOWER                                0x20
 #define DM_DIG_FA_TH0                          0x100
 #define DM_DIG_FA_TH1                          0x400
 #define DM_DIG_FA_TH2                          0x600
 
-#define DM_DIG_BACKOFF_MAX                     12
-#define DM_DIG_BACKOFF_MIN                     -4
-#define DM_DIG_BACKOFF_DEFAULT                 10
-
 #define RXPATHSELECTION_SS_TH_lOW              30
 #define RXPATHSELECTION_DIFF_TH                        18
 
@@ -142,15 +129,6 @@ enum dm_dig_ext_port_alg {
        DIG_EXT_PORT_STAGE_MAX = 4,
 };
 
-enum dm_dig_connect {
-       DIG_STA_DISCONNECT = 0,
-       DIG_STA_CONNECT = 1,
-       DIG_STA_BEFORE_CONNECT = 2,
-       DIG_MULTISTA_DISCONNECT = 3,
-       DIG_MULTISTA_CONNECT = 4,
-       DIG_CONNECT_MAX
-};
-
 void rtl92d_dm_init(struct ieee80211_hw *hw);
 void rtl92d_dm_watchdog(struct ieee80211_hw *hw);
 void rtl92d_dm_init_edca_turbo(struct ieee80211_hw *hw);
index 2fa4c45..70e58d1 100644 (file)
@@ -26,6 +26,7 @@
 #include "../wifi.h"
 #include "../base.h"
 #include "../pci.h"
+#include "../core.h"
 #include "reg.h"
 #include "def.h"
 #include "phy.h"
index 881db7d..4880e19 100644 (file)
 #define BW_AUTO_SWITCH_HIGH_LOW                        25
 #define BW_AUTO_SWITCH_LOW_HIGH                        30
 
-#define DM_DIG_THRESH_HIGH                     40
-#define DM_DIG_THRESH_LOW                      35
-
-#define DM_FALSEALARM_THRESH_LOW               400
-#define DM_FALSEALARM_THRESH_HIGH              1000
-
-#define DM_DIG_MAX                             0x3e
-#define DM_DIG_MIN                             0x1e
-
 #define DM_DIG_MAX_AP                          0x32
 #define DM_DIG_MIN_AP                          0x20
 
 #define DM_DIG_FA_TH1                          0x300
 #define DM_DIG_FA_TH2                          0x400
 
-#define DM_DIG_BACKOFF_MAX                     12
-#define DM_DIG_BACKOFF_MIN                     -4
-#define DM_DIG_BACKOFF_DEFAULT                 10
-
 #define RXPATHSELECTION_SS_TH_LOW              30
 #define RXPATHSELECTION_DIFF_TH                        18
 
index b3a2d5e..6cac70b 100644 (file)
@@ -29,6 +29,7 @@
 
 #include "../wifi.h"
 #include "../base.h"
+#include "../core.h"
 #include "reg.h"
 #include "def.h"
 #include "phy.h"
index 2e9052c..7d778d3 100644 (file)
@@ -54,16 +54,6 @@ enum dm_dig_sta {
        DM_STA_DIG_MAX
 };
 
-enum dm_dig_connect {
-       DIG_STA_DISCONNECT = 0,
-       DIG_STA_CONNECT = 1,
-       DIG_STA_BEFORE_CONNECT = 2,
-       DIG_AP_DISCONNECT = 3,
-       DIG_AP_CONNECT = 4,
-       DIG_AP_ADD_STATION = 5,
-       DIG_CONNECT_MAX
-};
-
 enum dm_dig_ext_port_alg {
        DIG_EXT_PORT_STAGE_0 = 0,
        DIG_EXT_PORT_STAGE_1 = 1,
@@ -99,22 +89,13 @@ enum dm_ratr_sta {
 #define        TX_POWER_NEAR_FIELD_THRESH_LVL2 74
 #define        TX_POWER_NEAR_FIELD_THRESH_LVL1 67
 
-#define DM_DIG_THRESH_HIGH             40
-#define DM_DIG_THRESH_LOW              35
-#define        DM_FALSEALARM_THRESH_LOW        40
-#define        DM_FALSEALARM_THRESH_HIGH       1000
 #define        DM_DIG_HIGH_PWR_THRESH_HIGH     75
 #define        DM_DIG_HIGH_PWR_THRESH_LOW      70
 #define        DM_DIG_BACKOFF                  12
-#define        DM_DIG_MAX                      0x3e
-#define        DM_DIG_MIN                      0x1c
 #define        DM_DIG_MIN_Netcore              0x12
-#define        DM_DIG_BACKOFF_MAX              12
-#define        DM_DIG_BACKOFF_MIN              -4
 
 void rtl92s_dm_watchdog(struct ieee80211_hw *hw);
 void rtl92s_dm_init(struct ieee80211_hw *hw);
 void rtl92s_dm_init_edca_turbo(struct ieee80211_hw *hw);
 
 #endif
-
index a0e8692..80f4c54 100644 (file)
@@ -26,6 +26,7 @@
 #include "../wifi.h"
 #include "../base.h"
 #include "../pci.h"
+#include "../core.h"
 #include "reg.h"
 #include "def.h"
 #include "phy.h"
index 6fa0feb..c54024e 100644 (file)
 #define BW_AUTO_SWITCH_HIGH_LOW                        25
 #define BW_AUTO_SWITCH_LOW_HIGH                        30
 
-#define DM_DIG_THRESH_HIGH                     40
-#define DM_DIG_THRESH_LOW                      35
-
-#define DM_FALSEALARM_THRESH_LOW               400
-#define DM_FALSEALARM_THRESH_HIGH              1000
-
-#define DM_DIG_MAX                             0x3e
-#define DM_DIG_MIN                             0x1e
-
 #define DM_DIG_FA_UPPER                                0x32
 #define DM_DIG_FA_LOWER                                0x20
 #define DM_DIG_FA_TH0                          0x20
 #define DM_DIG_FA_TH1                          0x100
 #define DM_DIG_FA_TH2                          0x200
 
-#define DM_DIG_BACKOFF_MAX                     12
-#define DM_DIG_BACKOFF_MIN                     -4
-#define DM_DIG_BACKOFF_DEFAULT                 10
-
 #define RXPATHSELECTION_SS_TH_LOW              30
 #define RXPATHSELECTION_DIFF_TH                        18
 
@@ -142,15 +129,6 @@ enum dm_dig_ext_port_alg_e {
        DIG_EXT_PORT_STAGE_MAX = 4,
 };
 
-enum dm_dig_connect_e {
-       DIG_STA_DISCONNECT = 0,
-       DIG_STA_CONNECT = 1,
-       DIG_STA_BEFORE_CONNECT = 2,
-       DIG_MULTISTA_DISCONNECT = 3,
-       DIG_MULTISTA_CONNECT = 4,
-       DIG_CONNECT_MAX
-};
-
 #define BT_RSSI_STATE_NORMAL_POWER      BIT_OFFSET_LEN_MASK_32(0, 1)
 #define BT_RSSI_STATE_AMDPU_OFF         BIT_OFFSET_LEN_MASK_32(1, 1)
 #define BT_RSSI_STATE_SPECIAL_LOW       BIT_OFFSET_LEN_MASK_32(2, 1)
index b92c521..ddf45d9 100644 (file)
@@ -26,6 +26,7 @@
 #include "../wifi.h"
 #include "../base.h"
 #include "../pci.h"
+#include "../core.h"
 #include "reg.h"
 #include "def.h"
 #include "phy.h"
index e4c0e8a..f3e47ab 100644 (file)
 #define BW_AUTO_SWITCH_HIGH_LOW                        25
 #define BW_AUTO_SWITCH_LOW_HIGH                        30
 
-#define DM_DIG_THRESH_HIGH                     40
-#define DM_DIG_THRESH_LOW                      35
-
-#define DM_FALSEALARM_THRESH_LOW               400
-#define DM_FALSEALARM_THRESH_HIGH              1000
-
-#define DM_DIG_MAX                             0x3e
-#define DM_DIG_MIN                             0x1e
-
 #define DM_DIG_MAX_AP                          0x32
 #define DM_DIG_MIN_AP                          0x20
 
 #define DM_DIG_FA_TH1                          0x300
 #define DM_DIG_FA_TH2                          0x400
 
-#define DM_DIG_BACKOFF_MAX                     12
-#define DM_DIG_BACKOFF_MIN                     -4
-#define DM_DIG_BACKOFF_DEFAULT                 10
-
 #define RXPATHSELECTION_SS_TH_LOW              30
 #define RXPATHSELECTION_DIFF_TH                        18
 
@@ -260,15 +247,6 @@ enum dm_dig_ext_port_alg_e {
        DIG_EXT_PORT_STAGE_MAX  = 4,
 };
 
-enum dm_dig_connect_e {
-       DIG_STA_DISCONNECT      = 0,
-       DIG_STA_CONNECT         = 1,
-       DIG_STA_BEFORE_CONNECT  = 2,
-       DIG_MULTISTA_DISCONNECT = 3,
-       DIG_MULTISTA_CONNECT    = 4,
-       DIG_CONNECT_MAX
-};
-
 enum pwr_track_control_method {
        BBSWING,
        TXAGC
index 8b0bfb2..4af4613 100644 (file)
@@ -26,6 +26,7 @@
 #include "../wifi.h"
 #include "../base.h"
 #include "../pci.h"
+#include "../core.h"
 #include "reg.h"
 #include "def.h"
 #include "phy.h"
index 9dd40dd..f311887 100644 (file)
 #define BW_AUTO_SWITCH_HIGH_LOW                25
 #define BW_AUTO_SWITCH_LOW_HIGH                30
 
-#define DM_DIG_THRESH_HIGH                     40
-#define DM_DIG_THRESH_LOW                      35
-
 #define DM_FALSEALARM_THRESH_LOW       400
 #define DM_FALSEALARM_THRESH_HIGH      1000
 
 #define DM_DIG_FA_TH1                          0x300
 #define DM_DIG_FA_TH2                          0x400
 
-#define DM_DIG_BACKOFF_MAX                     12
-#define DM_DIG_BACKOFF_MIN                     -4
-#define DM_DIG_BACKOFF_DEFAULT         10
-
 #define RXPATHSELECTION_SS_TH_LOW      30
 #define RXPATHSELECTION_DIFF_TH                18
 
@@ -296,15 +289,6 @@ enum dm_dig_ext_port_alg_e {
        DIG_EXT_PORT_STAGE_MAX = 4,
 };
 
-enum dm_dig_connect_e {
-       DIG_STA_DISCONNECT = 0,
-       DIG_STA_CONNECT = 1,
-       DIG_STA_BEFORE_CONNECT = 2,
-       DIG_MULTISTA_DISCONNECT = 3,
-       DIG_MULTISTA_CONNECT = 4,
-       DIG_CONNECT_MAX
-};
-
 enum pwr_track_control_method {
        BBSWING,
        TXAGC,