staging: r8188eu: refactor dm func set and clear
authorMartin Kaiser <martin@kaiser.cx>
Mon, 21 Mar 2022 20:30:31 +0000 (21:30 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 4 Apr 2022 05:33:46 +0000 (07:33 +0200)
Refactor the code to set and clear "dm functions".

The only remaining callers of Switch_DM_Func use
Switch_DM_Func(padapter, DYNAMIC_ALL_FUNC_ENABLE, true) or
Switch_DM_Func(padapter, DYNAMIC_FUNC_DISABLE, false).

Remove Switch_DM_Func and call SetHwReg8188EU directly.

For HW_VAR_DM_FUNC_SET, the parameter is always DYNAMIC_ALL_FUNC_ENABLE.
This operation resets podmpriv->SupportAbility to the initial value.
Rename HW_VAR_DM_FUNC_SET to HW_VAR_DM_FUNC_RESET and drop the unused
else branch.

For HW_VAR_DM_FUNC_CLR, the parameter is always DYNAMIC_FUNC_DISABLE
(0x00). We can set podmpriv->SupportAbility to 0 directly.

Signed-off-by: Martin Kaiser <martin@kaiser.cx>
Link: https://lore.kernel.org/r/20220321203031.143486-7-martin@kaiser.cx
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/r8188eu/core/rtw_mlme_ext.c
drivers/staging/r8188eu/core/rtw_wlan_util.c
drivers/staging/r8188eu/hal/usb_halinit.c
drivers/staging/r8188eu/include/hal_intf.h
drivers/staging/r8188eu/include/rtw_mlme_ext.h

index 10d5f12..96e8d34 100644 (file)
@@ -6721,7 +6721,7 @@ void mlmeext_joinbss_event_callback(struct adapter *padapter, int join_res)
        }
 
        /* turn on dynamic functions */
-       Switch_DM_Func(padapter, DYNAMIC_ALL_FUNC_ENABLE, true);
+       SetHwReg8188EU(padapter, HW_VAR_DM_FUNC_RESET, NULL);
 
        /*  update IOT-releated issue */
        update_IOT_info(padapter);
@@ -7122,7 +7122,7 @@ u8 createbss_hdl(struct adapter *padapter, u8 *pbuf)
 
                /* disable dynamic functions, such as high power, DIG */
                Save_DM_Func_Flag(padapter);
-               Switch_DM_Func(padapter, DYNAMIC_FUNC_DISABLE, false);
+               SetHwReg8188EU(padapter, HW_VAR_DM_FUNC_CLR, NULL);
 
                /* cancel link timer */
                _cancel_timer_ex(&pmlmeext->link_timer);
@@ -7391,7 +7391,7 @@ u8 sitesurvey_cmd_hdl(struct adapter *padapter, u8 *pbuf)
        if ((pmlmeext->sitesurvey_res.state == SCAN_START) || (pmlmeext->sitesurvey_res.state == SCAN_TXNULL)) {
                /* disable dynamic functions, such as high power, DIG */
                Save_DM_Func_Flag(padapter);
-               Switch_DM_Func(padapter, DYNAMIC_FUNC_DISABLE, false);
+               SetHwReg8188EU(padapter, HW_VAR_DM_FUNC_CLR, NULL);
 
                /* config the initial gain under scanning, need to write the BB registers */
                if (rtw_p2p_chk_state(pwdinfo, P2P_STATE_NONE))
index 2d495a7..5a1eede 100644 (file)
@@ -276,14 +276,6 @@ void Restore_DM_Func_Flag(struct adapter *padapter)
        SetHwReg8188EU(padapter, HW_VAR_DM_FUNC_OP, (u8 *)(&saveflag));
 }
 
-void Switch_DM_Func(struct adapter *padapter, u32 mode, u8 enable)
-{
-       if (enable)
-               SetHwReg8188EU(padapter, HW_VAR_DM_FUNC_SET, (u8 *)(&mode));
-       else
-               SetHwReg8188EU(padapter, HW_VAR_DM_FUNC_CLR, (u8 *)(&mode));
-}
-
 void Set_MSR(struct adapter *padapter, u8 type)
 {
        u8 val8;
index 11dc883..789ad11 100644 (file)
@@ -1148,15 +1148,11 @@ void SetHwReg8188EU(struct adapter *Adapter, u8 variable, u8 *val)
                else
                        podmpriv->SupportAbility = podmpriv->BK_SupportAbility;
                break;
-       case HW_VAR_DM_FUNC_SET:
-               if (*((u32 *)val) == DYNAMIC_ALL_FUNC_ENABLE) {
-                       podmpriv->SupportAbility =      pdmpriv->InitODMFlag;
-               } else {
-                       podmpriv->SupportAbility |= *((u32 *)val);
-               }
+       case HW_VAR_DM_FUNC_RESET:
+               podmpriv->SupportAbility = pdmpriv->InitODMFlag;
                break;
        case HW_VAR_DM_FUNC_CLR:
-               podmpriv->SupportAbility &= *((u32 *)val);
+               podmpriv->SupportAbility = 0;
                break;
        case HW_VAR_AC_PARAM_BE:
                haldata->AcParam_BE = ((u32 *)(val))[0];
index 3cededa..6f661c4 100644 (file)
@@ -22,7 +22,7 @@ enum hw_variables {
        HW_VAR_BCN_VALID,
        HW_VAR_DM_FLAG,
        HW_VAR_DM_FUNC_OP,
-       HW_VAR_DM_FUNC_SET,
+       HW_VAR_DM_FUNC_RESET,
        HW_VAR_DM_FUNC_CLR,
        HW_VAR_AC_PARAM_BE,
        HW_VAR_ACM_CTRL,
index 9092e77..3dde2bd 100644 (file)
@@ -410,7 +410,6 @@ void UpdateBrateTblForSoftAP(u8 *bssrateset, u32 bssratelen);
 
 void Save_DM_Func_Flag(struct adapter *padapter);
 void Restore_DM_Func_Flag(struct adapter *padapter);
-void Switch_DM_Func(struct adapter *padapter, u32 mode, u8 enable);
 
 void Set_MSR(struct adapter *padapter, u8 type);