static bool PS_RDY_CHECK(struct rtw_adapter *padapter) { unsigned long delta_time; struct pwrctrl_priv *pwrpriv = &padapter->pwrctrlpriv; struct mlme_priv *pmlmepriv = &padapter->mlmepriv; delta_time = jiffies - pwrpriv->DelayLPSLastTimeStamp; if (delta_time < LPS_DELAY_TIME) return false; if (!check_fwstate(pmlmepriv, _FW_LINKED) || check_fwstate(pmlmepriv, _FW_UNDER_SURVEY) || check_fwstate(pmlmepriv, WIFI_AP_STATE) || check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE) || check_fwstate(pmlmepriv, WIFI_ADHOC_STATE)) return false; if (pwrpriv->bInSuspend) return false; if (padapter->securitypriv.dot11AuthAlgrthm == dot11AuthAlgrthm_8021X && !padapter->securitypriv.binstallGrpkey) { DBG_8723A("Group handshake still in progress !!!\n"); return false; } if (!rtw_cfg80211_pwr_mgmt(padapter)) return false; return true; }
static u8 ps_rdy_check(struct rtw_adapter *padapter) { u32 curr_time, delta_time; struct pwrctrl_priv *pwrpriv = &padapter->pwrctrlpriv; struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); curr_time = rtw_get_current_time(); delta_time = curr_time - pwrpriv->DelayLPSLastTimeStamp; if (delta_time < LPS_DELAY_TIME) return false; if ((check_fwstate(pmlmepriv, _FW_LINKED) == false) || (check_fwstate(pmlmepriv, WIFI_AP_STATE) == true) || (check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE) == true) || (check_fwstate(pmlmepriv, WIFI_ADHOC_STATE) == true)) return false; if (true == pwrpriv->bInSuspend) return false; if ((padapter->securitypriv.dot11AuthAlgrthm == dot11AuthAlgrthm_8021X) && (padapter->securitypriv.binstallGrpkey == false)) { DBG_8192D("Group handshake still in progress !!!\n"); return false; } if (!rtw_cfg80211_pwr_mgmt(padapter)) return false; return true; }
static u8 PS_RDY_CHECK(_adapter * padapter) { unsigned long curr_time, delta_time; struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(padapter); struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); #if defined(CONFIG_WOWLAN) || defined(CONFIG_AP_WOWLAN) if (true == pwrpriv->bInSuspend && pwrpriv->wowlan_mode) return true; else if (true == pwrpriv->bInSuspend && pwrpriv->wowlan_ap_mode) return true; else if (true == pwrpriv->bInSuspend) return false; #else if (true == pwrpriv->bInSuspend) return false; #endif curr_time = jiffies; delta_time = curr_time -pwrpriv->DelayLPSLastTimeStamp; if (delta_time < LPS_DELAY_TIME) { return false; } if (check_fwstate(pmlmepriv, WIFI_SITE_MONITOR) || check_fwstate(pmlmepriv, WIFI_UNDER_LINKING|WIFI_UNDER_WPS) || check_fwstate(pmlmepriv, WIFI_AP_STATE) || check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE|WIFI_ADHOC_STATE) || rtw_is_scan_deny(padapter) ) return false; if ((padapter->securitypriv.dot11AuthAlgrthm == dot11AuthAlgrthm_8021X) && (padapter->securitypriv.binstallGrpkey == false)) { DBG_871X("Group handshake still in progress !!!\n"); return false; } if (!rtw_cfg80211_pwr_mgmt(padapter)) return false; return true; }
u8 PS_RDY_CHECK(_adapter * padapter) { u32 curr_time, delta_time; struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(padapter); struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); #ifdef CONFIG_WOWLAN if(_TRUE == pwrpriv->bInSuspend && pwrpriv->wowlan_mode) return _TRUE; else if (_TRUE == pwrpriv->bInSuspend) return _FALSE; #else if(_TRUE == pwrpriv->bInSuspend ) return _FALSE; #endif curr_time = rtw_get_current_time(); delta_time = curr_time -pwrpriv->DelayLPSLastTimeStamp; if(delta_time < LPS_DELAY_TIME) { return _FALSE; } if ((check_fwstate(pmlmepriv, _FW_LINKED) == _FALSE) || (check_fwstate(pmlmepriv, _FW_UNDER_SURVEY) == _TRUE) || (check_fwstate(pmlmepriv, WIFI_UNDER_WPS) == _TRUE) || (check_fwstate(pmlmepriv, WIFI_AP_STATE) == _TRUE) || (check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE) == _TRUE) || (check_fwstate(pmlmepriv, WIFI_ADHOC_STATE) == _TRUE) ) return _FALSE; if( (padapter->securitypriv.dot11AuthAlgrthm == dot11AuthAlgrthm_8021X) && (padapter->securitypriv.binstallGrpkey == _FALSE) ) { DBG_871X("Group handshake still in progress !!!\n"); return _FALSE; } #ifdef CONFIG_IOCTL_CFG80211 if (!rtw_cfg80211_pwr_mgmt(padapter)) return _FALSE; #endif return _TRUE; }