diff options
Diffstat (limited to 'drivers/net/wireless/rtlwifi/rtl8723ae/dm.c')
-rw-r--r-- | drivers/net/wireless/rtlwifi/rtl8723ae/dm.c | 42 |
1 files changed, 9 insertions, 33 deletions
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 | ||
149 | static 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 | |||
174 | static u8 rtl8723e_dm_initial_gain_min_pwdb(struct ieee80211_hw *hw) | 150 | static 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); |