summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/rtl8723as/os_dep/linux/mlme_linux.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/rtl8723as/os_dep/linux/mlme_linux.c')
-rwxr-xr-xdrivers/net/wireless/rtl8723as/os_dep/linux/mlme_linux.c45
1 files changed, 41 insertions, 4 deletions
diff --git a/drivers/net/wireless/rtl8723as/os_dep/linux/mlme_linux.c b/drivers/net/wireless/rtl8723as/os_dep/linux/mlme_linux.c
index 1e5a19c0ee97..41e870f7aac5 100755
--- a/drivers/net/wireless/rtl8723as/os_dep/linux/mlme_linux.c
+++ b/drivers/net/wireless/rtl8723as/os_dep/linux/mlme_linux.c
@@ -94,11 +94,12 @@ void _rtw_scan_timeout_handler (void *FunctionContext)
void _dynamic_check_timer_handlder (void *FunctionContext)
{
_adapter *adapter = (_adapter *)FunctionContext;
-
+/* remove for MP power tracking DM.
#if (MP_DRIVER == 1)
if (adapter->registrypriv.mp_mode == 1)
return;
#endif
+*/
rtw_dynamic_check_timer_handlder(adapter);
_set_timer(&adapter->mlmepriv.dynamic_chk_timer, 2000);
@@ -112,6 +113,16 @@ void _rtw_set_scan_deny_timer_hdl(void *FunctionContext)
}
#endif
+#ifdef CONFIG_DETECT_C2H_BY_POLLING
+void _rtw_event_polling_timer_hdl(void *FunctionContext)
+{
+ _adapter *adapter = (_adapter *)FunctionContext;
+
+ rtw_event_polling_timer_hdl(adapter);
+
+ _set_timer(&adapter->mlmepriv.event_polling_timer, 200);
+}
+#endif
void rtw_init_mlme_timer(_adapter *padapter)
{
@@ -127,6 +138,10 @@ void rtw_init_mlme_timer(_adapter *padapter)
_init_timer(&(pmlmepriv->set_scan_deny_timer), padapter->pnetdev, _rtw_set_scan_deny_timer_hdl, padapter);
#endif
+#ifdef CONFIG_DETECT_C2H_BY_POLLING
+ _init_timer(&(pmlmepriv->event_polling_timer), padapter->pnetdev, _rtw_event_polling_timer_hdl, padapter);
+#endif
+
#ifdef RTK_DMP_PLATFORM
_init_workitem(&(pmlmepriv->Linkup_workitem), Linkup_workitem_callback, padapter);
_init_workitem(&(pmlmepriv->Linkdown_workitem), Linkdown_workitem_callback, padapter);
@@ -178,7 +193,12 @@ void rtw_reset_securitypriv( _adapter *adapter )
u8 backupPMKIDIndex = 0;
u8 backupTKIPCountermeasure = 0x00;
u32 backupTKIPcountermeasure_time = 0;
-
+ // add for CONFIG_IEEE80211W, none 11w also can use
+ _irqL irqL;
+ struct mlme_ext_priv *pmlmeext = &adapter->mlmeextpriv;
+
+ _enter_critical_bh(&adapter->security_key_mutex, &irqL);
+
if(adapter->securitypriv.dot11AuthAlgrthm == dot11AuthAlgrthm_8021X)//802.1x
{
// Added by Albert 2009/02/18
@@ -193,7 +213,10 @@ void rtw_reset_securitypriv( _adapter *adapter )
backupPMKIDIndex = adapter->securitypriv.PMKIDIndex;
backupTKIPCountermeasure = adapter->securitypriv.btkip_countermeasure;
backupTKIPcountermeasure_time = adapter->securitypriv.btkip_countermeasure_time;
-
+#ifdef CONFIG_IEEE80211W
+ //reset RX BIP packet number
+ pmlmeext->mgnt_80211w_IPN_rx = 0;
+#endif //CONFIG_IEEE80211W
_rtw_memset((unsigned char *)&adapter->securitypriv, 0, sizeof (struct security_priv));
//_init_timer(&(adapter->securitypriv.tkip_timer),adapter->pnetdev, rtw_use_tkipkey_handler, adapter);
@@ -225,6 +248,8 @@ void rtw_reset_securitypriv( _adapter *adapter )
psec_priv->ndisencryptstatus = Ndis802_11WEPDisabled;
//}
}
+ // add for CONFIG_IEEE80211W, none 11w also can use
+ _exit_critical_bh(&adapter->security_key_mutex, &irqL);
}
void rtw_os_indicate_disconnect( _adapter *adapter )
@@ -244,7 +269,8 @@ _func_enter_;
#ifdef RTK_DMP_PLATFORM
_set_workitem(&adapter->mlmepriv.Linkdown_workitem);
#endif
- rtw_reset_securitypriv( adapter );
+ //modify for CONFIG_IEEE80211W, none 11w also can use the same command
+ rtw_reset_securitypriv_cmd(adapter);
_func_exit_;
@@ -320,6 +346,14 @@ void _addba_timer_hdl(void *FunctionContext)
addba_timer_hdl(psta);
}
+#ifdef CONFIG_IEEE80211W
+void _sa_query_timer_hdl (void *FunctionContext)
+{
+ _adapter *padapter = (_adapter *)FunctionContext;
+ sa_query_timer_hdl(padapter);
+}
+#endif //CONFIG_IEEE80211W
+
void init_addba_retry_timer(_adapter *padapter, struct sta_info *psta)
{
@@ -346,6 +380,9 @@ void init_mlme_ext_timer(_adapter *padapter)
_init_timer(&pmlmeext->survey_timer, padapter->pnetdev, _survey_timer_hdl, padapter);
_init_timer(&pmlmeext->link_timer, padapter->pnetdev, _link_timer_hdl, padapter);
+#ifdef CONFIG_IEEE80211W
+ _init_timer(&pmlmeext->sa_query_timer, padapter->pnetdev, _sa_query_timer_hdl, padapter);
+#endif //CONFIG_IEEE80211W
//_init_timer(&pmlmeext->ADDBA_timer, padapter->pnetdev, _addba_timer_hdl, padapter);
//_init_timer(&pmlmeext->reauth_timer, padapter->pnetdev, _reauth_timer_hdl, padapter);