Commit 327ec68b authored by Michael Straube's avatar Michael Straube Committed by Greg Kroah-Hartman

staging: r8188eu: remove HW_VAR_H2C_FW_PWRMODE

Remove the HW_VAR_H2C_FW_PWRMODE case from SetHwReg8188EU() and move
its functionality to a new function in rtw_pwrctrl.c. This is part of
the ongoing effort to get rid of the unwanted hal layer.
Signed-off-by: default avatarMichael Straube <straube.linux@gmail.com>
Link: https://lore.kernel.org/r/20220409120627.10633-5-straube.linux@gmail.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 7c05493b
...@@ -1612,7 +1612,7 @@ void p2p_ps_wk_hdl(struct adapter *padapter, u8 p2p_ps_state) ...@@ -1612,7 +1612,7 @@ void p2p_ps_wk_hdl(struct adapter *padapter, u8 p2p_ps_state)
if (padapter->pwrctrlpriv.bFwCurrentInPSMode) { if (padapter->pwrctrlpriv.bFwCurrentInPSMode) {
if (pwrpriv->smart_ps == 0) { if (pwrpriv->smart_ps == 0) {
pwrpriv->smart_ps = 2; pwrpriv->smart_ps = 2;
SetHwReg8188EU(padapter, HW_VAR_H2C_FW_PWRMODE, (u8 *)(&padapter->pwrctrlpriv.pwr_mode)); rtw_set_firmware_ps_mode(padapter, pwrpriv->pwr_mode);
} }
} }
break; break;
...@@ -1623,7 +1623,7 @@ void p2p_ps_wk_hdl(struct adapter *padapter, u8 p2p_ps_state) ...@@ -1623,7 +1623,7 @@ void p2p_ps_wk_hdl(struct adapter *padapter, u8 p2p_ps_state)
if (pwdinfo->ctwindow > 0) { if (pwdinfo->ctwindow > 0) {
if (pwrpriv->smart_ps != 0) { if (pwrpriv->smart_ps != 0) {
pwrpriv->smart_ps = 0; pwrpriv->smart_ps = 0;
SetHwReg8188EU(padapter, HW_VAR_H2C_FW_PWRMODE, (u8 *)(&padapter->pwrctrlpriv.pwr_mode)); rtw_set_firmware_ps_mode(padapter, pwrpriv->pwr_mode);
} }
} }
rtl8188e_set_p2p_ps_offload_cmd(padapter, p2p_ps_state); rtl8188e_set_p2p_ps_offload_cmd(padapter, p2p_ps_state);
......
...@@ -176,6 +176,19 @@ static bool PS_RDY_CHECK(struct adapter *padapter) ...@@ -176,6 +176,19 @@ static bool PS_RDY_CHECK(struct adapter *padapter)
return true; return true;
} }
void rtw_set_firmware_ps_mode(struct adapter *adapter, u8 mode)
{
struct hal_data_8188e *haldata = &adapter->haldata;
struct odm_dm_struct *odmpriv = &haldata->odmpriv;
/* Force leave RF low power mode for 1T1R to prevent
* conflicting setting in firmware power saving sequence.
*/
if (mode != PS_MODE_ACTIVE)
ODM_RF_Saving(odmpriv, true);
rtl8188e_set_FwPwrMode_cmd(adapter, mode);
}
void rtw_set_ps_mode(struct adapter *padapter, u8 ps_mode, u8 smart_ps, u8 bcn_ant_mode) void rtw_set_ps_mode(struct adapter *padapter, u8 ps_mode, u8 smart_ps, u8 bcn_ant_mode)
{ {
struct pwrctrl_priv *pwrpriv = &padapter->pwrctrlpriv; struct pwrctrl_priv *pwrpriv = &padapter->pwrctrlpriv;
...@@ -193,11 +206,10 @@ void rtw_set_ps_mode(struct adapter *padapter, u8 ps_mode, u8 smart_ps, u8 bcn_a ...@@ -193,11 +206,10 @@ void rtw_set_ps_mode(struct adapter *padapter, u8 ps_mode, u8 smart_ps, u8 bcn_a
return; return;
} }
/* if (pwrpriv->pwr_mode == PS_MODE_ACTIVE) */
if (ps_mode == PS_MODE_ACTIVE) { if (ps_mode == PS_MODE_ACTIVE) {
if (pwdinfo->opp_ps == 0) { if (pwdinfo->opp_ps == 0) {
pwrpriv->pwr_mode = ps_mode; pwrpriv->pwr_mode = ps_mode;
SetHwReg8188EU(padapter, HW_VAR_H2C_FW_PWRMODE, (u8 *)(&ps_mode)); rtw_set_firmware_ps_mode(padapter, ps_mode);
pwrpriv->bFwCurrentInPSMode = false; pwrpriv->bFwCurrentInPSMode = false;
} }
} else { } else {
...@@ -206,14 +218,13 @@ void rtw_set_ps_mode(struct adapter *padapter, u8 ps_mode, u8 smart_ps, u8 bcn_a ...@@ -206,14 +218,13 @@ void rtw_set_ps_mode(struct adapter *padapter, u8 ps_mode, u8 smart_ps, u8 bcn_a
pwrpriv->pwr_mode = ps_mode; pwrpriv->pwr_mode = ps_mode;
pwrpriv->smart_ps = smart_ps; pwrpriv->smart_ps = smart_ps;
pwrpriv->bcn_ant_mode = bcn_ant_mode; pwrpriv->bcn_ant_mode = bcn_ant_mode;
SetHwReg8188EU(padapter, HW_VAR_H2C_FW_PWRMODE, (u8 *)(&ps_mode)); rtw_set_firmware_ps_mode(padapter, ps_mode);
/* Set CTWindow after LPS */ /* Set CTWindow after LPS */
if (pwdinfo->opp_ps == 1) if (pwdinfo->opp_ps == 1)
p2p_ps_wk_cmd(padapter, P2P_PS_ENABLE, 0); p2p_ps_wk_cmd(padapter, P2P_PS_ENABLE, 0);
} }
} }
} }
static bool lps_rf_on(struct adapter *adapter) static bool lps_rf_on(struct adapter *adapter)
......
...@@ -1105,17 +1105,6 @@ void SetHwReg8188EU(struct adapter *Adapter, u8 variable, u8 *val) ...@@ -1105,17 +1105,6 @@ void SetHwReg8188EU(struct adapter *Adapter, u8 variable, u8 *val)
} }
} }
break; break;
case HW_VAR_H2C_FW_PWRMODE:
{
u8 psmode = (*(u8 *)val);
/* Forece leave RF low power mode for 1T1R to prevent conficting setting in Fw power */
/* saving sequence. 2010.06.07. Added by tynli. Suggested by SD3 yschang. */
if (psmode != PS_MODE_ACTIVE)
ODM_RF_Saving(podmpriv, true);
rtl8188e_set_FwPwrMode_cmd(Adapter, psmode);
}
break;
case HW_VAR_H2C_MEDIA_STATUS_RPT: case HW_VAR_H2C_MEDIA_STATUS_RPT:
rtl8188e_set_FwMediaStatus_cmd(Adapter, (*(__le16 *)val)); rtl8188e_set_FwMediaStatus_cmd(Adapter, (*(__le16 *)val));
break; break;
......
...@@ -20,7 +20,6 @@ enum hw_variables { ...@@ -20,7 +20,6 @@ enum hw_variables {
HW_VAR_DM_FUNC_CLR, HW_VAR_DM_FUNC_CLR,
HW_VAR_AC_PARAM_BE, HW_VAR_AC_PARAM_BE,
HW_VAR_AMPDU_FACTOR, HW_VAR_AMPDU_FACTOR,
HW_VAR_H2C_FW_PWRMODE,
HW_VAR_H2C_MEDIA_STATUS_RPT, HW_VAR_H2C_MEDIA_STATUS_RPT,
}; };
......
...@@ -95,6 +95,7 @@ struct pwrctrl_priv { ...@@ -95,6 +95,7 @@ struct pwrctrl_priv {
void rtw_init_pwrctrl_priv(struct adapter *adapter); void rtw_init_pwrctrl_priv(struct adapter *adapter);
void rtw_set_firmware_ps_mode(struct adapter *adapter, u8 mode);
void rtw_set_ps_mode(struct adapter *adapter, u8 ps_mode, u8 smart_ps, void rtw_set_ps_mode(struct adapter *adapter, u8 ps_mode, u8 smart_ps,
u8 bcn_ant_mode); u8 bcn_ant_mode);
void LeaveAllPowerSaveMode(struct adapter *adapter); void LeaveAllPowerSaveMode(struct adapter *adapter);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment