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

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.com


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 7c05493b
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1612,7 +1612,7 @@ void p2p_ps_wk_hdl(struct adapter *padapter, u8 p2p_ps_state)
		if (padapter->pwrctrlpriv.bFwCurrentInPSMode) {
			if (pwrpriv->smart_ps == 0) {
				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;
@@ -1623,7 +1623,7 @@ void p2p_ps_wk_hdl(struct adapter *padapter, u8 p2p_ps_state)
			if (pwdinfo->ctwindow > 0) {
				if (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);
+15 −4
Original line number Diff line number Diff line
@@ -176,6 +176,19 @@ static bool PS_RDY_CHECK(struct adapter *padapter)
	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)
{
	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
			return;
	}

	/* if (pwrpriv->pwr_mode == PS_MODE_ACTIVE) */
	if (ps_mode == PS_MODE_ACTIVE) {
		if (pwdinfo->opp_ps == 0) {
			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;
		}
	} else {
@@ -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->smart_ps = smart_ps;
			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 */
			if (pwdinfo->opp_ps == 1)
				p2p_ps_wk_cmd(padapter, P2P_PS_ENABLE, 0);
		}
	}

}

static bool lps_rf_on(struct adapter *adapter)
+0 −11
Original line number Diff line number Diff line
@@ -1105,17 +1105,6 @@ void SetHwReg8188EU(struct adapter *Adapter, u8 variable, u8 *val)
			}
		}
		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:
		rtl8188e_set_FwMediaStatus_cmd(Adapter, (*(__le16 *)val));
		break;
+0 −1
Original line number Diff line number Diff line
@@ -20,7 +20,6 @@ enum hw_variables {
	HW_VAR_DM_FUNC_CLR,
	HW_VAR_AC_PARAM_BE,
	HW_VAR_AMPDU_FACTOR,
	HW_VAR_H2C_FW_PWRMODE,
	HW_VAR_H2C_MEDIA_STATUS_RPT,
};

+1 −0
Original line number Diff line number Diff line
@@ -95,6 +95,7 @@ struct pwrctrl_priv {

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,
		     u8 bcn_ant_mode);
void LeaveAllPowerSaveMode(struct adapter *adapter);