staging: r8188eu: remove HW_VAR_H2C_FW_PWRMODE
authorMichael Straube <straube.linux@gmail.com>
Sat, 9 Apr 2022 12:06:27 +0000 (14:06 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 12 Apr 2022 13:49:05 +0000 (15:49 +0200)
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: Michael Straube <straube.linux@gmail.com>
Link: https://lore.kernel.org/r/20220409120627.10633-5-straube.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/r8188eu/core/rtw_p2p.c
drivers/staging/r8188eu/core/rtw_pwrctrl.c
drivers/staging/r8188eu/hal/usb_halinit.c
drivers/staging/r8188eu/include/hal_intf.h
drivers/staging/r8188eu/include/rtw_pwrctrl.h

index 80305d1..dcf828a 100644 (file)
@@ -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);
index efdc7de..f13bd5c 100644 (file)
@@ -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)
index 62ada17..b62ebd0 100644 (file)
@@ -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;
index bbbdcfa..26dd395 100644 (file)
@@ -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,
 };
 
index 1d7dba8..affaf4c 100644 (file)
@@ -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);