staging: r8188eu: SetHwReg8188EU() cleanups
v2 cover staging: r8188eu: SetHwReg8188EU() cleanups
This series removes some cases from the function SetHwReg8188EU() and moves the functionality to the callers. This is part of the ongoing effort to get rid of the unwanted hal layer.
Tested on x86_64 with Inter-Tech DMG-02.
v2:
Moved some code into functions.
The series is based on todays staging-testing.
Michael Straube (8):
staging: r8188eu: remove HW_VAR_RESP_SIFS from SetHwReg8188EU()
staging: r8188eu: remove HW_VAR_MLME_DISCONNECT from SetHwReg8188EU()
staging: r8188eu: rename some macros to upper case
staging: r8188eu: remove HW_VAR_ACM_CTRL from SetHwReg8188EU()
staging: r8188eu: remove HW_VAR_RXDMA_AGG_PG_TH from SetHwReg8188EU()
staging: r8188eu: simplify if-else statement
staging: r8188eu: remove HW_VAR_TX_RPT_MAX_MACID from SetHwReg8188EU()
staging: r8188eu: remove HW_VAR_BCN_VALID from SetHwReg8188EU()
drivers/staging/r8188eu/core/rtw_mlme.c | 36 ++++++----- drivers/staging/r8188eu/core/rtw_mlme_ext.c | 31 +++++++-- drivers/staging/r8188eu/core/rtw_wlan_util.c | 38 +++++++++-- drivers/staging/r8188eu/hal/rtl8188e_cmd.c | 5 +- drivers/staging/r8188eu/hal/usb_halinit.c | 63 ------------------- drivers/staging/r8188eu/include/hal_intf.h | 5 -- .../staging/r8188eu/include/rtl8188e_spec.h | 10 +-- drivers/staging/r8188eu/include/rtw_mlme.h | 1 + .../staging/r8188eu/include/rtw_mlme_ext.h | 1 + 9 files changed, 87 insertions(+), 103 deletions(-)
Signature · 1 line
2.35.1
PATCH v2 1/8 staging: r8188eu: remove HW_VAR_RESP_SIFS from SetHwReg8188EU()
SetHwReg8188EU() is called with HW_VAR_RESP_SIFS only in one place. Remove the HW_VAR_RESP_SIFS case from SetHwReg8188EU() and call rtw_write8() directly instead. This is part of the ongoing effort to get rid of the unwanted hal layer.
---
v2: no changes
drivers/staging/r8188eu/core/rtw_wlan_util.c | 11 ++++++----- drivers/staging/r8188eu/hal/usb_halinit.c | 8 -------- drivers/staging/r8188eu/include/hal_intf.h | 1 - 3 files changed, 6 insertions(+), 14 deletions(-)
drivers/staging/r8188eu/core/rtw_wlan_util.c +6 -5
@@ -1326,7 +1326,6 @@ void update_capinfo(struct adapter *Adapter, u16 updateCap)void update_wireless_mode (struct adapter *padapter) {int ratelen, network_type =0 ; -u32 SIFS_Timer;struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;struct mlme_ext_info *pmlmeinfo = &pmlmeext->mlmext_info;struct wlan_bssid_ex *cur_network = &pmlmeinfo->network;
@@ -1353,10 +1352,12 @@ void update_wireless_mode(struct adapter *padapter) pmlmeext->cur_wireless_mode = network_type & padapter->registrypriv.wireless_mode; - SIFS_Timer =0x0a0a0808 ;/* 0x0808 -> for CCK, 0x0a0a -> for OFDM */ -/* change this value if having IOT issues. */ - -SetHwReg8188EU (padapter,HW_VAR_RESP_SIFS , (u8 *)&SIFS_Timer); +/* RESP_SIFS for CCK */ +rtw_write8 (padapter,REG_R2T_SIFS ,0x08 ); +rtw_write8 (padapter,REG_R2T_SIFS +1 ,0x08 ); +/* RESP_SIFS for OFDM */ +rtw_write8 (padapter,REG_T2T_SIFS ,0x0a ); +rtw_write8 (padapter,REG_T2T_SIFS +1 ,0x0a );if (pmlmeext->cur_wireless_mode &WIRELESS_11B )update_mgnt_tx_rate (padapter,IEEE80211_CCK_RATE_1MB );
drivers/staging/r8188eu/hal/usb_halinit.c +0 -8
@@ -1119,14 +1119,6 @@ void SetHwReg8188EU(struct adapter *Adapter, u8 variable, u8 *val) } }break ; -case HW_VAR_RESP_SIFS : -/* RESP_SIFS for CCK */ -rtw_write8 (Adapter,REG_R2T_SIFS , val[0 ]);/* SIFS_T2T_CCK (0x08) */ -rtw_write8 (Adapter,REG_R2T_SIFS +1 , val[1 ]);/* SIFS_R2T_CCK(0x08) */ -/* RESP_SIFS for OFDM */ -rtw_write8 (Adapter,REG_T2T_SIFS , val[2 ]);/* SIFS_T2T_OFDM (0x0a) */ -rtw_write8 (Adapter,REG_T2T_SIFS +1 , val[3 ]);/* SIFS_R2T_OFDM(0x0a) */ -break ;case HW_VAR_ACK_PREAMBLE : {u8 regTmp;
drivers/staging/r8188eu/include/hal_intf.h +0 -1
@@ -17,7 +17,6 @@ enum hw_variables {HW_VAR_MLME_SITESURVEY ,HW_VAR_MLME_JOIN ,HW_VAR_SLOT_TIME , -HW_VAR_RESP_SIFS ,HW_VAR_ACK_PREAMBLE ,HW_VAR_BCN_VALID , HW_VAR_DM_FLAG,
Signature · 1 line
2.35.1
PATCH v2 2/8 staging: r8188eu: remove HW_VAR_MLME_DISCONNECT from SetHwReg8188EU()
In reply to Michael StraubeSetHwReg8188EU() is called with HW_VAR_MLME_DISCONNECT only from functions in rtw_mlme_ext.c. Move the functionality into a static function in rtw_mlme_ext.c and remove the HW_VAR_MLME_DISCONNECT case from SetHwReg8188EU(). This is part of the ongoing effort to get rid of the unwanted hal layer.
---
v2: no changes
drivers/staging/r8188eu/core/rtw_mlme_ext.c | 19 ++++++++++++++++--- drivers/staging/r8188eu/hal/usb_halinit.c | 11 ----------- drivers/staging/r8188eu/include/hal_intf.h | 1 - 3 files changed, 16 insertions(+), 15 deletions(-)
drivers/staging/r8188eu/core/rtw_mlme_ext.c +16 -3
@@ -6799,13 +6799,26 @@ void mlmeext_sta_add_event_callback(struct adapter *padapter, struct sta_info *pupdate_sta_info (padapter, psta); } +static void mlme_disconnect (struct adapter *adapter) +{ +/* Set RCR to not to receive data frame when NO LINK state */ +/* reject all data frames */ +rtw_write16 (adapter,REG_RXFLTMAP2 ,0x00 ); + +/* reset TSF */ +rtw_write8 (adapter,REG_DUAL_TSF_RST , (BIT (0 ) |BIT (1 ))); + +/* disable update TSF */ +rtw_write8 (adapter,REG_BCN_CTRL ,rtw_read8 (adapter,REG_BCN_CTRL ) |BIT (4 )); +} +void mlmeext_sta_del_event_callback (struct adapter *padapter) {struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;struct mlme_ext_info *pmlmeinfo = &pmlmeext->mlmext_info;if (is_client_associated_to_ap (padapter) ||is_IBSS_empty (padapter)) { -SetHwReg8188EU (padapter,HW_VAR_MLME_DISCONNECT ,NULL ); +mlme_disconnect (padapter);SetHwReg8188EU (padapter,HW_VAR_BSSID , null_addr);/* restore to initial setting. */
@@ -7169,7 +7182,7 @@ u8 join_cmd_hdl(struct adapter *padapter, u8 *pbuf)/* set MSR to nolink -> infra. mode */ Set_MSR (padapter, _HW_STATE_STATION_); -SetHwReg8188EU (padapter,HW_VAR_MLME_DISCONNECT ,NULL ); +mlme_disconnect (padapter); }rtw_antenna_select_cmd (padapter, pparm->network.PhyInfo.Optimum_antenna, false);
@@ -7265,7 +7278,7 @@ u8 disconnect_hdl(struct adapter *padapter, unsigned char *pbuf)if (is_client_associated_to_ap (padapter))issue_deauth_ex (padapter, pnetwork->MacAddress,WLAN_REASON_DEAUTH_LEAVING , param->deauth_timeout_ms /100 ,100 ); -SetHwReg8188EU (padapter,HW_VAR_MLME_DISCONNECT ,NULL ); +mlme_disconnect (padapter);SetHwReg8188EU (padapter,HW_VAR_BSSID , null_addr);/* restore to initial setting. */
drivers/staging/r8188eu/hal/usb_halinit.c +0 -11
@@ -1024,17 +1024,6 @@ void SetHwReg8188EU(struct adapter *Adapter, u8 variable, u8 *val)ResumeTxBeacon (Adapter); }break ; -case HW_VAR_MLME_DISCONNECT : -/* Set RCR to not to receive data frame when NO LINK state */ -/* reject all data frames */ -rtw_write16 (Adapter,REG_RXFLTMAP2 ,0x00 ); - -/* reset TSF */ -rtw_write8 (Adapter,REG_DUAL_TSF_RST , (BIT (0 ) |BIT (1 ))); - -/* disable update TSF */ -rtw_write8 (Adapter,REG_BCN_CTRL ,rtw_read8 (Adapter,REG_BCN_CTRL ) |BIT (4 )); -break ;case HW_VAR_MLME_SITESURVEY :if (*((u8 *)val)) {/* under sitesurvey */ /* config RCR to receive different BSSID & not to receive data frame */
drivers/staging/r8188eu/include/hal_intf.h +0 -1
@@ -13,7 +13,6 @@ enum hw_variables {HW_VAR_BSSID ,HW_VAR_BASIC_RATE ,HW_VAR_CORRECT_TSF , -HW_VAR_MLME_DISCONNECT ,HW_VAR_MLME_SITESURVEY ,HW_VAR_MLME_JOIN , HW_VAR_SLOT_TIME,
Signature · 1 line
2.35.1
PATCH v2 3/8 staging: r8188eu: rename some macros to upper case
In reply to Michael StraubeRename some macros to upper case to avoid camel case and improve readability. While at it, remove some unused macros.
---
v2: no changes
drivers/staging/r8188eu/hal/usb_halinit.c | 12 ++++++------ drivers/staging/r8188eu/include/rtl8188e_spec.h | 10 +++------- 2 files changed, 9 insertions(+), 13 deletions(-)
drivers/staging/r8188eu/hal/usb_halinit.c +6 -6
@@ -1148,19 +1148,19 @@ void SetHwReg8188EU(struct adapter *Adapter, u8 variable, u8 *val) AcmCtrl = AcmCtrl |0x1 ;if (acm_ctrl &BIT (3 )) - AcmCtrl |= AcmHw_VoqEn; + AcmCtrl |=ACMHW_VOQEN ;else - AcmCtrl &= (~AcmHw_VoqEn); + AcmCtrl &= (~ACMHW_VOQEN );if (acm_ctrl &BIT (2 )) - AcmCtrl |= AcmHw_ViqEn; + AcmCtrl |=ACMHW_VIQEN ;else - AcmCtrl &= (~AcmHw_ViqEn); + AcmCtrl &= (~ACMHW_VIQEN );if (acm_ctrl &BIT (1 )) - AcmCtrl |= AcmHw_BeqEn; + AcmCtrl |=ACMHW_BEQEN ;else - AcmCtrl &= (~AcmHw_BeqEn); + AcmCtrl &= (~ACMHW_BEQEN );rtw_write8 (Adapter,REG_ACMHWCTRL , AcmCtrl); }
drivers/staging/r8188eu/include/rtl8188e_spec.h +3 -7
@@ -998,13 +998,9 @@ Current IOREG MAP#define STOP_BCNQ BIT(6)/* 2 ACMHWCTRL */ -#define AcmHw_HwEn BIT(0) -#define AcmHw_BeqEn BIT(1) -#define AcmHw_ViqEn BIT(2) -#define AcmHw_VoqEn BIT(3) -#define AcmHw_BeqStatus BIT(4) -#define AcmHw_ViqStatus BIT(5) -#define AcmHw_VoqStatus BIT(6) +#define ACMHW_BEQEN BIT(1) +#define ACMHW_VIQEN BIT(2) +#define ACMHW_VOQEN BIT(3)/* 0x0600h ~ 0x07FFh WMAC Configuration */ /* 2APSD_CTRL */
Signature · 1 line
2.35.1
PATCH v2 4/8 staging: r8188eu: remove HW_VAR_ACM_CTRL from SetHwReg8188EU()
In reply to Michael StraubeSetHwReg8188EU() is called with HW_VAR_ACM_CTRL only from a function in rtw_wlan_util.c. Move the functionality into a static function in rtw_wlan_util.c and remove the HW_VAR_ACM_CTRL case from SetHwReg8188EU(). This is part of the ongoing effort to get rid of the unwanted hal layer.
---
v2: Moved the code into a function.
drivers/staging/r8188eu/core/rtw_wlan_util.c | 27 +++++++++++++++++++- drivers/staging/r8188eu/hal/usb_halinit.c | 26 ------------------- drivers/staging/r8188eu/include/hal_intf.h | 1 - 3 files changed, 26 insertions(+), 28 deletions(-)
drivers/staging/r8188eu/core/rtw_wlan_util.c +26 -1
@@ -503,6 +503,31 @@ int WMM_param_handler(struct adapter *padapter, struct ndis_802_11_var_ie *pIE)return true; } +static void set_acm_ctrl (struct adapter *adapter,u8 acm_mask) +{ +u8 acmctrl =rtw_read8 (adapter,REG_ACMHWCTRL ); + +if (acm_mask >1 ) + acmctrl = acmctrl |0x1 ; + +if (acm_mask &BIT (3 )) + acmctrl |=ACMHW_VOQEN ; +else + acmctrl &= (~ACMHW_VOQEN ); + +if (acm_mask &BIT (2 )) + acmctrl |=ACMHW_VIQEN ; +else + acmctrl &= (~ACMHW_VIQEN ); + +if (acm_mask &BIT (1 )) + acmctrl |=ACMHW_BEQEN ; +else + acmctrl &= (~ACMHW_BEQEN ); + +rtw_write8 (adapter,REG_ACMHWCTRL , acmctrl); +} +void WMMOnAssocRsp (struct adapter *padapter) {u8 ACI ,ACM ,AIFS , ECWMin, ECWMax, aSifsTime;
@@ -564,7 +589,7 @@ void WMMOnAssocRsp(struct adapter *padapter) }if (padapter->registrypriv.acm_method ==1 ) -SetHwReg8188EU (padapter,HW_VAR_ACM_CTRL , (u8 *)(&acm_mask)); +set_acm_ctrl (padapter, acm_mask);else padapter->mlmepriv.acm_mask = acm_mask;
drivers/staging/r8188eu/hal/usb_halinit.c +0 -26
@@ -1139,32 +1139,6 @@ void SetHwReg8188EU(struct adapter *Adapter, u8 variable, u8 *val) haldata->AcParam_BE = ((u32 *)(val))[0 ];rtw_write32 (Adapter,REG_EDCA_BE_PARAM , ((u32 *)(val))[0 ]);break ; -case HW_VAR_ACM_CTRL : - { -u8 acm_ctrl = *((u8 *)val); -u8 AcmCtrl =rtw_read8 (Adapter,REG_ACMHWCTRL ); - -if (acm_ctrl >1 ) - AcmCtrl = AcmCtrl |0x1 ; - -if (acm_ctrl &BIT (3 )) - AcmCtrl |=ACMHW_VOQEN ; -else - AcmCtrl &= (~ACMHW_VOQEN ); - -if (acm_ctrl &BIT (2 )) - AcmCtrl |=ACMHW_VIQEN ; -else - AcmCtrl &= (~ACMHW_VIQEN ); - -if (acm_ctrl &BIT (1 )) - AcmCtrl |=ACMHW_BEQEN ; -else - AcmCtrl &= (~ACMHW_BEQEN ); - -rtw_write8 (Adapter,REG_ACMHWCTRL , AcmCtrl); - } -break ;case HW_VAR_AMPDU_MIN_SPACE : {u8 MinSpacingToSet;
drivers/staging/r8188eu/include/hal_intf.h +0 -1
@@ -23,7 +23,6 @@ enum hw_variables {HW_VAR_DM_FUNC_RESET ,HW_VAR_DM_FUNC_CLR ,HW_VAR_AC_PARAM_BE , -HW_VAR_ACM_CTRL ,HW_VAR_AMPDU_MIN_SPACE ,HW_VAR_AMPDU_FACTOR , HW_VAR_RXDMA_AGG_PG_TH,
Signature · 1 line
2.35.1
PATCH v2 5/8 staging: r8188eu: remove HW_VAR_RXDMA_AGG_PG_TH from SetHwReg8188EU()
In reply to Michael StraubeThe HW_VAR_RXDMA_AGG_PG_TH case in SetHwReg8188EU() just sets a variable conditionally and then calls rtw_write8(). Set the variable in the caller and call rtw_write8() directly. Move the functionality into a new static function to make the code cleaner. Remove the HW_VAR_RXDMA_AGG_PG_TH case from SetHwReg8188EU(). This is part of the ongoing effort to get rid of the unwanted hal layer.
---
v2: Moved the code into a function and included patch 6/9 of v1.
drivers/staging/r8188eu/core/rtw_mlme.c | 34 +++++++++++++--------- drivers/staging/r8188eu/hal/usb_halinit.c | 8 ----- drivers/staging/r8188eu/include/hal_intf.h | 1 - 3 files changed, 21 insertions(+), 22 deletions(-)
drivers/staging/r8188eu/core/rtw_mlme.c +21 -13
@@ -1787,10 +1787,29 @@ void rtw_update_registrypriv_dev_network(struct adapter *adapter) } +static void rtw_set_threshold (struct adapter *adapter) +{ +u8 threshold; +struct mlme_priv *mlmepriv = &adapter->mlmepriv; +struct ht_priv *htpriv = &mlmepriv->htpriv; + +/* TH = 1 => means that invalidate usb rx aggregation */ +/* TH = 0 => means that validate usb rx aggregation, use init value. */ +if (htpriv->ht_option) { +if (adapter->registrypriv.wifi_spec ==1 ) + threshold =1 ; +else + threshold =USB_RXAGG_PAGE_COUNT ; + +rtw_write8 (adapter,REG_RXDMA_AGG_PG_TH , threshold); + }else { +rtw_write8 (adapter,REG_RXDMA_AGG_PG_TH ,1 ); + } +} +/* the function is at passive_level */ void rtw_joinbss_reset (struct adapter *padapter) { -u8 threshold;struct mlme_priv *pmlmepriv = &padapter->mlmepriv;struct ht_priv *phtpriv = &pmlmepriv->htpriv;
@@ -1801,18 +1820,7 @@ void rtw_joinbss_reset(struct adapter *padapter) phtpriv->ampdu_enable = false;/* reset to disabled */ -/* TH = 1 => means that invalidate usb rx aggregation */ -/* TH = 0 => means that validate usb rx aggregation, use init value. */ -if (phtpriv->ht_option) { -if (padapter->registrypriv.wifi_spec ==1 ) - threshold =1 ; -else - threshold =0 ; -SetHwReg8188EU (padapter,HW_VAR_RXDMA_AGG_PG_TH , (u8 *)(&threshold)); - }else { - threshold =1 ; -SetHwReg8188EU (padapter,HW_VAR_RXDMA_AGG_PG_TH , (u8 *)(&threshold)); - } +rtw_set_threshold (padapter); }/* the function is >= passive_level */
drivers/staging/r8188eu/hal/usb_halinit.c +0 -8
@@ -1193,14 +1193,6 @@ void SetHwReg8188EU(struct adapter *Adapter, u8 variable, u8 *val) } }break ; -case HW_VAR_RXDMA_AGG_PG_TH : - { -u8 threshold = *((u8 *)val); -if (threshold ==0 ) - threshold =USB_RXAGG_PAGE_COUNT ; -rtw_write8 (Adapter,REG_RXDMA_AGG_PG_TH , threshold); - } -break ;case HW_VAR_H2C_FW_PWRMODE : {u8 psmode = (*(u8 *)val);
drivers/staging/r8188eu/include/hal_intf.h +0 -1
@@ -25,7 +25,6 @@ enum hw_variables {HW_VAR_AC_PARAM_BE ,HW_VAR_AMPDU_MIN_SPACE ,HW_VAR_AMPDU_FACTOR , -HW_VAR_RXDMA_AGG_PG_TH ,HW_VAR_H2C_FW_PWRMODE ,HW_VAR_H2C_FW_JOINBSSRPT , HW_VAR_FWLPS_RF_ON,
Signature · 1 line
2.35.1
PATCH v2 6/8 staging: r8188eu: simplify if-else statement
In reply to Michael StraubeSimplify a nested if-else statement to a single if-else statement in rtw_set_threshold(). This improves readability and allows us to remove the local variable threshold.
---
v2: Better readable simplification.
drivers/staging/r8188eu/core/rtw_mlme.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-)
drivers/staging/r8188eu/core/rtw_mlme.c +4 -10
@@ -1789,20 +1789,14 @@ void rtw_update_registrypriv_dev_network(struct adapter *adapter)static void rtw_set_threshold (struct adapter *adapter) { -u8 threshold;struct mlme_priv *mlmepriv = &adapter->mlmepriv;struct ht_priv *htpriv = &mlmepriv->htpriv; -/* TH = 1 => means that invalidate usb rx aggregation */ -/* TH = 0 => means that validate usb rx aggregation, use init value. */ -if (htpriv->ht_option) { -if (adapter->registrypriv.wifi_spec ==1 ) - threshold =1 ; -else - threshold =USB_RXAGG_PAGE_COUNT ; - -rtw_write8 (adapter,REG_RXDMA_AGG_PG_TH , threshold); +if (htpriv->ht_option && adapter->registrypriv.wifi_spec !=1 ) { +/* validate usb rx aggregation, use init value. */ +rtw_write8 (adapter,REG_RXDMA_AGG_PG_TH ,USB_RXAGG_PAGE_COUNT ); }else { +/* invalidate usb rx aggregation */ rtw_write8 (adapter,REG_RXDMA_AGG_PG_TH ,1 ); } }
Signature · 1 line
2.35.1
PATCH v2 7/8 staging: r8188eu: remove HW_VAR_TX_RPT_MAX_MACID from SetHwReg8188EU()
In reply to Michael StraubeThe HW_VAR_TX_RPT_MAX_MACID case in SetHwReg8188EU() just calls rtw_write8(). Remove HW_VAR_TX_RPT_MAX_MACID from SetHwReg8188EU() and call rtw_write8() directly. Move the call to a new function to indicate what it actually does. This is part of the ongoing effort to get rid of the unwanted hal layer.
---
v2: Moved the code into a function.
drivers/staging/r8188eu/core/rtw_mlme.c | 8 +++++++- drivers/staging/r8188eu/core/rtw_mlme_ext.c | 3 ++- drivers/staging/r8188eu/hal/usb_halinit.c | 6 ------ drivers/staging/r8188eu/include/hal_intf.h | 1 - drivers/staging/r8188eu/include/rtw_mlme.h | 1 + 5 files changed, 10 insertions(+), 9 deletions(-)
drivers/staging/r8188eu/core/rtw_mlme.c +7 -1
@@ -1096,6 +1096,11 @@ void rtw_joinbss_event_callback(struct adapter *adapter, u8 *pbuf) } +void rtw_set_max_rpt_macid (struct adapter *adapter,u8 macid) +{ +rtw_write8 (adapter,REG_TX_RPT_CTRL +1 , macid +1 ); +} +static u8 search_max_mac_id (struct adapter *padapter) {u8 mac_id;
@@ -1132,7 +1137,8 @@ void rtw_sta_media_status_rpt(struct adapter *adapter, struct sta_info *psta,return ; macid =search_max_mac_id (adapter); -SetHwReg8188EU (adapter,HW_VAR_TX_RPT_MAX_MACID , (u8 *)&macid); +rtw_set_max_rpt_macid (adapter, macid); +/* MACID|OPMODE:1 connect */ media_status_rpt = (u16)((psta->mac_id <<8 ) | mstatus);SetHwReg8188EU (adapter,HW_VAR_H2C_MEDIA_STATUS_RPT , (u8 *)&media_status_rpt);
drivers/staging/r8188eu/core/rtw_mlme_ext.c +2 -1
@@ -6749,7 +6749,8 @@ void mlmeext_joinbss_event_callback(struct adapter *padapter, int join_res)/* set per sta rate after updating HT cap. */ set_sta_rate (padapter, psta); -SetHwReg8188EU (padapter,HW_VAR_TX_RPT_MAX_MACID , (u8 *)&psta->mac_id); +rtw_set_max_rpt_macid (padapter, psta->mac_id); + media_status = (psta->mac_id <<8 ) |1 ;/* MACID|OPMODE: 1 means connect */ SetHwReg8188EU (padapter,HW_VAR_H2C_MEDIA_STATUS_RPT , (u8 *)&media_status); }
drivers/staging/r8188eu/hal/usb_halinit.c +0 -6
@@ -1274,12 +1274,6 @@ void SetHwReg8188EU(struct adapter *Adapter, u8 variable, u8 *val) } }break ; -case HW_VAR_TX_RPT_MAX_MACID : - { -u8 maxMacid = *val; -rtw_write8 (Adapter,REG_TX_RPT_CTRL +1 , maxMacid +1 ); - } -break ;case HW_VAR_H2C_MEDIA_STATUS_RPT :rtl8188e_set_FwMediaStatus_cmd (Adapter, (*(__le16 *)val));break ;
drivers/staging/r8188eu/include/hal_intf.h +0 -1
@@ -33,7 +33,6 @@ enum hw_variables {HW_VAR_ANTENNA_DIVERSITY_SELECT ,HW_VAR_FIFO_CLEARN_UP ,HW_VAR_RPT_TIMER_SETTING , -HW_VAR_TX_RPT_MAX_MACID ,HW_VAR_H2C_MEDIA_STATUS_RPT , HW_VAR_CHK_HI_QUEUE_EMPTY, };
drivers/staging/r8188eu/include/rtw_mlme.h +1 -0
@@ -594,6 +594,7 @@ void _rtw_roaming(struct adapter *padapter, struct wlan_network *tgt_network);void rtw_set_roaming (struct adapter *adapter,u8 to_roaming);u8 rtw_to_roaming (struct adapter *adapter); +void rtw_set_max_rpt_macid (struct adapter *adapter,u8 macid);void rtw_sta_media_status_rpt (struct adapter *adapter,struct sta_info *psta,u32 mstatus);
Signature · 1 line
2.35.1
PATCH v2 8/8 staging: r8188eu: remove HW_VAR_BCN_VALID from SetHwReg8188EU()
In reply to Michael StraubeThe HW_VAR_BCN_VALID case in SetHwReg8188EU() just calls rtw_write8(). Remove HW_VAR_BCN_VALID from SetHwReg8188EU() and call rtw_write8() directly. Move the call to a new function to indicate what it actually does. This is part of the ongoing effort to getrid of the unwanted hal layer.
---
v2: Moved the code into a function.
drivers/staging/r8188eu/core/rtw_mlme_ext.c | 9 ++++++++- drivers/staging/r8188eu/hal/rtl8188e_cmd.c | 5 ++--- drivers/staging/r8188eu/hal/usb_halinit.c | 4 ---- drivers/staging/r8188eu/include/rtw_mlme_ext.h | 1 + 4 files changed, 11 insertions(+), 8 deletions(-)
drivers/staging/r8188eu/core/rtw_mlme_ext.c +8 -1
@@ -5764,7 +5764,8 @@ unsigned int send_beacon(struct adapter *padapter)u32 start = jiffies; -SetHwReg8188EU (padapter,HW_VAR_BCN_VALID ,NULL ); +clear_bacon_valid_bit (padapter); + do { issue_beacon(padapter, 100); issue++;
@@ -5786,6 +5787,12 @@ unsigned int send_beacon(struct adapter *padapter) } } +void clear_bacon_valid_bit (struct adapter *adapter) +{ +/* BIT(16) of REG_TDECTRL = BIT(0) of REG_TDECTRL+2, write 1 to clear, Clear by sw */ +rtw_write8 (adapter,REG_TDECTRL +2 ,rtw_read8 (adapter,REG_TDECTRL +2 ) |BIT (0 )); +} +/**************************************************************************** Following are some utitity fuctions for WiFi MLME
drivers/staging/r8188eu/hal/rtl8188e_cmd.c +2 -3
@@ -557,8 +557,7 @@ void rtl8188e_set_FwJoinBssReport_cmd(struct adapter *adapt, u8 mstatus)rtw_write8 (adapt,REG_FWHW_TXQ_CTRL +2 , (haldata->RegFwHwTxQCtrl & (~BIT (6 )))); haldata->RegFwHwTxQCtrl &= (~BIT (6 )); -/* Clear beacon valid check bit. */ -SetHwReg8188EU (adapt,HW_VAR_BCN_VALID ,NULL ); +clear_bacon_valid_bit (adapt); DLBcnCount =0 ; poll =0 ; do {
@@ -597,7 +596,7 @@ void rtl8188e_set_FwJoinBssReport_cmd(struct adapter *adapt, u8 mstatus)/* Update RSVD page location H2C to Fw. */ if (bcn_valid) -SetHwReg8188EU (adapt,HW_VAR_BCN_VALID ,NULL ); +clear_bacon_valid_bit (adapt);/* Do not enable HW DMA BCN or it will cause Pcie interface hang by timing issue. 2011.11.24. by tynli. */ /* Clear CR[8] or beacon packet will not be send to TxBuf anymore. */
drivers/staging/r8188eu/hal/usb_halinit.c +0 -4
@@ -1277,10 +1277,6 @@ void SetHwReg8188EU(struct adapter *Adapter, u8 variable, u8 *val)case HW_VAR_H2C_MEDIA_STATUS_RPT :rtl8188e_set_FwMediaStatus_cmd (Adapter, (*(__le16 *)val));break ; -case HW_VAR_BCN_VALID : -/* BCN_VALID, BIT(16) of REG_TDECTRL = BIT(0) of REG_TDECTRL+2, write 1 to clear, Clear by sw */ -rtw_write8 (Adapter,REG_TDECTRL +2 ,rtw_read8 (Adapter,REG_TDECTRL +2 ) |BIT (0 )); -break ;default :break ; }
drivers/staging/r8188eu/include/rtw_mlme_ext.h +1 -0
@@ -538,6 +538,7 @@ void issue_action_BA(struct adapter *padapter, unsigned char *raddr, unsigned char action, unsigned short status);unsigned int send_delba (struct adapter *padapter,u8 initiator,u8 *addr);unsigned int send_beacon (struct adapter *padapter); +void clear_bacon_valid_bit (struct adapter *adapter);void start_clnt_assoc (struct adapter *padapter);void start_clnt_auth (struct adapter *padapter);
Signature · 1 line
2.35.1
Greg KH
maintainerRe: [PATCH v2 5/8] staging: r8188eu: remove HW_VAR_RXDMA_AGG_PG_TH from SetHwReg8188EU()
In reply to Michael StraubeQuoted 33 lines · Michael Straube
The
HW_VAR_RXDMA_AGG_PG_THcase inSetHwReg8188EU()just sets a variable conditionally and then callsrtw_write8(). Set the variable in the caller and callrtw_write8()directly. Move the functionality into a new static function to make the code cleaner. Remove theHW_VAR_RXDMA_AGG_PG_THcase fromSetHwReg8188EU(). This is part of the ongoing effort to get rid of the unwanted hal layer.Signed-off-by Michael Straube <[email protected]>---
v2: Moved the code into a function and included patch 6/9 of v1.drivers/staging/r8188eu/core/rtw_mlme.c | 34 +++++++++++++--------- drivers/staging/r8188eu/hal/usb_halinit.c | 8 ----- drivers/staging/r8188eu/include/hal_intf.h | 1 - 3 files changed, 21 insertions(+), 22 deletions(-)drivers/staging/r8188eu/core/rtw_mlme.c +9
-0@@ -1787,10 +1787,29 @@ void rtw_update_registrypriv_dev_network(struct adapter *adapter) } +static void rtw_set_threshold (struct adapter *adapter) +{ +u8 threshold; +struct mlme_priv *mlmepriv = &adapter->mlmepriv; +struct ht_priv *htpriv = &mlmepriv->htpriv; + +/* TH = 1 => means that invalidate usb rx aggregation */ +/* TH = 0 => means that validate usb rx aggregation, use init value. */ +if (htpriv->ht_option) {
drivers/staging/r8188eu/core/rtw_mlme.c void rtw_update_registrypriv_dev_network(struct adapter *adapter) · line 1808
Quoted 10 lines
drivers/staging/r8188eu/core/rtw_mlme.c +10
-0+if (adapter->registrypriv.wifi_spec ==1 ) + threshold =1 ; +else + threshold =USB_RXAGG_PAGE_COUNT ; + +rtw_write8 (adapter,REG_RXDMA_AGG_PG_TH , threshold); + }else { +rtw_write8 (adapter,REG_RXDMA_AGG_PG_TH ,1 ); + } +}
For future cleanups, this function can be made a lot smaller :)
thanks,
greg k-h
Greg KH
maintainerRe: [PATCH v2 6/8] staging: r8188eu: simplify if-else statement
In reply to Michael StraubeQuoted 42 lines · Michael Straube
Simplify a nested if-else statement to a single if-else statement in
rtw_set_threshold(). This improves readability and allows us to remove the local variable threshold.Signed-off-by Michael Straube <[email protected]>---
v2: Better readable simplification.drivers/staging/r8188eu/core/rtw_mlme.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-)drivers/staging/r8188eu/core/rtw_mlme.c +4
-10@@ -1789,20 +1789,14 @@ void rtw_update_registrypriv_dev_network(struct adapter *adapter)static void rtw_set_threshold (struct adapter *adapter) { -u8 threshold;struct mlme_priv *mlmepriv = &adapter->mlmepriv;struct ht_priv *htpriv = &mlmepriv->htpriv; -/* TH = 1 => means that invalidate usb rx aggregation */ -/* TH = 0 => means that validate usb rx aggregation, use init value. */ -if (htpriv->ht_option) { -if (adapter->registrypriv.wifi_spec ==1 ) - threshold =1 ; -else - threshold =USB_RXAGG_PAGE_COUNT ; - -rtw_write8 (adapter,REG_RXDMA_AGG_PG_TH , threshold); +if (htpriv->ht_option && adapter->registrypriv.wifi_spec !=1 ) { +/* validate usb rx aggregation, use init value. */ +rtw_write8 (adapter,REG_RXDMA_AGG_PG_TH ,USB_RXAGG_PAGE_COUNT ); }else { +/* invalidate usb rx aggregation */ rtw_write8 (adapter,REG_RXDMA_AGG_PG_TH ,1 ); } }Signature · 1 line
2.35.1
Oh nevermind, you already cleaned it up, sorry for the noise :)
greg k-h