aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/rtlwifi
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2015-01-26 19:09:45 -0500
committerDavid S. Miller <davem@davemloft.net>2015-01-26 19:09:45 -0500
commit9c5d94bc18782ab3c48aa2df4ad6c451286a7bb3 (patch)
tree4fc63e45729fe4cba491c9a7abc9d9e9f72372f2 /drivers/net/wireless/rtlwifi
parentfd3e646c87ab3f2ba98aa25394581af27cc78dc5 (diff)
parentc5ed1df781cb544d4e4d189bb5b6ec7336d8888c (diff)
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next
Kalle Valo says: ==================== pull-request: wireless-drivers-next 2015-01-22 now a bigger pull request for net-next. Rafal found a UTF-8 bug in patchwork[1] and because of that two commits (d0c102f70aec and d0f66df5392a) have his name corrupted: Acked-by: Rafa? Mi?ecki <zajec5@gmail.com> Somehow I failed to spot that when I commited the patches. As rebasing public git trees is bad, I thought we can live with these and decided not to rebase. But I'll pay close attention to this in the future to make sure that it won't happen again. Also we requested an update to patchwork.kernel.org, the latest patchwork doesn't seem to have this bug. Also please note this pull request also adds one DT binding doc, but this was reviewed in the device tree list: .../bindings/net/wireless/qcom,ath10k.txt | 30 + Please let me know if you have any issues. [1] https://lists.ozlabs.org/pipermail/patchwork/2015-January/001261.html ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/wireless/rtlwifi')
-rw-r--r--drivers/net/wireless/rtlwifi/core.c37
-rw-r--r--drivers/net/wireless/rtlwifi/core.h41
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8188ee/dm.c36
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8188ee/dm.h41
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c45
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192c/dm_common.h38
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192ce/dm.c1
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192ce/dm.h13
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192de/dm.c33
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192de/dm.h38
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192de/hw.c2
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192ee/dm.c55
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192ee/dm.h16
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192se/dm.c7
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192se/dm.h28
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723ae/dm.c42
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723ae/dm.h38
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723be/dm.c55
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723be/dm.h33
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723be/sw.c10
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8821ae/dm.c58
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8821ae/dm.h41
-rw-r--r--drivers/net/wireless/rtlwifi/wifi.h2
23 files changed, 158 insertions, 552 deletions
diff --git a/drivers/net/wireless/rtlwifi/core.c b/drivers/net/wireless/rtlwifi/core.c
index deab85236bfd..eb203163ed05 100644
--- a/drivers/net/wireless/rtlwifi/core.c
+++ b/drivers/net/wireless/rtlwifi/core.c
@@ -1871,3 +1871,40 @@ bool rtl_btc_status_false(void)
1871 return false; 1871 return false;
1872} 1872}
1873EXPORT_SYMBOL_GPL(rtl_btc_status_false); 1873EXPORT_SYMBOL_GPL(rtl_btc_status_false);
1874
1875void rtl_dm_diginit(struct ieee80211_hw *hw, u32 cur_igvalue)
1876{
1877 struct rtl_priv *rtlpriv = rtl_priv(hw);
1878 struct dig_t *dm_digtable = &rtlpriv->dm_digtable;
1879
1880 dm_digtable->dig_enable_flag = true;
1881 dm_digtable->dig_ext_port_stage = DIG_EXT_PORT_STAGE_MAX;
1882 dm_digtable->cur_igvalue = cur_igvalue;
1883 dm_digtable->pre_igvalue = 0;
1884 dm_digtable->cur_sta_cstate = DIG_STA_DISCONNECT;
1885 dm_digtable->presta_cstate = DIG_STA_DISCONNECT;
1886 dm_digtable->curmultista_cstate = DIG_MULTISTA_DISCONNECT;
1887 dm_digtable->rssi_lowthresh = DM_DIG_THRESH_LOW;
1888 dm_digtable->rssi_highthresh = DM_DIG_THRESH_HIGH;
1889 dm_digtable->fa_lowthresh = DM_FALSEALARM_THRESH_LOW;
1890 dm_digtable->fa_highthresh = DM_FALSEALARM_THRESH_HIGH;
1891 dm_digtable->rx_gain_max = DM_DIG_MAX;
1892 dm_digtable->rx_gain_min = DM_DIG_MIN;
1893 dm_digtable->back_val = DM_DIG_BACKOFF_DEFAULT;
1894 dm_digtable->back_range_max = DM_DIG_BACKOFF_MAX;
1895 dm_digtable->back_range_min = DM_DIG_BACKOFF_MIN;
1896 dm_digtable->pre_cck_cca_thres = 0xff;
1897 dm_digtable->cur_cck_cca_thres = 0x83;
1898 dm_digtable->forbidden_igi = DM_DIG_MIN;
1899 dm_digtable->large_fa_hit = 0;
1900 dm_digtable->recover_cnt = 0;
1901 dm_digtable->dig_min_0 = 0x25;
1902 dm_digtable->dig_min_1 = 0x25;
1903 dm_digtable->media_connect_0 = false;
1904 dm_digtable->media_connect_1 = false;
1905 rtlpriv->dm.dm_initialgain_enable = true;
1906 dm_digtable->bt30_cur_igi = 0x32;
1907 dm_digtable->pre_cck_pd_state = CCK_PD_STAGE_MAX;
1908 dm_digtable->cur_cck_pd_state = CCK_PD_STAGE_LOWRSSI;
1909}
1910EXPORT_SYMBOL(rtl_dm_diginit);
diff --git a/drivers/net/wireless/rtlwifi/core.h b/drivers/net/wireless/rtlwifi/core.h
index 8c87eb54be66..7b64e34f421e 100644
--- a/drivers/net/wireless/rtlwifi/core.h
+++ b/drivers/net/wireless/rtlwifi/core.h
@@ -35,6 +35,46 @@
35 35
36#define RTL_SUPPORTED_CTRL_FILTER 0xFF 36#define RTL_SUPPORTED_CTRL_FILTER 0xFF
37 37
38#define DM_DIG_THRESH_HIGH 40
39#define DM_DIG_THRESH_LOW 35
40#define DM_FALSEALARM_THRESH_LOW 400
41#define DM_FALSEALARM_THRESH_HIGH 1000
42
43#define DM_DIG_MAX 0x3e
44#define DM_DIG_MIN 0x1e
45#define DM_DIG_MAX_AP 0x32
46#define DM_DIG_BACKOFF_MAX 12
47#define DM_DIG_BACKOFF_MIN -4
48#define DM_DIG_BACKOFF_DEFAULT 10
49
50enum cck_packet_detection_threshold {
51 CCK_PD_STAGE_LOWRSSI = 0,
52 CCK_PD_STAGE_HIGHRSSI = 1,
53 CCK_FA_STAGE_LOW = 2,
54 CCK_FA_STAGE_HIGH = 3,
55 CCK_PD_STAGE_MAX = 4,
56};
57
58enum dm_dig_ext_port_alg_e {
59 DIG_EXT_PORT_STAGE_0 = 0,
60 DIG_EXT_PORT_STAGE_1 = 1,
61 DIG_EXT_PORT_STAGE_2 = 2,
62 DIG_EXT_PORT_STAGE_3 = 3,
63 DIG_EXT_PORT_STAGE_MAX = 4,
64};
65
66enum dm_dig_connect_e {
67 DIG_STA_DISCONNECT,
68 DIG_STA_CONNECT,
69 DIG_STA_BEFORE_CONNECT,
70 DIG_MULTISTA_DISCONNECT,
71 DIG_MULTISTA_CONNECT,
72 DIG_AP_DISCONNECT,
73 DIG_AP_CONNECT,
74 DIG_AP_ADD_STATION,
75 DIG_CONNECT_MAX
76};
77
38extern const struct ieee80211_ops rtl_ops; 78extern const struct ieee80211_ops rtl_ops;
39void rtl_fw_cb(const struct firmware *firmware, void *context); 79void rtl_fw_cb(const struct firmware *firmware, void *context);
40void rtl_wowlan_fw_cb(const struct firmware *firmware, void *context); 80void rtl_wowlan_fw_cb(const struct firmware *firmware, void *context);
@@ -44,5 +84,6 @@ void rtl_rfreg_delay(struct ieee80211_hw *hw, enum radio_path rfpath, u32 addr,
44void rtl_bb_delay(struct ieee80211_hw *hw, u32 addr, u32 data); 84void rtl_bb_delay(struct ieee80211_hw *hw, u32 addr, u32 data);
45bool rtl_cmd_send_packet(struct ieee80211_hw *hw, struct sk_buff *skb); 85bool rtl_cmd_send_packet(struct ieee80211_hw *hw, struct sk_buff *skb);
46bool rtl_btc_status_false(void); 86bool rtl_btc_status_false(void);
87void rtl_dm_diginit(struct ieee80211_hw *hw, u32 cur_igval);
47 88
48#endif 89#endif
diff --git a/drivers/net/wireless/rtlwifi/rtl8188ee/dm.c b/drivers/net/wireless/rtlwifi/rtl8188ee/dm.c
index 2aa34d9055f0..d930c1f78721 100644
--- a/drivers/net/wireless/rtlwifi/rtl8188ee/dm.c
+++ b/drivers/net/wireless/rtlwifi/rtl8188ee/dm.c
@@ -26,6 +26,7 @@
26#include "../wifi.h" 26#include "../wifi.h"
27#include "../base.h" 27#include "../base.h"
28#include "../pci.h" 28#include "../pci.h"
29#include "../core.h"
29#include "reg.h" 30#include "reg.h"
30#include "def.h" 31#include "def.h"
31#include "phy.h" 32#include "phy.h"
@@ -341,38 +342,6 @@ static void dm_tx_pwr_track_set_pwr(struct ieee80211_hw *hw,
341 } 342 }
342} 343}
343 344
344static void rtl88e_dm_diginit(struct ieee80211_hw *hw)
345{
346 struct rtl_priv *rtlpriv = rtl_priv(hw);
347 struct dig_t *dm_dig = &rtlpriv->dm_digtable;
348
349 dm_dig->dig_enable_flag = true;
350 dm_dig->cur_igvalue = rtl_get_bbreg(hw, ROFDM0_XAAGCCORE1, 0x7f);
351 dm_dig->pre_igvalue = 0;
352 dm_dig->cur_sta_cstate = DIG_STA_DISCONNECT;
353 dm_dig->presta_cstate = DIG_STA_DISCONNECT;
354 dm_dig->curmultista_cstate = DIG_MULTISTA_DISCONNECT;
355 dm_dig->rssi_lowthresh = DM_DIG_THRESH_LOW;
356 dm_dig->rssi_highthresh = DM_DIG_THRESH_HIGH;
357 dm_dig->fa_lowthresh = DM_FALSEALARM_THRESH_LOW;
358 dm_dig->fa_highthresh = DM_FALSEALARM_THRESH_HIGH;
359 dm_dig->rx_gain_max = DM_DIG_MAX;
360 dm_dig->rx_gain_min = DM_DIG_MIN;
361 dm_dig->back_val = DM_DIG_BACKOFF_DEFAULT;
362 dm_dig->back_range_max = DM_DIG_BACKOFF_MAX;
363 dm_dig->back_range_min = DM_DIG_BACKOFF_MIN;
364 dm_dig->pre_cck_cca_thres = 0xff;
365 dm_dig->cur_cck_cca_thres = 0x83;
366 dm_dig->forbidden_igi = DM_DIG_MIN;
367 dm_dig->large_fa_hit = 0;
368 dm_dig->recover_cnt = 0;
369 dm_dig->dig_min_0 = 0x25;
370 dm_dig->dig_min_1 = 0x25;
371 dm_dig->media_connect_0 = false;
372 dm_dig->media_connect_1 = false;
373 rtlpriv->dm.dm_initialgain_enable = true;
374}
375
376static u8 rtl88e_dm_initial_gain_min_pwdb(struct ieee80211_hw *hw) 345static u8 rtl88e_dm_initial_gain_min_pwdb(struct ieee80211_hw *hw)
377{ 346{
378 struct rtl_priv *rtlpriv = rtl_priv(hw); 347 struct rtl_priv *rtlpriv = rtl_priv(hw);
@@ -1796,9 +1765,10 @@ static void rtl88e_dm_antenna_diversity(struct ieee80211_hw *hw)
1796void rtl88e_dm_init(struct ieee80211_hw *hw) 1765void rtl88e_dm_init(struct ieee80211_hw *hw)
1797{ 1766{
1798 struct rtl_priv *rtlpriv = rtl_priv(hw); 1767 struct rtl_priv *rtlpriv = rtl_priv(hw);
1768 u32 cur_igvalue = rtl_get_bbreg(hw, ROFDM0_XAAGCCORE1, 0x7f);
1799 1769
1800 rtlpriv->dm.dm_type = DM_TYPE_BYDRIVER; 1770 rtlpriv->dm.dm_type = DM_TYPE_BYDRIVER;
1801 rtl88e_dm_diginit(hw); 1771 rtl_dm_diginit(hw, cur_igvalue);
1802 rtl88e_dm_init_dynamic_txpower(hw); 1772 rtl88e_dm_init_dynamic_txpower(hw);
1803 rtl88e_dm_init_edca_turbo(hw); 1773 rtl88e_dm_init_edca_turbo(hw);
1804 rtl88e_dm_init_rate_adaptive_mask(hw); 1774 rtl88e_dm_init_rate_adaptive_mask(hw);
diff --git a/drivers/net/wireless/rtlwifi/rtl8188ee/dm.h b/drivers/net/wireless/rtlwifi/rtl8188ee/dm.h
index 64f1f3ea9807..071ccee69eae 100644
--- a/drivers/net/wireless/rtlwifi/rtl8188ee/dm.h
+++ b/drivers/net/wireless/rtlwifi/rtl8188ee/dm.h
@@ -186,28 +186,12 @@
186#define BW_AUTO_SWITCH_HIGH_LOW 25 186#define BW_AUTO_SWITCH_HIGH_LOW 25
187#define BW_AUTO_SWITCH_LOW_HIGH 30 187#define BW_AUTO_SWITCH_LOW_HIGH 30
188 188
189#define DM_DIG_THRESH_HIGH 40
190#define DM_DIG_THRESH_LOW 35
191
192#define DM_FALSEALARM_THRESH_LOW 400
193#define DM_FALSEALARM_THRESH_HIGH 1000
194
195#define DM_DIG_MAX 0x3e
196#define DM_DIG_MIN 0x1e
197
198#define DM_DIG_MAX_AP 0x32
199#define DM_DIG_MIN_AP 0x20
200
201#define DM_DIG_FA_UPPER 0x3e 189#define DM_DIG_FA_UPPER 0x3e
202#define DM_DIG_FA_LOWER 0x1e 190#define DM_DIG_FA_LOWER 0x1e
203#define DM_DIG_FA_TH0 0x200 191#define DM_DIG_FA_TH0 0x200
204#define DM_DIG_FA_TH1 0x300 192#define DM_DIG_FA_TH1 0x300
205#define DM_DIG_FA_TH2 0x400 193#define DM_DIG_FA_TH2 0x400
206 194
207#define DM_DIG_BACKOFF_MAX 12
208#define DM_DIG_BACKOFF_MIN -4
209#define DM_DIG_BACKOFF_DEFAULT 10
210
211#define RXPATHSELECTION_SS_TH_W 30 195#define RXPATHSELECTION_SS_TH_W 30
212#define RXPATHSELECTION_DIFF_TH 18 196#define RXPATHSELECTION_DIFF_TH 18
213 197
@@ -262,14 +246,6 @@ enum tag_dynamic_init_gain_operation_type_definition {
262 DIG_OP_TYPE_MAX 246 DIG_OP_TYPE_MAX
263}; 247};
264 248
265enum tag_cck_packet_detection_threshold_type_definition {
266 CCK_PD_STAGE_LOWRSSI = 0,
267 CCK_PD_STAGE_HIGHRSSI = 1,
268 CCK_FA_STAGE_LOW = 2,
269 CCK_FA_STAGE_HIGH = 3,
270 CCK_PD_STAGE_MAX = 4,
271};
272
273enum dm_1r_cca_e { 249enum dm_1r_cca_e {
274 CCA_1R = 0, 250 CCA_1R = 0,
275 CCA_2R = 1, 251 CCA_2R = 1,
@@ -288,23 +264,6 @@ enum dm_sw_ant_switch_e {
288 ANS_ANTENNA_MAX = 3, 264 ANS_ANTENNA_MAX = 3,
289}; 265};
290 266
291enum dm_dig_ext_port_alg_e {
292 DIG_EXT_PORT_STAGE_0 = 0,
293 DIG_EXT_PORT_STAGE_1 = 1,
294 DIG_EXT_PORT_STAGE_2 = 2,
295 DIG_EXT_PORT_STAGE_3 = 3,
296 DIG_EXT_PORT_STAGE_MAX = 4,
297};
298
299enum dm_dig_connect_e {
300 DIG_STA_DISCONNECT = 0,
301 DIG_STA_CONNECT = 1,
302 DIG_STA_BEFORE_CONNECT = 2,
303 DIG_MULTISTA_DISCONNECT = 3,
304 DIG_MULTISTA_CONNECT = 4,
305 DIG_CONNECT_MAX
306};
307
308enum pwr_track_control_method { 267enum pwr_track_control_method {
309 BBSWING, 268 BBSWING,
310 TXAGC 269 TXAGC
diff --git a/drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c b/drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c
index f6cb5aedfdd1..f5ee67cda73a 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c
+++ b/drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c
@@ -32,6 +32,7 @@
32#include "phy_common.h" 32#include "phy_common.h"
33#include "../pci.h" 33#include "../pci.h"
34#include "../base.h" 34#include "../base.h"
35#include "../core.h"
35 36
36#define BT_RSSI_STATE_NORMAL_POWER BIT_OFFSET_LEN_MASK_32(0, 1) 37#define BT_RSSI_STATE_NORMAL_POWER BIT_OFFSET_LEN_MASK_32(0, 1)
37#define BT_RSSI_STATE_AMDPU_OFF BIT_OFFSET_LEN_MASK_32(1, 1) 38#define BT_RSSI_STATE_AMDPU_OFF BIT_OFFSET_LEN_MASK_32(1, 1)
@@ -194,36 +195,6 @@ void dm_savepowerindex(struct ieee80211_hw *hw)
194} 195}
195EXPORT_SYMBOL_GPL(dm_savepowerindex); 196EXPORT_SYMBOL_GPL(dm_savepowerindex);
196 197
197static void rtl92c_dm_diginit(struct ieee80211_hw *hw)
198{
199 struct rtl_priv *rtlpriv = rtl_priv(hw);
200 struct dig_t *dm_digtable = &rtlpriv->dm_digtable;
201
202 dm_digtable->dig_enable_flag = true;
203 dm_digtable->dig_ext_port_stage = DIG_EXT_PORT_STAGE_MAX;
204 dm_digtable->cur_igvalue = 0x20;
205 dm_digtable->pre_igvalue = 0x0;
206 dm_digtable->cursta_cstate = DIG_STA_DISCONNECT;
207 dm_digtable->presta_cstate = DIG_STA_DISCONNECT;
208 dm_digtable->curmultista_cstate = DIG_MULTISTA_DISCONNECT;
209 dm_digtable->rssi_lowthresh = DM_DIG_THRESH_LOW;
210 dm_digtable->rssi_highthresh = DM_DIG_THRESH_HIGH;
211 dm_digtable->fa_lowthresh = DM_FALSEALARM_THRESH_LOW;
212 dm_digtable->fa_highthresh = DM_FALSEALARM_THRESH_HIGH;
213 dm_digtable->rx_gain_max = DM_DIG_MAX;
214 dm_digtable->rx_gain_min = DM_DIG_MIN;
215 dm_digtable->back_val = DM_DIG_BACKOFF_DEFAULT;
216 dm_digtable->back_range_max = DM_DIG_BACKOFF_MAX;
217 dm_digtable->back_range_min = DM_DIG_BACKOFF_MIN;
218 dm_digtable->pre_cck_pd_state = CCK_PD_STAGE_MAX;
219 dm_digtable->cur_cck_pd_state = CCK_PD_STAGE_LowRssi;
220
221 dm_digtable->forbidden_igi = DM_DIG_MIN;
222 dm_digtable->large_fa_hit = 0;
223 dm_digtable->recover_cnt = 0;
224 dm_digtable->dig_dynamic_min = 0x25;
225}
226
227static u8 rtl92c_dm_initial_gain_min_pwdb(struct ieee80211_hw *hw) 198static u8 rtl92c_dm_initial_gain_min_pwdb(struct ieee80211_hw *hw)
228{ 199{
229 struct rtl_priv *rtlpriv = rtl_priv(hw); 200 struct rtl_priv *rtlpriv = rtl_priv(hw);
@@ -507,27 +478,27 @@ static void rtl92c_dm_cck_packet_detection_thresh(struct ieee80211_hw *hw)
507 if (dm_digtable->rssi_val_min > 100) 478 if (dm_digtable->rssi_val_min > 100)
508 dm_digtable->rssi_val_min = 100; 479 dm_digtable->rssi_val_min = 100;
509 480
510 if (dm_digtable->pre_cck_pd_state == CCK_PD_STAGE_LowRssi) { 481 if (dm_digtable->pre_cck_pd_state == CCK_PD_STAGE_LOWRSSI) {
511 if (dm_digtable->rssi_val_min <= 25) 482 if (dm_digtable->rssi_val_min <= 25)
512 dm_digtable->cur_cck_pd_state = 483 dm_digtable->cur_cck_pd_state =
513 CCK_PD_STAGE_LowRssi; 484 CCK_PD_STAGE_LOWRSSI;
514 else 485 else
515 dm_digtable->cur_cck_pd_state = 486 dm_digtable->cur_cck_pd_state =
516 CCK_PD_STAGE_HighRssi; 487 CCK_PD_STAGE_HIGHRSSI;
517 } else { 488 } else {
518 if (dm_digtable->rssi_val_min <= 20) 489 if (dm_digtable->rssi_val_min <= 20)
519 dm_digtable->cur_cck_pd_state = 490 dm_digtable->cur_cck_pd_state =
520 CCK_PD_STAGE_LowRssi; 491 CCK_PD_STAGE_LOWRSSI;
521 else 492 else
522 dm_digtable->cur_cck_pd_state = 493 dm_digtable->cur_cck_pd_state =
523 CCK_PD_STAGE_HighRssi; 494 CCK_PD_STAGE_HIGHRSSI;
524 } 495 }
525 } else { 496 } else {
526 dm_digtable->cur_cck_pd_state = CCK_PD_STAGE_MAX; 497 dm_digtable->cur_cck_pd_state = CCK_PD_STAGE_MAX;
527 } 498 }
528 499
529 if (dm_digtable->pre_cck_pd_state != dm_digtable->cur_cck_pd_state) { 500 if (dm_digtable->pre_cck_pd_state != dm_digtable->cur_cck_pd_state) {
530 if ((dm_digtable->cur_cck_pd_state == CCK_PD_STAGE_LowRssi) || 501 if ((dm_digtable->cur_cck_pd_state == CCK_PD_STAGE_LOWRSSI) ||
531 (dm_digtable->cur_cck_pd_state == CCK_PD_STAGE_MAX)) 502 (dm_digtable->cur_cck_pd_state == CCK_PD_STAGE_MAX))
532 rtl_set_bbreg(hw, RCCK0_CCA, MASKBYTE2, 0x83); 503 rtl_set_bbreg(hw, RCCK0_CCA, MASKBYTE2, 0x83);
533 else 504 else
@@ -1374,7 +1345,7 @@ void rtl92c_dm_init(struct ieee80211_hw *hw)
1374 rtlpriv->dm.undec_sm_pwdb = -1; 1345 rtlpriv->dm.undec_sm_pwdb = -1;
1375 rtlpriv->dm.undec_sm_cck = -1; 1346 rtlpriv->dm.undec_sm_cck = -1;
1376 rtlpriv->dm.dm_initialgain_enable = true; 1347 rtlpriv->dm.dm_initialgain_enable = true;
1377 rtl92c_dm_diginit(hw); 1348 rtl_dm_diginit(hw, 0x20);
1378 1349
1379 rtlpriv->dm.dm_flag |= HAL_DM_HIPWR_DISABLE; 1350 rtlpriv->dm.dm_flag |= HAL_DM_HIPWR_DISABLE;
1380 rtl92c_dm_init_dynamic_txpower(hw); 1351 rtl92c_dm_init_dynamic_txpower(hw);
diff --git a/drivers/net/wireless/rtlwifi/rtl8192c/dm_common.h b/drivers/net/wireless/rtlwifi/rtl8192c/dm_common.h
index 4f232a063636..4422e31fedd9 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192c/dm_common.h
+++ b/drivers/net/wireless/rtlwifi/rtl8192c/dm_common.h
@@ -47,25 +47,12 @@
47#define BW_AUTO_SWITCH_HIGH_LOW 25 47#define BW_AUTO_SWITCH_HIGH_LOW 25
48#define BW_AUTO_SWITCH_LOW_HIGH 30 48#define BW_AUTO_SWITCH_LOW_HIGH 30
49 49
50#define DM_DIG_THRESH_HIGH 40
51#define DM_DIG_THRESH_LOW 35
52
53#define DM_FALSEALARM_THRESH_LOW 400
54#define DM_FALSEALARM_THRESH_HIGH 1000
55
56#define DM_DIG_MAX 0x3e
57#define DM_DIG_MIN 0x1e
58
59#define DM_DIG_FA_UPPER 0x32 50#define DM_DIG_FA_UPPER 0x32
60#define DM_DIG_FA_LOWER 0x20 51#define DM_DIG_FA_LOWER 0x20
61#define DM_DIG_FA_TH0 0x20 52#define DM_DIG_FA_TH0 0x20
62#define DM_DIG_FA_TH1 0x100 53#define DM_DIG_FA_TH1 0x100
63#define DM_DIG_FA_TH2 0x200 54#define DM_DIG_FA_TH2 0x200
64 55
65#define DM_DIG_BACKOFF_MAX 12
66#define DM_DIG_BACKOFF_MIN -4
67#define DM_DIG_BACKOFF_DEFAULT 10
68
69#define RXPATHSELECTION_SS_TH_lOW 30 56#define RXPATHSELECTION_SS_TH_lOW 30
70#define RXPATHSELECTION_DIFF_TH 18 57#define RXPATHSELECTION_DIFF_TH 18
71 58
@@ -123,14 +110,6 @@ enum tag_dynamic_init_gain_operation_type_definition {
123 DIG_OP_TYPE_MAX 110 DIG_OP_TYPE_MAX
124}; 111};
125 112
126enum tag_cck_packet_detection_threshold_type_definition {
127 CCK_PD_STAGE_LowRssi = 0,
128 CCK_PD_STAGE_HighRssi = 1,
129 CCK_FA_STAGE_Low = 2,
130 CCK_FA_STAGE_High = 3,
131 CCK_PD_STAGE_MAX = 4,
132};
133
134enum dm_1r_cca_e { 113enum dm_1r_cca_e {
135 CCA_1R = 0, 114 CCA_1R = 0,
136 CCA_2R = 1, 115 CCA_2R = 1,
@@ -149,23 +128,6 @@ enum dm_sw_ant_switch_e {
149 ANS_ANTENNA_MAX = 3, 128 ANS_ANTENNA_MAX = 3,
150}; 129};
151 130
152enum dm_dig_ext_port_alg_e {
153 DIG_EXT_PORT_STAGE_0 = 0,
154 DIG_EXT_PORT_STAGE_1 = 1,
155 DIG_EXT_PORT_STAGE_2 = 2,
156 DIG_EXT_PORT_STAGE_3 = 3,
157 DIG_EXT_PORT_STAGE_MAX = 4,
158};
159
160enum dm_dig_connect_e {
161 DIG_STA_DISCONNECT = 0,
162 DIG_STA_CONNECT = 1,
163 DIG_STA_BEFORE_CONNECT = 2,
164 DIG_MULTISTA_DISCONNECT = 3,
165 DIG_MULTISTA_CONNECT = 4,
166 DIG_CONNECT_MAX
167};
168
169void rtl92c_dm_init(struct ieee80211_hw *hw); 131void rtl92c_dm_init(struct ieee80211_hw *hw);
170void rtl92c_dm_watchdog(struct ieee80211_hw *hw); 132void rtl92c_dm_watchdog(struct ieee80211_hw *hw);
171void rtl92c_dm_write_dig(struct ieee80211_hw *hw); 133void rtl92c_dm_write_dig(struct ieee80211_hw *hw);
diff --git a/drivers/net/wireless/rtlwifi/rtl8192ce/dm.c b/drivers/net/wireless/rtlwifi/rtl8192ce/dm.c
index 74f9c083b80d..09898cf2e07a 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192ce/dm.c
+++ b/drivers/net/wireless/rtlwifi/rtl8192ce/dm.c
@@ -30,6 +30,7 @@
30#include "../wifi.h" 30#include "../wifi.h"
31#include "../base.h" 31#include "../base.h"
32#include "../pci.h" 32#include "../pci.h"
33#include "../core.h"
33#include "reg.h" 34#include "reg.h"
34#include "def.h" 35#include "def.h"
35#include "phy.h" 36#include "phy.h"
diff --git a/drivers/net/wireless/rtlwifi/rtl8192ce/dm.h b/drivers/net/wireless/rtlwifi/rtl8192ce/dm.h
index 9c5311c299fd..38ba707015f5 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192ce/dm.h
+++ b/drivers/net/wireless/rtlwifi/rtl8192ce/dm.h
@@ -42,25 +42,12 @@
42#define BW_AUTO_SWITCH_HIGH_LOW 25 42#define BW_AUTO_SWITCH_HIGH_LOW 25
43#define BW_AUTO_SWITCH_LOW_HIGH 30 43#define BW_AUTO_SWITCH_LOW_HIGH 30
44 44
45#define DM_DIG_THRESH_HIGH 40
46#define DM_DIG_THRESH_LOW 35
47
48#define DM_FALSEALARM_THRESH_LOW 400
49#define DM_FALSEALARM_THRESH_HIGH 1000
50
51#define DM_DIG_MAX 0x3e
52#define DM_DIG_MIN 0x1e
53
54#define DM_DIG_FA_UPPER 0x32 45#define DM_DIG_FA_UPPER 0x32
55#define DM_DIG_FA_LOWER 0x20 46#define DM_DIG_FA_LOWER 0x20
56#define DM_DIG_FA_TH0 0x20 47#define DM_DIG_FA_TH0 0x20
57#define DM_DIG_FA_TH1 0x100 48#define DM_DIG_FA_TH1 0x100
58#define DM_DIG_FA_TH2 0x200 49#define DM_DIG_FA_TH2 0x200
59 50
60#define DM_DIG_BACKOFF_MAX 12
61#define DM_DIG_BACKOFF_MIN -4
62#define DM_DIG_BACKOFF_DEFAULT 10
63
64#define RXPATHSELECTION_SS_TH_lOW 30 51#define RXPATHSELECTION_SS_TH_lOW 30
65#define RXPATHSELECTION_DIFF_TH 18 52#define RXPATHSELECTION_DIFF_TH 18
66 53
diff --git a/drivers/net/wireless/rtlwifi/rtl8192de/dm.c b/drivers/net/wireless/rtlwifi/rtl8192de/dm.c
index 304c443b89b2..a1be5a68edfb 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192de/dm.c
+++ b/drivers/net/wireless/rtlwifi/rtl8192de/dm.c
@@ -29,6 +29,7 @@
29 29
30#include "../wifi.h" 30#include "../wifi.h"
31#include "../base.h" 31#include "../base.h"
32#include "../core.h"
32#include "reg.h" 33#include "reg.h"
33#include "def.h" 34#include "def.h"
34#include "phy.h" 35#include "phy.h"
@@ -155,34 +156,6 @@ static const u8 cckswing_table_ch14[CCK_TABLE_SIZE][8] = {
155 {0x09, 0x08, 0x07, 0x04, 0x00, 0x00, 0x00, 0x00} /* 32, -16.0dB */ 156 {0x09, 0x08, 0x07, 0x04, 0x00, 0x00, 0x00, 0x00} /* 32, -16.0dB */
156}; 157};
157 158
158static void rtl92d_dm_diginit(struct ieee80211_hw *hw)
159{
160 struct rtl_priv *rtlpriv = rtl_priv(hw);
161 struct dig_t *de_digtable = &rtlpriv->dm_digtable;
162
163 de_digtable->dig_enable_flag = true;
164 de_digtable->dig_ext_port_stage = DIG_EXT_PORT_STAGE_MAX;
165 de_digtable->cur_igvalue = 0x20;
166 de_digtable->pre_igvalue = 0x0;
167 de_digtable->cursta_cstate = DIG_STA_DISCONNECT;
168 de_digtable->presta_cstate = DIG_STA_DISCONNECT;
169 de_digtable->curmultista_cstate = DIG_MULTISTA_DISCONNECT;
170 de_digtable->rssi_lowthresh = DM_DIG_THRESH_LOW;
171 de_digtable->rssi_highthresh = DM_DIG_THRESH_HIGH;
172 de_digtable->fa_lowthresh = DM_FALSEALARM_THRESH_LOW;
173 de_digtable->fa_highthresh = DM_FALSEALARM_THRESH_HIGH;
174 de_digtable->rx_gain_max = DM_DIG_FA_UPPER;
175 de_digtable->rx_gain_min = DM_DIG_FA_LOWER;
176 de_digtable->back_val = DM_DIG_BACKOFF_DEFAULT;
177 de_digtable->back_range_max = DM_DIG_BACKOFF_MAX;
178 de_digtable->back_range_min = DM_DIG_BACKOFF_MIN;
179 de_digtable->pre_cck_pd_state = CCK_PD_STAGE_LOWRSSI;
180 de_digtable->cur_cck_pd_state = CCK_PD_STAGE_MAX;
181 de_digtable->large_fa_hit = 0;
182 de_digtable->recover_cnt = 0;
183 de_digtable->forbidden_igi = DM_DIG_FA_LOWER;
184}
185
186static void rtl92d_dm_false_alarm_counter_statistics(struct ieee80211_hw *hw) 159static void rtl92d_dm_false_alarm_counter_statistics(struct ieee80211_hw *hw)
187{ 160{
188 u32 ret_value; 161 u32 ret_value;
@@ -1305,7 +1278,9 @@ void rtl92d_dm_init(struct ieee80211_hw *hw)
1305 struct rtl_priv *rtlpriv = rtl_priv(hw); 1278 struct rtl_priv *rtlpriv = rtl_priv(hw);
1306 1279
1307 rtlpriv->dm.dm_type = DM_TYPE_BYDRIVER; 1280 rtlpriv->dm.dm_type = DM_TYPE_BYDRIVER;
1308 rtl92d_dm_diginit(hw); 1281 rtl_dm_diginit(hw, 0x20);
1282 rtlpriv->dm_digtable.rx_gain_max = DM_DIG_FA_UPPER;
1283 rtlpriv->dm_digtable.rx_gain_min = DM_DIG_FA_LOWER;
1309 rtl92d_dm_init_dynamic_txpower(hw); 1284 rtl92d_dm_init_dynamic_txpower(hw);
1310 rtl92d_dm_init_edca_turbo(hw); 1285 rtl92d_dm_init_edca_turbo(hw);
1311 rtl92d_dm_init_rate_adaptive_mask(hw); 1286 rtl92d_dm_init_rate_adaptive_mask(hw);
diff --git a/drivers/net/wireless/rtlwifi/rtl8192de/dm.h b/drivers/net/wireless/rtlwifi/rtl8192de/dm.h
index 3fea0c11c24a..f2d318ceeb28 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192de/dm.h
+++ b/drivers/net/wireless/rtlwifi/rtl8192de/dm.h
@@ -42,25 +42,12 @@
42#define BW_AUTO_SWITCH_HIGH_LOW 25 42#define BW_AUTO_SWITCH_HIGH_LOW 25
43#define BW_AUTO_SWITCH_LOW_HIGH 30 43#define BW_AUTO_SWITCH_LOW_HIGH 30
44 44
45#define DM_DIG_THRESH_HIGH 40
46#define DM_DIG_THRESH_LOW 35
47
48#define DM_FALSEALARM_THRESH_LOW 400
49#define DM_FALSEALARM_THRESH_HIGH 1000
50
51#define DM_DIG_MAX 0x3e
52#define DM_DIG_MIN 0x1c
53
54#define DM_DIG_FA_UPPER 0x32 45#define DM_DIG_FA_UPPER 0x32
55#define DM_DIG_FA_LOWER 0x20 46#define DM_DIG_FA_LOWER 0x20
56#define DM_DIG_FA_TH0 0x100 47#define DM_DIG_FA_TH0 0x100
57#define DM_DIG_FA_TH1 0x400 48#define DM_DIG_FA_TH1 0x400
58#define DM_DIG_FA_TH2 0x600 49#define DM_DIG_FA_TH2 0x600
59 50
60#define DM_DIG_BACKOFF_MAX 12
61#define DM_DIG_BACKOFF_MIN -4
62#define DM_DIG_BACKOFF_DEFAULT 10
63
64#define RXPATHSELECTION_SS_TH_lOW 30 51#define RXPATHSELECTION_SS_TH_lOW 30
65#define RXPATHSELECTION_DIFF_TH 18 52#define RXPATHSELECTION_DIFF_TH 18
66 53
@@ -108,14 +95,6 @@ enum tag_dynamic_init_gain_operation_type_definition {
108 DIG_OP_TYPE_MAX 95 DIG_OP_TYPE_MAX
109}; 96};
110 97
111enum tag_cck_packet_detection_threshold_type_definition {
112 CCK_PD_STAGE_LOWRSSI = 0,
113 CCK_PD_STAGE_HIGHRSSI = 1,
114 CCK_FA_STAGE_LOW = 2,
115 CCK_FA_STAGE_HIGH = 3,
116 CCK_PD_STAGE_MAX = 4,
117};
118
119enum dm_1r_cca { 98enum dm_1r_cca {
120 CCA_1R = 0, 99 CCA_1R = 0,
121 CCA_2R = 1, 100 CCA_2R = 1,
@@ -134,23 +113,6 @@ enum dm_sw_ant_switch {
134 ANS_ANTENNA_MAX = 3, 113 ANS_ANTENNA_MAX = 3,
135}; 114};
136 115
137enum dm_dig_ext_port_alg {
138 DIG_EXT_PORT_STAGE_0 = 0,
139 DIG_EXT_PORT_STAGE_1 = 1,
140 DIG_EXT_PORT_STAGE_2 = 2,
141 DIG_EXT_PORT_STAGE_3 = 3,
142 DIG_EXT_PORT_STAGE_MAX = 4,
143};
144
145enum dm_dig_connect {
146 DIG_STA_DISCONNECT = 0,
147 DIG_STA_CONNECT = 1,
148 DIG_STA_BEFORE_CONNECT = 2,
149 DIG_MULTISTA_DISCONNECT = 3,
150 DIG_MULTISTA_CONNECT = 4,
151 DIG_CONNECT_MAX
152};
153
154void rtl92d_dm_init(struct ieee80211_hw *hw); 116void rtl92d_dm_init(struct ieee80211_hw *hw);
155void rtl92d_dm_watchdog(struct ieee80211_hw *hw); 117void rtl92d_dm_watchdog(struct ieee80211_hw *hw);
156void rtl92d_dm_init_edca_turbo(struct ieee80211_hw *hw); 118void rtl92d_dm_init_edca_turbo(struct ieee80211_hw *hw);
diff --git a/drivers/net/wireless/rtlwifi/rtl8192de/hw.c b/drivers/net/wireless/rtlwifi/rtl8192de/hw.c
index 280c3da42993..01bcc2d218dc 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192de/hw.c
+++ b/drivers/net/wireless/rtlwifi/rtl8192de/hw.c
@@ -546,7 +546,7 @@ static bool _rtl92de_llt_table_init(struct ieee80211_hw *hw)
546 txpktbuf_bndy = 246; 546 txpktbuf_bndy = 246;
547 value8 = 0; 547 value8 = 0;
548 value32 = 0x80bf0d29; 548 value32 = 0x80bf0d29;
549 } else if (rtlpriv->rtlhal.macphymode != SINGLEMAC_SINGLEPHY) { 549 } else {
550 maxPage = 127; 550 maxPage = 127;
551 txpktbuf_bndy = 123; 551 txpktbuf_bndy = 123;
552 value8 = 0; 552 value8 = 0;
diff --git a/drivers/net/wireless/rtlwifi/rtl8192ee/dm.c b/drivers/net/wireless/rtlwifi/rtl8192ee/dm.c
index 77deedf79d1d..459f3d0efa2f 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192ee/dm.c
+++ b/drivers/net/wireless/rtlwifi/rtl8192ee/dm.c
@@ -26,6 +26,7 @@
26#include "../wifi.h" 26#include "../wifi.h"
27#include "../base.h" 27#include "../base.h"
28#include "../pci.h" 28#include "../pci.h"
29#include "../core.h"
29#include "reg.h" 30#include "reg.h"
30#include "def.h" 31#include "def.h"
31#include "phy.h" 32#include "phy.h"
@@ -151,35 +152,6 @@ static const u8 cckswing_table_ch14[CCK_TABLE_SIZE][8] = {
151 {0x09, 0x08, 0x07, 0x04, 0x00, 0x00, 0x00, 0x00} /* 32, -16.0dB */ 152 {0x09, 0x08, 0x07, 0x04, 0x00, 0x00, 0x00, 0x00} /* 32, -16.0dB */
152}; 153};
153 154
154static void rtl92ee_dm_diginit(struct ieee80211_hw *hw)
155{
156 struct rtl_priv *rtlpriv = rtl_priv(hw);
157 struct dig_t *dm_dig = &rtlpriv->dm_digtable;
158
159 dm_dig->cur_igvalue = rtl_get_bbreg(hw, DM_REG_IGI_A_11N,
160 DM_BIT_IGI_11N);
161 dm_dig->rssi_lowthresh = DM_DIG_THRESH_LOW;
162 dm_dig->rssi_highthresh = DM_DIG_THRESH_HIGH;
163 dm_dig->fa_lowthresh = DM_FALSEALARM_THRESH_LOW;
164 dm_dig->fa_highthresh = DM_FALSEALARM_THRESH_HIGH;
165 dm_dig->rx_gain_max = DM_DIG_MAX;
166 dm_dig->rx_gain_min = DM_DIG_MIN;
167 dm_dig->back_val = DM_DIG_BACKOFF_DEFAULT;
168 dm_dig->back_range_max = DM_DIG_BACKOFF_MAX;
169 dm_dig->back_range_min = DM_DIG_BACKOFF_MIN;
170 dm_dig->pre_cck_cca_thres = 0xff;
171 dm_dig->cur_cck_cca_thres = 0x83;
172 dm_dig->forbidden_igi = DM_DIG_MIN;
173 dm_dig->large_fa_hit = 0;
174 dm_dig->recover_cnt = 0;
175 dm_dig->dig_dynamic_min = DM_DIG_MIN;
176 dm_dig->dig_dynamic_min_1 = DM_DIG_MIN;
177 dm_dig->media_connect_0 = false;
178 dm_dig->media_connect_1 = false;
179 rtlpriv->dm.dm_initialgain_enable = true;
180 dm_dig->bt30_cur_igi = 0x32;
181}
182
183static void rtl92ee_dm_false_alarm_counter_statistics(struct ieee80211_hw *hw) 155static void rtl92ee_dm_false_alarm_counter_statistics(struct ieee80211_hw *hw)
184{ 156{
185 u32 ret_value; 157 u32 ret_value;
@@ -298,7 +270,7 @@ static void rtl92ee_dm_dig(struct ieee80211_hw *hw)
298 struct rtl_priv *rtlpriv = rtl_priv(hw); 270 struct rtl_priv *rtlpriv = rtl_priv(hw);
299 struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); 271 struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
300 struct dig_t *dm_dig = &rtlpriv->dm_digtable; 272 struct dig_t *dm_dig = &rtlpriv->dm_digtable;
301 u8 dig_dynamic_min , dig_maxofmin; 273 u8 dig_min_0, dig_maxofmin;
302 bool bfirstconnect , bfirstdisconnect; 274 bool bfirstconnect , bfirstdisconnect;
303 u8 dm_dig_max, dm_dig_min; 275 u8 dm_dig_max, dm_dig_min;
304 u8 current_igi = dm_dig->cur_igvalue; 276 u8 current_igi = dm_dig->cur_igvalue;
@@ -308,7 +280,7 @@ static void rtl92ee_dm_dig(struct ieee80211_hw *hw)
308 if (mac->act_scanning) 280 if (mac->act_scanning)
309 return; 281 return;
310 282
311 dig_dynamic_min = dm_dig->dig_dynamic_min; 283 dig_min_0 = dm_dig->dig_min_0;
312 bfirstconnect = (mac->link_state >= MAC80211_LINKED) && 284 bfirstconnect = (mac->link_state >= MAC80211_LINKED) &&
313 !dm_dig->media_connect_0; 285 !dm_dig->media_connect_0;
314 bfirstdisconnect = (mac->link_state < MAC80211_LINKED) && 286 bfirstdisconnect = (mac->link_state < MAC80211_LINKED) &&
@@ -329,19 +301,19 @@ static void rtl92ee_dm_dig(struct ieee80211_hw *hw)
329 if (rtlpriv->dm.one_entry_only) { 301 if (rtlpriv->dm.one_entry_only) {
330 offset = 0; 302 offset = 0;
331 if (dm_dig->rssi_val_min - offset < dm_dig_min) 303 if (dm_dig->rssi_val_min - offset < dm_dig_min)
332 dig_dynamic_min = dm_dig_min; 304 dig_min_0 = dm_dig_min;
333 else if (dm_dig->rssi_val_min - offset > 305 else if (dm_dig->rssi_val_min - offset >
334 dig_maxofmin) 306 dig_maxofmin)
335 dig_dynamic_min = dig_maxofmin; 307 dig_min_0 = dig_maxofmin;
336 else 308 else
337 dig_dynamic_min = dm_dig->rssi_val_min - offset; 309 dig_min_0 = dm_dig->rssi_val_min - offset;
338 } else { 310 } else {
339 dig_dynamic_min = dm_dig_min; 311 dig_min_0 = dm_dig_min;
340 } 312 }
341 313
342 } else { 314 } else {
343 dm_dig->rx_gain_max = dm_dig_max; 315 dm_dig->rx_gain_max = dm_dig_max;
344 dig_dynamic_min = dm_dig_min; 316 dig_min_0 = dm_dig_min;
345 RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD, "no link\n"); 317 RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD, "no link\n");
346 } 318 }
347 319
@@ -368,10 +340,10 @@ static void rtl92ee_dm_dig(struct ieee80211_hw *hw)
368 } else { 340 } else {
369 if (dm_dig->large_fa_hit < 3) { 341 if (dm_dig->large_fa_hit < 3) {
370 if ((dm_dig->forbidden_igi - 1) < 342 if ((dm_dig->forbidden_igi - 1) <
371 dig_dynamic_min) { 343 dig_min_0) {
372 dm_dig->forbidden_igi = dig_dynamic_min; 344 dm_dig->forbidden_igi = dig_min_0;
373 dm_dig->rx_gain_min = 345 dm_dig->rx_gain_min =
374 dig_dynamic_min; 346 dig_min_0;
375 } else { 347 } else {
376 dm_dig->forbidden_igi--; 348 dm_dig->forbidden_igi--;
377 dm_dig->rx_gain_min = 349 dm_dig->rx_gain_min =
@@ -430,7 +402,7 @@ static void rtl92ee_dm_dig(struct ieee80211_hw *hw)
430 rtl92ee_dm_write_dig(hw , current_igi); 402 rtl92ee_dm_write_dig(hw , current_igi);
431 dm_dig->media_connect_0 = ((mac->link_state >= MAC80211_LINKED) ? 403 dm_dig->media_connect_0 = ((mac->link_state >= MAC80211_LINKED) ?
432 true : false); 404 true : false);
433 dm_dig->dig_dynamic_min = dig_dynamic_min; 405 dm_dig->dig_min_0 = dig_min_0;
434} 406}
435 407
436void rtl92ee_dm_write_cck_cca_thres(struct ieee80211_hw *hw, u8 cur_thres) 408void rtl92ee_dm_write_cck_cca_thres(struct ieee80211_hw *hw, u8 cur_thres)
@@ -1088,10 +1060,11 @@ static void rtl92ee_dm_init_dynamic_atc_switch(struct ieee80211_hw *hw)
1088void rtl92ee_dm_init(struct ieee80211_hw *hw) 1060void rtl92ee_dm_init(struct ieee80211_hw *hw)
1089{ 1061{
1090 struct rtl_priv *rtlpriv = rtl_priv(hw); 1062 struct rtl_priv *rtlpriv = rtl_priv(hw);
1063 u32 cur_igvalue = rtl_get_bbreg(hw, DM_REG_IGI_A_11N, DM_BIT_IGI_11N);
1091 1064
1092 rtlpriv->dm.dm_type = DM_TYPE_BYDRIVER; 1065 rtlpriv->dm.dm_type = DM_TYPE_BYDRIVER;
1093 1066
1094 rtl92ee_dm_diginit(hw); 1067 rtl_dm_diginit(hw, cur_igvalue);
1095 rtl92ee_dm_init_rate_adaptive_mask(hw); 1068 rtl92ee_dm_init_rate_adaptive_mask(hw);
1096 rtl92ee_dm_init_primary_cca_check(hw); 1069 rtl92ee_dm_init_primary_cca_check(hw);
1097 rtl92ee_dm_init_edca_turbo(hw); 1070 rtl92ee_dm_init_edca_turbo(hw);
diff --git a/drivers/net/wireless/rtlwifi/rtl8192ee/dm.h b/drivers/net/wireless/rtlwifi/rtl8192ee/dm.h
index 881db7d6fef7..107d5a488fa8 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192ee/dm.h
+++ b/drivers/net/wireless/rtlwifi/rtl8192ee/dm.h
@@ -189,28 +189,12 @@
189#define BW_AUTO_SWITCH_HIGH_LOW 25 189#define BW_AUTO_SWITCH_HIGH_LOW 25
190#define BW_AUTO_SWITCH_LOW_HIGH 30 190#define BW_AUTO_SWITCH_LOW_HIGH 30
191 191
192#define DM_DIG_THRESH_HIGH 40
193#define DM_DIG_THRESH_LOW 35
194
195#define DM_FALSEALARM_THRESH_LOW 400
196#define DM_FALSEALARM_THRESH_HIGH 1000
197
198#define DM_DIG_MAX 0x3e
199#define DM_DIG_MIN 0x1e
200
201#define DM_DIG_MAX_AP 0x32
202#define DM_DIG_MIN_AP 0x20
203
204#define DM_DIG_FA_UPPER 0x3e 192#define DM_DIG_FA_UPPER 0x3e
205#define DM_DIG_FA_LOWER 0x1e 193#define DM_DIG_FA_LOWER 0x1e
206#define DM_DIG_FA_TH0 0x200 194#define DM_DIG_FA_TH0 0x200
207#define DM_DIG_FA_TH1 0x300 195#define DM_DIG_FA_TH1 0x300
208#define DM_DIG_FA_TH2 0x400 196#define DM_DIG_FA_TH2 0x400
209 197
210#define DM_DIG_BACKOFF_MAX 12
211#define DM_DIG_BACKOFF_MIN -4
212#define DM_DIG_BACKOFF_DEFAULT 10
213
214#define RXPATHSELECTION_SS_TH_LOW 30 198#define RXPATHSELECTION_SS_TH_LOW 30
215#define RXPATHSELECTION_DIFF_TH 18 199#define RXPATHSELECTION_DIFF_TH 18
216 200
diff --git a/drivers/net/wireless/rtlwifi/rtl8192se/dm.c b/drivers/net/wireless/rtlwifi/rtl8192se/dm.c
index b3a2d5ec59e6..575980b88658 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192se/dm.c
+++ b/drivers/net/wireless/rtlwifi/rtl8192se/dm.c
@@ -29,6 +29,7 @@
29 29
30#include "../wifi.h" 30#include "../wifi.h"
31#include "../base.h" 31#include "../base.h"
32#include "../core.h"
32#include "reg.h" 33#include "reg.h"
33#include "def.h" 34#include "def.h"
34#include "phy.h" 35#include "phy.h"
@@ -469,7 +470,7 @@ static void _rtl92s_dm_initial_gain_sta_beforeconnect(struct ieee80211_hw *hw)
469 if (digtable->backoff_enable_flag) 470 if (digtable->backoff_enable_flag)
470 rtl92s_backoff_enable_flag(hw); 471 rtl92s_backoff_enable_flag(hw);
471 else 472 else
472 digtable->back_val = DM_DIG_BACKOFF; 473 digtable->back_val = DM_DIG_BACKOFF_MAX;
473 474
474 if ((digtable->rssi_val + 10 - digtable->back_val) > 475 if ((digtable->rssi_val + 10 - digtable->back_val) >
475 digtable->rx_gain_max) 476 digtable->rx_gain_max)
@@ -503,7 +504,7 @@ static void _rtl92s_dm_initial_gain_sta_beforeconnect(struct ieee80211_hw *hw)
503 digtable->dig_ext_port_stage = DIG_EXT_PORT_STAGE_MAX; 504 digtable->dig_ext_port_stage = DIG_EXT_PORT_STAGE_MAX;
504 rtl92s_phy_set_fw_cmd(hw, FW_CMD_DIG_ENABLE); 505 rtl92s_phy_set_fw_cmd(hw, FW_CMD_DIG_ENABLE);
505 506
506 digtable->back_val = DM_DIG_BACKOFF; 507 digtable->back_val = DM_DIG_BACKOFF_MAX;
507 digtable->cur_igvalue = rtlpriv->phy.default_initialgain[0]; 508 digtable->cur_igvalue = rtlpriv->phy.default_initialgain[0];
508 digtable->pre_igvalue = 0; 509 digtable->pre_igvalue = 0;
509 return; 510 return;
@@ -691,7 +692,7 @@ static void _rtl92s_dm_init_dig(struct ieee80211_hw *hw)
691 692
692 /* for dig debug rssi value */ 693 /* for dig debug rssi value */
693 digtable->rssi_val = 50; 694 digtable->rssi_val = 50;
694 digtable->back_val = DM_DIG_BACKOFF; 695 digtable->back_val = DM_DIG_BACKOFF_MAX;
695 digtable->rx_gain_max = DM_DIG_MAX; 696 digtable->rx_gain_max = DM_DIG_MAX;
696 697
697 digtable->rx_gain_min = DM_DIG_MIN; 698 digtable->rx_gain_min = DM_DIG_MIN;
diff --git a/drivers/net/wireless/rtlwifi/rtl8192se/dm.h b/drivers/net/wireless/rtlwifi/rtl8192se/dm.h
index 2e9052c8fe4b..de6ac796c74d 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192se/dm.h
+++ b/drivers/net/wireless/rtlwifi/rtl8192se/dm.h
@@ -54,24 +54,6 @@ enum dm_dig_sta {
54 DM_STA_DIG_MAX 54 DM_STA_DIG_MAX
55}; 55};
56 56
57enum dm_dig_connect {
58 DIG_STA_DISCONNECT = 0,
59 DIG_STA_CONNECT = 1,
60 DIG_STA_BEFORE_CONNECT = 2,
61 DIG_AP_DISCONNECT = 3,
62 DIG_AP_CONNECT = 4,
63 DIG_AP_ADD_STATION = 5,
64 DIG_CONNECT_MAX
65};
66
67enum dm_dig_ext_port_alg {
68 DIG_EXT_PORT_STAGE_0 = 0,
69 DIG_EXT_PORT_STAGE_1 = 1,
70 DIG_EXT_PORT_STAGE_2 = 2,
71 DIG_EXT_PORT_STAGE_3 = 3,
72 DIG_EXT_PORT_STAGE_MAX = 4,
73};
74
75enum dm_ratr_sta { 57enum dm_ratr_sta {
76 DM_RATR_STA_HIGH = 0, 58 DM_RATR_STA_HIGH = 0,
77 DM_RATR_STA_MIDDLEHIGH = 1, 59 DM_RATR_STA_MIDDLEHIGH = 1,
@@ -99,22 +81,12 @@ enum dm_ratr_sta {
99#define TX_POWER_NEAR_FIELD_THRESH_LVL2 74 81#define TX_POWER_NEAR_FIELD_THRESH_LVL2 74
100#define TX_POWER_NEAR_FIELD_THRESH_LVL1 67 82#define TX_POWER_NEAR_FIELD_THRESH_LVL1 67
101 83
102#define DM_DIG_THRESH_HIGH 40
103#define DM_DIG_THRESH_LOW 35
104#define DM_FALSEALARM_THRESH_LOW 40
105#define DM_FALSEALARM_THRESH_HIGH 1000
106#define DM_DIG_HIGH_PWR_THRESH_HIGH 75 84#define DM_DIG_HIGH_PWR_THRESH_HIGH 75
107#define DM_DIG_HIGH_PWR_THRESH_LOW 70 85#define DM_DIG_HIGH_PWR_THRESH_LOW 70
108#define DM_DIG_BACKOFF 12
109#define DM_DIG_MAX 0x3e
110#define DM_DIG_MIN 0x1c
111#define DM_DIG_MIN_Netcore 0x12 86#define DM_DIG_MIN_Netcore 0x12
112#define DM_DIG_BACKOFF_MAX 12
113#define DM_DIG_BACKOFF_MIN -4
114 87
115void rtl92s_dm_watchdog(struct ieee80211_hw *hw); 88void rtl92s_dm_watchdog(struct ieee80211_hw *hw);
116void rtl92s_dm_init(struct ieee80211_hw *hw); 89void rtl92s_dm_init(struct ieee80211_hw *hw);
117void rtl92s_dm_init_edca_turbo(struct ieee80211_hw *hw); 90void rtl92s_dm_init_edca_turbo(struct ieee80211_hw *hw);
118 91
119#endif 92#endif
120
diff --git a/drivers/net/wireless/rtlwifi/rtl8723ae/dm.c b/drivers/net/wireless/rtlwifi/rtl8723ae/dm.c
index a0e86922780a..4c1c96c96a5a 100644
--- a/drivers/net/wireless/rtlwifi/rtl8723ae/dm.c
+++ b/drivers/net/wireless/rtlwifi/rtl8723ae/dm.c
@@ -26,6 +26,7 @@
26#include "../wifi.h" 26#include "../wifi.h"
27#include "../base.h" 27#include "../base.h"
28#include "../pci.h" 28#include "../pci.h"
29#include "../core.h"
29#include "reg.h" 30#include "reg.h"
30#include "def.h" 31#include "def.h"
31#include "phy.h" 32#include "phy.h"
@@ -146,31 +147,6 @@ static const u8 cckswing_table_ch14[CCK_TABLE_SIZE][8] = {
146 {0x09, 0x08, 0x07, 0x04, 0x00, 0x00, 0x00, 0x00} 147 {0x09, 0x08, 0x07, 0x04, 0x00, 0x00, 0x00, 0x00}
147}; 148};
148 149
149static void rtl8723e_dm_diginit(struct ieee80211_hw *hw)
150{
151 struct rtl_priv *rtlpriv = rtl_priv(hw);
152 struct dig_t *dm_digtable = &rtlpriv->dm_digtable;
153
154 dm_digtable->dig_enable_flag = true;
155 dm_digtable->dig_ext_port_stage = DIG_EXT_PORT_STAGE_MAX;
156 dm_digtable->cur_igvalue = 0x20;
157 dm_digtable->pre_igvalue = 0x0;
158 dm_digtable->cursta_cstate = DIG_STA_DISCONNECT;
159 dm_digtable->presta_cstate = DIG_STA_DISCONNECT;
160 dm_digtable->curmultista_cstate = DIG_MULTISTA_DISCONNECT;
161 dm_digtable->rssi_lowthresh = DM_DIG_THRESH_LOW;
162 dm_digtable->rssi_highthresh = DM_DIG_THRESH_HIGH;
163 dm_digtable->fa_lowthresh = DM_FALSEALARM_THRESH_LOW;
164 dm_digtable->fa_highthresh = DM_FALSEALARM_THRESH_HIGH;
165 dm_digtable->rx_gain_max = DM_DIG_MAX;
166 dm_digtable->rx_gain_min = DM_DIG_MIN;
167 dm_digtable->back_val = DM_DIG_BACKOFF_DEFAULT;
168 dm_digtable->back_range_max = DM_DIG_BACKOFF_MAX;
169 dm_digtable->back_range_min = DM_DIG_BACKOFF_MIN;
170 dm_digtable->pre_cck_pd_state = CCK_PD_STAGE_MAX;
171 dm_digtable->cur_cck_pd_state = CCK_PD_STAGE_MAX;
172}
173
174static u8 rtl8723e_dm_initial_gain_min_pwdb(struct ieee80211_hw *hw) 150static u8 rtl8723e_dm_initial_gain_min_pwdb(struct ieee80211_hw *hw)
175{ 151{
176 struct rtl_priv *rtlpriv = rtl_priv(hw); 152 struct rtl_priv *rtlpriv = rtl_priv(hw);
@@ -395,30 +371,30 @@ static void rtl8723e_dm_cck_packet_detection_thresh(struct ieee80211_hw *hw)
395 if (dm_digtable->cursta_cstate == DIG_STA_CONNECT) { 371 if (dm_digtable->cursta_cstate == DIG_STA_CONNECT) {
396 dm_digtable->rssi_val_min = rtl8723e_dm_initial_gain_min_pwdb(hw); 372 dm_digtable->rssi_val_min = rtl8723e_dm_initial_gain_min_pwdb(hw);
397 373
398 if (dm_digtable->pre_cck_pd_state == CCK_PD_STAGE_LowRssi) { 374 if (dm_digtable->pre_cck_pd_state == CCK_PD_STAGE_LOWRSSI) {
399 if (dm_digtable->rssi_val_min <= 25) 375 if (dm_digtable->rssi_val_min <= 25)
400 dm_digtable->cur_cck_pd_state = 376 dm_digtable->cur_cck_pd_state =
401 CCK_PD_STAGE_LowRssi; 377 CCK_PD_STAGE_LOWRSSI;
402 else 378 else
403 dm_digtable->cur_cck_pd_state = 379 dm_digtable->cur_cck_pd_state =
404 CCK_PD_STAGE_HighRssi; 380 CCK_PD_STAGE_HIGHRSSI;
405 } else { 381 } else {
406 if (dm_digtable->rssi_val_min <= 20) 382 if (dm_digtable->rssi_val_min <= 20)
407 dm_digtable->cur_cck_pd_state = 383 dm_digtable->cur_cck_pd_state =
408 CCK_PD_STAGE_LowRssi; 384 CCK_PD_STAGE_LOWRSSI;
409 else 385 else
410 dm_digtable->cur_cck_pd_state = 386 dm_digtable->cur_cck_pd_state =
411 CCK_PD_STAGE_HighRssi; 387 CCK_PD_STAGE_HIGHRSSI;
412 } 388 }
413 } else { 389 } else {
414 dm_digtable->cur_cck_pd_state = CCK_PD_STAGE_MAX; 390 dm_digtable->cur_cck_pd_state = CCK_PD_STAGE_MAX;
415 } 391 }
416 392
417 if (dm_digtable->pre_cck_pd_state != dm_digtable->cur_cck_pd_state) { 393 if (dm_digtable->pre_cck_pd_state != dm_digtable->cur_cck_pd_state) {
418 if (dm_digtable->cur_cck_pd_state == CCK_PD_STAGE_LowRssi) { 394 if (dm_digtable->cur_cck_pd_state == CCK_PD_STAGE_LOWRSSI) {
419 if (rtlpriv->falsealm_cnt.cnt_cck_fail > 800) 395 if (rtlpriv->falsealm_cnt.cnt_cck_fail > 800)
420 dm_digtable->cur_cck_fa_state = 396 dm_digtable->cur_cck_fa_state =
421 CCK_FA_STAGE_High; 397 CCK_FA_STAGE_HIGH;
422 else 398 else
423 dm_digtable->cur_cck_fa_state = 399 dm_digtable->cur_cck_fa_state =
424 CCK_FA_STAGE_LOW; 400 CCK_FA_STAGE_LOW;
@@ -818,7 +794,7 @@ void rtl8723e_dm_init(struct ieee80211_hw *hw)
818 struct rtl_priv *rtlpriv = rtl_priv(hw); 794 struct rtl_priv *rtlpriv = rtl_priv(hw);
819 795
820 rtlpriv->dm.dm_type = DM_TYPE_BYDRIVER; 796 rtlpriv->dm.dm_type = DM_TYPE_BYDRIVER;
821 rtl8723e_dm_diginit(hw); 797 rtl_dm_diginit(hw, 0x20);
822 rtl8723_dm_init_dynamic_txpower(hw); 798 rtl8723_dm_init_dynamic_txpower(hw);
823 rtl8723_dm_init_edca_turbo(hw); 799 rtl8723_dm_init_edca_turbo(hw);
824 rtl8723e_dm_init_rate_adaptive_mask(hw); 800 rtl8723e_dm_init_rate_adaptive_mask(hw);
diff --git a/drivers/net/wireless/rtlwifi/rtl8723ae/dm.h b/drivers/net/wireless/rtlwifi/rtl8723ae/dm.h
index 6fa0feb05f6d..57111052e86b 100644
--- a/drivers/net/wireless/rtlwifi/rtl8723ae/dm.h
+++ b/drivers/net/wireless/rtlwifi/rtl8723ae/dm.h
@@ -42,25 +42,12 @@
42#define BW_AUTO_SWITCH_HIGH_LOW 25 42#define BW_AUTO_SWITCH_HIGH_LOW 25
43#define BW_AUTO_SWITCH_LOW_HIGH 30 43#define BW_AUTO_SWITCH_LOW_HIGH 30
44 44
45#define DM_DIG_THRESH_HIGH 40
46#define DM_DIG_THRESH_LOW 35
47
48#define DM_FALSEALARM_THRESH_LOW 400
49#define DM_FALSEALARM_THRESH_HIGH 1000
50
51#define DM_DIG_MAX 0x3e
52#define DM_DIG_MIN 0x1e
53
54#define DM_DIG_FA_UPPER 0x32 45#define DM_DIG_FA_UPPER 0x32
55#define DM_DIG_FA_LOWER 0x20 46#define DM_DIG_FA_LOWER 0x20
56#define DM_DIG_FA_TH0 0x20 47#define DM_DIG_FA_TH0 0x20
57#define DM_DIG_FA_TH1 0x100 48#define DM_DIG_FA_TH1 0x100
58#define DM_DIG_FA_TH2 0x200 49#define DM_DIG_FA_TH2 0x200
59 50
60#define DM_DIG_BACKOFF_MAX 12
61#define DM_DIG_BACKOFF_MIN -4
62#define DM_DIG_BACKOFF_DEFAULT 10
63
64#define RXPATHSELECTION_SS_TH_LOW 30 51#define RXPATHSELECTION_SS_TH_LOW 30
65#define RXPATHSELECTION_DIFF_TH 18 52#define RXPATHSELECTION_DIFF_TH 18
66 53
@@ -108,14 +95,6 @@ enum tag_dynamic_init_gain_operation_type_definition {
108 DIG_OP_TYPE_MAX 95 DIG_OP_TYPE_MAX
109}; 96};
110 97
111enum tag_cck_packet_detection_threshold_type_definition {
112 CCK_PD_STAGE_LowRssi = 0,
113 CCK_PD_STAGE_HighRssi = 1,
114 CCK_FA_STAGE_LOW = 2,
115 CCK_FA_STAGE_High = 3,
116 CCK_PD_STAGE_MAX = 4,
117};
118
119enum dm_1r_cca_e { 98enum dm_1r_cca_e {
120 CCA_1R = 0, 99 CCA_1R = 0,
121 CCA_2R = 1, 100 CCA_2R = 1,
@@ -134,23 +113,6 @@ enum dm_sw_ant_switch_e {
134 ANS_ANTENNA_MAX = 3, 113 ANS_ANTENNA_MAX = 3,
135}; 114};
136 115
137enum dm_dig_ext_port_alg_e {
138 DIG_EXT_PORT_STAGE_0 = 0,
139 DIG_EXT_PORT_STAGE_1 = 1,
140 DIG_EXT_PORT_STAGE_2 = 2,
141 DIG_EXT_PORT_STAGE_3 = 3,
142 DIG_EXT_PORT_STAGE_MAX = 4,
143};
144
145enum dm_dig_connect_e {
146 DIG_STA_DISCONNECT = 0,
147 DIG_STA_CONNECT = 1,
148 DIG_STA_BEFORE_CONNECT = 2,
149 DIG_MULTISTA_DISCONNECT = 3,
150 DIG_MULTISTA_CONNECT = 4,
151 DIG_CONNECT_MAX
152};
153
154#define BT_RSSI_STATE_NORMAL_POWER BIT_OFFSET_LEN_MASK_32(0, 1) 116#define BT_RSSI_STATE_NORMAL_POWER BIT_OFFSET_LEN_MASK_32(0, 1)
155#define BT_RSSI_STATE_AMDPU_OFF BIT_OFFSET_LEN_MASK_32(1, 1) 117#define BT_RSSI_STATE_AMDPU_OFF BIT_OFFSET_LEN_MASK_32(1, 1)
156#define BT_RSSI_STATE_SPECIAL_LOW BIT_OFFSET_LEN_MASK_32(2, 1) 118#define BT_RSSI_STATE_SPECIAL_LOW BIT_OFFSET_LEN_MASK_32(2, 1)
diff --git a/drivers/net/wireless/rtlwifi/rtl8723be/dm.c b/drivers/net/wireless/rtlwifi/rtl8723be/dm.c
index dd7eb4371f49..2367e8f47a5b 100644
--- a/drivers/net/wireless/rtlwifi/rtl8723be/dm.c
+++ b/drivers/net/wireless/rtlwifi/rtl8723be/dm.c
@@ -26,6 +26,7 @@
26#include "../wifi.h" 26#include "../wifi.h"
27#include "../base.h" 27#include "../base.h"
28#include "../pci.h" 28#include "../pci.h"
29#include "../core.h"
29#include "reg.h" 30#include "reg.h"
30#include "def.h" 31#include "def.h"
31#include "phy.h" 32#include "phy.h"
@@ -211,35 +212,6 @@ void rtl8723be_dm_txpower_track_adjust(struct ieee80211_hw *hw, u8 type,
211 (pwr_val << 16) | (pwr_val << 24); 212 (pwr_val << 16) | (pwr_val << 24);
212} 213}
213 214
214static void rtl8723be_dm_diginit(struct ieee80211_hw *hw)
215{
216 struct rtl_priv *rtlpriv = rtl_priv(hw);
217 struct dig_t *dm_digtable = &rtlpriv->dm_digtable;
218
219 dm_digtable->dig_enable_flag = true;
220 dm_digtable->cur_igvalue = rtl_get_bbreg(hw, ROFDM0_XAAGCCORE1, 0x7f);
221 dm_digtable->rssi_lowthresh = DM_DIG_THRESH_LOW;
222 dm_digtable->rssi_highthresh = DM_DIG_THRESH_HIGH;
223 dm_digtable->fa_lowthresh = DM_FALSEALARM_THRESH_LOW;
224 dm_digtable->fa_highthresh = DM_FALSEALARM_THRESH_HIGH;
225 dm_digtable->rx_gain_max = DM_DIG_MAX;
226 dm_digtable->rx_gain_min = DM_DIG_MIN;
227 dm_digtable->back_val = DM_DIG_BACKOFF_DEFAULT;
228 dm_digtable->back_range_max = DM_DIG_BACKOFF_MAX;
229 dm_digtable->back_range_min = DM_DIG_BACKOFF_MIN;
230 dm_digtable->pre_cck_cca_thres = 0xff;
231 dm_digtable->cur_cck_cca_thres = 0x83;
232 dm_digtable->forbidden_igi = DM_DIG_MIN;
233 dm_digtable->large_fa_hit = 0;
234 dm_digtable->recover_cnt = 0;
235 dm_digtable->dig_dynamic_min = DM_DIG_MIN;
236 dm_digtable->dig_dynamic_min_1 = DM_DIG_MIN;
237 dm_digtable->media_connect_0 = false;
238 dm_digtable->media_connect_1 = false;
239 rtlpriv->dm.dm_initialgain_enable = true;
240 dm_digtable->bt30_cur_igi = 0x32;
241}
242
243void rtl8723be_dm_init_rate_adaptive_mask(struct ieee80211_hw *hw) 215void rtl8723be_dm_init_rate_adaptive_mask(struct ieee80211_hw *hw)
244{ 216{
245 struct rtl_priv *rtlpriv = rtl_priv(hw); 217 struct rtl_priv *rtlpriv = rtl_priv(hw);
@@ -293,9 +265,10 @@ static void rtl8723be_dm_init_dynamic_atc_switch(struct ieee80211_hw *hw)
293void rtl8723be_dm_init(struct ieee80211_hw *hw) 265void rtl8723be_dm_init(struct ieee80211_hw *hw)
294{ 266{
295 struct rtl_priv *rtlpriv = rtl_priv(hw); 267 struct rtl_priv *rtlpriv = rtl_priv(hw);
268 u32 cur_igvalue = rtl_get_bbreg(hw, ROFDM0_XAAGCCORE1, 0x7f);
296 269
297 rtlpriv->dm.dm_type = DM_TYPE_BYDRIVER; 270 rtlpriv->dm.dm_type = DM_TYPE_BYDRIVER;
298 rtl8723be_dm_diginit(hw); 271 rtl_dm_diginit(hw, cur_igvalue);
299 rtl8723be_dm_init_rate_adaptive_mask(hw); 272 rtl8723be_dm_init_rate_adaptive_mask(hw);
300 rtl8723_dm_init_edca_turbo(hw); 273 rtl8723_dm_init_edca_turbo(hw);
301 rtl8723_dm_init_dynamic_bb_powersaving(hw); 274 rtl8723_dm_init_dynamic_bb_powersaving(hw);
@@ -424,7 +397,7 @@ static void rtl8723be_dm_dig(struct ieee80211_hw *hw)
424 struct rtl_priv *rtlpriv = rtl_priv(hw); 397 struct rtl_priv *rtlpriv = rtl_priv(hw);
425 struct dig_t *dm_digtable = &rtlpriv->dm_digtable; 398 struct dig_t *dm_digtable = &rtlpriv->dm_digtable;
426 struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); 399 struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
427 u8 dig_dynamic_min, dig_maxofmin; 400 u8 dig_min_0, dig_maxofmin;
428 bool bfirstconnect, bfirstdisconnect; 401 bool bfirstconnect, bfirstdisconnect;
429 u8 dm_dig_max, dm_dig_min; 402 u8 dm_dig_max, dm_dig_min;
430 u8 current_igi = dm_digtable->cur_igvalue; 403 u8 current_igi = dm_digtable->cur_igvalue;
@@ -434,7 +407,7 @@ static void rtl8723be_dm_dig(struct ieee80211_hw *hw)
434 if (mac->act_scanning) 407 if (mac->act_scanning)
435 return; 408 return;
436 409
437 dig_dynamic_min = dm_digtable->dig_dynamic_min; 410 dig_min_0 = dm_digtable->dig_min_0;
438 bfirstconnect = (mac->link_state >= MAC80211_LINKED) && 411 bfirstconnect = (mac->link_state >= MAC80211_LINKED) &&
439 !dm_digtable->media_connect_0; 412 !dm_digtable->media_connect_0;
440 bfirstdisconnect = (mac->link_state < MAC80211_LINKED) && 413 bfirstdisconnect = (mac->link_state < MAC80211_LINKED) &&
@@ -456,20 +429,20 @@ static void rtl8723be_dm_dig(struct ieee80211_hw *hw)
456 if (rtlpriv->dm.one_entry_only) { 429 if (rtlpriv->dm.one_entry_only) {
457 offset = 12; 430 offset = 12;
458 if (dm_digtable->rssi_val_min - offset < dm_dig_min) 431 if (dm_digtable->rssi_val_min - offset < dm_dig_min)
459 dig_dynamic_min = dm_dig_min; 432 dig_min_0 = dm_dig_min;
460 else if (dm_digtable->rssi_val_min - offset > 433 else if (dm_digtable->rssi_val_min - offset >
461 dig_maxofmin) 434 dig_maxofmin)
462 dig_dynamic_min = dig_maxofmin; 435 dig_min_0 = dig_maxofmin;
463 else 436 else
464 dig_dynamic_min = 437 dig_min_0 =
465 dm_digtable->rssi_val_min - offset; 438 dm_digtable->rssi_val_min - offset;
466 } else { 439 } else {
467 dig_dynamic_min = dm_dig_min; 440 dig_min_0 = dm_dig_min;
468 } 441 }
469 442
470 } else { 443 } else {
471 dm_digtable->rx_gain_max = dm_dig_max; 444 dm_digtable->rx_gain_max = dm_dig_max;
472 dig_dynamic_min = dm_dig_min; 445 dig_min_0 = dm_dig_min;
473 RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD, "no link\n"); 446 RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD, "no link\n");
474 } 447 }
475 448
@@ -497,11 +470,11 @@ static void rtl8723be_dm_dig(struct ieee80211_hw *hw)
497 } else { 470 } else {
498 if (dm_digtable->large_fa_hit < 3) { 471 if (dm_digtable->large_fa_hit < 3) {
499 if ((dm_digtable->forbidden_igi - 1) < 472 if ((dm_digtable->forbidden_igi - 1) <
500 dig_dynamic_min) { 473 dig_min_0) {
501 dm_digtable->forbidden_igi = 474 dm_digtable->forbidden_igi =
502 dig_dynamic_min; 475 dig_min_0;
503 dm_digtable->rx_gain_min = 476 dm_digtable->rx_gain_min =
504 dig_dynamic_min; 477 dig_min_0;
505 } else { 478 } else {
506 dm_digtable->forbidden_igi--; 479 dm_digtable->forbidden_igi--;
507 dm_digtable->rx_gain_min = 480 dm_digtable->rx_gain_min =
@@ -552,7 +525,7 @@ static void rtl8723be_dm_dig(struct ieee80211_hw *hw)
552 rtl8723be_dm_write_dig(hw, current_igi); 525 rtl8723be_dm_write_dig(hw, current_igi);
553 dm_digtable->media_connect_0 = 526 dm_digtable->media_connect_0 =
554 ((mac->link_state >= MAC80211_LINKED) ? true : false); 527 ((mac->link_state >= MAC80211_LINKED) ? true : false);
555 dm_digtable->dig_dynamic_min = dig_dynamic_min; 528 dm_digtable->dig_min_0 = dig_min_0;
556} 529}
557 530
558static void rtl8723be_dm_false_alarm_counter_statistics( 531static void rtl8723be_dm_false_alarm_counter_statistics(
diff --git a/drivers/net/wireless/rtlwifi/rtl8723be/dm.h b/drivers/net/wireless/rtlwifi/rtl8723be/dm.h
index e4c0e8ae6f47..f752a2cad63d 100644
--- a/drivers/net/wireless/rtlwifi/rtl8723be/dm.h
+++ b/drivers/net/wireless/rtlwifi/rtl8723be/dm.h
@@ -180,28 +180,12 @@
180#define BW_AUTO_SWITCH_HIGH_LOW 25 180#define BW_AUTO_SWITCH_HIGH_LOW 25
181#define BW_AUTO_SWITCH_LOW_HIGH 30 181#define BW_AUTO_SWITCH_LOW_HIGH 30
182 182
183#define DM_DIG_THRESH_HIGH 40
184#define DM_DIG_THRESH_LOW 35
185
186#define DM_FALSEALARM_THRESH_LOW 400
187#define DM_FALSEALARM_THRESH_HIGH 1000
188
189#define DM_DIG_MAX 0x3e
190#define DM_DIG_MIN 0x1e
191
192#define DM_DIG_MAX_AP 0x32
193#define DM_DIG_MIN_AP 0x20
194
195#define DM_DIG_FA_UPPER 0x3e 183#define DM_DIG_FA_UPPER 0x3e
196#define DM_DIG_FA_LOWER 0x1e 184#define DM_DIG_FA_LOWER 0x1e
197#define DM_DIG_FA_TH0 0x200 185#define DM_DIG_FA_TH0 0x200
198#define DM_DIG_FA_TH1 0x300 186#define DM_DIG_FA_TH1 0x300
199#define DM_DIG_FA_TH2 0x400 187#define DM_DIG_FA_TH2 0x400
200 188
201#define DM_DIG_BACKOFF_MAX 12
202#define DM_DIG_BACKOFF_MIN -4
203#define DM_DIG_BACKOFF_DEFAULT 10
204
205#define RXPATHSELECTION_SS_TH_LOW 30 189#define RXPATHSELECTION_SS_TH_LOW 30
206#define RXPATHSELECTION_DIFF_TH 18 190#define RXPATHSELECTION_DIFF_TH 18
207 191
@@ -252,23 +236,6 @@ enum dm_sw_ant_switch_e {
252 ANS_ANTENNA_MAX = 3, 236 ANS_ANTENNA_MAX = 3,
253}; 237};
254 238
255enum dm_dig_ext_port_alg_e {
256 DIG_EXT_PORT_STAGE_0 = 0,
257 DIG_EXT_PORT_STAGE_1 = 1,
258 DIG_EXT_PORT_STAGE_2 = 2,
259 DIG_EXT_PORT_STAGE_3 = 3,
260 DIG_EXT_PORT_STAGE_MAX = 4,
261};
262
263enum dm_dig_connect_e {
264 DIG_STA_DISCONNECT = 0,
265 DIG_STA_CONNECT = 1,
266 DIG_STA_BEFORE_CONNECT = 2,
267 DIG_MULTISTA_DISCONNECT = 3,
268 DIG_MULTISTA_CONNECT = 4,
269 DIG_CONNECT_MAX
270};
271
272enum pwr_track_control_method { 239enum pwr_track_control_method {
273 BBSWING, 240 BBSWING,
274 TXAGC 241 TXAGC
diff --git a/drivers/net/wireless/rtlwifi/rtl8723be/sw.c b/drivers/net/wireless/rtlwifi/rtl8723be/sw.c
index 223eb42992bd..1017f02d7bf7 100644
--- a/drivers/net/wireless/rtlwifi/rtl8723be/sw.c
+++ b/drivers/net/wireless/rtlwifi/rtl8723be/sw.c
@@ -387,12 +387,14 @@ module_param_named(swlps, rtl8723be_mod_params.swctrl_lps, bool, 0444);
387module_param_named(fwlps, rtl8723be_mod_params.fwctrl_lps, bool, 0444); 387module_param_named(fwlps, rtl8723be_mod_params.fwctrl_lps, bool, 0444);
388module_param_named(disable_watchdog, rtl8723be_mod_params.disable_watchdog, 388module_param_named(disable_watchdog, rtl8723be_mod_params.disable_watchdog,
389 bool, 0444); 389 bool, 0444);
390MODULE_PARM_DESC(swenc, "using hardware crypto (default 0 [hardware])\n"); 390MODULE_PARM_DESC(swenc, "Set to 1 for software crypto (default 0)\n");
391MODULE_PARM_DESC(ips, "using no link power save (default 1 is open)\n"); 391MODULE_PARM_DESC(ips, "Set to 0 to not use link power save (default 1)\n");
392MODULE_PARM_DESC(fwlps, "using linked fw control power save (default 1 is open)\n"); 392MODULE_PARM_DESC(swlps, "Set to 1 to use SW control power save (default 0)\n");
393MODULE_PARM_DESC(fwlps, "Set to 1 to use FW control power save (default 1)\n");
393MODULE_PARM_DESC(msi, "Set to 1 to use MSI interrupts mode (default 0)\n"); 394MODULE_PARM_DESC(msi, "Set to 1 to use MSI interrupts mode (default 0)\n");
394MODULE_PARM_DESC(debug, "Set debug level (0-5) (default 0)"); 395MODULE_PARM_DESC(debug, "Set debug level (0-5) (default 0)");
395MODULE_PARM_DESC(disable_watchdog, "Set to 1 to disable the watchdog (default 0)\n"); 396MODULE_PARM_DESC(disable_watchdog,
397 "Set to 1 to disable the watchdog (default 0)\n");
396 398
397static SIMPLE_DEV_PM_OPS(rtlwifi_pm_ops, rtl_pci_suspend, rtl_pci_resume); 399static SIMPLE_DEV_PM_OPS(rtlwifi_pm_ops, rtl_pci_suspend, rtl_pci_resume);
398 400
diff --git a/drivers/net/wireless/rtlwifi/rtl8821ae/dm.c b/drivers/net/wireless/rtlwifi/rtl8821ae/dm.c
index ba30b0d250fd..0b2082dc48f1 100644
--- a/drivers/net/wireless/rtlwifi/rtl8821ae/dm.c
+++ b/drivers/net/wireless/rtlwifi/rtl8821ae/dm.c
@@ -26,6 +26,7 @@
26#include "../wifi.h" 26#include "../wifi.h"
27#include "../base.h" 27#include "../base.h"
28#include "../pci.h" 28#include "../pci.h"
29#include "../core.h"
29#include "reg.h" 30#include "reg.h"
30#include "def.h" 31#include "def.h"
31#include "phy.h" 32#include "phy.h"
@@ -519,34 +520,6 @@ void rtl8821ae_dm_initialize_txpower_tracking_thermalmeter(
519 } 520 }
520} 521}
521 522
522static void rtl8821ae_dm_diginit(struct ieee80211_hw *hw)
523{
524 struct rtl_priv *rtlpriv = rtl_priv(hw);
525 struct dig_t *dm_digtable = &rtlpriv->dm_digtable;
526
527 dm_digtable->cur_igvalue = rtl_get_bbreg(hw, ROFDM0_XAAGCCORE1, 0x7f);
528 dm_digtable->rssi_lowthresh = DM_DIG_THRESH_LOW;
529 dm_digtable->rssi_highthresh = DM_DIG_THRESH_HIGH;
530 dm_digtable->fa_lowthresh = DM_FALSEALARM_THRESH_LOW;
531 dm_digtable->fa_highthresh = DM_FALSEALARM_THRESH_HIGH;
532 dm_digtable->rx_gain_max = DM_DIG_MAX;
533 dm_digtable->rx_gain_min = DM_DIG_MIN;
534 dm_digtable->back_val = DM_DIG_BACKOFF_DEFAULT;
535 dm_digtable->back_range_max = DM_DIG_BACKOFF_MAX;
536 dm_digtable->back_range_min = DM_DIG_BACKOFF_MIN;
537 dm_digtable->pre_cck_cca_thres = 0xff;
538 dm_digtable->cur_cck_cca_thres = 0x83;
539 dm_digtable->forbidden_igi = DM_DIG_MIN;
540 dm_digtable->large_fa_hit = 0;
541 dm_digtable->recover_cnt = 0;
542 dm_digtable->dig_dynamic_min = DM_DIG_MIN;
543 dm_digtable->dig_dynamic_min_1 = DM_DIG_MIN;
544 dm_digtable->media_connect_0 = false;
545 dm_digtable->media_connect_1 = false;
546 rtlpriv->dm.dm_initialgain_enable = true;
547 dm_digtable->bt30_cur_igi = 0x32;
548}
549
550void rtl8821ae_dm_init_edca_turbo(struct ieee80211_hw *hw) 523void rtl8821ae_dm_init_edca_turbo(struct ieee80211_hw *hw)
551{ 524{
552 struct rtl_priv *rtlpriv = rtl_priv(hw); 525 struct rtl_priv *rtlpriv = rtl_priv(hw);
@@ -606,6 +579,7 @@ void rtl8821ae_dm_init(struct ieee80211_hw *hw)
606{ 579{
607 struct rtl_priv *rtlpriv = rtl_priv(hw); 580 struct rtl_priv *rtlpriv = rtl_priv(hw);
608 struct rtl_phy *rtlphy = &rtlpriv->phy; 581 struct rtl_phy *rtlphy = &rtlpriv->phy;
582 u32 cur_igvalue = rtl_get_bbreg(hw, ROFDM0_XAAGCCORE1, 0x7f);
609 583
610 spin_lock(&rtlpriv->locks.iqk_lock); 584 spin_lock(&rtlpriv->locks.iqk_lock);
611 rtlphy->lck_inprogress = false; 585 rtlphy->lck_inprogress = false;
@@ -613,7 +587,7 @@ void rtl8821ae_dm_init(struct ieee80211_hw *hw)
613 587
614 rtlpriv->dm.dm_type = DM_TYPE_BYDRIVER; 588 rtlpriv->dm.dm_type = DM_TYPE_BYDRIVER;
615 rtl8821ae_dm_common_info_self_init(hw); 589 rtl8821ae_dm_common_info_self_init(hw);
616 rtl8821ae_dm_diginit(hw); 590 rtl_dm_diginit(hw, cur_igvalue);
617 rtl8821ae_dm_init_rate_adaptive_mask(hw); 591 rtl8821ae_dm_init_rate_adaptive_mask(hw);
618 rtl8821ae_dm_init_edca_turbo(hw); 592 rtl8821ae_dm_init_edca_turbo(hw);
619 rtl8821ae_dm_initialize_txpower_tracking_thermalmeter(hw); 593 rtl8821ae_dm_initialize_txpower_tracking_thermalmeter(hw);
@@ -822,7 +796,7 @@ static void rtl8821ae_dm_dig(struct ieee80211_hw *hw)
822 struct dig_t *dm_digtable = &rtlpriv->dm_digtable; 796 struct dig_t *dm_digtable = &rtlpriv->dm_digtable;
823 struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); 797 struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
824 struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); 798 struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
825 u8 dig_dynamic_min; 799 u8 dig_min_0;
826 u8 dig_max_of_min; 800 u8 dig_max_of_min;
827 bool first_connect, first_disconnect; 801 bool first_connect, first_disconnect;
828 u8 dm_dig_max, dm_dig_min, offset; 802 u8 dm_dig_max, dm_dig_min, offset;
@@ -837,7 +811,7 @@ static void rtl8821ae_dm_dig(struct ieee80211_hw *hw)
837 } 811 }
838 812
839 /*add by Neil Chen to avoid PSD is processing*/ 813 /*add by Neil Chen to avoid PSD is processing*/
840 dig_dynamic_min = dm_digtable->dig_dynamic_min; 814 dig_min_0 = dm_digtable->dig_min_0;
841 first_connect = (mac->link_state >= MAC80211_LINKED) && 815 first_connect = (mac->link_state >= MAC80211_LINKED) &&
842 (!dm_digtable->media_connect_0); 816 (!dm_digtable->media_connect_0);
843 first_disconnect = (mac->link_state < MAC80211_LINKED) && 817 first_disconnect = (mac->link_state < MAC80211_LINKED) &&
@@ -876,23 +850,23 @@ static void rtl8821ae_dm_dig(struct ieee80211_hw *hw)
876 offset = 0; 850 offset = 0;
877 851
878 if (dm_digtable->rssi_val_min - offset < dm_dig_min) 852 if (dm_digtable->rssi_val_min - offset < dm_dig_min)
879 dig_dynamic_min = dm_dig_min; 853 dig_min_0 = dm_dig_min;
880 else if (dm_digtable->rssi_val_min - 854 else if (dm_digtable->rssi_val_min -
881 offset > dig_max_of_min) 855 offset > dig_max_of_min)
882 dig_dynamic_min = dig_max_of_min; 856 dig_min_0 = dig_max_of_min;
883 else 857 else
884 dig_dynamic_min = 858 dig_min_0 =
885 dm_digtable->rssi_val_min - offset; 859 dm_digtable->rssi_val_min - offset;
886 860
887 RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD, 861 RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD,
888 "bOneEntryOnly=TRUE, dig_dynamic_min=0x%x\n", 862 "bOneEntryOnly=TRUE, dig_min_0=0x%x\n",
889 dig_dynamic_min); 863 dig_min_0);
890 } else { 864 } else {
891 dig_dynamic_min = dm_dig_min; 865 dig_min_0 = dm_dig_min;
892 } 866 }
893 } else { 867 } else {
894 dm_digtable->rx_gain_max = dm_dig_max; 868 dm_digtable->rx_gain_max = dm_dig_max;
895 dig_dynamic_min = dm_dig_min; 869 dig_min_0 = dm_dig_min;
896 RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD, 870 RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD,
897 "No Link\n"); 871 "No Link\n");
898 } 872 }
@@ -925,11 +899,11 @@ static void rtl8821ae_dm_dig(struct ieee80211_hw *hw)
925 } else { 899 } else {
926 if (dm_digtable->large_fa_hit < 3) { 900 if (dm_digtable->large_fa_hit < 3) {
927 if ((dm_digtable->forbidden_igi - 1) < 901 if ((dm_digtable->forbidden_igi - 1) <
928 dig_dynamic_min) { 902 dig_min_0) {
929 dm_digtable->forbidden_igi = 903 dm_digtable->forbidden_igi =
930 dig_dynamic_min; 904 dig_min_0;
931 dm_digtable->rx_gain_min = 905 dm_digtable->rx_gain_min =
932 dig_dynamic_min; 906 dig_min_0;
933 RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD, 907 RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD,
934 "Normal Case: At Lower Bound\n"); 908 "Normal Case: At Lower Bound\n");
935 } else { 909 } else {
@@ -1024,7 +998,7 @@ static void rtl8821ae_dm_dig(struct ieee80211_hw *hw)
1024 rtl8821ae_dm_write_dig(hw, current_igi); 998 rtl8821ae_dm_write_dig(hw, current_igi);
1025 dm_digtable->media_connect_0 = 999 dm_digtable->media_connect_0 =
1026 ((mac->link_state >= MAC80211_LINKED) ? true : false); 1000 ((mac->link_state >= MAC80211_LINKED) ? true : false);
1027 dm_digtable->dig_dynamic_min = dig_dynamic_min; 1001 dm_digtable->dig_min_0 = dig_min_0;
1028} 1002}
1029 1003
1030static void rtl8821ae_dm_common_info_self_update(struct ieee80211_hw *hw) 1004static void rtl8821ae_dm_common_info_self_update(struct ieee80211_hw *hw)
diff --git a/drivers/net/wireless/rtlwifi/rtl8821ae/dm.h b/drivers/net/wireless/rtlwifi/rtl8821ae/dm.h
index 9dd40dd316c1..625a6bbb21fc 100644
--- a/drivers/net/wireless/rtlwifi/rtl8821ae/dm.h
+++ b/drivers/net/wireless/rtlwifi/rtl8821ae/dm.h
@@ -187,28 +187,12 @@
187#define BW_AUTO_SWITCH_HIGH_LOW 25 187#define BW_AUTO_SWITCH_HIGH_LOW 25
188#define BW_AUTO_SWITCH_LOW_HIGH 30 188#define BW_AUTO_SWITCH_LOW_HIGH 30
189 189
190#define DM_DIG_THRESH_HIGH 40
191#define DM_DIG_THRESH_LOW 35
192
193#define DM_FALSEALARM_THRESH_LOW 400
194#define DM_FALSEALARM_THRESH_HIGH 1000
195
196#define DM_DIG_MAX 0x3e
197#define DM_DIG_MIN 0x1e
198
199#define DM_DIG_MAX_AP 0x32
200#define DM_DIG_MIN_AP 0x20
201
202#define DM_DIG_FA_UPPER 0x3e 190#define DM_DIG_FA_UPPER 0x3e
203#define DM_DIG_FA_LOWER 0x1e 191#define DM_DIG_FA_LOWER 0x1e
204#define DM_DIG_FA_TH0 200 192#define DM_DIG_FA_TH0 200
205#define DM_DIG_FA_TH1 0x300 193#define DM_DIG_FA_TH1 0x300
206#define DM_DIG_FA_TH2 0x400 194#define DM_DIG_FA_TH2 0x400
207 195
208#define DM_DIG_BACKOFF_MAX 12
209#define DM_DIG_BACKOFF_MIN -4
210#define DM_DIG_BACKOFF_DEFAULT 10
211
212#define RXPATHSELECTION_SS_TH_LOW 30 196#define RXPATHSELECTION_SS_TH_LOW 30
213#define RXPATHSELECTION_DIFF_TH 18 197#define RXPATHSELECTION_DIFF_TH 18
214 198
@@ -262,14 +246,6 @@ enum tag_dynamic_init_gain_operation_type_definition {
262 DIG_OP_TYPE_MAX 246 DIG_OP_TYPE_MAX
263}; 247};
264 248
265enum tag_cck_packet_detection_threshold_type_definition {
266 CCK_PD_STAGE_LOWRSSI = 0,
267 CCK_PD_STAGE_HIGHRSSI = 1,
268 CCK_FA_STAGE_LOW = 2,
269 CCK_FA_STAGE_HIGH = 3,
270 CCK_PD_STAGE_MAX = 4,
271};
272
273enum dm_1r_cca_e { 249enum dm_1r_cca_e {
274 CCA_1R = 0, 250 CCA_1R = 0,
275 CCA_2R = 1, 251 CCA_2R = 1,
@@ -288,23 +264,6 @@ enum dm_sw_ant_switch_e {
288 ANS_ANTENNA_MAX = 3, 264 ANS_ANTENNA_MAX = 3,
289}; 265};
290 266
291enum dm_dig_ext_port_alg_e {
292 DIG_EXT_PORT_STAGE_0 = 0,
293 DIG_EXT_PORT_STAGE_1 = 1,
294 DIG_EXT_PORT_STAGE_2 = 2,
295 DIG_EXT_PORT_STAGE_3 = 3,
296 DIG_EXT_PORT_STAGE_MAX = 4,
297};
298
299enum dm_dig_connect_e {
300 DIG_STA_DISCONNECT = 0,
301 DIG_STA_CONNECT = 1,
302 DIG_STA_BEFORE_CONNECT = 2,
303 DIG_MULTISTA_DISCONNECT = 3,
304 DIG_MULTISTA_CONNECT = 4,
305 DIG_CONNECT_MAX
306};
307
308enum pwr_track_control_method { 267enum pwr_track_control_method {
309 BBSWING, 268 BBSWING,
310 TXAGC, 269 TXAGC,
diff --git a/drivers/net/wireless/rtlwifi/wifi.h b/drivers/net/wireless/rtlwifi/wifi.h
index 7a718fdb82cd..b53d9dd7a595 100644
--- a/drivers/net/wireless/rtlwifi/wifi.h
+++ b/drivers/net/wireless/rtlwifi/wifi.h
@@ -2412,8 +2412,6 @@ struct dig_t {
2412 u8 pre_ccastate; 2412 u8 pre_ccastate;
2413 u8 cur_ccasate; 2413 u8 cur_ccasate;
2414 u8 large_fa_hit; 2414 u8 large_fa_hit;
2415 u8 dig_dynamic_min;
2416 u8 dig_dynamic_min_1;
2417 u8 forbidden_igi; 2415 u8 forbidden_igi;
2418 u8 dig_state; 2416 u8 dig_state;
2419 u8 dig_highpwrstate; 2417 u8 dig_highpwrstate;