diff options
Diffstat (limited to 'drivers/net/wireless/rtl8723as/os_dep/linux/mlme_linux.c')
-rwxr-xr-x | drivers/net/wireless/rtl8723as/os_dep/linux/mlme_linux.c | 45 |
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); |