mirror of
https://github.com/Mange/rtl8192eu-linux-driver
synced 2025-12-10 08:13:52 +00:00
Updated to v4.3.8_12406.20140929
This commit is contained in:
@@ -20,6 +20,7 @@
|
||||
#define _RTW_PWRCTRL_C_
|
||||
|
||||
#include <drv_types.h>
|
||||
#include <hal_data.h>
|
||||
|
||||
|
||||
int rtw_fw_ps_state(PADAPTER padapter)
|
||||
@@ -159,6 +160,9 @@ int ips_leave(_adapter * padapter)
|
||||
#endif //DBG_CHECK_FW_PS_STATE
|
||||
_exit_pwrlock(&pwrpriv->lock);
|
||||
|
||||
if (_SUCCESS == ret)
|
||||
ODM_DMReset(&GET_HAL_DATA(padapter)->odmpriv);
|
||||
|
||||
#ifdef CONFIG_BT_COEXIST
|
||||
if (_SUCCESS == ret)
|
||||
rtw_btcoex_IpsNotify(padapter, IPS_NONE);
|
||||
@@ -604,7 +608,7 @@ _func_enter_;
|
||||
|
||||
// polling cpwm
|
||||
do {
|
||||
rtw_mdelay_os(1);
|
||||
rtw_msleep_os(1);
|
||||
poll_cnt++;
|
||||
rtw_hal_get_hwreg(padapter, HW_VAR_CPWM, &cpwm_now);
|
||||
if ((cpwm_orig ^ cpwm_now) & 0x80)
|
||||
@@ -1116,7 +1120,7 @@ _func_enter_;
|
||||
)
|
||||
{ //connect
|
||||
|
||||
if(pwrpriv->power_mgnt == PS_MODE_ACTIVE) {
|
||||
if(pwrpriv->pwr_mode == PS_MODE_ACTIVE) {
|
||||
DBG_871X("%s: Driver Already Leave LPS\n",__FUNCTION__);
|
||||
return;
|
||||
}
|
||||
@@ -1201,7 +1205,7 @@ _func_enter_;
|
||||
else
|
||||
#endif
|
||||
{
|
||||
#if defined(CONFIG_FWLPS_IN_IPS) || defined(CONFIG_SWLPS_IN_IPS) || (defined(CONFIG_PLATFORM_SPRD) && defined(CONFIG_RTL8188E))
|
||||
#if defined(CONFIG_FWLPS_IN_IPS) || defined(CONFIG_SWLPS_IN_IPS) || defined(CONFIG_RTL8188E)
|
||||
#ifdef CONFIG_IPS
|
||||
if(_FALSE == ips_leave(pri_padapter))
|
||||
{
|
||||
@@ -1209,8 +1213,8 @@ _func_enter_;
|
||||
}
|
||||
#endif
|
||||
#endif //CONFIG_SWLPS_IN_IPS || (CONFIG_PLATFORM_SPRD && CONFIG_RTL8188E)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
_func_exit_;
|
||||
@@ -2146,6 +2150,9 @@ _func_enter_;
|
||||
|
||||
rtw_init_timer(&pwrctrlpriv->pwr_state_check_timer, padapter, pwr_state_check_handler);
|
||||
|
||||
pwrctrlpriv->wowlan_mode = _FALSE;
|
||||
pwrctrlpriv->wowlan_ap_mode = _FALSE;
|
||||
|
||||
#ifdef CONFIG_RESUME_IN_WORKQUEUE
|
||||
_init_workitem(&pwrctrlpriv->resume_work, resume_workitem_callback, NULL);
|
||||
pwrctrlpriv->rtw_workqueue = create_singlethread_workqueue("rtw_workqueue");
|
||||
@@ -2157,9 +2164,11 @@ _func_enter_;
|
||||
#endif //CONFIG_HAS_EARLYSUSPEND || CONFIG_ANDROID_POWER
|
||||
|
||||
#ifdef CONFIG_PNO_SUPPORT
|
||||
pwrctrlpriv->pno_inited = _FALSE;
|
||||
pwrctrlpriv->pnlo_info = NULL;
|
||||
pwrctrlpriv->pscan_info = NULL;
|
||||
pwrctrlpriv->pno_ssid_list = NULL;
|
||||
pwrctrlpriv->pno_in_resume = _TRUE;
|
||||
#endif
|
||||
|
||||
_func_exit_;
|
||||
@@ -2221,12 +2230,16 @@ static void resume_workitem_callback(struct work_struct *work)
|
||||
DBG_871X("%s\n",__FUNCTION__);
|
||||
|
||||
rtw_resume_process(adapter);
|
||||
|
||||
rtw_resume_unlock_suspend();
|
||||
}
|
||||
|
||||
void rtw_resume_in_workqueue(struct pwrctrl_priv *pwrpriv)
|
||||
{
|
||||
// accquire system's suspend lock preventing from falliing asleep while resume in workqueue
|
||||
rtw_lock_suspend();
|
||||
//rtw_lock_suspend();
|
||||
|
||||
rtw_resume_lock_suspend();
|
||||
|
||||
#if 1
|
||||
queue_work(pwrpriv->rtw_workqueue, &pwrpriv->resume_work);
|
||||
|
||||
Reference in New Issue
Block a user