staging: r8188eu: remove HW_VAR_MLME_SITESURVEY from SetHwReg8188EU()
PATCH 1/1 staging: r8188eu: remove HW_VAR_MLME_SITESURVEY from SetHwReg8188EU()
Remove the HW_VAR_MLME_SITESURVEY case from SetHwReg8188EU() and move the functionality to two new functions in rtw_mlme_ext.c. This is part of the ongoing effort to get rid of SetHwReg8188EU().
Signed-off-by Michael Straube <[email protected]>
--- drivers/staging/r8188eu/core/rtw_mlme_ext.c | 70 +++++++++++++++++-- drivers/staging/r8188eu/core/rtw_p2p.c | 9 +-- drivers/staging/r8188eu/hal/usb_halinit.c | 53 -------------- drivers/staging/r8188eu/include/hal_intf.h | 1 - .../staging/r8188eu/include/rtw_mlme_ext.h | 3 + 5 files changed, 70 insertions(+), 66 deletions(-)
drivers/staging/r8188eu/core/rtw_mlme_ext.c +64 -6
@@ -5695,9 +5695,70 @@ static void rtw_set_initial_gain(struct adapter *adapter, u8 gain) } } +void rtw_mlme_under_site_survey (struct adapter *adapter) +{ +/* config RCR to receive different BSSID & not to receive data frame */ + +int res; +u8 reg; +u32 v; + + res =rtw_read32 (adapter,REG_RCR , &v); +if (res) +return ; + + v &= ~(RCR_CBSSID_BCN ); +rtw_write32 (adapter,REG_RCR , v); +/* reject all data frame */ +rtw_write16 (adapter,REG_RXFLTMAP2 ,0x00 ); + +/* disable update TSF */ + res =rtw_read8 (adapter,REG_BCN_CTRL , ®); +if (res) +return ; + +rtw_write8 (adapter,REG_BCN_CTRL , reg |BIT (4 )); +} + +void rtw_mlme_site_survey_done (struct adapter *adapter) +{ +struct mlme_ext_priv *pmlmeext = &adapter->mlmeextpriv; +struct mlme_ext_info *pmlmeinfo = &pmlmeext->mlmext_info; +u32 reg32; +int res; +u8 reg; + +if ((is_client_associated_to_ap (adapter)) || + ((pmlmeinfo->state &0x03 ) ==WIFI_FW_ADHOC_STATE )) { +/* enable to rx data frame */ +rtw_write16 (adapter,REG_RXFLTMAP2 ,0xFFFF ); + +/* enable update TSF */ + res =rtw_read8 (adapter,REG_BCN_CTRL , ®); +if (res) +return ; + +rtw_write8 (adapter,REG_BCN_CTRL , reg & (~BIT (4 ))); + }else if ((pmlmeinfo->state &0x03 ) ==WIFI_FW_AP_STATE ) { +rtw_write16 (adapter,REG_RXFLTMAP2 ,0xFFFF ); +/* enable update TSF */ + res =rtw_read8 (adapter,REG_BCN_CTRL , ®); +if (res) +return ; + +rtw_write8 (adapter,REG_BCN_CTRL , reg & (~BIT (4 ))); + } + + res =rtw_read32 (adapter,REG_RCR , ®32); +if (res) +return ; + +rtw_write32 (adapter,REG_RCR , reg32 |RCR_CBSSID_BCN ); +} +void site_survey (struct adapter *padapter) { -unsigned char survey_channel =0 , val8; +unsigned char survey_channel =0 ;enum rt_scan_type ScanType =SCAN_PASSIVE ;struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;struct mlme_ext_info *pmlmeinfo = &pmlmeext->mlmext_info;
@@ -5821,8 +5882,7 @@ void site_survey(struct adapter *padapter)if (is_client_associated_to_ap (padapter))issue_nulldata (padapter,NULL ,0 ,3 ,500 ); - val8 =0 ;/* survey done */ -SetHwReg8188EU (padapter,HW_VAR_MLME_SITESURVEY , (u8 *)(&val8)); +rtw_mlme_site_survey_done (padapter);report_surveydone_event (padapter);
@@ -7343,7 +7403,6 @@ u8 sitesurvey_cmd_hdl(struct adapter *padapter, u8 *pbuf)struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;struct sitesurvey_parm *pparm = (struct sitesurvey_parm *)pbuf;u8 bdelayscan = false; -u8 val8;u32 i;struct wifidirect_info *pwdinfo = &padapter->wdinfo;
@@ -7400,8 +7459,7 @@ u8 sitesurvey_cmd_hdl(struct adapter *padapter, u8 *pbuf)/* set MSR to no link state */ Set_MSR (padapter, _HW_STATE_NOLINK_); - val8 =1 ;/* under site survey */ -SetHwReg8188EU (padapter,HW_VAR_MLME_SITESURVEY , (u8 *)(&val8)); +rtw_mlme_under_site_survey (padapter); pmlmeext->sitesurvey_res.state =SCAN_PROCESS ; }
drivers/staging/r8188eu/core/rtw_p2p.c +3 -6
@@ -1450,10 +1450,9 @@ static void restore_p2p_state_handler(struct adapter *padapter)static void pre_tx_invitereq_handler (struct adapter *padapter) {struct wifidirect_info *pwdinfo = &padapter->wdinfo; -u8 val8 =1 ;set_channel_bwmode (padapter, pwdinfo->invitereq_info.peer_ch,HAL_PRIME_CHNL_OFFSET_DONT_CARE ,HT_CHANNEL_WIDTH_20 ); -SetHwReg8188EU (padapter,HW_VAR_MLME_SITESURVEY , (u8 *)(&val8)); +rtw_mlme_under_site_survey (padapter);issue_probereq_p2p (padapter,NULL );_set_timer (&pwdinfo->pre_tx_scan_timer,P2P_TX_PRESCAN_TIMEOUT );
@@ -1462,10 +1461,9 @@ static void pre_tx_invitereq_handler(struct adapter *padapter)static void pre_tx_provdisc_handler (struct adapter *padapter) {struct wifidirect_info *pwdinfo = &padapter->wdinfo; -u8 val8 =1 ;set_channel_bwmode (padapter, pwdinfo->tx_prov_disc_info.peer_channel_num[0 ],HAL_PRIME_CHNL_OFFSET_DONT_CARE ,HT_CHANNEL_WIDTH_20 ); -SetHwReg8188EU (padapter,HW_VAR_MLME_SITESURVEY , (u8 *)(&val8)); +rtw_mlme_under_site_survey (padapter);issue_probereq_p2p (padapter,NULL );_set_timer (&pwdinfo->pre_tx_scan_timer,P2P_TX_PRESCAN_TIMEOUT );
@@ -1474,10 +1472,9 @@ static void pre_tx_provdisc_handler(struct adapter *padapter)static void pre_tx_negoreq_handler (struct adapter *padapter) {struct wifidirect_info *pwdinfo = &padapter->wdinfo; -u8 val8 =1 ;set_channel_bwmode (padapter, pwdinfo->nego_req_info.peer_channel_num[0 ],HAL_PRIME_CHNL_OFFSET_DONT_CARE ,HT_CHANNEL_WIDTH_20 ); -SetHwReg8188EU (padapter,HW_VAR_MLME_SITESURVEY , (u8 *)(&val8)); +rtw_mlme_under_site_survey (padapter);issue_probereq_p2p (padapter,NULL );_set_timer (&pwdinfo->pre_tx_scan_timer,P2P_TX_PRESCAN_TIMEOUT );
drivers/staging/r8188eu/hal/usb_halinit.c +0 -53
59 lines not on this page · raw message
drivers/staging/r8188eu/include/hal_intf.h +0 -1
@@ -11,7 +11,6 @@enum hw_variables {HW_VAR_SET_OPMODE ,HW_VAR_CORRECT_TSF , -HW_VAR_MLME_SITESURVEY , };typedef s32 (*c2h_id_filter )(u8 id);
drivers/staging/r8188eu/include/rtw_mlme_ext.h +3 -0
@@ -424,6 +424,9 @@ void invalidate_cam_all(struct adapter *padapter);int allocate_fw_sta_entry (struct adapter *padapter);void flush_all_cam_entry (struct adapter *padapter); +void rtw_mlme_under_site_survey (struct adapter *adapter); +void rtw_mlme_site_survey_done (struct adapter *adapter); +void site_survey (struct adapter *padapter);u8 collect_bss_info (struct adapter *padapter,struct recv_frame *precv_frame,struct wlan_bssid_ex *bssid);
Signature · 1 line
2.36.1
Quoted 238 lines · Michael Straube
Remove the
HW_VAR_MLME_SITESURVEYcase fromSetHwReg8188EU()and move the functionality to two new functions inrtw_mlme_ext.c. This is part of the ongoing effort to get rid ofSetHwReg8188EU().Signed-off-by Michael Straube <[email protected]>--- drivers/staging/r8188eu/core/rtw_mlme_ext.c | 70 +++++++++++++++++-- drivers/staging/r8188eu/core/rtw_p2p.c | 9 +-- drivers/staging/r8188eu/hal/usb_halinit.c | 53 -------------- drivers/staging/r8188eu/include/hal_intf.h | 1 - .../staging/r8188eu/include/rtw_mlme_ext.h | 3 + 5 files changed, 70 insertions(+), 66 deletions(-)drivers/staging/r8188eu/core/rtw_mlme_ext.c +64
-6@@ -5695,9 +5695,70 @@ static void rtw_set_initial_gain(struct adapter *adapter, u8 gain) } } +void rtw_mlme_under_site_survey (struct adapter *adapter) +{ +/* config RCR to receive different BSSID & not to receive data frame */ + +int res; +u8 reg; +u32 v; + + res =rtw_read32 (adapter,REG_RCR , &v); +if (res) +return ; + + v &= ~(RCR_CBSSID_BCN ); +rtw_write32 (adapter,REG_RCR , v); +/* reject all data frame */ +rtw_write16 (adapter,REG_RXFLTMAP2 ,0x00 ); + +/* disable update TSF */ + res =rtw_read8 (adapter,REG_BCN_CTRL , ®); +if (res) +return ; + +rtw_write8 (adapter,REG_BCN_CTRL , reg |BIT (4 )); +} + +void rtw_mlme_site_survey_done (struct adapter *adapter) +{ +struct mlme_ext_priv *pmlmeext = &adapter->mlmeextpriv; +struct mlme_ext_info *pmlmeinfo = &pmlmeext->mlmext_info; +u32 reg32; +int res; +u8 reg; + +if ((is_client_associated_to_ap (adapter)) || + ((pmlmeinfo->state &0x03 ) ==WIFI_FW_ADHOC_STATE )) { +/* enable to rx data frame */ +rtw_write16 (adapter,REG_RXFLTMAP2 ,0xFFFF ); + +/* enable update TSF */ + res =rtw_read8 (adapter,REG_BCN_CTRL , ®); +if (res) +return ; + +rtw_write8 (adapter,REG_BCN_CTRL , reg & (~BIT (4 ))); + }else if ((pmlmeinfo->state &0x03 ) ==WIFI_FW_AP_STATE ) { +rtw_write16 (adapter,REG_RXFLTMAP2 ,0xFFFF ); +/* enable update TSF */ + res =rtw_read8 (adapter,REG_BCN_CTRL , ®); +if (res) +return ; + +rtw_write8 (adapter,REG_BCN_CTRL , reg & (~BIT (4 ))); + } + + res =rtw_read32 (adapter,REG_RCR , ®32); +if (res) +return ; + +rtw_write32 (adapter,REG_RCR , reg32 |RCR_CBSSID_BCN ); +} +void site_survey (struct adapter *padapter) { -unsigned char survey_channel =0 , val8; +unsigned char survey_channel =0 ;enum rt_scan_type ScanType =SCAN_PASSIVE ;struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;struct mlme_ext_info *pmlmeinfo = &pmlmeext->mlmext_info;@@ -5821,8 +5882,7 @@ void site_survey(struct adapter *padapter)if (is_client_associated_to_ap (padapter))issue_nulldata (padapter,NULL ,0 ,3 ,500 ); - val8 =0 ;/* survey done */ -SetHwReg8188EU (padapter,HW_VAR_MLME_SITESURVEY , (u8 *)(&val8)); +rtw_mlme_site_survey_done (padapter);report_surveydone_event (padapter);@@ -7343,7 +7403,6 @@ u8 sitesurvey_cmd_hdl(struct adapter *padapter, u8 *pbuf)struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;struct sitesurvey_parm *pparm = (struct sitesurvey_parm *)pbuf;u8 bdelayscan = false; -u8 val8;u32 i;struct wifidirect_info *pwdinfo = &padapter->wdinfo;@@ -7400,8 +7459,7 @@ u8 sitesurvey_cmd_hdl(struct adapter *padapter, u8 *pbuf)/* set MSR to no link state */ Set_MSR (padapter, _HW_STATE_NOLINK_); - val8 =1 ;/* under site survey */ -SetHwReg8188EU (padapter,HW_VAR_MLME_SITESURVEY , (u8 *)(&val8)); +rtw_mlme_under_site_survey (padapter); pmlmeext->sitesurvey_res.state =SCAN_PROCESS ; }drivers/staging/r8188eu/core/rtw_p2p.c +3
-6@@ -1450,10 +1450,9 @@ static void restore_p2p_state_handler(struct adapter *padapter)static void pre_tx_invitereq_handler (struct adapter *padapter) {struct wifidirect_info *pwdinfo = &padapter->wdinfo; -u8 val8 =1 ;set_channel_bwmode (padapter, pwdinfo->invitereq_info.peer_ch,HAL_PRIME_CHNL_OFFSET_DONT_CARE ,HT_CHANNEL_WIDTH_20 ); -SetHwReg8188EU (padapter,HW_VAR_MLME_SITESURVEY , (u8 *)(&val8)); +rtw_mlme_under_site_survey (padapter);issue_probereq_p2p (padapter,NULL );_set_timer (&pwdinfo->pre_tx_scan_timer,P2P_TX_PRESCAN_TIMEOUT );@@ -1462,10 +1461,9 @@ static void pre_tx_invitereq_handler(struct adapter *padapter)static void pre_tx_provdisc_handler (struct adapter *padapter) {struct wifidirect_info *pwdinfo = &padapter->wdinfo; -u8 val8 =1 ;set_channel_bwmode (padapter, pwdinfo->tx_prov_disc_info.peer_channel_num[0 ],HAL_PRIME_CHNL_OFFSET_DONT_CARE ,HT_CHANNEL_WIDTH_20 ); -SetHwReg8188EU (padapter,HW_VAR_MLME_SITESURVEY , (u8 *)(&val8)); +rtw_mlme_under_site_survey (padapter);issue_probereq_p2p (padapter,NULL );_set_timer (&pwdinfo->pre_tx_scan_timer,P2P_TX_PRESCAN_TIMEOUT );@@ -1474,10 +1472,9 @@ static void pre_tx_provdisc_handler(struct adapter *padapter)static void pre_tx_negoreq_handler (struct adapter *padapter) {struct wifidirect_info *pwdinfo = &padapter->wdinfo; -u8 val8 =1 ;set_channel_bwmode (padapter, pwdinfo->nego_req_info.peer_channel_num[0 ],HAL_PRIME_CHNL_OFFSET_DONT_CARE ,HT_CHANNEL_WIDTH_20 ); -SetHwReg8188EU (padapter,HW_VAR_MLME_SITESURVEY , (u8 *)(&val8)); +rtw_mlme_under_site_survey (padapter);issue_probereq_p2p (padapter,NULL );_set_timer (&pwdinfo->pre_tx_scan_timer,P2P_TX_PRESCAN_TIMEOUT );drivers/staging/r8188eu/hal/usb_halinit.c +0
-53@@ -1104,59 +1104,6 @@ void SetHwReg8188EU(struct adapter *Adapter, u8 variable, u8 *val)ResumeTxBeacon (Adapter); }break ; -case HW_VAR_MLME_SITESURVEY : -if (*((u8 *)val)) {/* under sitesurvey */ -/* config RCR to receive different BSSID & not to receive data frame */ -u32 v; - - res =rtw_read32 (Adapter,REG_RCR , &v); -if (res) -return ; - - v &= ~(RCR_CBSSID_BCN ); -rtw_write32 (Adapter,REG_RCR , v); -/* reject all data frame */ -rtw_write16 (Adapter,REG_RXFLTMAP2 ,0x00 ); - -/* disable update TSF */ - res =rtw_read8 (Adapter,REG_BCN_CTRL , ®); -if (res) -return ; - -rtw_write8 (Adapter,REG_BCN_CTRL , reg |BIT (4 )); - }else {/* sitesurvey done */ -struct mlme_ext_priv *pmlmeext = &Adapter->mlmeextpriv; -struct mlme_ext_info *pmlmeinfo = &pmlmeext->mlmext_info; -u32 reg32; - -if ((is_client_associated_to_ap (Adapter)) || - ((pmlmeinfo->state &0x03 ) ==WIFI_FW_ADHOC_STATE )) { -/* enable to rx data frame */ -rtw_write16 (Adapter,REG_RXFLTMAP2 ,0xFFFF ); - -/* enable update TSF */ - res =rtw_read8 (Adapter,REG_BCN_CTRL , ®); -if (res) -return ; - -rtw_write8 (Adapter,REG_BCN_CTRL , reg & (~BIT (4 ))); - }else if ((pmlmeinfo->state &0x03 ) ==WIFI_FW_AP_STATE ) { -rtw_write16 (Adapter,REG_RXFLTMAP2 ,0xFFFF ); -/* enable update TSF */ - res =rtw_read8 (Adapter,REG_BCN_CTRL , ®); -if (res) -return ; - -rtw_write8 (Adapter,REG_BCN_CTRL , reg & (~BIT (4 ))); - } - - res =rtw_read32 (Adapter,REG_RCR , ®32); -if (res) -return ; - -rtw_write32 (Adapter,REG_RCR , reg32 |RCR_CBSSID_BCN ); - } -break ;default :break ; }drivers/staging/r8188eu/include/hal_intf.h +0
-1@@ -11,7 +11,6 @@enum hw_variables {HW_VAR_SET_OPMODE ,HW_VAR_CORRECT_TSF , -HW_VAR_MLME_SITESURVEY , };typedef s32 (*c2h_id_filter )(u8 id);drivers/staging/r8188eu/include/rtw_mlme_ext.h +0
-0
drivers/staging/r8188eu/include/rtw_mlme_ext.h void invalidate_cam_all(struct adapter *padapter); · line 432
Quoted 9 lines
drivers/staging/r8188eu/include/rtw_mlme_ext.h +3
-0@@ -424,6 +424,9 @@ void invalidate_cam_all(struct adapter *padapter);int allocate_fw_sta_entry (struct adapter *padapter);void flush_all_cam_entry (struct adapter *padapter); +void rtw_mlme_under_site_survey (struct adapter *adapter); +void rtw_mlme_site_survey_done (struct adapter *adapter); +void site_survey (struct adapter *padapter);u8 collect_bss_info (struct adapter *padapter,struct recv_frame *precv_frame,struct wlan_bssid_ex *bssid);