staging: rtl8723bs: fix out-of-bounds and various cleanups
Subsystems (2)
v3 cover staging: rtl8723bs: fix out-of-bounds and various cleanups
From: Luka Gejak <[email protected]>
Patches 2, 3, 4, and 5 from the v2 series have been accepted and applied to the staging-next branch, so they are excluded from this version. This series has been rebased on top of the latest staging-next. Changes in v3:
- Rebased on staging-next.
- Dropped patches 2, 3, 4, and 5 (already applied upstream).
- Fixed a formatting error in the subject line of Patch 1 (removed
extra space after the prefix).
- No logical changes to the remaining patches (6-26).
Luka Gejak (22):
staging: rtl8723bs: fix potential out-of-bounds read in
rtw_restruct_wmm_ie
staging: rtl8723bs: remove unused rtl8192c function declarations
staging: rtl8723bs: remove unused RECV_BLK defines
staging: rtl8723bs: remove unused MAX_PATH_NUM defines
staging: rtl8723bs: convert PSTA_INFO_T to struct sta_info *
staging: rtl8723bs: remove NDIS type aliases
staging: rtl8723bs: remove redundant MAC_ARG macro
staging: rtl8723bs: core: fix line lengths in rtw_wlan_util.c
staging: rtl8723bs: core: fix line lengths in rtw_recv.c
staging: rtl8723bs: hal: fix line lengths in HalPhyRf_8723B.c
staging: rtl8723bs: os_dep: fix line lengths in ioctl_cfg80211.c
staging: rtl8723bs: hal: fix line lengths in rtl8723b_cmd.c
staging: rtl8723bs: hal: fix line lengths in rtl8723b_hal_init.c
staging: rtl8723bs: hal: fix line lengths in rtl8723b_phycfg.c
staging: rtl8723bs: core: fix various line length overflows
staging: rtl8723bs: hal: fix various line length overflows
staging: rtl8723bs: os_dep: fix various line length overflows
staging: rtl8723bs: core: fix line lengths in rtw_cmd.c
staging: rtl8723bs: core: fix line lengths in rtw_mlme_ext.c
staging: rtl8723bs: core: fix line lengths in rtw_mlme.c
staging: rtl8723bs: core: fix line lengths in rtw_xmit.c
staging: rtl8723bs: core: fix various line length overflows
drivers/staging/rtl8723bs/core/rtw_cmd.c | 147 +++--- .../staging/rtl8723bs/core/rtw_ieee80211.c | 36 +- drivers/staging/rtl8723bs/core/rtw_io.c | 4 +- .../staging/rtl8723bs/core/rtw_ioctl_set.c | 16 +- drivers/staging/rtl8723bs/core/rtw_mlme.c | 106 ++-- drivers/staging/rtl8723bs/core/rtw_mlme_ext.c | 471 ++++++++++++------ drivers/staging/rtl8723bs/core/rtw_pwrctrl.c | 3 +- drivers/staging/rtl8723bs/core/rtw_recv.c | 120 +++-- drivers/staging/rtl8723bs/core/rtw_security.c | 11 +- drivers/staging/rtl8723bs/core/rtw_sta_mgt.c | 2 +- .../staging/rtl8723bs/core/rtw_wlan_util.c | 215 +++++--- drivers/staging/rtl8723bs/core/rtw_xmit.c | 44 +- .../staging/rtl8723bs/hal/HalBtc8723b1Ant.c | 35 +- .../staging/rtl8723bs/hal/HalBtc8723b2Ant.c | 29 +- drivers/staging/rtl8723bs/hal/HalPhyRf.c | 36 +- .../staging/rtl8723bs/hal/HalPhyRf_8723B.c | 176 +++++-- .../staging/rtl8723bs/hal/hal_com_phycfg.c | 22 +- drivers/staging/rtl8723bs/hal/hal_intf.c | 4 +- drivers/staging/rtl8723bs/hal/hal_sdio.c | 4 +- drivers/staging/rtl8723bs/hal/odm.c | 28 +- drivers/staging/rtl8723bs/hal/odm.h | 11 +- drivers/staging/rtl8723bs/hal/odm_DIG.c | 38 +- drivers/staging/rtl8723bs/hal/odm_HWConfig.c | 19 +- drivers/staging/rtl8723bs/hal/odm_types.h | 3 - drivers/staging/rtl8723bs/hal/rtl8723b_cmd.c | 103 +++- .../staging/rtl8723bs/hal/rtl8723b_hal_init.c | 64 ++- .../staging/rtl8723bs/hal/rtl8723b_phycfg.c | 54 +- .../staging/rtl8723bs/hal/rtl8723b_rf6052.c | 6 +- .../staging/rtl8723bs/hal/rtl8723bs_recv.c | 6 +- .../staging/rtl8723bs/hal/rtl8723bs_xmit.c | 5 +- drivers/staging/rtl8723bs/hal/sdio_halinit.c | 17 +- drivers/staging/rtl8723bs/include/ieee80211.h | 1 - .../staging/rtl8723bs/include/rtl8192c_recv.h | 8 - .../staging/rtl8723bs/include/rtw_ioctl_set.h | 3 - .../staging/rtl8723bs/include/rtw_mlme_ext.h | 2 +- .../staging/rtl8723bs/include/wlan_bssdef.h | 12 +- .../staging/rtl8723bs/os_dep/ioctl_cfg80211.c | 136 +++-- drivers/staging/rtl8723bs/os_dep/os_intfs.c | 17 +- drivers/staging/rtl8723bs/os_dep/sdio_intf.c | 3 +- drivers/staging/rtl8723bs/os_dep/xmit_linux.c | 8 +- 40 files changed, 1355 insertions(+), 670 deletions(-)
Signature · 1 line
2.52.0
PATCH v3 1/22 staging: rtl8723bs: fix potential out-of-bounds read in rtw_restruct_wmm_ie
From: Luka Gejak <[email protected]>
The current code checks 'i + 5 < in_len' at the end of the if statement. However, it accesses 'in_ie[i + 5]' before that check, which can lead to an out-of-bounds read. Move the length check to the beginning of the conditional to ensure the index is within bounds before accessing the array.
--- drivers/staging/rtl8723bs/core/rtw_mlme.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
drivers/staging/rtl8723bs/core/rtw_mlme.c +4 -1
@@ -1988,7 +1988,10 @@ int rtw_restruct_wmm_ie(struct adapter *adapter, u8 *in_ie, u8 *out_ie, uint in_while (i < in_len) { ielength = initial_out_len; -if (in_ie[i] ==0xDD && in_ie[i +2 ] ==0x00 && in_ie[i +3 ] ==0x50 && in_ie[i +4 ] ==0xF2 && in_ie[i +5 ] ==0x02 && i +5 < in_len) {/* WMM element ID and OUI */ +if (i +5 < in_len && + in_ie[i] ==0xDD && in_ie[i +2 ] ==0x00 && + in_ie[i +3 ] ==0x50 && in_ie[i +4 ] ==0xF2 && + in_ie[i +5 ] ==0x02 ) {for (j = i; j < i +9 ; j++) { out_ie[ielength] = in_ie[j]; ielength++;
Signature · 1 line
2.52.0
Greg Kroah-Hartman
maintainerRe: [PATCH v3 01/22] staging: rtl8723bs: fix potential out-of-bounds read in rtw_restruct_wmm_ie
Quoted 8 lines · On Sun, Feb 08, 2026 at 12:00:50PM +0100, [email protected] wrote:
From: Luka Gejak <[email protected]>
The current code checks 'i + 5 <
in_len' at the end of the if statement. However, it accesses 'in_ie[i + 5]' before that check, which can lead to an out-of-bounds read. Move the length check to the beginning of the conditional to ensure the index is within bounds before accessing the array.
Quoted 6 lines
Fixes 554c0a3abf21 ("staging: Add rtl8723bs sdio wifi driver")Signed-off-by Luka Gejak <[email protected]>--- drivers/staging/rtl8723bs/core/rtw_mlme.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
You have mixed bugfixes that should go into 7.0-final with cleanups in the same series, makeing it a mess for me to try to apply this. Can you resend this as two different series, one with just bugfixes for 7.0-final and the rest being the normal coding style cleanups? That way I can apply them properly.
thanks,
greg k-h
PATCH v3 2/22 staging: rtl8723bs: remove unused rtl8192c function declarations
In reply to [email protected]From: Luka Gejak <[email protected]>
Remove rtl8192c_translate_rx_signal_stuff() and rtl8192c_query_rx_desc_status() function declarations from rtl8192c_recv.h. These functions are declared but never implemented or used in the 8723bs driver.
--- drivers/staging/rtl8723bs/include/rtl8192c_recv.h | 4 ---- 1 file changed, 4 deletions(-)
drivers/staging/rtl8723bs/include/rtl8192c_recv.h +0 -4
@@ -34,8 +34,4 @@ struct phy_stat {/* Rx smooth factor */ #define Rx_Smooth_Factor (20) - -void rtl8192c_translate_rx_signal_stuff (union recv_frame *precvframe,struct phy_stat *pphy_status); -void rtl8192c_query_rx_desc_status (union recv_frame *precvframe,struct recv_stat *pdesc); -#endif
Signature · 1 line
2.52.0
PATCH v3 3/22 staging: rtl8723bs: remove unused RECV_BLK defines
In reply to [email protected]From: Luka Gejak <[email protected]>
Remove unused RECV_BLK_SZ, RECV_BLK_CNT, and RECV_BLK_TH defines from rtl8192c_recv.h. These are not referenced anywhere in the driver.
--- drivers/staging/rtl8723bs/include/rtl8192c_recv.h | 4 ---- 1 file changed, 4 deletions(-)
drivers/staging/rtl8723bs/include/rtl8192c_recv.h +0 -4
@@ -7,10 +7,6 @@#ifndef _RTL8192C_RECV_H_#define _RTL8192C_RECV_H_ -#define RECV_BLK_SZ 512 -#define RECV_BLK_CNT 16 -#define RECV_BLK_TH RECV_BLK_CNT -#define MAX_RECVBUF_SZ (10240) struct phy_stat {
Signature · 1 line
2.52.0
PATCH v3 4/22 staging: rtl8723bs: remove unused MAX_PATH_NUM defines
In reply to [email protected]From: Luka Gejak <[email protected]>
Remove unused MAX_PATH_NUM_* definitions for other chips (92CS, 8188E, 8192E, 8812A, 8821A, 8814A, 8822B) from odm.h. Only MAX_PATH_NUM_8723B is actually used by the driver.
--- drivers/staging/rtl8723bs/hal/odm.h | 7 ------- 1 file changed, 7 deletions(-)
drivers/staging/rtl8723bs/hal/odm.h +0 -7
@@ -202,14 +202,7 @@ struct odm_rate_adaptive {/* */ /* Declare for common info */ /* */ -#define MAX_PATH_NUM_92CS 2 -#define MAX_PATH_NUM_8188E 1 -#define MAX_PATH_NUM_8192E 2#define MAX_PATH_NUM_8723B 1 -#define MAX_PATH_NUM_8812A 2 -#define MAX_PATH_NUM_8821A 1 -#define MAX_PATH_NUM_8814A 4 -#define MAX_PATH_NUM_8822B 2#define IQK_THRESHOLD 8#define DPK_THRESHOLD 4
Signature · 1 line
2.52.0
PATCH v3 5/22 staging: rtl8723bs: convert PSTA_INFO_T to struct sta_info *
In reply to [email protected]From: Luka Gejak <[email protected]>
Replace the vendor-specific PSTA_INFO_T typedef with the standard Linux kernel type 'struct sta_info *' throughout the driver.
This addresses the second TODO item: convert any remaining unusual variable types.
--- drivers/staging/rtl8723bs/hal/odm.c | 10 +++++----- drivers/staging/rtl8723bs/hal/odm.h | 4 ++-- drivers/staging/rtl8723bs/hal/odm_HWConfig.c | 2 +- drivers/staging/rtl8723bs/hal/odm_types.h | 3 --- 4 files changed, 8 insertions(+), 11 deletions(-)
drivers/staging/rtl8723bs/hal/odm.c +5 -5
@@ -141,7 +141,7 @@ static void odm_CommonInfoSelfUpdate(struct dm_odm_t *pDM_Odm) {u8 EntryCnt =0 ;u8 i; -PSTA_INFO_T pEntry; +struct sta_info *pEntry;if (*(pDM_Odm->pBandWidth) ==ODM_BW40M ) {if (*(pDM_Odm->pSecChOffset) ==1 )
@@ -194,7 +194,7 @@ u32 ODM_Get_Rate_Bitmap(u8 rssi_level ) { -PSTA_INFO_T pEntry; +struct sta_info *pEntry;u32 rate_bitmap =0 ;u8 WirelessMode;
@@ -264,7 +264,7 @@ static void odm_RefreshRateAdaptiveMaskCE(struct dm_odm_t *pDM_Odm)return ;for (i =0 ; i <ODM_ASSOCIATE_ENTRY_NUM ; i++) { -PSTA_INFO_T pstat = pDM_Odm->pODM_StaInfo[i]; +struct sta_info *pstat = pDM_Odm->pODM_StaInfo[i];if (IS_STA_VALID (pstat)) {if (is_multicast_ether_addr (pstat->hwaddr))/* if (psta->mac_id == 1) */
@@ -841,7 +841,7 @@ void ODM_CmnInfoHook(struct dm_odm_t *pDM_Odm, enum odm_cmninfo_e CmnInfo, void/* pDM_Odm->BTCoexist = (bool *)pValue; */ /* case ODM_CMNINFO_STA_STATUS: */ -/* pDM_Odm->pODM_StaInfo[] = (PSTA_INFO_T)pValue; */ +/* pDM_Odm->pODM_StaInfo[] = (struct sta_info *)pValue; */ /* break; */ /* case ODM_CMNINFO_PHY_STATUS: */
@@ -875,7 +875,7 @@ void ODM_CmnInfoPtrArrayHook(/* Dynamic call by reference pointer. */ /* */ case ODM_CMNINFO_STA_STATUS : - pDM_Odm->pODM_StaInfo[Index] = (PSTA_INFO_T )pValue; + pDM_Odm->pODM_StaInfo[Index] = (struct sta_info *)pValue;break ;/* To remove the compiler warning, must add an empty default statement to handle the other values. */ default :
drivers/staging/rtl8723bs/hal/odm.h +2 -2
@@ -853,7 +853,7 @@ struct dm_odm_t { /* DM_Out_Source_Dynamic_Mechanism_Structure *//* 2 Define STA info. */ /* _ODM_STA_INFO */ /* 2012/01/12 MH For MP, we need to reduce one array pointer for default port.?? */ -PSTA_INFO_T pODM_StaInfo[ODM_ASSOCIATE_ENTRY_NUM ]; +struct sta_info *pODM_StaInfo[ODM_ASSOCIATE_ENTRY_NUM ];/* */ /* 2012/02/14 MH Add to share 88E ra with other SW team. */
@@ -910,7 +910,7 @@ struct dm_odm_t { /* DM_Out_Source_Dynamic_Mechanism_Structure *//* u8 binitialized; for dm_initial_gain_Multi_STA use. */ /* for Antenna diversity */ /* u8 AntDivCfg; 0:OFF , 1:ON, 2:by efuse */ -/* PSTA_INFO_T RSSI_target; */ +/* struct sta_info *RSSI_target; */ bool *pbDriverStopped;bool *pbDriverIsGoingToPnpSetPowerSleep;
drivers/staging/rtl8723bs/hal/odm_HWConfig.c +1 -1
@@ -256,7 +256,7 @@ static void odm_Process_RSSIForDM(u8 RSSI_max, RSSI_min, i;u32 OFDM_pkt =0 ;u32 Weighting =0 ; -PSTA_INFO_T pEntry; +struct sta_info *pEntry;if (pPktinfo->station_id ==0xFF )
drivers/staging/rtl8723bs/hal/odm_types.h +0 -3
@@ -33,9 +33,6 @@ enum hal_status {#define ODM_ENDIAN_TYPE ODM_ENDIAN_BIG#endif -#define STA_INFO_T struct sta_info -#define PSTA_INFO_T struct sta_info * -#define SET_TX_DESC_ANTSEL_A_88E (__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+8, 24, 1, __Value)#define SET_TX_DESC_ANTSEL_B_88E (__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+8, 25, 1, __Value)#define SET_TX_DESC_ANTSEL_C_88E (__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+28, 29, 1, __Value)
Signature · 1 line
2.52.0
PATCH v3 6/22 staging: rtl8723bs: remove NDIS type aliases
In reply to [email protected]From: Luka Gejak <[email protected]>
Remove Windows NDIS-style type aliases and replace with standard Linux kernel types. This makes the code more readable and follows Linux kernel coding style by using explicit types instead of Windows-style typedefs.
--- drivers/staging/rtl8723bs/core/rtw_sta_mgt.c | 2 +- drivers/staging/rtl8723bs/include/rtw_ioctl_set.h | 3 --- drivers/staging/rtl8723bs/include/rtw_mlme_ext.h | 2 +- drivers/staging/rtl8723bs/include/wlan_bssdef.h | 12 ++++-------- drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c | 4 ++-- 5 files changed, 8 insertions(+), 15 deletions(-)
drivers/staging/rtl8723bs/core/rtw_sta_mgt.c +1 -1
@@ -491,7 +491,7 @@ struct sta_info *rtw_get_stainfo(struct sta_priv *pstapriv, u8 *hwaddr)u32 rtw_init_bcmc_stainfo (struct adapter *padapter) {struct sta_info *psta; -NDIS_802_11_MAC_ADDRESS bcast_addr = {0xff ,0xff ,0xff ,0xff ,0xff ,0xff }; +u8 bcast_addr[ETH_ALEN ] = {0xff ,0xff ,0xff ,0xff ,0xff ,0xff };struct sta_priv *pstapriv = &padapter->stapriv;/* struct __queue *pstapending = &padapter->xmitpriv.bm_pending; */
drivers/staging/rtl8723bs/include/rtw_ioctl_set.h +0 -3
@@ -7,9 +7,6 @@#ifndef __RTW_IOCTL_SET_H_#define __RTW_IOCTL_SET_H_ - -typedef u8 NDIS_802_11_PMKID_VALUE [16 ]; -u8 rtw_set_802_11_authentication_mode (struct adapter *pdapter,enum ndis_802_11_authentication_mode authmode);u8 rtw_set_802_11_add_wep (struct adapter *padapter,struct ndis_802_11_wep *wep);u8 rtw_set_802_11_disassociate (struct adapter *padapter);
drivers/staging/rtl8723bs/include/rtw_mlme_ext.h +1 -1
@@ -253,7 +253,7 @@ struct FW_Sta_Info {u32 status;u32 rx_pkt;u32 retry; -NDIS_802_11_RATES_EX SupportedRates; +u8 SupportedRates[NDIS_802_11_LENGTH_RATES_EX ]; };/*
drivers/staging/rtl8723bs/include/wlan_bssdef.h +4 -8
@@ -15,10 +15,6 @@#define NDIS_802_11_LENGTH_RATES 8#define NDIS_802_11_LENGTH_RATES_EX 16 -typedef unsigned char NDIS_802_11_MAC_ADDRESS [6 ]; -typedef unsigned char NDIS_802_11_RATES [NDIS_802_11_LENGTH_RATES ];/* Set of 8 data rates */ -typedef unsigned char NDIS_802_11_RATES_EX [NDIS_802_11_LENGTH_RATES_EX ];/* Set of 16 data rates */ -struct ndis_802_11_ssid {u32 ssid_length;u8 ssid[32 ];
@@ -64,10 +60,10 @@ struct ndis_80211_var_ie { };/* Length is the 4 bytes multiples of the sum of -* sizeof (NDIS_802_11_MAC_ADDRESS) + 2 + +* 6 (mac_address) + 2 + * sizeof (struct ndis_802_11_ssid) + sizeof (u32) + * sizeof (long) + sizeof (enum ndis_802_11_network_type) + -* sizeof (struct ndis_802_11_conf) + sizeof (NDIS_802_11_RATES_EX) + ie_length +* sizeof (struct ndis_802_11_conf) + 16 (supported_rates) + ie_length * * Except for ie_length, all other fields are fixed length. Therefore, we can * define a macro to present the partial sum.
@@ -155,7 +151,7 @@ struct wlan_bcn_info {*/ struct wlan_bssid_ex {u32 length; -NDIS_802_11_MAC_ADDRESS mac_address; +u8 mac_address[ETH_ALEN ];u8 reserved[2 ];/* 0]: IS beacon frame */ struct ndis_802_11_ssid ssid;u32 privacy;
@@ -163,7 +159,7 @@ struct wlan_bssid_ex {enum ndis_802_11_network_type network_type_in_use;struct ndis_802_11_conf configuration;enum ndis_802_11_network_infrastructure infrastructure_mode; -NDIS_802_11_RATES_EX supported_rates; +u8 supported_rates[NDIS_802_11_LENGTH_RATES_EX ];struct wlan_phy_info phy_info;u32 ie_length;u8 ies[MAX_IE_SZ ];/* timestamp, beacon interval, and capability information) */
drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c +2 -2
@@ -381,7 +381,7 @@ void rtw_cfg80211_ibss_indicate_connect(struct adapter *padapter)return ; }if (!memcmp (&(scanned->network.ssid), &(pnetwork->ssid),sizeof (struct ndis_802_11_ssid )) - && !memcmp (scanned->network.mac_address, pnetwork->mac_address,sizeof (NDIS_802_11_MAC_ADDRESS )) + && !memcmp (scanned->network.mac_address, pnetwork->mac_address,ETH_ALEN ) )rtw_cfg80211_inform_bss (padapter, scanned);else
@@ -422,7 +422,7 @@ void rtw_cfg80211_indicate_connect(struct adapter *padapter) goto check_bss; } -if (!memcmp (scanned->network.mac_address, pnetwork->mac_address,sizeof (NDIS_802_11_MAC_ADDRESS )) +if (!memcmp (scanned->network.mac_address, pnetwork->mac_address,ETH_ALEN ) && !memcmp (&(scanned->network.ssid), &(pnetwork->ssid),sizeof (struct ndis_802_11_ssid )) )rtw_cfg80211_inform_bss (padapter, scanned);
Signature · 1 line
2.52.0
PATCH v3 7/22 staging: rtl8723bs: remove redundant MAC_ARG macro
In reply to [email protected]From: Luka Gejak <[email protected]>
The driver already uses the kernel's %pM format specifier for printing MAC addresses. The MAC_ARG() macro was a no-op that simply returned its argument, making it redundant when used with %pM.
This addresses TODO item: find codes that can use %pM formatting.
--- drivers/staging/rtl8723bs/include/ieee80211.h | 1 - 1 file changed, 1 deletion(-)
drivers/staging/rtl8723bs/include/ieee80211.h +0 -1
@@ -506,7 +506,6 @@ Total: 28-2340 bytes#define DEFAULT_MAX_SCAN_AGE (15 * HZ)#define DEFAULT_FTS 2346 -#define IP_ARG (x) (x)static inline int is_multicast_mac_addr (const u8 *addr) {
Signature · 1 line
2.52.0
PATCH v3 8/22 staging: rtl8723bs: core: fix line lengths in rtw_wlan_util.c
In reply to [email protected]From: Luka Gejak <[email protected]>
Break long lines exceeding 100 characters to comply with kernel coding style.
--- .../staging/rtl8723bs/core/rtw_wlan_util.c | 215 ++++++++++++------ 1 file changed, 140 insertions(+), 75 deletions(-)
drivers/staging/rtl8723bs/core/rtw_wlan_util.c +140 -75
@@ -334,7 +334,8 @@ void r8723bs_select_channel(struct adapter *padapter, unsigned char channel)mutex_unlock (&(adapter_to_dvobj (padapter)->setch_mutex)); } -void set_channel_bwmode (struct adapter *padapter,unsigned char channel,unsigned char channel_offset,unsigned short bwmode) +void set_channel_bwmode (struct adapter *padapter,unsigned char channel, +unsigned char channel_offset,unsigned short bwmode) {u8 center_ch, chnl_offset80 =HAL_PRIME_CHNL_OFFSET_DONT_CARE ;
@@ -350,7 +351,9 @@ void set_channel_bwmode(struct adapter *padapter, unsigned char channel, unsignertw_set_oper_bw (padapter, bwmode);rtw_set_oper_choffset (padapter, channel_offset); -rtw_hal_set_chnl_bw (padapter, center_ch, bwmode, channel_offset, chnl_offset80);/* set center channel */ +/* set center channel */ +rtw_hal_set_chnl_bw (padapter, center_ch, bwmode, + channel_offset, chnl_offset80);mutex_unlock (&(adapter_to_dvobj (padapter)->setch_mutex)); }
@@ -380,10 +383,14 @@ int is_client_associated_to_ap(struct adapter *padapter) pmlmeext = &padapter->mlmeextpriv; pmlmeinfo = &(pmlmeext->mlmext_info); -if ((pmlmeinfo->state &WIFI_FW_ASSOC_SUCCESS ) && ((pmlmeinfo->state &0x03 ) ==WIFI_FW_STATION_STATE )) -return true; -else -return _FAIL; + { +bool assoc_ok = pmlmeinfo->state &WIFI_FW_ASSOC_SUCCESS ; +bool is_station = (pmlmeinfo->state &0x03 ) ==WIFI_FW_STATION_STATE ; + +if (assoc_ok && is_station) +return true; + } +return _FAIL; }int is_client_associated_to_ibss (struct adapter *padapter)
@@ -391,10 +398,14 @@ int is_client_associated_to_ibss(struct adapter *padapter)struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); -if ((pmlmeinfo->state &WIFI_FW_ASSOC_SUCCESS ) && ((pmlmeinfo->state &0x03 ) ==WIFI_FW_ADHOC_STATE )) -return true; -else -return _FAIL; + { +bool assoc_ok = pmlmeinfo->state &WIFI_FW_ASSOC_SUCCESS ; +bool is_adhoc = (pmlmeinfo->state &0x03 ) ==WIFI_FW_ADHOC_STATE ; + +if (assoc_ok && is_adhoc) +return true; + } +return _FAIL; }int is_IBSS_empty (struct adapter *padapter)
@@ -466,7 +477,7 @@ void _write_cam(struct adapter *padapter, u8 entry, u16 ctrl, u8 *mac, u8 *key)void _clear_cam_entry (struct adapter *padapter,u8 entry) {unsigned char null_sta[] = {0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 }; -unsigned char null_key[] = {0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 }; +unsigned char null_key[16 ] = {0 };_write_cam (padapter, entry,0 , null_sta, null_key); }
@@ -570,62 +581,74 @@ s16 rtw_camid_alloc(struct adapter *adapter, struct sta_info *sta, u8 kid) mlmeinfo = &adapter->mlmeextpriv.mlmext_info; -if ((((mlmeinfo->state &0x03 ) ==WIFI_FW_AP_STATE ) || ((mlmeinfo->state &0x03 ) ==WIFI_FW_ADHOC_STATE )) - && !sta) { -/* AP/Ad-hoc mode group key: static alloction to default key by key ID */ -if (kid >3 ) { -netdev_dbg (adapter->pnetdev, -FUNC_ADPT_FMT " group key with invalid key id:%u\n" , -FUNC_ADPT_ARG (adapter), kid); -rtw_warn_on (1 ); - goto bitmap_handle; - } - - cam_id = kid; - }else { -int i; -u8 *addr = sta ? sta->hwaddr :NULL ; + { +u8 state = mlmeinfo->state &0x03 ; +bool is_ap_or_adhoc = (state ==WIFI_FW_AP_STATE ) || + (state ==WIFI_FW_ADHOC_STATE ); -if (!sta) { -if (!(mlmeinfo->state &WIFI_FW_ASSOC_SUCCESS )) { -/* bypass STA mode group key setting before connected(ex:WEP) because bssid is not ready */ +if (is_ap_or_adhoc && !sta) { +/* AP/Ad-hoc mode group key: static alloction to default key by key ID */ +if (kid >3 ) { +netdev_dbg (adapter->pnetdev, +FUNC_ADPT_FMT " group key with invalid key id:%u\n" , +FUNC_ADPT_ARG (adapter), kid); +rtw_warn_on (1 ); goto bitmap_handle; } - addr =get_bssid (&adapter->mlmepriv); - } + cam_id = kid; + }else { +int i; +u8 *addr = sta ? sta->hwaddr :NULL ; + +if (!sta) { +if (!(mlmeinfo->state &WIFI_FW_ASSOC_SUCCESS )) { +/* +* bypass STA mode group key setting before +* connected(ex:WEP) because bssid is not ready +*/ + goto bitmap_handle; + } + + addr =get_bssid (&adapter->mlmepriv); + } - i =_rtw_camid_search (adapter, addr, kid); -if (i >=0 ) { -/* Fix issue that pairwise and group key have same key id. Pairwise key first, group key can overwirte group only(ex: rekey) */ -if (sta ||_rtw_camid_is_gk (adapter, i)) - cam_id = i; -else -netdev_dbg (adapter->pnetdev, -FUNC_ADPT_FMT " group key id:%u the same key id as pairwise key\n" , -FUNC_ADPT_ARG (adapter), kid); - goto bitmap_handle; - } + i =_rtw_camid_search (adapter, addr, kid); +if (i >=0 ) { +/* +* Fix issue that pairwise and group key have same +* key id. Pairwise key first, group key can +* overwirte group only(ex: rekey) +*/ +if (sta ||_rtw_camid_is_gk (adapter, i)) + cam_id = i; +else +netdev_dbg (adapter->pnetdev, +FUNC_ADPT_FMT " grp key:%u same as pairwise\n" , +FUNC_ADPT_ARG (adapter), kid); + goto bitmap_handle; + } -for (i =4 ; i <TOTAL_CAM_ENTRY ; i++) -if (!(cam_ctl->bitmap &BIT (i))) -break ; +for (i =4 ; i <TOTAL_CAM_ENTRY ; i++) +if (!(cam_ctl->bitmap &BIT (i))) +break ; + +if (i ==TOTAL_CAM_ENTRY ) { +if (sta) +netdev_dbg (adapter->pnetdev, +FUNC_ADPT_FMT " pairwise %pM id:%u no room\n" , +FUNC_ADPT_ARG (adapter), + sta->hwaddr, kid); +else +netdev_dbg (adapter->pnetdev, +FUNC_ADPT_FMT " group key id:%u no room\n" , +FUNC_ADPT_ARG (adapter), kid); +rtw_warn_on (1 ); + goto bitmap_handle; + } -if (i ==TOTAL_CAM_ENTRY ) { -if (sta) -netdev_dbg (adapter->pnetdev, -FUNC_ADPT_FMT " pairwise key with %pM id:%u no room\n" , -FUNC_ADPT_ARG (adapter), - sta->hwaddr, kid); -else -netdev_dbg (adapter->pnetdev, -FUNC_ADPT_FMT " group key id:%u no room\n" , -FUNC_ADPT_ARG (adapter), kid); -rtw_warn_on (1 ); - goto bitmap_handle; + cam_id = i; } - - cam_id = i; } bitmap_handle:
@@ -1135,9 +1158,14 @@ int rtw_check_bcn_info(struct adapter *Adapter, u8 *pframe, u32 packet_len)if (!bssid)return true; -if ((pmlmepriv->timeBcnInfoChkStart !=0 ) && (jiffies_to_msecs (jiffies - pmlmepriv->timeBcnInfoChkStart) >DISCONNECT_BY_CHK_BCN_FAIL_OBSERV_PERIOD_IN_MS )) { - pmlmepriv->timeBcnInfoChkStart =0 ; - pmlmepriv->NumOfBcnInfoChkFail =0 ; +if (pmlmepriv->timeBcnInfoChkStart !=0 ) { +unsigned long elapsed; + + elapsed =jiffies_to_msecs (jiffies - pmlmepriv->timeBcnInfoChkStart); +if (elapsed >DISCONNECT_BY_CHK_BCN_FAIL_OBSERV_PERIOD_IN_MS ) { + pmlmepriv->timeBcnInfoChkStart =0 ; + pmlmepriv->NumOfBcnInfoChkFail =0 ; + } } subtype =GetFrameSubType (pframe) >>4 ;
@@ -1153,7 +1181,12 @@ int rtw_check_bcn_info(struct adapter *Adapter, u8 *pframe, u32 packet_len)/* check bw and channel offset */ /* parsing HT_CAP_IE */ - p =rtw_get_ie (bssid->ies + _FIXED_IE_LENGTH_,WLAN_EID_HT_CAPABILITY , &len, bssid->ie_length - _FIXED_IE_LENGTH_); + { +u8 *ies = bssid->ies + _FIXED_IE_LENGTH_; +uint ie_len = bssid->ie_length - _FIXED_IE_LENGTH_; + + p =rtw_get_ie (ies,WLAN_EID_HT_CAPABILITY , &len, ie_len); + }if (p && len >0 ) { pht_cap = (struct ieee80211_ht_cap *)(p +2 ); ht_cap_info =le16_to_cpu (pht_cap->cap_info);
@@ -1161,7 +1194,12 @@ int rtw_check_bcn_info(struct adapter *Adapter, u8 *pframe, u32 packet_len) ht_cap_info =0 ; }/* parsing HT_INFO_IE */ - p =rtw_get_ie (bssid->ies + _FIXED_IE_LENGTH_,WLAN_EID_HT_OPERATION , &len, bssid->ie_length - _FIXED_IE_LENGTH_); + { +u8 *ies = bssid->ies + _FIXED_IE_LENGTH_; +uint ie_len = bssid->ie_length - _FIXED_IE_LENGTH_; + + p =rtw_get_ie (ies,WLAN_EID_HT_OPERATION , &len, ie_len); + }if (p && len >0 ) { pht_info = (struct HT_info_element *)(p +2 ); ht_info_infos_0 = pht_info->infos[0 ];
@@ -1180,7 +1218,12 @@ int rtw_check_bcn_info(struct adapter *Adapter, u8 *pframe, u32 packet_len) }/* Checking for channel */ - p =rtw_get_ie (bssid->ies + _FIXED_IE_LENGTH_,WLAN_EID_DS_PARAMS , &len, bssid->ie_length - _FIXED_IE_LENGTH_); + { +u8 *ies = bssid->ies + _FIXED_IE_LENGTH_; +uint ie_len = bssid->ie_length - _FIXED_IE_LENGTH_; + + p =rtw_get_ie (ies,WLAN_EID_DS_PARAMS , &len, ie_len); + }if (p) { bcn_channel = *(p +2 ); }else {/* In 5G, some ap do not have DSSET IE checking HT info for channel */
@@ -1197,7 +1240,12 @@ int rtw_check_bcn_info(struct adapter *Adapter, u8 *pframe, u32 packet_len)/* checking SSID */ ssid_len =0 ; - p =rtw_get_ie (bssid->ies + _FIXED_IE_LENGTH_,WLAN_EID_SSID , &len, bssid->ie_length - _FIXED_IE_LENGTH_); + { +u8 *ies = bssid->ies + _FIXED_IE_LENGTH_; +uint ie_len = bssid->ie_length - _FIXED_IE_LENGTH_; + + p =rtw_get_ie (ies,WLAN_EID_SSID , &len, ie_len); + }if (p) { ssid_len = *(p +1 );if (ssid_len >NDIS_802_11_LENGTH_SSID )
@@ -1268,11 +1316,16 @@ int rtw_check_bcn_info(struct adapter *Adapter, u8 *pframe, u32 packet_len) pmlmepriv->NumOfBcnInfoChkFail++; -if ((pmlmepriv->timeBcnInfoChkStart !=0 ) && (jiffies_to_msecs (jiffies - pmlmepriv->timeBcnInfoChkStart) <=DISCONNECT_BY_CHK_BCN_FAIL_OBSERV_PERIOD_IN_MS ) - && (pmlmepriv->NumOfBcnInfoChkFail >=DISCONNECT_BY_CHK_BCN_FAIL_THRESHOLD )) { - pmlmepriv->timeBcnInfoChkStart =0 ; - pmlmepriv->NumOfBcnInfoChkFail =0 ; -return _FAIL; +if (pmlmepriv->timeBcnInfoChkStart !=0 ) { +unsigned long elapsed; + + elapsed =jiffies_to_msecs (jiffies - pmlmepriv->timeBcnInfoChkStart); +if (elapsed <=DISCONNECT_BY_CHK_BCN_FAIL_OBSERV_PERIOD_IN_MS && + pmlmepriv->NumOfBcnInfoChkFail >=DISCONNECT_BY_CHK_BCN_FAIL_THRESHOLD ) { + pmlmepriv->timeBcnInfoChkStart =0 ; + pmlmepriv->NumOfBcnInfoChkFail =0 ; +return _FAIL; + } }return _SUCCESS;
@@ -1525,7 +1578,11 @@ void update_capinfo(struct adapter *Adapter, u16 updateCap)if (pmlmeext->cur_wireless_mode & (WIRELESS_11_24N )) { pmlmeinfo->slotTime =SHORT_SLOT_TIME ; }else if (pmlmeext->cur_wireless_mode & (WIRELESS_11G )) { -if ((updateCap & cShortSlotTime)/* && (!(pMgntInfo->pHTInfo->RT2RT_HT_Mode & RT_HT_CAP_USE_LONG_PREAMBLE)) */ ) +/* +* cShortSlotTime check: +* (!(pMgntInfo->pHTInfo->RT2RT_HT_Mode & RT_HT_CAP_USE_LONG_PREAMBLE)) +*/ +if (updateCap & cShortSlotTime)/* Short Slot Time */ pmlmeinfo->slotTime =SHORT_SLOT_TIME ;else
@@ -1606,9 +1663,17 @@ int update_sta_support_rate(struct adapter *padapter, u8 *pvar_ie, uint var_ie_lmemcpy (pmlmeinfo->FW_sta_info[cam_idx].SupportedRates, pIE->data, ie_len); supportRateNum = ie_len; - pIE = (struct ndis_80211_var_ie *)rtw_get_ie (pvar_ie,WLAN_EID_EXT_SUPP_RATES , &ie_len, var_ie_len); -if (pIE && (ie_len <=sizeof (pmlmeinfo->FW_sta_info[cam_idx].SupportedRates) - supportRateNum)) -memcpy ((pmlmeinfo->FW_sta_info[cam_idx].SupportedRates + supportRateNum), pIE->data, ie_len); + { +u8 *rates = pmlmeinfo->FW_sta_info[cam_idx].SupportedRates; +size_t max_ext =sizeof (pmlmeinfo->FW_sta_info[cam_idx].SupportedRates) - + supportRateNum; + + pIE = (struct ndis_80211_var_ie *)rtw_get_ie (pvar_ie, +WLAN_EID_EXT_SUPP_RATES , + &ie_len, var_ie_len); +if (pIE && ie_len <= max_ext) +memcpy (rates + supportRateNum, pIE->data, ie_len); + }return _SUCCESS; }
Signature · 1 line
2.52.0
PATCH v3 9/22 staging: rtl8723bs: core: fix line lengths in rtw_recv.c
In reply to [email protected]From: Luka Gejak <[email protected]>
Break long lines exceeding 100 characters to comply with kernel coding style.
--- drivers/staging/rtl8723bs/core/rtw_recv.c | 120 ++++++++++++++-------- 1 file changed, 80 insertions(+), 40 deletions(-)
drivers/staging/rtl8723bs/core/rtw_recv.c +80 -40
@@ -47,14 +47,23 @@ signed int _rtw_init_recv_priv(struct recv_priv *precvpriv, struct adapter *pada precvpriv->free_recvframe_cnt =NR_RECVFRAME ; - precvpriv->pallocated_frame_buf =vzalloc (NR_RECVFRAME *sizeof (union recv_frame ) +RXFRAME_ALIGN_SZ ); + { +size_t sz =NR_RECVFRAME *sizeof (union recv_frame ) +RXFRAME_ALIGN_SZ ; + + precvpriv->pallocated_frame_buf =vzalloc (sz); + }if (!precvpriv->pallocated_frame_buf) { res = _FAIL; goto exit; } - precvpriv->precv_frame_buf = (u8 *)N_BYTE_ALIGMENT ((SIZE_PTR )(precvpriv->pallocated_frame_buf),RXFRAME_ALIGN_SZ ); + { +SIZE_PTR aligned =N_BYTE_ALIGMENT ((SIZE_PTR )(precvpriv->pallocated_frame_buf), +RXFRAME_ALIGN_SZ ); + + precvpriv->precv_frame_buf = (u8 *)aligned; + }/* precvpriv->precv_frame_buf = precvpriv->pallocated_frame_buf + RXFRAME_ALIGN_SZ - */ /* ((SIZE_PTR) (precvpriv->pallocated_frame_buf) &(RXFRAME_ALIGN_SZ-1)); */
@@ -390,11 +399,15 @@ static signed int recvframe_chkmic(struct adapter *adapter, union recv_frame *p mickey = &stainfo->dot11tkiprxmickey.skey[0 ]; } - datalen = precvframe->u.hdr.len-prxattrib->hdrlen-prxattrib->iv_len-prxattrib->icv_len-8 ;/* icv_len included the mic code */ +/* icv_len included the mic code */ + datalen = precvframe->u.hdr.len - prxattrib->hdrlen - + prxattrib->iv_len - prxattrib->icv_len -8 ; pframe = precvframe->u.hdr.rx_data; - payload = pframe+prxattrib->hdrlen+prxattrib->iv_len; + payload = pframe + prxattrib->hdrlen + prxattrib->iv_len; -rtw_seccalctkipmic (mickey, pframe, payload, datalen, &miccode[0 ], (unsigned char )prxattrib->priority);/* care the length of the data */ +/* care the length of the data */ +rtw_seccalctkipmic (mickey, pframe, payload, datalen, + &miccode[0 ], (unsigned char )prxattrib->priority); pframemic = payload+datalen;
@@ -409,7 +422,10 @@ static signed int recvframe_chkmic(struct adapter *adapter, union recv_frame *pif (bmic_err == true) {/* double check key_index for some timing issue , */ /* cannot compare with psecuritypriv->dot118021XGrpKeyid also cause timing issue */ -if ((is_multicast_ether_addr (prxattrib->ra) == true) && (prxattrib->key_index != pmlmeinfo->key_index)) +bool is_mcast =is_multicast_ether_addr (prxattrib->ra); +bool key_mismatch = prxattrib->key_index != pmlmeinfo->key_index; + +if (is_mcast && key_mismatch) brpt_micerror = false;if (prxattrib->bdecrypted && brpt_micerror)
@@ -463,28 +479,37 @@ static union recv_frame *decryptor(struct adapter *padapter, union recv_frame *p } } -if ((prxattrib->encrypt >0 ) && ((prxattrib->bdecrypted ==0 ) || (psecuritypriv->sw_decrypt == true))) { - psecuritypriv->hw_decrypted = false; + { +bool need_decrypt = prxattrib->encrypt >0 ; +bool not_decrypted = !prxattrib->bdecrypted; +bool sw_decrypt = psecuritypriv->sw_decrypt; +bool decrypted_ok; -switch (prxattrib->encrypt) { -case _WEP40_: -case _WEP104_: -rtw_wep_decrypt (padapter, (u8 *)precv_frame); -break ; -case _TKIP_: - res =rtw_tkip_decrypt (padapter, (u8 *)precv_frame); -break ; -case _AES_: - res =rtw_aes_decrypt (padapter, (u8 *)precv_frame); -break ; -default : +if (need_decrypt && (not_decrypted || sw_decrypt)) { + psecuritypriv->hw_decrypted = false; + +switch (prxattrib->encrypt) { +case _WEP40_: +case _WEP104_: +rtw_wep_decrypt (padapter, (u8 *)precv_frame); +break ; +case _TKIP_: + res =rtw_tkip_decrypt (padapter, (u8 *)precv_frame); +break ; +case _AES_: + res =rtw_aes_decrypt (padapter, (u8 *)precv_frame); +break ; +default :break ; + } + }else { + decrypted_ok = prxattrib->bdecrypted ==1 && + prxattrib->encrypt >0 && + (psecuritypriv->busetkipkey ==1 || + prxattrib->encrypt != _TKIP_); +if (decrypted_ok) + psecuritypriv->hw_decrypted = true; } - }else if (prxattrib->bdecrypted ==1 && prxattrib->encrypt >0 && - (psecuritypriv->busetkipkey ==1 || prxattrib->encrypt != _TKIP_) - ) { - psecuritypriv->hw_decrypted = true; - }else { }if (res == _FAIL) {
@@ -564,7 +589,8 @@ static union recv_frame *portctrl(struct adapter *adapter, union recv_frame *prereturn prtnframe; } -static signed int recv_decache (union recv_frame *precv_frame,u8 bretry,struct stainfo_rxcache *prxcache) +static signed int recv_decache (union recv_frame *precv_frame,u8 bretry, +struct stainfo_rxcache *prxcache) {signed int tid = precv_frame->u.hdr.attrib.priority;
@@ -669,7 +695,8 @@ static void process_wmmps_data(struct adapter *padapter, union recv_frame *precv } } -static void count_rx_stats (struct adapter *padapter,union recv_frame *prframe,struct sta_info *sta) +static void count_rx_stats (struct adapter *padapter,union recv_frame *prframe, +struct sta_info *sta) {int sz;struct sta_info *psta =NULL ;
@@ -1149,7 +1176,8 @@ static union recv_frame *recvframe_defrag(struct adapter *adapter, }/* check if need to defrag, if needed queue the frame to defrag_q */ -static union recv_frame *recvframe_chk_defrag (struct adapter *padapter,union recv_frame *precv_frame) +static union recv_frame *recvframe_chk_defrag (struct adapter *padapter, +union recv_frame *precv_frame) {u8 ismfrag;u8 fragnum;
@@ -1257,7 +1285,8 @@ static signed int validate_recv_mgnt_frame(struct adapter *padapter, union recv_ {/* for rx pkt statistics */ -struct sta_info *psta =rtw_get_stainfo (&padapter->stapriv,GetAddr2Ptr (precv_frame->u.hdr.rx_data)); +u8 *addr2 =GetAddr2Ptr (precv_frame->u.hdr.rx_data); +struct sta_info *psta =rtw_get_stainfo (&padapter->stapriv, addr2);if (psta) { psta->sta_stats.rx_mgnt_pkts++;
@@ -1622,7 +1651,8 @@ static signed int wlanhdr_to_ethhdr(union recv_frame *precvframe)return _SUCCESS; } -static struct sk_buff *rtw_alloc_msdu_pkt (union recv_frame *prframe,u16 nSubframe_Length,u8 *pdata) +static struct sk_buff *rtw_alloc_msdu_pkt (union recv_frame *prframe, +u16 nSubframe_Length,u8 *pdata) {u16 eth_type;struct sk_buff *sub_skb;
@@ -1662,7 +1692,8 @@ static struct sk_buff *rtw_alloc_msdu_pkt(union recv_frame *prframe, u16 nSubfrareturn sub_skb; } -static void rtw_recv_indicate_pkt (struct adapter *padapter,struct sk_buff *pkt,struct rx_pkt_attrib *pattrib) +static void rtw_recv_indicate_pkt (struct adapter *padapter,struct sk_buff *pkt, +struct rx_pkt_attrib *pattrib) {struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
@@ -1812,7 +1843,8 @@ static int check_indicate_seq(struct recv_reorder_ctrl *preorder_ctrl, u16 seq_nreturn true; } -static int enqueue_reorder_recvframe (struct recv_reorder_ctrl *preorder_ctrl,union recv_frame *prframe) +static int enqueue_reorder_recvframe (struct recv_reorder_ctrl *preorder_ctrl, +union recv_frame *prframe) {struct rx_pkt_attrib *pattrib = &prframe->u.hdr.attrib;struct __queue *ppending_recvframe_queue = &preorder_ctrl->pending_recvframe_queue;
@@ -1894,7 +1926,9 @@ static int rtw_recv_indicatepkt(struct adapter *padapter, union recv_frame *precreturn _FAIL; } -static int recv_indicatepkts_in_order (struct adapter *padapter,struct recv_reorder_ctrl *preorder_ctrl,int bforced) +static int recv_indicatepkts_in_order (struct adapter *padapter, +struct recv_reorder_ctrl *preorder_ctrl, +int bforced) {struct list_head *phead, *plist;union recv_frame *prframe;
@@ -2093,7 +2127,8 @@ static int process_recv_indicatepkts(struct adapter *padapter, union recv_frameif (phtpriv->ht_option == true) {/* B/G/N Mode */ /* prframe->u.hdr.preorder_ctrl = &precvpriv->recvreorder_ctrl[pattrib->priority]; */ -if (recv_indicatepkt_reorder (padapter, prframe) != _SUCCESS) {/* including perform A-MPDU Rx Ordering Buffer Control */ +/* including perform A-MPDU Rx Ordering Buffer Control */ +if (recv_indicatepkt_reorder (padapter, prframe) != _SUCCESS) {if ((padapter->bDriverStopped == false) && (padapter->bSurpriseRemoved == false)) {
@@ -2252,12 +2287,15 @@ static void rtw_signal_stat_timer_hdl(struct timer_list *t)u8 avg_signal_qual =0 ;u32 num_signal_strength =0 ;u32 __maybe_unused num_signal_qual =0 ; -u8 _alpha =5 ;/* this value is based on converging_constant = 5000 and sampling_interval = 1000 */ +/* based on converging_constant = 5000 and sampling_interval = 1000 */ +u8 _alpha =5 ;if (adapter->recvpriv.is_signal_dbg) {/* update the user specific value, signal_strength_dbg, to signal_strength, rssi */ - adapter->recvpriv.signal_strength = adapter->recvpriv.signal_strength_dbg; - adapter->recvpriv.rssi = (s8 )translate_percentage_to_dbm ((u8 )adapter->recvpriv.signal_strength_dbg); +u8 strength_dbg = adapter->recvpriv.signal_strength_dbg; + + adapter->recvpriv.signal_strength = strength_dbg; + adapter->recvpriv.rssi = (s8 )translate_percentage_to_dbm (strength_dbg); }else {if (recvpriv->signal_strength_data.update_req ==0 ) {/* update_req is clear, means we got rx */
@@ -2275,9 +2313,11 @@ static void rtw_signal_stat_timer_hdl(struct timer_list *t) }if (num_signal_strength ==0 ) { -if (rtw_get_on_cur_ch_time (adapter) ==0 || -jiffies_to_msecs (jiffies -rtw_get_on_cur_ch_time (adapter)) <2 * adapter->mlmeextpriv.mlmext_info.bcn_interval - ) { +unsigned long on_ch_time =rtw_get_on_cur_ch_time (adapter); +u32 bcn_intvl = adapter->mlmeextpriv.mlmext_info.bcn_interval; + +if (on_ch_time ==0 || +jiffies_to_msecs (jiffies - on_ch_time) <2 * bcn_intvl) { goto set_timer; } }
Signature · 1 line
2.52.0
PATCH v3 10/22 staging: rtl8723bs: hal: fix line lengths in HalPhyRf_8723B.c
In reply to [email protected]From: Luka Gejak <[email protected]>
Break long lines exceeding 100 characters to comply with kernel coding style.
--- .../staging/rtl8723bs/hal/HalPhyRf_8723B.c | 176 ++++++++++++------ 1 file changed, 124 insertions(+), 52 deletions(-)
drivers/staging/rtl8723bs/hal/HalPhyRf_8723B.c +124 -52
@@ -101,13 +101,15 @@ static void setIqkMatrix_8723B( }else {switch (RFPath) {case RF_PATH_A : -PHY_SetBBReg (pDM_Odm->Adapter, rOFDM0_XATxIQImbalance, bMaskDWord, OFDMSwingTable_New[OFDM_index]); +PHY_SetBBReg (pDM_Odm->Adapter, rOFDM0_XATxIQImbalance, + bMaskDWord, OFDMSwingTable_New[OFDM_index]);PHY_SetBBReg (pDM_Odm->Adapter, rOFDM0_XCTxAFE, bMaskH4Bits,0x00 );PHY_SetBBReg (pDM_Odm->Adapter, rOFDM0_ECCAThreshold,BIT24 ,0x00 );break ;case RF_PATH_B : -PHY_SetBBReg (pDM_Odm->Adapter, rOFDM0_XBTxIQImbalance, bMaskDWord, OFDMSwingTable_New[OFDM_index]); +PHY_SetBBReg (pDM_Odm->Adapter, rOFDM0_XBTxIQImbalance, + bMaskDWord, OFDMSwingTable_New[OFDM_index]);PHY_SetBBReg (pDM_Odm->Adapter, rOFDM0_XDTxAFE, bMaskH4Bits,0x00 );PHY_SetBBReg (pDM_Odm->Adapter, rOFDM0_ECCAThreshold,BIT28 ,0x00 );break ;
@@ -957,20 +959,25 @@ static void _PHY_PathAFillIQKMatrix8723B(TX0_C = (Y * Oldval_0) >>8 ;PHY_SetBBReg (pDM_Odm->Adapter, rOFDM0_XCTxAFE,0xF0000000 , ((TX0_C &0x3C0 )>>6 )); pRFCalibrateInfo->TxIQC_8723B[PATH_S1 ][IDX_0xC94][KEY ] = rOFDM0_XCTxAFE; - pRFCalibrateInfo->TxIQC_8723B[PATH_S1 ][IDX_0xC94][VAL ] =PHY_QueryBBReg (pDM_Odm->Adapter, rOFDM0_XCTxAFE, bMaskDWord); + pRFCalibrateInfo->TxIQC_8723B[PATH_S1 ][IDX_0xC94][VAL ] = +PHY_QueryBBReg (pDM_Odm->Adapter, rOFDM0_XCTxAFE, bMaskDWord);PHY_SetBBReg (pDM_Odm->Adapter, rOFDM0_XATxIQImbalance,0x003F0000 , (TX0_C &0x3F )); pRFCalibrateInfo->TxIQC_8723B[PATH_S1 ][IDX_0xC80][KEY ] = rOFDM0_XATxIQImbalance; - pRFCalibrateInfo->TxIQC_8723B[PATH_S1 ][IDX_0xC80][VAL ] =PHY_QueryBBReg (pDM_Odm->Adapter, rOFDM0_XATxIQImbalance, bMaskDWord); + pRFCalibrateInfo->TxIQC_8723B[PATH_S1 ][IDX_0xC80][VAL ] = +PHY_QueryBBReg (pDM_Odm->Adapter, rOFDM0_XATxIQImbalance, bMaskDWord);PHY_SetBBReg (pDM_Odm->Adapter, rOFDM0_ECCAThreshold,BIT (29 ), ((Y *Oldval_0>>7 ) &0x1 )); pRFCalibrateInfo->TxIQC_8723B[PATH_S1 ][IDX_0xC4C][KEY ] = rOFDM0_ECCAThreshold; - pRFCalibrateInfo->TxIQC_8723B[PATH_S1 ][IDX_0xC4C][VAL ] =PHY_QueryBBReg (pDM_Odm->Adapter, rOFDM0_ECCAThreshold, bMaskDWord); + pRFCalibrateInfo->TxIQC_8723B[PATH_S1 ][IDX_0xC4C][VAL ] = +PHY_QueryBBReg (pDM_Odm->Adapter, rOFDM0_ECCAThreshold, bMaskDWord);if (bTxOnly) {/* <20130226, Kordan> Saving RxIQC, otherwise not initialized. */ pRFCalibrateInfo->RxIQC_8723B[PATH_S1 ][IDX_0xCA0][KEY ] = rOFDM0_RxIQExtAnta; - pRFCalibrateInfo->RxIQC_8723B[PATH_S1 ][IDX_0xCA0][VAL ] =0xfffffff &PHY_QueryBBReg (pDM_Odm->Adapter, rOFDM0_RxIQExtAnta, bMaskDWord); + pRFCalibrateInfo->RxIQC_8723B[PATH_S1 ][IDX_0xCA0][VAL ] = +0xfffffff &PHY_QueryBBReg (pDM_Odm->Adapter, + rOFDM0_RxIQExtAnta, bMaskDWord); pRFCalibrateInfo->RxIQC_8723B[PATH_S1 ][IDX_0xC14][KEY ] = rOFDM0_XARxIQImbalance;/* pRFCalibrateInfo->RxIQC_8723B[PATH_S1][IDX_0xC14][VAL] = PHY_QueryBBReg(pDM_Odm->Adapter, rOFDM0_XARxIQImbalance, bMaskDWord); */ pRFCalibrateInfo->RxIQC_8723B[PATH_S1 ][IDX_0xC14][VAL ] =0x40000100 ;
@@ -984,12 +991,14 @@ static void _PHY_PathAFillIQKMatrix8723B( reg = result[final_candidate][3 ] &0x3F ;PHY_SetBBReg (pDM_Odm->Adapter, rOFDM0_XARxIQImbalance,0xFC00 , reg); pRFCalibrateInfo->RxIQC_8723B[PATH_S1 ][IDX_0xC14][KEY ] = rOFDM0_XARxIQImbalance; - pRFCalibrateInfo->RxIQC_8723B[PATH_S1 ][IDX_0xC14][VAL ] =PHY_QueryBBReg (pDM_Odm->Adapter, rOFDM0_XARxIQImbalance, bMaskDWord); + pRFCalibrateInfo->RxIQC_8723B[PATH_S1 ][IDX_0xC14][VAL ] = +PHY_QueryBBReg (pDM_Odm->Adapter, rOFDM0_XARxIQImbalance, bMaskDWord); reg = (result[final_candidate][3 ] >>6 ) &0xF ;PHY_SetBBReg (pDM_Odm->Adapter, rOFDM0_RxIQExtAnta,0xF0000000 , reg); pRFCalibrateInfo->RxIQC_8723B[PATH_S1 ][IDX_0xCA0][KEY ] = rOFDM0_RxIQExtAnta; - pRFCalibrateInfo->RxIQC_8723B[PATH_S1 ][IDX_0xCA0][VAL ] =PHY_QueryBBReg (pDM_Odm->Adapter, rOFDM0_RxIQExtAnta, bMaskDWord); + pRFCalibrateInfo->RxIQC_8723B[PATH_S1 ][IDX_0xCA0][VAL ] = +PHY_QueryBBReg (pDM_Odm->Adapter, rOFDM0_RxIQExtAnta, bMaskDWord); } }
@@ -1035,22 +1044,27 @@ static void _PHY_PathBFillIQKMatrix8723B(/* pRFCalibrateInfo->TxIQC_8723B[PATH_S0][IDX_0xC9C][KEY] = rOFDM0_XDTxAFE; */ /* pRFCalibrateInfo->TxIQC_8723B[PATH_S0][IDX_0xC9C][VAL] = PHY_QueryBBReg(pDM_Odm->Adapter, rOFDM0_XDTxAFE, bMaskDWord); */ pRFCalibrateInfo->TxIQC_8723B[PATH_S0 ][IDX_0xC94][KEY ] = rOFDM0_XCTxAFE; - pRFCalibrateInfo->TxIQC_8723B[PATH_S0 ][IDX_0xC94][VAL ] =PHY_QueryBBReg (pDM_Odm->Adapter, rOFDM0_XDTxAFE, bMaskDWord); + pRFCalibrateInfo->TxIQC_8723B[PATH_S0 ][IDX_0xC94][VAL ] = +PHY_QueryBBReg (pDM_Odm->Adapter, rOFDM0_XDTxAFE, bMaskDWord);PHY_SetBBReg (pDM_Odm->Adapter, rOFDM0_XBTxIQImbalance,0x003F0000 , (TX1_C &0x3F )); pRFCalibrateInfo->TxIQC_8723B[PATH_S0 ][IDX_0xC80][KEY ] = rOFDM0_XATxIQImbalance; - pRFCalibrateInfo->TxIQC_8723B[PATH_S0 ][IDX_0xC80][VAL ] =PHY_QueryBBReg (pDM_Odm->Adapter, rOFDM0_XBTxIQImbalance, bMaskDWord); + pRFCalibrateInfo->TxIQC_8723B[PATH_S0 ][IDX_0xC80][VAL ] = +PHY_QueryBBReg (pDM_Odm->Adapter, rOFDM0_XBTxIQImbalance, bMaskDWord);PHY_SetBBReg (pDM_Odm->Adapter, rOFDM0_ECCAThreshold,BIT (25 ), ((Y *Oldval_1>>7 ) &0x1 )); pRFCalibrateInfo->TxIQC_8723B[PATH_S0 ][IDX_0xC4C][KEY ] = rOFDM0_ECCAThreshold; - pRFCalibrateInfo->TxIQC_8723B[PATH_S0 ][IDX_0xC4C][VAL ] =PHY_QueryBBReg (pDM_Odm->Adapter, rOFDM0_ECCAThreshold, bMaskDWord); + pRFCalibrateInfo->TxIQC_8723B[PATH_S0 ][IDX_0xC4C][VAL ] = +PHY_QueryBBReg (pDM_Odm->Adapter, rOFDM0_ECCAThreshold, bMaskDWord);if (bTxOnly) { pRFCalibrateInfo->RxIQC_8723B[PATH_S0 ][IDX_0xC14][KEY ] = rOFDM0_XARxIQImbalance;/* pRFCalibrateInfo->RxIQC_8723B[PATH_S0][IDX_0xC14][VAL] = PHY_QueryBBReg(pDM_Odm->Adapter, rOFDM0_XARxIQImbalance, bMaskDWord); */ pRFCalibrateInfo->RxIQC_8723B[PATH_S0 ][IDX_0xC14][VAL ] =0x40000100 ; pRFCalibrateInfo->RxIQC_8723B[PATH_S0 ][IDX_0xCA0][KEY ] = rOFDM0_RxIQExtAnta; - pRFCalibrateInfo->RxIQC_8723B[PATH_S0 ][IDX_0xCA0][VAL ] =0x0fffffff &PHY_QueryBBReg (pDM_Odm->Adapter, rOFDM0_RxIQExtAnta, bMaskDWord); + pRFCalibrateInfo->RxIQC_8723B[PATH_S0 ][IDX_0xCA0][VAL ] = +0x0fffffff &PHY_QueryBBReg (pDM_Odm->Adapter, + rOFDM0_RxIQExtAnta, bMaskDWord);return ; }
@@ -1060,12 +1074,15 @@ static void _PHY_PathBFillIQKMatrix8723B( reg = result[final_candidate][7 ] &0x3F ;PHY_SetBBReg (pDM_Odm->Adapter, rOFDM0_XBRxIQImbalance,0xFC00 , reg); pRFCalibrateInfo->RxIQC_8723B[PATH_S0 ][IDX_0xC14][KEY ] = rOFDM0_XARxIQImbalance; - pRFCalibrateInfo->RxIQC_8723B[PATH_S0 ][IDX_0xC14][VAL ] =PHY_QueryBBReg (pDM_Odm->Adapter, rOFDM0_XBRxIQImbalance, bMaskDWord); + pRFCalibrateInfo->RxIQC_8723B[PATH_S0 ][IDX_0xC14][VAL ] = +PHY_QueryBBReg (pDM_Odm->Adapter, rOFDM0_XBRxIQImbalance, bMaskDWord); reg = (result[final_candidate][7 ] >>6 ) &0xF ;/* PHY_SetBBReg(pDM_Odm->Adapter, rOFDM0_AGCRSSITable, 0x0000F000, reg); */ pRFCalibrateInfo->RxIQC_8723B[PATH_S0 ][IDX_0xCA0][KEY ] = rOFDM0_RxIQExtAnta; - pRFCalibrateInfo->RxIQC_8723B[PATH_S0 ][IDX_0xCA0][VAL ] = (reg <<28 )|(PHY_QueryBBReg (pDM_Odm->Adapter, rOFDM0_RxIQExtAnta, bMaskDWord)&0x0fffffff ); + pRFCalibrateInfo->RxIQC_8723B[PATH_S0 ][IDX_0xCA0][VAL ] = (reg <<28 ) | + (PHY_QueryBBReg (pDM_Odm->Adapter, rOFDM0_RxIQExtAnta, bMaskDWord) & +0x0fffffff ); } }
@@ -1078,7 +1095,6 @@ void ODM_SetIQCbyRFpath(struct dm_odm_t *pDM_Odm, u32 RFpath) {struct odm_rf_cal_t *pRFCalibrateInfo = &pDM_Odm->RFCalibrateInfo; -u8 path; if ( (pRFCalibrateInfo->TxIQC_8723B[PATH_S0][IDX_0xC80][VAL] != 0x0) &&
@@ -1086,18 +1102,31 @@ void ODM_SetIQCbyRFpath(struct dm_odm_t *pDM_Odm, u32 RFpath) (pRFCalibrateInfo->TxIQC_8723B[PATH_S1][IDX_0xC80][VAL] != 0x0) && (pRFCalibrateInfo->RxIQC_8723B[PATH_S1][IDX_0xC14][VAL] != 0x0) ) { -if (RFpath) - path =PATH_S0 ; -else - path =PATH_S1 ; - -/* TX IQC */ -PHY_SetBBReg (pDM_Odm->Adapter, pRFCalibrateInfo->TxIQC_8723B[path][IDX_0xC94][KEY ], bMaskDWord, pRFCalibrateInfo->TxIQC_8723B[path][IDX_0xC94][VAL ]); -PHY_SetBBReg (pDM_Odm->Adapter, pRFCalibrateInfo->TxIQC_8723B[path][IDX_0xC80][KEY ], bMaskDWord, pRFCalibrateInfo->TxIQC_8723B[path][IDX_0xC80][VAL ]); -PHY_SetBBReg (pDM_Odm->Adapter, pRFCalibrateInfo->TxIQC_8723B[path][IDX_0xC4C][KEY ], bMaskDWord, pRFCalibrateInfo->TxIQC_8723B[path][IDX_0xC4C][VAL ]); -/* RX IQC */ -PHY_SetBBReg (pDM_Odm->Adapter, pRFCalibrateInfo->RxIQC_8723B[path][IDX_0xC14][KEY ], bMaskDWord, pRFCalibrateInfo->RxIQC_8723B[path][IDX_0xC14][VAL ]); -PHY_SetBBReg (pDM_Odm->Adapter, pRFCalibrateInfo->RxIQC_8723B[path][IDX_0xCA0][KEY ], bMaskDWord, pRFCalibrateInfo->RxIQC_8723B[path][IDX_0xCA0][VAL ]); +if (RFpath) {/* S1: RFpath = 0, S0:RFpath = 1 */ +u32 (*tx)[2 ] = pRFCalibrateInfo->TxIQC_8723B[PATH_S0 ]; +u32 (*rx)[2 ] = pRFCalibrateInfo->RxIQC_8723B[PATH_S0 ]; +struct adapter *a = pDM_Odm->Adapter; + +/* S0 TX IQC */ +PHY_SetBBReg (a, tx[IDX_0xC94][KEY ], bMaskDWord, tx[IDX_0xC94][VAL ]); +PHY_SetBBReg (a, tx[IDX_0xC80][KEY ], bMaskDWord, tx[IDX_0xC80][VAL ]); +PHY_SetBBReg (a, tx[IDX_0xC4C][KEY ], bMaskDWord, tx[IDX_0xC4C][VAL ]); +/* S0 RX IQC */ +PHY_SetBBReg (a, rx[IDX_0xC14][KEY ], bMaskDWord, rx[IDX_0xC14][VAL ]); +PHY_SetBBReg (a, rx[IDX_0xCA0][KEY ], bMaskDWord, rx[IDX_0xCA0][VAL ]); + }else { +u32 (*tx)[2 ] = pRFCalibrateInfo->TxIQC_8723B[PATH_S1 ]; +u32 (*rx)[2 ] = pRFCalibrateInfo->RxIQC_8723B[PATH_S1 ]; +struct adapter *a = pDM_Odm->Adapter; + +/* S1 TX IQC */ +PHY_SetBBReg (a, tx[IDX_0xC94][KEY ], bMaskDWord, tx[IDX_0xC94][VAL ]); +PHY_SetBBReg (a, tx[IDX_0xC80][KEY ], bMaskDWord, tx[IDX_0xC80][VAL ]); +PHY_SetBBReg (a, tx[IDX_0xC4C][KEY ], bMaskDWord, tx[IDX_0xC4C][VAL ]); +/* S1 RX IQC */ +PHY_SetBBReg (a, rx[IDX_0xC14][KEY ], bMaskDWord, rx[IDX_0xC14][VAL ]); +PHY_SetBBReg (a, rx[IDX_0xCA0][KEY ], bMaskDWord, rx[IDX_0xCA0][VAL ]); + } } }
@@ -1356,11 +1385,15 @@ static void phy_IQCalibrate_8723B(/* u32 bbvalue; */ if (t ==0 ) { +struct odm_rf_cal_t *cal = &pDM_Odm->RFCalibrateInfo;/* Save ADDA parameters, turn Path A ADDA on */ -_PHY_SaveADDARegisters8723B (padapter,ADDA_REG , pDM_Odm->RFCalibrateInfo.ADDA_backup,IQK_ADDA_REG_NUM ); -_PHY_SaveMACRegisters8723B (padapter,IQK_MAC_REG , pDM_Odm->RFCalibrateInfo.IQK_MAC_backup); -_PHY_SaveADDARegisters8723B (padapter,IQK_BB_REG_92C , pDM_Odm->RFCalibrateInfo.IQK_BB_backup,IQK_BB_REG_NUM ); +_PHY_SaveADDARegisters8723B (padapter,ADDA_REG , + cal->ADDA_backup,IQK_ADDA_REG_NUM ); +_PHY_SaveMACRegisters8723B (padapter,IQK_MAC_REG , + cal->IQK_MAC_backup); +_PHY_SaveADDARegisters8723B (padapter,IQK_BB_REG_92C , + cal->IQK_BB_backup,IQK_BB_REG_NUM ); }_PHY_PathADDAOn8723B (padapter,ADDA_REG , is2T);
@@ -1403,12 +1436,20 @@ static void phy_IQCalibrate_8723B( PathAOK =phy_PathA_IQK_8723B (padapter, is2T, RF_Path);/* if (PathAOK == 0x03) { */ if (PathAOK ==0x01 ) { +u32 val; +/* Path A Tx IQK Success */ PHY_SetBBReg (pDM_Odm->Adapter, rFPGA0_IQK, bMaskH3Bytes,0x000000 ); - pDM_Odm->RFCalibrateInfo.TxLOK[RF_PATH_A ] =PHY_QueryRFReg (pDM_Odm->Adapter,RF_PATH_A ,0x8 , bRFRegOffsetMask); - - result[t][0 ] = (PHY_QueryBBReg (pDM_Odm->Adapter, rTx_Power_Before_IQK_A, bMaskDWord)&0x3FF0000 )>>16 ; - result[t][1 ] = (PHY_QueryBBReg (pDM_Odm->Adapter, rTx_Power_After_IQK_A, bMaskDWord)&0x3FF0000 )>>16 ; + pDM_Odm->RFCalibrateInfo.TxLOK[RF_PATH_A ] = +PHY_QueryRFReg (pDM_Odm->Adapter,RF_PATH_A ,0x8 , + bRFRegOffsetMask); + + val =PHY_QueryBBReg (pDM_Odm->Adapter, + rTx_Power_Before_IQK_A, bMaskDWord); + result[t][0 ] = (val &0x3FF0000 ) >>16 ; + val =PHY_QueryBBReg (pDM_Odm->Adapter, + rTx_Power_After_IQK_A, bMaskDWord); + result[t][1 ] = (val &0x3FF0000 ) >>16 ;break ; } }
@@ -1417,10 +1458,15 @@ static void phy_IQCalibrate_8723B(for (i =0 ; i < retryCount ; i++) { PathAOK =phy_PathA_RxIQK8723B (padapter, is2T, RF_Path);if (PathAOK ==0x03 ) { +u32 val;/* result[t][0] = (PHY_QueryBBReg(pDM_Odm->Adapter, rTx_Power_Before_IQK_A, bMaskDWord)&0x3FF0000)>>16; */ /* result[t][1] = (PHY_QueryBBReg(pDM_Odm->Adapter, rTx_Power_After_IQK_A, bMaskDWord)&0x3FF0000)>>16; */ - result[t][2 ] = (PHY_QueryBBReg (pDM_Odm->Adapter, rRx_Power_Before_IQK_A_2, bMaskDWord)&0x3FF0000 )>>16 ; - result[t][3 ] = (PHY_QueryBBReg (pDM_Odm->Adapter, rRx_Power_After_IQK_A_2, bMaskDWord)&0x3FF0000 )>>16 ; + val =PHY_QueryBBReg (pDM_Odm->Adapter, + rRx_Power_Before_IQK_A_2, bMaskDWord); + result[t][2 ] = (val &0x3FF0000 ) >>16 ; + val =PHY_QueryBBReg (pDM_Odm->Adapter, + rRx_Power_After_IQK_A_2, bMaskDWord); + result[t][3 ] = (val &0x3FF0000 ) >>16 ;break ; } }
@@ -1435,12 +1481,20 @@ static void phy_IQCalibrate_8723B(for (i =0 ; i < retryCount ; i++) { PathBOK =phy_PathB_IQK_8723B (padapter);if (PathBOK ==0x01 ) { +u32 val; +/* Path B Tx IQK Success */ PHY_SetBBReg (pDM_Odm->Adapter, rFPGA0_IQK, bMaskH3Bytes,0x000000 ); - pDM_Odm->RFCalibrateInfo.TxLOK[RF_PATH_B ] =PHY_QueryRFReg (pDM_Odm->Adapter,RF_PATH_B ,0x8 , bRFRegOffsetMask); - - result[t][4 ] = (PHY_QueryBBReg (pDM_Odm->Adapter, rTx_Power_Before_IQK_A, bMaskDWord)&0x3FF0000 )>>16 ; - result[t][5 ] = (PHY_QueryBBReg (pDM_Odm->Adapter, rTx_Power_After_IQK_A, bMaskDWord)&0x3FF0000 )>>16 ; + pDM_Odm->RFCalibrateInfo.TxLOK[RF_PATH_B ] = +PHY_QueryRFReg (pDM_Odm->Adapter,RF_PATH_B , +0x8 , bRFRegOffsetMask); + + val =PHY_QueryBBReg (pDM_Odm->Adapter, + rTx_Power_Before_IQK_A, bMaskDWord); + result[t][4 ] = (val &0x3FF0000 ) >>16 ; + val =PHY_QueryBBReg (pDM_Odm->Adapter, + rTx_Power_After_IQK_A, bMaskDWord); + result[t][5 ] = (val &0x3FF0000 ) >>16 ;break ; } }
@@ -1449,10 +1503,15 @@ static void phy_IQCalibrate_8723B(for (i =0 ; i < retryCount ; i++) { PathBOK =phy_PathB_RxIQK8723B (padapter, is2T);if (PathBOK ==0x03 ) { +u32 val;/* result[t][0] = (PHY_QueryBBReg(pDM_Odm->Adapter, rTx_Power_Before_IQK_A, bMaskDWord)&0x3FF0000)>>16; */ /* result[t][1] = (PHY_QueryBBReg(pDM_Odm->Adapter, rTx_Power_After_IQK_A, bMaskDWord)&0x3FF0000)>>16; */ - result[t][6 ] = (PHY_QueryBBReg (pDM_Odm->Adapter, rRx_Power_Before_IQK_A_2, bMaskDWord)&0x3FF0000 )>>16 ; - result[t][7 ] = (PHY_QueryBBReg (pDM_Odm->Adapter, rRx_Power_After_IQK_A_2, bMaskDWord)&0x3FF0000 )>>16 ; + val =PHY_QueryBBReg (pDM_Odm->Adapter, + rRx_Power_Before_IQK_A_2, bMaskDWord); + result[t][6 ] = (val &0x3FF0000 ) >>16 ; + val =PHY_QueryBBReg (pDM_Odm->Adapter, + rRx_Power_After_IQK_A_2, bMaskDWord); + result[t][7 ] = (val &0x3FF0000 ) >>16 ;break ; } }
@@ -1464,13 +1523,18 @@ static void phy_IQCalibrate_8723B(PHY_SetBBReg (pDM_Odm->Adapter, rFPGA0_IQK, bMaskH3Bytes,0 );if (t !=0 ) { +struct odm_rf_cal_t *cal = &pDM_Odm->RFCalibrateInfo; +/* Reload ADDA power saving parameters */ -_PHY_ReloadADDARegisters8723B (padapter,ADDA_REG , pDM_Odm->RFCalibrateInfo.ADDA_backup,IQK_ADDA_REG_NUM ); +_PHY_ReloadADDARegisters8723B (padapter,ADDA_REG , + cal->ADDA_backup,IQK_ADDA_REG_NUM );/* Reload MAC parameters */ -_PHY_ReloadMACRegisters8723B (padapter,IQK_MAC_REG , pDM_Odm->RFCalibrateInfo.IQK_MAC_backup); +_PHY_ReloadMACRegisters8723B (padapter,IQK_MAC_REG , + cal->IQK_MAC_backup); -_PHY_ReloadADDARegisters8723B (padapter,IQK_BB_REG_92C , pDM_Odm->RFCalibrateInfo.IQK_BB_backup,IQK_BB_REG_NUM ); +_PHY_ReloadADDARegisters8723B (padapter,IQK_BB_REG_92C , + cal->IQK_BB_backup,IQK_BB_REG_NUM );/* Reload RF path */ /* PHY_SetBBReg(pDM_Odm->Adapter, 0x948, bMaskDWord, Path_SEL_BB); */
@@ -1609,8 +1673,10 @@ void PHY_IQCalibrate_8723B(u32 offset, data;u8 path, bResult =SUCCESS ;struct odm_rf_cal_t *pRFCalibrateInfo = &pDM_Odm->RFCalibrateInfo; +struct adapter *a = pDM_Odm->Adapter; - path = (PHY_QueryBBReg (pDM_Odm->Adapter, rS0S1_PathSwitch, bMaskByte0) ==0x00 ) ?RF_PATH_A :RF_PATH_B ; + path = (PHY_QueryBBReg (a, rS0S1_PathSwitch, bMaskByte0) ==0x00 ) ? +RF_PATH_A :RF_PATH_B ;/* Restore TX IQK */ for (i =0 ; i <3 ; ++i) {
@@ -1620,7 +1686,7 @@ void PHY_IQCalibrate_8723B( bResult =FAIL ;break ; } -PHY_SetBBReg (pDM_Odm->Adapter, offset, bMaskDWord, data); +PHY_SetBBReg (a, offset, bMaskDWord, data); }/* Restore RX IQK */
@@ -1631,14 +1697,16 @@ void PHY_IQCalibrate_8723B( bResult =FAIL ;break ; } -PHY_SetBBReg (pDM_Odm->Adapter, offset, bMaskDWord, data); +PHY_SetBBReg (a, offset, bMaskDWord, data); }if (pDM_Odm->RFCalibrateInfo.TxLOK[RF_PATH_A ] ==0 ) { bResult =FAIL ; }else { -PHY_SetRFReg (pDM_Odm->Adapter,RF_PATH_A ,RF_TXM_IDAC , bRFRegOffsetMask, pDM_Odm->RFCalibrateInfo.TxLOK[RF_PATH_A ]); -PHY_SetRFReg (pDM_Odm->Adapter,RF_PATH_B ,RF_TXM_IDAC , bRFRegOffsetMask, pDM_Odm->RFCalibrateInfo.TxLOK[RF_PATH_B ]); +PHY_SetRFReg (a,RF_PATH_A ,RF_TXM_IDAC , bRFRegOffsetMask, + pRFCalibrateInfo->TxLOK[RF_PATH_A ]); +PHY_SetRFReg (a,RF_PATH_B ,RF_TXM_IDAC , bRFRegOffsetMask, + pRFCalibrateInfo->TxLOK[RF_PATH_B ]); }if (bResult ==SUCCESS )
@@ -1646,7 +1714,9 @@ void PHY_IQCalibrate_8723B( }if (bReCovery) { -_PHY_ReloadADDARegisters8723B (padapter,IQK_BB_REG_92C , pDM_Odm->RFCalibrateInfo.IQK_BB_backup_recover,9 ); +_PHY_ReloadADDARegisters8723B (padapter,IQK_BB_REG_92C , + pDM_Odm->RFCalibrateInfo.IQK_BB_backup_recover, +9 );return ; }
@@ -1748,7 +1818,9 @@ void PHY_IQCalibrate_8723B( pDM_Odm->RFCalibrateInfo.iqk_matrix_regs_setting_value[0 ][i] = result[final_candidate][i]; } -_PHY_SaveADDARegisters8723B (padapter,IQK_BB_REG_92C , pDM_Odm->RFCalibrateInfo.IQK_BB_backup_recover,9 ); +_PHY_SaveADDARegisters8723B (padapter,IQK_BB_REG_92C , + pDM_Odm->RFCalibrateInfo.IQK_BB_backup_recover, +9 );/* restore GNT_BT */ PHY_SetBBReg (pDM_Odm->Adapter,0x764 , bMaskDWord, GNT_BT_default);
Signature · 1 line
2.52.0
PATCH v3 11/22 staging: rtl8723bs: os_dep: fix line lengths in ioctl_cfg80211.c
In reply to [email protected]From: Luka Gejak <[email protected]>
Break long lines exceeding 100 characters to comply with kernel coding style.
--- .../staging/rtl8723bs/os_dep/ioctl_cfg80211.c | 134 ++++++++++++------ 1 file changed, 94 insertions(+), 40 deletions(-)
drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c +94 -40
@@ -127,8 +127,10 @@ static struct ieee80211_supported_band *rtw_spt_band_alloc(if (!spt_band) goto exit; - spt_band->channels = (struct ieee80211_channel *)(((u8 *)spt_band) +sizeof (struct ieee80211_supported_band )); - spt_band->bitrates = (struct ieee80211_rate *)(((u8 *)spt_band->channels) +sizeof (struct ieee80211_channel ) * n_channels); + spt_band->channels = (struct ieee80211_channel *)(((u8 *)spt_band) + +sizeof (struct ieee80211_supported_band )); + spt_band->bitrates = (struct ieee80211_rate *)(((u8 *)spt_band->channels) + +sizeof (struct ieee80211_channel ) * n_channels); spt_band->band = band; spt_band->n_channels = n_channels; spt_band->n_bitrates = n_bitrates;
@@ -207,7 +209,8 @@ int rtw_ieee80211_channel_to_frequency(int chan) }#define MAX_BSSINFO_LEN 1000 -struct cfg80211_bss *rtw_cfg80211_inform_bss (struct adapter *padapter,struct wlan_network *pnetwork) +struct cfg80211_bss *rtw_cfg80211_inform_bss (struct adapter *padapter, +struct wlan_network *pnetwork) {struct ieee80211_channel *notify_channel;struct cfg80211_bss *bss =NULL ;
@@ -248,7 +251,10 @@ struct cfg80211_bss *rtw_cfg80211_inform_bss(struct adapter *padapter, struct wlu32 wpsielen =0 ;u8 *wpsie =NULL ; - wpsie =rtw_get_wps_ie (pnetwork->network.ies + _FIXED_IE_LENGTH_, pnetwork->network.ie_length - _FIXED_IE_LENGTH_,NULL , &wpsielen); +u8 *ies = pnetwork->network.ies + _FIXED_IE_LENGTH_; +uint ie_len = pnetwork->network.ie_length - _FIXED_IE_LENGTH_; + + wpsie =rtw_get_wps_ie (ies, ie_len,NULL , &wpsielen);if (wpsie && wpsielen >0 ) psr =rtw_get_wps_attr_content (wpsie, wpsielen,WPS_ATTR_SELECTED_REGISTRAR , (u8 *)(&sr),NULL );
@@ -277,9 +283,13 @@ struct cfg80211_bss *rtw_cfg80211_inform_bss(struct adapter *padapter, struct wl/* We've set wiphy's signal_type as CFG80211_SIGNAL_TYPE_MBM: signal strength in mBm (100*dBm) */ if (check_fwstate (pmlmepriv, _FW_LINKED) == true &&is_same_network (&pmlmepriv->cur_network.network, &pnetwork->network,0 )) { - notify_signal =100 *translate_percentage_to_dbm (padapter->recvpriv.signal_strength);/* dbm */ +u8 sig = padapter->recvpriv.signal_strength; + + notify_signal =100 *translate_percentage_to_dbm (sig); }else { - notify_signal =100 *translate_percentage_to_dbm (pnetwork->network.phy_info.signal_strength);/* dbm */ +u8 sig = pnetwork->network.phy_info.signal_strength; + + notify_signal =100 *translate_percentage_to_dbm (sig); } buf =kzalloc (MAX_BSSINFO_LEN ,GFP_ATOMIC );
@@ -380,9 +390,10 @@ void rtw_cfg80211_ibss_indicate_connect(struct adapter *padapter)rtw_warn_on (1 );return ; } -if (!memcmp (&(scanned->network.ssid), &(pnetwork->ssid),sizeof (struct ndis_802_11_ssid )) - && !memcmp (scanned->network.mac_address, pnetwork->mac_address,ETH_ALEN ) - ) +if (!memcmp (&scanned->network.ssid, &pnetwork->ssid, +sizeof (struct ndis_802_11_ssid )) && + !memcmp (scanned->network.mac_address, + pnetwork->mac_address,ETH_ALEN ))rtw_cfg80211_inform_bss (padapter, scanned);else rtw_warn_on (1 );
@@ -493,18 +504,24 @@ void rtw_cfg80211_indicate_disconnect(struct adapter *padapter) } } -static int rtw_cfg80211_ap_set_encryption (struct net_device *dev,struct ieee_param *param,u32 param_len) +static int rtw_cfg80211_ap_set_encryption (struct net_device *dev, +struct ieee_param *param, +u32 param_len) {int ret =0 ;u32 wep_key_idx, wep_key_len; +u32 key_len;struct sta_info *psta =NULL , *pbcmc_sta =NULL ;struct adapter *padapter =rtw_netdev_priv (dev);struct mlme_priv *pmlmepriv = &padapter->mlmepriv;struct security_priv *psecuritypriv = &(padapter->securitypriv);struct sta_priv *pstapriv = &padapter->stapriv; -char *grpkey = padapter->securitypriv.dot118021XGrpKey[param->u.crypt.idx].skey; -char *txkey = padapter->securitypriv.dot118021XGrptxmickey[param->u.crypt.idx].skey; -char *rxkey = padapter->securitypriv.dot118021XGrprxmickey[param->u.crypt.idx].skey; +char *grpkey = psecuritypriv->dot118021XGrpKey[param->u.crypt.idx].skey; +char *txkey = psecuritypriv->dot118021XGrptxmickey[param->u.crypt.idx].skey; +char *rxkey = psecuritypriv->dot118021XGrprxmickey[param->u.crypt.idx].skey; + +/* Clamp key_len to max 16 */ + key_len =min_t (u32, param->u.crypt.key_len,16 ); param->u.crypt.err =0 ; param->u.crypt.alg[IEEE_CRYPT_ALG_NAME_LEN -1 ] ='\0' ;
@@ -604,12 +621,15 @@ static int rtw_cfg80211_ap_set_encryption(struct net_device *dev, struct ieee_pa psecuritypriv->dot11PrivacyAlgrthm = psecuritypriv->dot118021XGrpPrivacy;/* */ -rtw_ap_set_group_key (padapter, param->u.crypt.key, psecuritypriv->dot118021XGrpPrivacy, param->u.crypt.idx); +rtw_ap_set_group_key (padapter, param->u.crypt.key, + psecuritypriv->dot118021XGrpPrivacy, + param->u.crypt.idx); pbcmc_sta =rtw_get_bcmc_stainfo (padapter);if (pbcmc_sta) { pbcmc_sta->ieee8021x_blocked = false; - pbcmc_sta->dot118021XPrivacy = psecuritypriv->dot118021XGrpPrivacy;/* rx will use bmc_sta's dot118021XPrivacy */ +/* rx will use bmc_sta's dot118021XPrivacy */ + pbcmc_sta->dot118021XPrivacy = psecuritypriv->dot118021XGrpPrivacy; } }
@@ -619,7 +639,8 @@ static int rtw_cfg80211_ap_set_encryption(struct net_device *dev, struct ieee_paif (psecuritypriv->dot11AuthAlgrthm == dot11AuthAlgrthm_8021X && psta) {/* psk/802_1x */ if (check_fwstate (pmlmepriv,WIFI_AP_STATE )) {if (param->u.crypt.set_tx ==1 ) {/* pairwise key */ -memcpy (psta->dot118021x_UncstKey.skey, param->u.crypt.key, (param->u.crypt.key_len >16 ?16 : param->u.crypt.key_len)); +memcpy (psta->dot118021x_UncstKey.skey, + param->u.crypt.key, key_len);if (strcmp (param->u.crypt.alg,"WEP" ) ==0 ) { psta->dot118021XPrivacy = _WEP40_;
@@ -648,7 +669,7 @@ static int rtw_cfg80211_ap_set_encryption(struct net_device *dev, struct ieee_pa }else {/* group key??? */ if (strcmp (param->u.crypt.alg,"WEP" ) ==0 ) { -memcpy (grpkey, param->u.crypt.key, (param->u.crypt.key_len >16 ?16 : param->u.crypt.key_len)); +memcpy (grpkey, param->u.crypt.key, key_len); psecuritypriv->dot118021XGrpPrivacy = _WEP40_;if (param->u.crypt.key_len ==13 )
@@ -656,7 +677,7 @@ static int rtw_cfg80211_ap_set_encryption(struct net_device *dev, struct ieee_pa }else if (strcmp (param->u.crypt.alg,"TKIP" ) ==0 ) { psecuritypriv->dot118021XGrpPrivacy = _TKIP_; -memcpy (grpkey, param->u.crypt.key, (param->u.crypt.key_len >16 ?16 : param->u.crypt.key_len)); +memcpy (grpkey, param->u.crypt.key, key_len);/* set mic key */ memcpy (txkey, &(param->u.crypt.key[16 ]),8 );
@@ -667,7 +688,7 @@ static int rtw_cfg80211_ap_set_encryption(struct net_device *dev, struct ieee_pa }else if (strcmp (param->u.crypt.alg,"CCMP" ) ==0 ) { psecuritypriv->dot118021XGrpPrivacy = _AES_; -memcpy (grpkey, param->u.crypt.key, (param->u.crypt.key_len >16 ?16 : param->u.crypt.key_len)); +memcpy (grpkey, param->u.crypt.key, key_len); }else { psecuritypriv->dot118021XGrpPrivacy = _NO_PRIVACY_; }
@@ -678,12 +699,16 @@ static int rtw_cfg80211_ap_set_encryption(struct net_device *dev, struct ieee_pa psecuritypriv->dot11PrivacyAlgrthm = psecuritypriv->dot118021XGrpPrivacy;/* */ -rtw_ap_set_group_key (padapter, param->u.crypt.key, psecuritypriv->dot118021XGrpPrivacy, param->u.crypt.idx); +rtw_ap_set_group_key (padapter, param->u.crypt.key, + psecuritypriv->dot118021XGrpPrivacy, + param->u.crypt.idx); pbcmc_sta =rtw_get_bcmc_stainfo (padapter);if (pbcmc_sta) { pbcmc_sta->ieee8021x_blocked = false; - pbcmc_sta->dot118021XPrivacy = psecuritypriv->dot118021XGrpPrivacy;/* rx will use bmc_sta's dot118021XPrivacy */ +/* rx will use bmc_sta's dot118021XPrivacy */ + pbcmc_sta->dot118021XPrivacy = + psecuritypriv->dot118021XGrpPrivacy; } } }
@@ -694,15 +719,20 @@ static int rtw_cfg80211_ap_set_encryption(struct net_device *dev, struct ieee_pareturn ret; } -static int rtw_cfg80211_set_encryption (struct net_device *dev,struct ieee_param *param,u32 param_len) +static int rtw_cfg80211_set_encryption (struct net_device *dev, +struct ieee_param *param,u32 param_len) {int ret =0 ;u8 max_idx;u32 wep_key_idx, wep_key_len; +u32 key_len;struct adapter *padapter =rtw_netdev_priv (dev);struct mlme_priv *pmlmepriv = &padapter->mlmepriv;struct security_priv *psecuritypriv = &padapter->securitypriv; +/* Clamp key_len to max 16 */ + key_len =min_t (u32, param->u.crypt.key_len,16 ); + param->u.crypt.err =0 ; param->u.crypt.alg[IEEE_CRYPT_ALG_NAME_LEN -1 ] ='\0' ;
@@ -782,7 +812,8 @@ static int rtw_cfg80211_set_encryption(struct net_device *dev, struct ieee_paramif (param->u.crypt.set_tx ==1 ) {/* pairwise key */ -memcpy (psta->dot118021x_UncstKey.skey, param->u.crypt.key, (param->u.crypt.key_len >16 ?16 : param->u.crypt.key_len)); +memcpy (psta->dot118021x_UncstKey.skey, + param->u.crypt.key, key_len);if (strcmp (param->u.crypt.alg,"TKIP" ) ==0 ) {/* set mic key */ memcpy (psta->dot11tkiptxmickey.skey, &(param->u.crypt.key[16 ]),8 );
@@ -795,17 +826,27 @@ static int rtw_cfg80211_set_encryption(struct net_device *dev, struct ieee_paramrtw_setstakey_cmd (padapter, psta, true, true); }else {/* group key */ if (strcmp (param->u.crypt.alg,"TKIP" ) ==0 ||strcmp (param->u.crypt.alg,"CCMP" ) ==0 ) { -memcpy (padapter->securitypriv.dot118021XGrpKey[param->u.crypt.idx].skey, param->u.crypt.key, (param->u.crypt.key_len >16 ?16 : param->u.crypt.key_len)); -memcpy (padapter->securitypriv.dot118021XGrptxmickey[param->u.crypt.idx].skey, &(param->u.crypt.key[16 ]),8 ); -memcpy (padapter->securitypriv.dot118021XGrprxmickey[param->u.crypt.idx].skey, &(param->u.crypt.key[24 ]),8 ); +u8 grp_idx = param->u.crypt.idx; +struct security_priv *sec = psecuritypriv; + +memcpy (sec->dot118021XGrpKey[grp_idx].skey, + param->u.crypt.key, key_len); +memcpy (sec->dot118021XGrptxmickey[grp_idx].skey, + ¶m->u.crypt.key[16 ],8 ); +memcpy (sec->dot118021XGrprxmickey[grp_idx].skey, + ¶m->u.crypt.key[24 ],8 ); padapter->securitypriv.binstallGrpkey = true; - padapter->securitypriv.dot118021XGrpKeyid = param->u.crypt.idx; -rtw_set_key (padapter, &padapter->securitypriv, param->u.crypt.idx,1 , true); + padapter->securitypriv.dot118021XGrpKeyid = grp_idx; +rtw_set_key (padapter, &padapter->securitypriv, + grp_idx,1 , true); }else if (strcmp (param->u.crypt.alg,"BIP" ) ==0 ) {/* save the IGTK key, length 16 bytes */ -memcpy (padapter->securitypriv.dot11wBIPKey[param->u.crypt.idx].skey, param->u.crypt.key, (param->u.crypt.key_len >16 ?16 : param->u.crypt.key_len)); - padapter->securitypriv.dot11wBIPKeyid = param->u.crypt.idx; +u8 idx = param->u.crypt.idx; + +memcpy (psecuritypriv->dot11wBIPKey[idx].skey, + param->u.crypt.key, key_len); + padapter->securitypriv.dot11wBIPKeyid = idx; padapter->securitypriv.binstallBIPkey = true; } }
@@ -940,8 +981,10 @@ static int cfg80211_rtw_set_default_key(struct wiphy *wiphy, {struct adapter *padapter =rtw_netdev_priv (ndev);struct security_priv *psecuritypriv = &padapter->securitypriv; +u32 alg = psecuritypriv->dot11PrivacyAlgrthm; +bool is_wep = (alg == _WEP40_) || (alg == _WEP104_); -if ((key_index <WEP_KEYS ) && ((psecuritypriv->dot11PrivacyAlgrthm == _WEP40_) || (psecuritypriv->dot11PrivacyAlgrthm == _WEP104_))) {/* set wep default key */ +if ((key_index <WEP_KEYS ) && is_wep) {/* set wep default key */ psecuritypriv->ndisencryptstatus = Ndis802_11Encryption1Enabled; psecuritypriv->dot11PrivacyKeyIndex = key_index;
@@ -953,7 +996,8 @@ static int cfg80211_rtw_set_default_key(struct wiphy *wiphy, psecuritypriv->dot118021XGrpPrivacy = _WEP104_; } - psecuritypriv->bWepDefaultKeyIdxSet =1 ;/* set the flag to represent that wep default key has been set */ +/* set the flag to represent that wep default key has been set */ + psecuritypriv->bWepDefaultKeyIdxSet =1 ; }return 0 ;
@@ -1137,7 +1181,8 @@ void rtw_cfg80211_surveydone_event_callback(struct adapter *padapter) pnetwork = list_entry(plist, struct wlan_network, list);/* report network only if the current channel set contains the channel to which this network belongs */ -if (rtw_ch_set_search_ch (padapter->mlmeextpriv.channel_set, pnetwork->network.configuration.ds_config) >=0 +if (rtw_ch_set_search_ch (padapter->mlmeextpriv.channel_set, + pnetwork->network.configuration.ds_config) >=0 && true ==rtw_validate_ssid (&(pnetwork->network.ssid))) {/* ev =translate_scan(padapter, a, pnetwork, ev, stop); */ rtw_cfg80211_inform_bss (padapter, pnetwork);
@@ -1276,7 +1321,8 @@ static int cfg80211_rtw_scan(struct wiphy *wiphyfor (j = request->n_channels -1 ; j >=0 ; j--)for (i =0 ; i < survey_times; i++)memcpy (&ch[j * survey_times + i], &ch[j],sizeof (struct rtw_ieee80211_channel )); - _status =rtw_sitesurvey_cmd (padapter, ssid,RTW_SSID_SCAN_AMOUNT , ch, survey_times * request->n_channels); + _status =rtw_sitesurvey_cmd (padapter, ssid,RTW_SSID_SCAN_AMOUNT , + ch, survey_times * request->n_channels); }else { _status =rtw_sitesurvey_cmd (padapter, ssid,RTW_SSID_SCAN_AMOUNT ,NULL ,0 ); }
@@ -1858,10 +1904,14 @@ static int cfg80211_rtw_set_pmksa(struct wiphy *wiphy, }if (!blInserted) { -memcpy (psecuritypriv->PMKIDList[psecuritypriv->PMKIDIndex].Bssid, (u8 *)pmksa->bssid,ETH_ALEN ); -memcpy (psecuritypriv->PMKIDList[psecuritypriv->PMKIDIndex].PMKID, (u8 *)pmksa->pmkid,WLAN_PMKID_LEN ); +u8 idx = psecuritypriv->PMKIDIndex; + +memcpy (psecuritypriv->PMKIDList[idx].Bssid, + (u8 *)pmksa->bssid,ETH_ALEN ); +memcpy (psecuritypriv->PMKIDList[idx].PMKID, + (u8 *)pmksa->pmkid,WLAN_PMKID_LEN ); - psecuritypriv->PMKIDList[psecuritypriv->PMKIDIndex].bUsed = true; + psecuritypriv->PMKIDList[idx].bUsed = true; psecuritypriv->PMKIDIndex++;if (psecuritypriv->PMKIDIndex ==16 ) psecuritypriv->PMKIDIndex =0 ;
@@ -1930,7 +1980,9 @@ void rtw_cfg80211_indicate_sta_assoc(struct adapter *padapter, u8 *pmgmt_frame, } } -void rtw_cfg80211_indicate_sta_disassoc (struct adapter *padapter,unsigned char *da,unsigned short reason) +void rtw_cfg80211_indicate_sta_disassoc (struct adapter *padapter, +unsigned char *da, +unsigned short reason) {struct net_device *ndev = padapter->pnetdev;
@@ -2109,7 +2161,8 @@ static const struct net_device_ops rtw_cfg80211_monitor_if_ops = { .ndo_start_xmit = rtw_cfg80211_monitor_if_xmit_entry, }; -static int rtw_cfg80211_add_monitor_if (struct adapter *padapter,char *name,struct net_device **ndev) +static int rtw_cfg80211_add_monitor_if (struct adapter *padapter,char *name, +struct net_device **ndev) {int ret =0 ;struct net_device *mon_ndev =NULL ;
@@ -2242,7 +2295,8 @@ static int cfg80211_rtw_del_virtual_intf(struct wiphy *wiphy,return ret; } -static int rtw_add_beacon (struct adapter *adapter,const u8 *head,size_t head_len,const u8 *tail,size_t tail_len) +static int rtw_add_beacon (struct adapter *adapter,const u8 *head, +size_t head_len,const u8 *tail,size_t tail_len) {int ret =0 ;u8 *pbuf =NULL ;
Signature · 1 line
2.52.0
PATCH v3 12/22 staging: rtl8723bs: hal: fix line lengths in rtl8723b_cmd.c
In reply to [email protected]From: Luka Gejak <[email protected]>
Break long lines exceeding 100 characters to comply with kernel coding style.
--- drivers/staging/rtl8723bs/hal/rtl8723b_cmd.c | 103 +++++++++++++++---- 1 file changed, 83 insertions(+), 20 deletions(-)
drivers/staging/rtl8723bs/hal/rtl8723b_cmd.c +83 -20
@@ -154,14 +154,28 @@ static void ConstructBeacon(struct adapter *padapter, u8 *pframe, u32 *pLength)/* below for ad-hoc mode */ /* SSID */ - pframe =rtw_set_ie (pframe,WLAN_EID_SSID , cur_network->ssid.ssid_length, cur_network->ssid.ssid, &pktlen); + { +uint ssid_len = cur_network->ssid.ssid_length; + + pframe =rtw_set_ie (pframe,WLAN_EID_SSID , ssid_len, + cur_network->ssid.ssid, &pktlen); + }/* supported rates... */ rate_len =rtw_get_rateset_len (cur_network->supported_rates); - pframe =rtw_set_ie (pframe,WLAN_EID_SUPP_RATES , ((rate_len >8 ) ?8 : rate_len), cur_network->supported_rates, &pktlen); + { +uint len = (rate_len >8 ) ?8 : rate_len; + + pframe =rtw_set_ie (pframe,WLAN_EID_SUPP_RATES , len, + cur_network->supported_rates, &pktlen); + }/* DS parameter set */ - pframe =rtw_set_ie (pframe,WLAN_EID_DS_PARAMS ,1 , (unsigned char *)&(cur_network->configuration.ds_config), &pktlen); + { +unsigned char *ds = (unsigned char *)&cur_network->configuration.ds_config; + + pframe =rtw_set_ie (pframe,WLAN_EID_DS_PARAMS ,1 , ds, &pktlen); + }if ((pmlmeinfo->state&0x03 ) ==WIFI_FW_ADHOC_STATE ) {u32 ATIMWindow;
@@ -176,8 +190,12 @@ static void ConstructBeacon(struct adapter *padapter, u8 *pframe, u32 *pLength)/* EXTERNDED SUPPORTED RATE */ -if (rate_len >8 ) - pframe =rtw_set_ie (pframe,WLAN_EID_EXT_SUPP_RATES , (rate_len -8 ), (cur_network->supported_rates +8 ), &pktlen); +if (rate_len >8 ) { +u8 *ext_rates = cur_network->supported_rates +8 ; + + pframe =rtw_set_ie (pframe,WLAN_EID_EXT_SUPP_RATES , + rate_len -8 , ext_rates, &pktlen); + }/* todo:HT for adhoc */
@@ -309,10 +327,12 @@ void rtl8723b_set_FwMediaStatusRpt_cmd(struct adapter *padapter, u8 mstatus, u8SET_8723B_H2CCMD_MSRRPT_PARM_MACID (u1H2CMediaStatusRptParm, macid);SET_8723B_H2CCMD_MSRRPT_PARM_MACID_END (u1H2CMediaStatusRptParm, macid_end); -FillH2CCmd8723B (padapter,H2C_8723B_MEDIA_STATUS_RPT ,H2C_MEDIA_STATUS_RPT_LEN , u1H2CMediaStatusRptParm); +FillH2CCmd8723B (padapter,H2C_8723B_MEDIA_STATUS_RPT , +H2C_MEDIA_STATUS_RPT_LEN , u1H2CMediaStatusRptParm); } -void rtl8723b_set_FwMacIdConfig_cmd (struct adapter *padapter,u8 mac_id,u8 raid,u8 bw,u8 sgi,u32 mask) +void rtl8723b_set_FwMacIdConfig_cmd (struct adapter *padapter,u8 mac_id, +u8 raid,u8 bw,u8 sgi,u32 mask) {u8 u1H2CMacIdConfigParm[H2C_MACID_CFG_LEN ] = {0 };
@@ -386,7 +406,8 @@ void rtl8723b_set_FwPwrMode_cmd(struct adapter *padapter, u8 psmode)SET_8723B_H2CCMD_PWRMODE_PARM_SMART_PS (u1H2CPwrModeParm, pwrpriv->smart_ps);SET_8723B_H2CCMD_PWRMODE_PARM_RLBM (u1H2CPwrModeParm, rlbm);SET_8723B_H2CCMD_PWRMODE_PARM_BCN_PASS_TIME (u1H2CPwrModeParm, awake_intvl); -SET_8723B_H2CCMD_PWRMODE_PARM_ALL_QUEUE_UAPSD (u1H2CPwrModeParm, padapter->registrypriv.uapsd_enable); +SET_8723B_H2CCMD_PWRMODE_PARM_ALL_QUEUE_UAPSD (u1H2CPwrModeParm, + padapter->registrypriv.uapsd_enable);SET_8723B_H2CCMD_PWRMODE_PARM_PWR_STATE (u1H2CPwrModeParm, PowerState);SET_8723B_H2CCMD_PWRMODE_PARM_BYTE5 (u1H2CPwrModeParm, byte5);if (psmode !=PS_MODE_ACTIVE ) {
@@ -402,7 +423,9 @@ void rtl8723b_set_FwPwrMode_cmd(struct adapter *padapter, u8 psmode) pmlmeext->DrvBcnTimeOut =0xff ;for (i =0 ; i <9 ; i++) { - pmlmeext->bcn_delay_ratio[i] = (pmlmeext->bcn_delay_cnt[i]*100 )/pmlmeext->bcn_cnt; +u32 cnt = pmlmeext->bcn_delay_cnt[i]; + + pmlmeext->bcn_delay_ratio[i] = (cnt *100 ) / pmlmeext->bcn_cnt; ratio_20_delay += pmlmeext->bcn_delay_ratio[i]; ratio_80_delay += pmlmeext->bcn_delay_ratio[i];
@@ -429,7 +452,9 @@ void rtl8723b_set_FwPwrMode_cmd(struct adapter *padapter, u8 psmode)pmlmeext->DrvBcnTimeOut =7; if ((pmlmeext->DrvBcnEarly!= 0Xff) && (pmlmeext->DrvBcnTimeOut!= 0xff)) -u1H2CPwrModeParm[H2C_PWRMODE_LEN-1] = BIT(0) | ((pmlmeext->DrvBcnEarly<<1)&0x0E) |((pmlmeext->DrvBcnTimeOut<<4)&0xf0) ; +u1H2CPwrModeParm[H2C_PWRMODE_LEN-1] = +BIT(0) | ((pmlmeext->DrvBcnEarly<<1)&0x0E) | +((pmlmeext->DrvBcnTimeOut<<4)&0xf0); */ }
@@ -528,7 +553,12 @@ static void rtl8723b_set_FwRsvdPagePkt(/* 3 (2) ps-poll */ RsvdPageLoc.LocPsPoll = TotalPageNum;ConstructPSPoll (padapter, &ReservedPagePacket[BufIndex], &PSPollLength); -rtl8723b_fill_fake_txdesc (padapter, &ReservedPagePacket[BufIndex-TxDescLen], PSPollLength, true, false, false); + { +u8 *desc = &ReservedPagePacket[BufIndex - TxDescLen]; + +rtl8723b_fill_fake_txdesc (padapter, desc, PSPollLength, + true, false, false); + } CurtPktPageNum = (u8 )PageNum_128 (TxDescLen + PSPollLength);
@@ -545,7 +575,12 @@ static void rtl8723b_set_FwRsvdPagePkt(get_my_bssid (&pmlmeinfo->network), false,0 ,0 , false ); -rtl8723b_fill_fake_txdesc (padapter, &ReservedPagePacket[BufIndex-TxDescLen], NullDataLength, false, false, false); + { +u8 *desc = &ReservedPagePacket[BufIndex - TxDescLen]; + +rtl8723b_fill_fake_txdesc (padapter, desc, NullDataLength, + false, false, false); + } CurtPktPageNum = (u8 )PageNum_128 (TxDescLen + NullDataLength);
@@ -562,7 +597,12 @@ static void rtl8723b_set_FwRsvdPagePkt(get_my_bssid (&pmlmeinfo->network), true,0 ,0 , false ); -rtl8723b_fill_fake_txdesc (padapter, &ReservedPagePacket[BufIndex-TxDescLen], QosNullLength, false, false, false); + { +u8 *desc = &ReservedPagePacket[BufIndex - TxDescLen]; + +rtl8723b_fill_fake_txdesc (padapter, desc, QosNullLength, + false, false, false); + } CurtPktPageNum = (u8 )PageNum_128 (TxDescLen + QosNullLength);
@@ -579,7 +619,12 @@ static void rtl8723b_set_FwRsvdPagePkt(get_my_bssid (&pmlmeinfo->network), true,0 ,0 , false ); -rtl8723b_fill_fake_txdesc (padapter, &ReservedPagePacket[BufIndex-TxDescLen], BTQosNullLength, false, true, false); + { +u8 *desc = &ReservedPagePacket[BufIndex - TxDescLen]; + +rtl8723b_fill_fake_txdesc (padapter, desc, BTQosNullLength, + false, true, false); + } CurtPktPageNum = (u8 )PageNum_128 (TxDescLen + BTQosNullLength);
@@ -656,6 +701,8 @@ void rtl8723b_download_rsvd_page(struct adapter *padapter, u8 mstatus) DLBcnCount =0 ; poll =0 ; do { + bool stop; + /* download rsvd page. */ rtl8723b_set_FwRsvdPagePkt(padapter, 0); DLBcnCount++;
@@ -663,11 +710,16 @@ void rtl8723b_download_rsvd_page(struct adapter *padapter, u8 mstatus)yield ();/* mdelay(10); */ /* check rsvd page download OK. */ -rtw_hal_get_hwreg (padapter,HW_VAR_BCN_VALID , (u8 *)(&bcn_valid)); +rtw_hal_get_hwreg (padapter,HW_VAR_BCN_VALID , + (u8 *)(&bcn_valid)); poll++; - }while (!bcn_valid && (poll%10 ) !=0 && !padapter->bSurpriseRemoved && !padapter->bDriverStopped); + stop = padapter->bSurpriseRemoved || + padapter->bDriverStopped; + }while (!bcn_valid && (poll %10 ) !=0 && !stop); - }while (!bcn_valid && DLBcnCount <=100 && !padapter->bSurpriseRemoved && !padapter->bDriverStopped); +if (stop) +break ; + }while (!bcn_valid && DLBcnCount <=100 );if (padapter->bSurpriseRemoved || padapter->bDriverStopped) { }else {
@@ -850,7 +902,12 @@ static void SetFwRsvdPagePkt_BTCoex(struct adapter *padapter)NULL , true,0 ,0 , false ); -rtl8723b_fill_fake_txdesc (padapter, &ReservedPagePacket[BufIndex-TxDescLen], BTQosNullLength, false, true, false); + { +u8 *desc = &ReservedPagePacket[BufIndex - TxDescLen]; + +rtl8723b_fill_fake_txdesc (padapter, desc, BTQosNullLength, + false, true, false); + } CurtPktPageNum = (u8 )PageNum_128 (TxDescLen + BTQosNullLength);
@@ -922,6 +979,8 @@ void rtl8723b_download_BTCoex_AP_mode_rsvd_page(struct adapter *padapter) DLBcnCount =0 ; poll =0 ; do { + bool stop; + SetFwRsvdPagePkt_BTCoex(padapter); DLBcnCount++; do {
@@ -930,8 +989,12 @@ void rtl8723b_download_BTCoex_AP_mode_rsvd_page(struct adapter *padapter)/* check rsvd page download OK. */ rtw_hal_get_hwreg (padapter,HW_VAR_BCN_VALID , &bcn_valid); poll++; - }while (!bcn_valid && (poll%10 ) !=0 && !padapter->bSurpriseRemoved && !padapter->bDriverStopped); - }while (!bcn_valid && (DLBcnCount <=100 ) && !padapter->bSurpriseRemoved && !padapter->bDriverStopped); + stop = padapter->bSurpriseRemoved || padapter->bDriverStopped; + }while (!bcn_valid && (poll %10 ) !=0 && !stop); + +if (stop) +break ; + }while (!bcn_valid && (DLBcnCount <=100 ));if (bcn_valid) {struct pwrctrl_priv *pwrctl =adapter_to_pwrctl (padapter);
Signature · 1 line
2.52.0
PATCH v3 13/22 staging: rtl8723bs: hal: fix line lengths in rtl8723b_hal_init.c
In reply to [email protected]From: Luka Gejak <[email protected]>
Break long lines exceeding 100 characters to comply with kernel coding style.
--- .../staging/rtl8723bs/hal/rtl8723b_hal_init.c | 64 ++++++++++++------- 1 file changed, 41 insertions(+), 23 deletions(-)
drivers/staging/rtl8723bs/hal/rtl8723b_hal_init.c +41 -23
@@ -58,7 +58,10 @@ static int _BlockWrite(struct adapter *padapter, void *buffer, u32 buffSize) remainSize_p1 = buffSize % blockSize_p1;for (i =0 ; i < blockCount_p1; i++) { - ret =rtw_write32 (padapter, (FW_8723B_START_ADDRESS + i * blockSize_p1), *((u32 *)(bufferPtr + i * blockSize_p1))); +u32 addr =FW_8723B_START_ADDRESS + i * blockSize_p1; +u32 data = *((u32 *)(bufferPtr + i * blockSize_p1)); + + ret =rtw_write32 (padapter, addr, data);if (ret == _FAIL) {netdev_dbg (padapter->pnetdev,"write failed at %s %d, block:%d\n" , __func__, __LINE__, i);
@@ -261,27 +264,34 @@ void rtl8723b_FirmwareSelfReset(struct adapter *padapter)struct hal_com_data *pHalData =GET_HAL_DATA (padapter);u8 val;u8 Delay =100 ; +bool old_fw; -if ( - !(IS_FW_81xxC (padapter) && ((pHalData->FirmwareVersion <0x21 ) || (pHalData->FirmwareVersion ==0x21 && pHalData->FirmwareSubVersion <0x01 ))) - ) {/* after 88C Fw v33.1 */ -/* 0x1cf = 0x20. Inform 8051 to reset. 2009.12.25. tynli_test */ -rtw_write8 (padapter,REG_HMETFR +3 ,0x20 ); +/* Check for old firmware version */ + old_fw =IS_FW_81xxC (padapter) && + ((pHalData->FirmwareVersion <0x21 ) || + (pHalData->FirmwareVersion ==0x21 && + pHalData->FirmwareSubVersion <0x01 )); + +if (old_fw) +return ; +/* after 88C Fw v33.1 */ +/* 0x1cf = 0x20. Inform 8051 to reset. 2009.12.25. tynli_test */ +rtw_write8 (padapter,REG_HMETFR +3 ,0x20 ); + + val =rtw_read8 (padapter,REG_SYS_FUNC_EN +1 ); +while (val &BIT2 ) { + Delay--; +if (Delay ==0 ) +break ; +udelay (50 ); val =rtw_read8 (padapter,REG_SYS_FUNC_EN +1 ); -while (val &BIT2 ) { - Delay--; -if (Delay ==0 ) -break ; -udelay (50 ); - val =rtw_read8 (padapter,REG_SYS_FUNC_EN +1 ); - } + } -if (Delay ==0 ) { -/* force firmware reset */ - val =rtw_read8 (padapter,REG_SYS_FUNC_EN +1 ); -rtw_write8 (padapter,REG_SYS_FUNC_EN +1 , val & (~BIT2 )); - } +if (Delay ==0 ) { +/* force firmware reset */ + val =rtw_read8 (padapter,REG_SYS_FUNC_EN +1 ); +rtw_write8 (padapter,REG_SYS_FUNC_EN +1 , val & (~BIT2 )); } }
@@ -998,9 +1008,13 @@ void rtl8723b_SetBeaconRelatedRegisters(struct adapter *padapter)rtw_write32 (padapter,REG_TCR , value32);/* NOTE: Fix test chip's bug (about contention windows's randomness) */ -if (check_fwstate (&padapter->mlmepriv,WIFI_ADHOC_STATE |WIFI_ADHOC_MASTER_STATE |WIFI_AP_STATE ) == true) { -rtw_write8 (padapter,REG_RXTSF_OFFSET_CCK ,0x50 ); -rtw_write8 (padapter,REG_RXTSF_OFFSET_OFDM ,0x50 ); + { +u16 state_mask =WIFI_ADHOC_STATE |WIFI_ADHOC_MASTER_STATE |WIFI_AP_STATE ; + +if (check_fwstate (&padapter->mlmepriv, state_mask)) { +rtw_write8 (padapter,REG_RXTSF_OFFSET_CCK ,0x50 ); +rtw_write8 (padapter,REG_RXTSF_OFFSET_OFDM ,0x50 ); + } }_BeaconFunctionEnable (padapter, true, true);
@@ -1653,7 +1667,9 @@ static u8 fill_txdesc_sectype(struct pkt_attrib *pattrib)return sectype; } -static void fill_txdesc_vcs_8723b (struct adapter *padapter,struct pkt_attrib *pattrib,struct txdesc_8723b *ptxdesc) +static void fill_txdesc_vcs_8723b (struct adapter *padapter, +struct pkt_attrib *pattrib, +struct txdesc_8723b *ptxdesc) {if (pattrib->vcs_mode) {switch (pattrib->vcs_mode) {
@@ -1684,7 +1700,9 @@ static void fill_txdesc_vcs_8723b(struct adapter *padapter, struct pkt_attrib *p } } -static void fill_txdesc_phy_8723b (struct adapter *padapter,struct pkt_attrib *pattrib,struct txdesc_8723b *ptxdesc) +static void fill_txdesc_phy_8723b (struct adapter *padapter, +struct pkt_attrib *pattrib, +struct txdesc_8723b *ptxdesc) {if (pattrib->ht_en) { ptxdesc->data_bw =BWMapping_8723B (padapter, pattrib);
Signature · 1 line
2.52.0
PATCH v3 14/22 staging: rtl8723bs: hal: fix line lengths in rtl8723b_phycfg.c
In reply to [email protected]From: Luka Gejak <[email protected]>
Break long lines exceeding 100 characters to comply with kernel coding style.
--- .../staging/rtl8723bs/hal/rtl8723b_phycfg.c | 54 +++++++++++++------ 1 file changed, 37 insertions(+), 17 deletions(-)
drivers/staging/rtl8723bs/hal/rtl8723b_phycfg.c +37 -17
@@ -109,18 +109,26 @@ static u32 phy_RFSerialRead_8723B( NewOffset = Offset;if (eRFPath ==RF_PATH_A ) { - tmplong2 =PHY_QueryBBReg (Adapter, rFPGA0_XA_HSSIParameter2|MaskforPhySet, bMaskDWord); +u32 regA = rFPGA0_XA_HSSIParameter2 | MaskforPhySet; + + tmplong2 =PHY_QueryBBReg (Adapter, regA, bMaskDWord); tmplong2 = (tmplong2 & (~bLSSIReadAddress)) | (NewOffset<<23 ) | bLSSIReadEdge;/* T65 RF */ -PHY_SetBBReg (Adapter, rFPGA0_XA_HSSIParameter2|MaskforPhySet, bMaskDWord, tmplong2&(~bLSSIReadEdge)); +PHY_SetBBReg (Adapter, regA, bMaskDWord, tmplong2 & (~bLSSIReadEdge)); }else { - tmplong2 =PHY_QueryBBReg (Adapter, rFPGA0_XB_HSSIParameter2|MaskforPhySet, bMaskDWord); +u32 regB = rFPGA0_XB_HSSIParameter2 | MaskforPhySet; + + tmplong2 =PHY_QueryBBReg (Adapter, regB, bMaskDWord); tmplong2 = (tmplong2 & (~bLSSIReadAddress)) | (NewOffset<<23 ) | bLSSIReadEdge;/* T65 RF */ -PHY_SetBBReg (Adapter, rFPGA0_XB_HSSIParameter2|MaskforPhySet, bMaskDWord, tmplong2&(~bLSSIReadEdge)); +PHY_SetBBReg (Adapter, regB, bMaskDWord, tmplong2 & (~bLSSIReadEdge)); } - tmplong2 =PHY_QueryBBReg (Adapter, rFPGA0_XA_HSSIParameter2|MaskforPhySet, bMaskDWord); -PHY_SetBBReg (Adapter, rFPGA0_XA_HSSIParameter2|MaskforPhySet, bMaskDWord, tmplong2 & (~bLSSIReadEdge)); -PHY_SetBBReg (Adapter, rFPGA0_XA_HSSIParameter2|MaskforPhySet, bMaskDWord, tmplong2 | bLSSIReadEdge); + { +u32 reg = rFPGA0_XA_HSSIParameter2 | MaskforPhySet; + + tmplong2 =PHY_QueryBBReg (Adapter, reg, bMaskDWord); +PHY_SetBBReg (Adapter, reg, bMaskDWord, tmplong2 & (~bLSSIReadEdge)); +PHY_SetBBReg (Adapter, reg, bMaskDWord, tmplong2 | bLSSIReadEdge); + }udelay (10 );
@@ -307,22 +315,29 @@ static void phy_InitBBRFRegisterDefinition(struct adapter *Adapter)struct hal_com_data *pHalData =GET_HAL_DATA (Adapter);/* RF Interface Sowrtware Control */ - pHalData->PHYRegDef[RF_PATH_A ].rfintfs = rFPGA0_XAB_RFInterfaceSW;/* 16 LSBs if read 32-bit from 0x870 */ - pHalData->PHYRegDef[RF_PATH_B ].rfintfs = rFPGA0_XAB_RFInterfaceSW;/* 16 MSBs if read 32-bit from 0x870 (16-bit for 0x872) */ +/* 16 LSBs if read 32-bit from 0x870 */ + pHalData->PHYRegDef[RF_PATH_A ].rfintfs = rFPGA0_XAB_RFInterfaceSW; +/* 16 MSBs if read 32-bit from 0x870 (16-bit for 0x872) */ + pHalData->PHYRegDef[RF_PATH_B ].rfintfs = rFPGA0_XAB_RFInterfaceSW;/* RF Interface Output (and Enable) */ - pHalData->PHYRegDef[RF_PATH_A ].rfintfo = rFPGA0_XA_RFInterfaceOE;/* 16 LSBs if read 32-bit from 0x860 */ - pHalData->PHYRegDef[RF_PATH_B ].rfintfo = rFPGA0_XB_RFInterfaceOE;/* 16 LSBs if read 32-bit from 0x864 */ +/* 16 LSBs if read 32-bit from 0x860 */ + pHalData->PHYRegDef[RF_PATH_A ].rfintfo = rFPGA0_XA_RFInterfaceOE; +/* 16 LSBs if read 32-bit from 0x864 */ + pHalData->PHYRegDef[RF_PATH_B ].rfintfo = rFPGA0_XB_RFInterfaceOE;/* RF Interface (Output and) Enable */ - pHalData->PHYRegDef[RF_PATH_A ].rfintfe = rFPGA0_XA_RFInterfaceOE;/* 16 MSBs if read 32-bit from 0x860 (16-bit for 0x862) */ - pHalData->PHYRegDef[RF_PATH_B ].rfintfe = rFPGA0_XB_RFInterfaceOE;/* 16 MSBs if read 32-bit from 0x864 (16-bit for 0x866) */ +/* 16 MSBs if read 32-bit from 0x860 (16-bit for 0x862) */ + pHalData->PHYRegDef[RF_PATH_A ].rfintfe = rFPGA0_XA_RFInterfaceOE; +/* 16 MSBs if read 32-bit from 0x864 (16-bit for 0x866) */ + pHalData->PHYRegDef[RF_PATH_B ].rfintfe = rFPGA0_XB_RFInterfaceOE; pHalData->PHYRegDef[RF_PATH_A ].rf3wireOffset = rFPGA0_XA_LSSIParameter;/* LSSI Parameter */ pHalData->PHYRegDef[RF_PATH_B ].rf3wireOffset = rFPGA0_XB_LSSIParameter; - pHalData->PHYRegDef[RF_PATH_A ].rfHSSIPara2 = rFPGA0_XA_HSSIParameter2;/* wire control parameter2 */ - pHalData->PHYRegDef[RF_PATH_B ].rfHSSIPara2 = rFPGA0_XB_HSSIParameter2;/* wire control parameter2 */ +/* wire control parameter2 */ + pHalData->PHYRegDef[RF_PATH_A ].rfHSSIPara2 = rFPGA0_XA_HSSIParameter2; + pHalData->PHYRegDef[RF_PATH_B ].rfHSSIPara2 = rFPGA0_XB_HSSIParameter2;/* Transceiver Readback LSSI/HSPI mode */ pHalData->PHYRegDef[RF_PATH_A ].rfLSSIReadBack = rFPGA0_XA_LSSIReadBack;
@@ -643,8 +658,12 @@ static void phy_PostSetBwMode8723B(struct adapter *Adapter)PHY_SetBBReg (Adapter, rCCK0_System, bCCKSideBand, (pHalData->nCur40MhzPrimeSC>>1 ));PHY_SetBBReg (Adapter, rOFDM1_LSTF,0xC00 , pHalData->nCur40MhzPrimeSC); + { +u32 val; -PHY_SetBBReg (Adapter,0x818 , (BIT26 |BIT27 ), (pHalData->nCur40MhzPrimeSC ==HAL_PRIME_CHNL_OFFSET_LOWER ) ?2 :1 ); + val = (pHalData->nCur40MhzPrimeSC ==HAL_PRIME_CHNL_OFFSET_LOWER ) ?2 :1 ; +PHY_SetBBReg (Adapter,0x818 , (BIT26 |BIT27 ), val); + }break ;default :break ;
@@ -769,5 +788,6 @@ void PHY_SetSwChnlBWMode8723B(u8 Offset80 ) { -PHY_HandleSwChnlAndSetBW8723B (Adapter, true, true, channel, Bandwidth, Offset40, Offset80, channel); +PHY_HandleSwChnlAndSetBW8723B (Adapter, true, true, channel, + Bandwidth, Offset40, Offset80, channel); }
Signature · 1 line
2.52.0
PATCH v3 15/22 staging: rtl8723bs: core: fix various line length overflows
In reply to [email protected]From: Luka Gejak <[email protected]>
Fix lines exceeding 100 characters in rtw_io.c, rtw_ioctl_set.c, and rtw_pwrctrl.c to comply with kernel coding style.
--- drivers/staging/rtl8723bs/core/rtw_io.c | 4 +++- drivers/staging/rtl8723bs/core/rtw_ioctl_set.c | 16 ++++++++++++---- drivers/staging/rtl8723bs/core/rtw_pwrctrl.c | 3 ++- 3 files changed, 17 insertions(+), 6 deletions(-)
drivers/staging/rtl8723bs/core/rtw_io.c +3 -1
@@ -114,7 +114,9 @@ u32 rtw_write_port(struct adapter *adapter, u32 addr, u32 cnt, u8 *pmem)return _write_port (pintfhdl, addr, cnt, pmem); } -int rtw_init_io_priv (struct adapter *padapter,void (*set_intf_ops)(struct adapter *padapter,struct _io_ops *pops)) +int rtw_init_io_priv (struct adapter *padapter, +void (*set_intf_ops)(struct adapter *padapter, +struct _io_ops *pops)) {struct io_priv *piopriv = &padapter->iopriv;struct intf_hdl *pintf = &piopriv->intf;
drivers/staging/rtl8723bs/core/rtw_ioctl_set.c +12 -4
@@ -174,7 +174,11 @@ u8 rtw_set_802_11_ssid(struct adapter *padapter, struct ndis_802_11_ssid *ssid)set_fwstate (pmlmepriv,WIFI_ADHOC_STATE ); } }else { - goto release_mlme_lock;/* it means driver is in WIFI_ADHOC_MASTER_STATE, we needn't create bss again. */ +/* +* already in WIFI_ADHOC_MASTER_STATE, +* no need to create bss again +*/ + goto release_mlme_lock; } }else {rtw_lps_ctrl_wk_cmd (padapter,LPS_CTRL_JOINBSS ,1 );
@@ -309,8 +313,9 @@ u8 rtw_set_802_11_infrastructure_mode(struct adapter *padapter,rtw_free_assoc_resources (padapter,1 );if ((*pold_state == Ndis802_11Infrastructure) || (*pold_state == Ndis802_11IBSS)) { +/* clr Linked_state; issue dis-assoc_cmd already checked above */ if (check_fwstate (pmlmepriv, _FW_LINKED) == true) -rtw_indicate_disconnect (padapter);/* will clr Linked_state; before this function, we must have checked whether issue dis-assoc_cmd or not */ +rtw_indicate_disconnect (padapter); } *pold_state = networktype;
@@ -365,7 +370,9 @@ u8 rtw_set_802_11_disassociate(struct adapter *padapter)return true; } -u8 rtw_set_802_11_bssid_list_scan (struct adapter *padapter,struct ndis_802_11_ssid *pssid,int ssid_max_num) +u8 rtw_set_802_11_bssid_list_scan (struct adapter *padapter, +struct ndis_802_11_ssid *pssid, +int ssid_max_num) {struct mlme_priv *pmlmepriv = &padapter->mlmepriv;u8 res = true;
@@ -399,7 +406,8 @@ u8 rtw_set_802_11_bssid_list_scan(struct adapter *padapter, struct ndis_802_11_sreturn res; } -u8 rtw_set_802_11_authentication_mode (struct adapter *padapter,enum ndis_802_11_authentication_mode authmode) +u8 rtw_set_802_11_authentication_mode (struct adapter *padapter, +enum ndis_802_11_authentication_mode authmode) {struct security_priv *psecuritypriv = &padapter->securitypriv;int res;
drivers/staging/rtl8723bs/core/rtw_pwrctrl.c +2 -1
@@ -331,7 +331,8 @@ static u8 PS_RDY_CHECK(struct adapter *padapter)return true; } -void rtw_set_ps_mode (struct adapter *padapter,u8 ps_mode,u8 smart_ps,u8 bcn_ant_mode,const char *msg) +void rtw_set_ps_mode (struct adapter *padapter,u8 ps_mode,u8 smart_ps, +u8 bcn_ant_mode,const char *msg) {struct pwrctrl_priv *pwrpriv =adapter_to_pwrctl (padapter);
Signature · 1 line
2.52.0
PATCH v3 16/22 staging: rtl8723bs: hal: fix various line length overflows
In reply to [email protected]From: Luka Gejak <[email protected]>
Fix lines exceeding 100 characters across multiple hal files to comply with kernel coding style. Files modified: HalBtc8723b1Ant.c, HalBtc8723b2Ant.c, HalPhyRf.c, hal_com.c, hal_com_phycfg.c, hal_intf.c, hal_sdio.c, odm.c, odm_DIG.c, odm_HWConfig.c, rtl8723b_rf6052.c, rtl8723bs_recv.c, rtl8723bs_xmit.c, sdio_halinit.c.
--- .../staging/rtl8723bs/hal/HalBtc8723b1Ant.c | 35 +++++++++++------ .../staging/rtl8723bs/hal/HalBtc8723b2Ant.c | 29 +++++++++----- drivers/staging/rtl8723bs/hal/HalPhyRf.c | 36 ++++++++++++------ .../staging/rtl8723bs/hal/hal_com_phycfg.c | 22 +++++++---- drivers/staging/rtl8723bs/hal/hal_intf.c | 4 +- drivers/staging/rtl8723bs/hal/hal_sdio.c | 4 +- drivers/staging/rtl8723bs/hal/odm.c | 18 ++++++--- drivers/staging/rtl8723bs/hal/odm_DIG.c | 38 ++++++++++++------- drivers/staging/rtl8723bs/hal/odm_HWConfig.c | 17 +++++++-- .../staging/rtl8723bs/hal/rtl8723b_rf6052.c | 6 ++- .../staging/rtl8723bs/hal/rtl8723bs_recv.c | 6 ++- .../staging/rtl8723bs/hal/rtl8723bs_xmit.c | 5 ++- drivers/staging/rtl8723bs/hal/sdio_halinit.c | 17 ++++++--- 13 files changed, 162 insertions(+), 75 deletions(-)
drivers/staging/rtl8723bs/hal/HalBtc8723b1Ant.c +23 -12
@@ -810,7 +810,8 @@ static void halbtc8723b1ant_SetAntPath(u8 H2C_Parameter[2 ] = {0 }, u1Tmp =0 ; pBtCoexist->fBtcGet (pBtCoexist,BTC_GET_BL_EXT_SWITCH , &bPgExtSwitch); - pBtCoexist->fBtcGet (pBtCoexist,BTC_GET_U4_WIFI_FW_VER , &fwVer);/* [31:16]=fw ver, [15:0]=fw sub ver */ +/* [31:16]=fw ver, [15:0]=fw sub ver */ + pBtCoexist->fBtcGet (pBtCoexist,BTC_GET_U4_WIFI_FW_VER , &fwVer);if ((fwVer >0 && fwVer <0xc0000 ) || bPgExtSwitch) bUseExtSwitch = true;
@@ -829,7 +830,8 @@ static void halbtc8723b1ant_SetAntPath(/* set wlan_act control by PTA */ pBtCoexist->fBtcWrite1Byte (pBtCoexist,0x76e ,0x4 ); - pBtCoexist->fBtcWrite1ByteBitMask (pBtCoexist,0x67 ,0x20 ,0x1 );/* BT select s0/s1 is controlled by WiFi */ +/* BT select s0/s1 is controlled by WiFi */ + pBtCoexist->fBtcWrite1ByteBitMask (pBtCoexist,0x67 ,0x20 ,0x1 ); pBtCoexist->fBtcWrite1ByteBitMask (pBtCoexist,0x39 ,0x8 ,0x1 ); pBtCoexist->fBtcWrite1Byte (pBtCoexist,0x974 ,0xff );
@@ -847,10 +849,13 @@ static void halbtc8723b1ant_SetAntPath( pBtCoexist->fBtcWrite1Byte (pBtCoexist,0x76e ,0x4 ); pBtCoexist->fBtcGet (pBtCoexist,BTC_GET_BL_WIFI_IS_IN_MP_MODE , &bIsInMpMode); -if (!bIsInMpMode) - pBtCoexist->fBtcWrite1ByteBitMask (pBtCoexist,0x67 ,0x20 ,0x0 );/* BT select s0/s1 is controlled by BT */ -else - pBtCoexist->fBtcWrite1ByteBitMask (pBtCoexist,0x67 ,0x20 ,0x1 );/* BT select s0/s1 is controlled by WiFi */ +if (!bIsInMpMode) { +/* BT select s0/s1 is controlled by BT */ + pBtCoexist->fBtcWrite1ByteBitMask (pBtCoexist,0x67 ,0x20 ,0x0 ); + }else { +/* BT select s0/s1 is controlled by WiFi */ + pBtCoexist->fBtcWrite1ByteBitMask (pBtCoexist,0x67 ,0x20 ,0x1 ); + }/* 0x4c[24:23]= 00, Set Antenna control by BT_RFE_CTRL BT Vendor 0xac = 0xf002 */ u4Tmp = pBtCoexist->fBtcRead4Byte (pBtCoexist,0x4c );
@@ -1059,8 +1064,10 @@ static void halbtc8723b1ant_PsTdma(if (bTurnOn) { -if (pBtLinkInfo->bSlaveRole) - psTdmaByte4Val = psTdmaByte4Val |0x1 ;/* 0x778 = 0x1 at wifi slot (no blocking BT Low-Pri pkts) */ +if (pBtLinkInfo->bSlaveRole) { +/* 0x778 = 0x1 at wifi slot (no blocking BT Low-Pri pkts) */ + psTdmaByte4Val = psTdmaByte4Val |0x1 ; + }switch (type) {
@@ -1868,7 +1875,8 @@ static void halbtc8723b1ant_ActionWifiConnected(struct btc_coexist *pBtCoexist) pBtCoexist,BTC_PS_WIFI_NATIVE ,0x0 ,0x0 ); else { /* busy */ -if (pCoexSta->nScanAPNum >=BT_8723B_1ANT_WIFI_NOISY_THRESH )/* no force LPS, no PS-TDMA, use pure TDMA */ +/* no force LPS, no PS-TDMA, use pure TDMA */ +if (pCoexSta->nScanAPNum >=BT_8723B_1ANT_WIFI_NOISY_THRESH )halbtc8723b1ant_PowerSaveState ( pBtCoexist,BTC_PS_WIFI_NATIVE ,0x0 ,0x0 );
@@ -2246,7 +2254,8 @@ void EXhalbtc8723b1ant_ScanNotify(struct btc_coexist *pBtCoexist, u8 type)if (type ==BTC_SCAN_START ) { pCoexSta->bWiFiIsHighPriTask = true; -halbtc8723b1ant_PsTdma (pBtCoexist,FORCE_EXEC , false,8 );/* Force antenna setup for no scan result issue */ +/* Force antenna setup for no scan result issue */ +halbtc8723b1ant_PsTdma (pBtCoexist,FORCE_EXEC , false,8 ); pBtCoexist->fBtcRead4Byte (pBtCoexist,0x948 ); pBtCoexist->fBtcRead1Byte (pBtCoexist,0x765 ); pBtCoexist->fBtcRead1Byte (pBtCoexist,0x67 );
@@ -2432,7 +2441,8 @@ void EXhalbtc8723b1ant_SpecialPacketNotify(struct btc_coexist *pBtCoexist, u8 tyif (type ==BTC_PACKET_ARP ) { pCoexDm->nArpCnt++; -if (pCoexDm->nArpCnt >=10 )/* if APR PKT > 10 after connect, do not go to ActionWifiConnectedSpecialPacket(pBtCoexist) */ +/* if ARP PKT > 10 after connect, skip special packet action */ +if (pCoexDm->nArpCnt >=10 ) pCoexSta->bWiFiIsHighPriTask = false;else pCoexSta->bWiFiIsHighPriTask = true;
@@ -2578,7 +2588,8 @@ void EXhalbtc8723b1ant_BtInfoNotify(halbtc8723b1ant_UpdateBtLinkInfo (pBtCoexist); - btInfo = btInfo &0x1f ;/* mask profile bit for connect-ilde identification (for CSR case: A2DP idle --> 0x41) */ +/* mask profile bit for connect-idle identification (CSR case: A2DP idle = 0x41) */ + btInfo = btInfo &0x1f ;if (!(btInfo &BT_INFO_8723B_1ANT_B_CONNECTION )) { pCoexDm->btStatus =BT_8723B_1ANT_BT_STATUS_NON_CONNECTED_IDLE ;
drivers/staging/rtl8723bs/hal/HalBtc8723b2Ant.c +19 -10
@@ -830,7 +830,8 @@ static void halbtc8723b2ant_SetAntPath(u8 H2C_Parameter[2 ] = {0 }; pBtCoexist->fBtcGet (pBtCoexist,BTC_GET_BL_EXT_SWITCH , &bPgExtSwitch); - pBtCoexist->fBtcGet (pBtCoexist,BTC_GET_U4_WIFI_FW_VER , &fwVer);/* [31:16]=fw ver, [15:0]=fw sub ver */ +/* [31:16]=fw ver, [15:0]=fw sub ver */ + pBtCoexist->fBtcGet (pBtCoexist,BTC_GET_U4_WIFI_FW_VER , &fwVer);if ((fwVer >0 && fwVer <0xc0000 ) || bPgExtSwitch) bUseExtSwitch = true;
@@ -901,13 +902,16 @@ static void halbtc8723b2ant_SetAntPath( pBtCoexist->fBtcWrite4Byte (pBtCoexist,0x4c , u4Tmp); } - pBtCoexist->fBtcWrite1ByteBitMask (pBtCoexist,0x64 ,0x1 ,0x0 );/* fixed external switch S1->Main, S0->Aux */ +/* fixed external switch S1->Main, S0->Aux */ + pBtCoexist->fBtcWrite1ByteBitMask (pBtCoexist,0x64 ,0x1 ,0x0 );switch (antPosType) {case BTC_ANT_WIFI_AT_MAIN : - pBtCoexist->fBtcWrite4Byte (pBtCoexist,0x948 ,0x0 );/* fixed internal switch S1->WiFi, S0->BT */ +/* fixed internal switch S1->WiFi, S0->BT */ + pBtCoexist->fBtcWrite4Byte (pBtCoexist,0x948 ,0x0 );break ;case BTC_ANT_WIFI_AT_AUX : - pBtCoexist->fBtcWrite4Byte (pBtCoexist,0x948 ,0x280 );/* fixed internal switch S0->WiFi, S1->BT */ +/* fixed internal switch S0->WiFi, S1->BT */ + pBtCoexist->fBtcWrite4Byte (pBtCoexist,0x948 ,0x280 );break ; } }
@@ -2279,7 +2283,8 @@ static void halbtc8723b2ant_WifiOffHwCfg(struct btc_coexist *pBtCoexist)/* set wlan_act to low */ pBtCoexist->fBtcWrite1Byte (pBtCoexist,0x76e ,0x4 ); - pBtCoexist->fBtcSetRfReg (pBtCoexist,BTC_RF_A ,0x1 ,0xfffff ,0x780 );/* WiFi goto standby while GNT_BT 0-->1 */ +/* WiFi goto standby while GNT_BT 0-->1 */ + pBtCoexist->fBtcSetRfReg (pBtCoexist,BTC_RF_A ,0x1 ,0xfffff ,0x780 ); pBtCoexist->fBtcGet (pBtCoexist,BTC_GET_U4_WIFI_FW_VER , &fwVer);if (fwVer >=0x180000 ) {/* Use H2C to set GNT_BT to HIGH */
@@ -2289,10 +2294,13 @@ static void halbtc8723b2ant_WifiOffHwCfg(struct btc_coexist *pBtCoexist) pBtCoexist->fBtcWrite1Byte (pBtCoexist,0x765 ,0x18 ); pBtCoexist->fBtcGet (pBtCoexist,BTC_GET_BL_WIFI_IS_IN_MP_MODE , &bIsInMpMode); -if (!bIsInMpMode) - pBtCoexist->fBtcWrite1ByteBitMask (pBtCoexist,0x67 ,0x20 ,0x0 );/* BT select s0/s1 is controlled by BT */ -else - pBtCoexist->fBtcWrite1ByteBitMask (pBtCoexist,0x67 ,0x20 ,0x1 );/* BT select s0/s1 is controlled by WiFi */ +if (!bIsInMpMode) { +/* BT select s0/s1 is controlled by BT */ + pBtCoexist->fBtcWrite1ByteBitMask (pBtCoexist,0x67 ,0x20 ,0x0 ); + }else { +/* BT select s0/s1 is controlled by WiFi */ + pBtCoexist->fBtcWrite1ByteBitMask (pBtCoexist,0x67 ,0x20 ,0x1 ); + } }static void halbtc8723b2ant_InitHwConfig (struct btc_coexist *pBtCoexist,bool bBackUp)
@@ -2595,7 +2603,8 @@ void EXhalbtc8723b2ant_BtInfoNotify(void EXhalbtc8723b2ant_HaltNotify (struct btc_coexist *pBtCoexist) {halbtc8723b2ant_WifiOffHwCfg (pBtCoexist); - pBtCoexist->fBtcSetBtReg (pBtCoexist,BTC_BT_REG_RF ,0x3c ,0x15 );/* BT goto standby while GNT_BT 1-->0 */ +/* BT goto standby while GNT_BT 1-->0 */ + pBtCoexist->fBtcSetBtReg (pBtCoexist,BTC_BT_REG_RF ,0x3c ,0x15 );halbtc8723b2ant_IgnoreWlanAct (pBtCoexist,FORCE_EXEC , true);EXhalbtc8723b2ant_MediaStatusNotify (pBtCoexist,BTC_MEDIA_DISCONNECT );
drivers/staging/rtl8723bs/hal/HalPhyRf.c +25 -11
@@ -65,7 +65,8 @@ void ODM_TXPowerTrackingCallback_ThermalMeter(struct adapter *Adapter)u8 ThermalValue_AVG_count =0 ;u32 ThermalValue_AVG =0 ; -u8 OFDM_min_index =0 ;/* OFDM BB Swing should be less than +3.0dB, which is required by Arthur */ +/* OFDM BB Swing should be less than +3.0dB, which is required by Arthur */ +u8 OFDM_min_index =0 ;u8 Indexforchannel =0 ;/* GetRightChnlPlaceforIQK(pHalData->CurrentChannel) */ struct txpwrtrack_cfg c;
@@ -93,7 +94,9 @@ void ODM_TXPowerTrackingCallback_ThermalMeter(struct adapter *Adapter) pDM_Odm->RFCalibrateInfo.TXPowerTrackingCallbackCnt++; pDM_Odm->RFCalibrateInfo.bTXPowerTrackingInit = true; - ThermalValue = (u8 )PHY_QueryRFReg (pDM_Odm->Adapter,RF_PATH_A , c.ThermalRegAddr,0xfc00 );/* 0x42: RF Reg[15:10] 88E */ +/* 0x42: RF Reg[15:10] 88E */ + ThermalValue = (u8 )PHY_QueryRFReg (pDM_Odm->Adapter,RF_PATH_A , + c.ThermalRegAddr,0xfc00 ); if ( !pDM_Odm->RFCalibrateInfo.TxPowerTrackControl || pHalData->EEPROMThermalMeter == 0 ||
@@ -104,11 +107,15 @@ void ODM_TXPowerTrackingCallback_ThermalMeter(struct adapter *Adapter)/* 4 3. Initialize ThermalValues of RFCalibrateInfo */ /* 4 4. Calculate average thermal meter */ - - pDM_Odm->RFCalibrateInfo.ThermalValue_AVG[pDM_Odm->RFCalibrateInfo.ThermalValue_AVG_index] = ThermalValue; - pDM_Odm->RFCalibrateInfo.ThermalValue_AVG_index++; -if (pDM_Odm->RFCalibrateInfo.ThermalValue_AVG_index == c.AverageThermalNum)/* Average times = c.AverageThermalNum */ - pDM_Odm->RFCalibrateInfo.ThermalValue_AVG_index =0 ; + { +struct odm_rf_cal_t *cal = &pDM_Odm->RFCalibrateInfo; + + cal->ThermalValue_AVG[cal->ThermalValue_AVG_index] = ThermalValue; + cal->ThermalValue_AVG_index++; +/* Average times = c.AverageThermalNum */ +if (cal->ThermalValue_AVG_index == c.AverageThermalNum) + cal->ThermalValue_AVG_index =0 ; + }for (i =0 ; i < c.AverageThermalNum; i++) {if (pDM_Odm->RFCalibrateInfo.ThermalValue_AVG[i]) {
@@ -200,10 +207,16 @@ void ODM_TXPowerTrackingCallback_ThermalMeter(struct adapter *Adapter)if ( pDM_Odm->RFCalibrateInfo.DeltaPowerIndex[p] == pDM_Odm->RFCalibrateInfo.DeltaPowerIndexLast[p] - )/* If Thermal value changes but lookup table value still the same */ + ) { +/* If Thermal value changes but lookup table value still the same */ pDM_Odm->RFCalibrateInfo.PowerIndexOffset[p] =0 ; -else - pDM_Odm->RFCalibrateInfo.PowerIndexOffset[p] = pDM_Odm->RFCalibrateInfo.DeltaPowerIndex[p] - pDM_Odm->RFCalibrateInfo.DeltaPowerIndexLast[p];/* Power Index Diff between 2 times Power Tracking */ + }else { +/* Power Index Diff between 2 times Power Tracking */ +s8 delta_idx = pDM_Odm->RFCalibrateInfo.DeltaPowerIndex[p]; +s8 last_idx = pDM_Odm->RFCalibrateInfo.DeltaPowerIndexLast[p]; + + pDM_Odm->RFCalibrateInfo.PowerIndexOffset[p] = delta_idx - last_idx; + } pDM_Odm->RFCalibrateInfo.OFDM_index[p] = pDM_Odm->BbSwingIdxOfdmBase[p] +
@@ -245,7 +258,8 @@ void ODM_TXPowerTrackingCallback_ThermalMeter(struct adapter *Adapter) ) {/* 4 7.2 Configure the Swing Table to adjust Tx Power. */ - pDM_Odm->RFCalibrateInfo.bTxPowerChanged = true;/* Always true after Tx Power is adjusted by power tracking. */ +/* Always true after Tx Power is adjusted by power tracking. */ + pDM_Odm->RFCalibrateInfo.bTxPowerChanged = true;/* */ /* 2012/04/23 MH According to Luke's suggestion, we can not write BB digital */ /* to increase TX power. Otherwise, EVM will be bad. */
drivers/staging/rtl8723bs/hal/hal_com_phycfg.c +15 -7
@@ -318,7 +318,8 @@ static void PHY_StoreTxPowerByRateNew(struct adapter *padapter, u32 RfPath,u8 i =0 , rateIndex[4 ] = {0 }, rateNum =0 ;s8 PwrByRateVal[4 ] = {0 }; -PHY_GetRateValuesOfTxPowerByRate (padapter, RegAddr, BitMask, Data, rateIndex, PwrByRateVal, &rateNum); +PHY_GetRateValuesOfTxPowerByRate (padapter, RegAddr, BitMask, Data, + rateIndex, PwrByRateVal, &rateNum);if (RfPath >=RF_PATH_MAX )return ;
@@ -436,7 +437,10 @@ void PHY_SetTxPowerIndexByRateSection( ARRAY_SIZE(ofdmRates)); }else if (RateSection ==HT_MCS0_MCS7 ) { -u8 htRates1T[] = {MGN_MCS0 ,MGN_MCS1 ,MGN_MCS2 ,MGN_MCS3 ,MGN_MCS4 ,MGN_MCS5 ,MGN_MCS6 ,MGN_MCS7 }; +u8 htRates1T[] = { +MGN_MCS0 ,MGN_MCS1 ,MGN_MCS2 ,MGN_MCS3 , +MGN_MCS4 ,MGN_MCS5 ,MGN_MCS6 ,MGN_MCS7 + }; PHY_SetTxPowerIndexByRateArray(padapter, RFPath, pHalData->CurrentChannelBW, Channel, htRates1T,
@@ -846,11 +850,15 @@ void PHY_SetTxPowerLimit(if (channelIndex ==-1 )return ; - - prevPowerLimit = pHalData->TxPwrLimit_2_4G[regulation][bandwidth][rateSection][channelIndex][RF_PATH_A ]; - -if (powerLimit < prevPowerLimit) - pHalData->TxPwrLimit_2_4G[regulation][bandwidth][rateSection][channelIndex][RF_PATH_A ] = powerLimit; + { +s8 *pLimit = &pHalData->TxPwrLimit_2_4G[regulation][bandwidth] + [rateSection][channelIndex] + [RF_PATH_A ]; + prevPowerLimit = *pLimit; + +if (powerLimit < prevPowerLimit) + *pLimit = powerLimit; + } }void Hal_ChannelPlanToRegulation (struct adapter *Adapter,u16 ChannelPlan)
drivers/staging/rtl8723bs/hal/hal_intf.c +3 -1
@@ -120,7 +120,9 @@ u8 rtw_hal_get_def_var(struct adapter *padapter, enum hal_def_variable eVariablereturn GetHalDefVar8723BSDIO (padapter, eVariable, pValue); } -void rtw_hal_set_odm_var (struct adapter *padapter,enum hal_odm_variable eVariable,void *pValue1,bool bSet) +void rtw_hal_set_odm_var (struct adapter *padapter, +enum hal_odm_variable eVariable, +void *pValue1,bool bSet) {SetHalODMVar (padapter, eVariable, pValue1, bSet); }
drivers/staging/rtl8723bs/hal/hal_sdio.c +3 -1
@@ -23,8 +23,10 @@ u8 rtw_hal_sdio_query_tx_freepage( ) {struct hal_com_data *pHalData =GET_HAL_DATA (padapter); +u8 page_free = pHalData->SdioTxFIFOFreePage[PageIdx]; +u8 pub_free = pHalData->SdioTxFIFOFreePage[PUBLIC_QUEUE_IDX ]; -if ((pHalData->SdioTxFIFOFreePage[PageIdx]+pHalData->SdioTxFIFOFreePage[PUBLIC_QUEUE_IDX ]) >= (RequiredPageNum)) +if ((page_free + pub_free) >= RequiredPageNum)return true;else return false;
drivers/staging/rtl8723bs/hal/odm.c +13 -5
@@ -131,8 +131,13 @@ u8 CCKSwingTable_Ch14_New[CCK_TABLE_SIZE][8] = {static void odm_CommonInfoSelfInit (struct dm_odm_t *pDM_Odm) { - pDM_Odm->bCckHighPower = (bool )PHY_QueryBBReg (pDM_Odm->Adapter,ODM_REG (CCK_RPT_FORMAT , pDM_Odm),ODM_BIT (CCK_RPT_FORMAT , pDM_Odm)); - pDM_Odm->RFPathRxEnable = (u8 )PHY_QueryBBReg (pDM_Odm->Adapter,ODM_REG (BB_RX_PATH , pDM_Odm),ODM_BIT (BB_RX_PATH , pDM_Odm)); +u32 cck_reg =ODM_REG (CCK_RPT_FORMAT , pDM_Odm); +u32 cck_bit =ODM_BIT (CCK_RPT_FORMAT , pDM_Odm); +u32 rx_reg =ODM_REG (BB_RX_PATH , pDM_Odm); +u32 rx_bit =ODM_BIT (BB_RX_PATH , pDM_Odm); + + pDM_Odm->bCckHighPower = (bool )PHY_QueryBBReg (pDM_Odm->Adapter, cck_reg, cck_bit); + pDM_Odm->RFPathRxEnable = (u8 )PHY_QueryBBReg (pDM_Odm->Adapter, rx_reg, rx_bit); pDM_Odm->TxRate =0xFF ; }
@@ -267,12 +272,15 @@ static void odm_RefreshRateAdaptiveMaskCE(struct dm_odm_t *pDM_Odm)struct sta_info *pstat = pDM_Odm->pODM_StaInfo[i];if (IS_STA_VALID (pstat)) { -if (is_multicast_ether_addr (pstat->hwaddr))/* if (psta->mac_id == 1) */ +u32 rssi = pstat->rssi_stat.UndecoratedSmoothedPWDB; +bool changed; + +if (is_multicast_ether_addr (pstat->hwaddr))continue ; -if (true ==ODM_RAStateCheck (pDM_Odm, pstat->rssi_stat.UndecoratedSmoothedPWDB, false, &pstat->rssi_level)) { + changed =ODM_RAStateCheck (pDM_Odm, rssi, false, &pstat->rssi_level); +if (changed)rtw_hal_update_ra_mask (pstat, pstat->rssi_level); - } } }
drivers/staging/rtl8723bs/hal/odm_DIG.c +24 -14
@@ -10,17 +10,23 @@void odm_NHMCounterStatisticsInit (void *pDM_VOID) {struct dm_odm_t *pDM_Odm = (struct dm_odm_t *)pDM_VOID; +struct adapter *adapter = pDM_Odm->Adapter;/* PHY parameters initialize for n series */ -rtw_write16 (pDM_Odm->Adapter,ODM_REG_NHM_TIMER_11N +2 ,0x2710 );/* 0x894[31:16]= 0x2710 Time duration for NHM unit: 4us, 0x2710 =40ms */ -/* rtw_write16(pDM_Odm->Adapter, ODM_REG_NHM_TIMER_11N+2, 0x4e20); 0x894[31:16]= 0x4e20 Time duration for NHM unit: 4us, 0x4e20 =80ms */ -rtw_write16 (pDM_Odm->Adapter,ODM_REG_NHM_TH9_TH10_11N +2 ,0xffff );/* 0x890[31:16]= 0xffff th_9, th_10 */ -/* rtw_write32(pDM_Odm->Adapter, ODM_REG_NHM_TH3_TO_TH0_11N, 0xffffff5c); 0x898 = 0xffffff5c th_3, th_2, th_1, th_0 */ -rtw_write32 (pDM_Odm->Adapter,ODM_REG_NHM_TH3_TO_TH0_11N ,0xffffff52 );/* 0x898 = 0xffffff52 th_3, th_2, th_1, th_0 */ -rtw_write32 (pDM_Odm->Adapter,ODM_REG_NHM_TH7_TO_TH4_11N ,0xffffffff );/* 0x89c = 0xffffffff th_7, th_6, th_5, th_4 */ -PHY_SetBBReg (pDM_Odm->Adapter,ODM_REG_FPGA0_IQK_11N , bMaskByte0,0xff );/* 0xe28[7:0]= 0xff th_8 */ -PHY_SetBBReg (pDM_Odm->Adapter,ODM_REG_NHM_TH9_TH10_11N ,BIT10 |BIT9 |BIT8 ,0x7 );/* 0x890[9:8]=3 enable CCX */ -PHY_SetBBReg (pDM_Odm->Adapter,ODM_REG_OFDM_FA_RSTC_11N ,BIT7 ,0x1 );/* 0xc0c[7]= 1 max power among all RX ants */ +/* 0x894[31:16]=0x2710, Time duration for NHM unit: 4us, 0x2710=40ms */ +rtw_write16 (adapter,ODM_REG_NHM_TIMER_11N +2 ,0x2710 ); +/* 0x890[31:16]=0xffff, th_9, th_10 */ +rtw_write16 (adapter,ODM_REG_NHM_TH9_TH10_11N +2 ,0xffff ); +/* 0x898=0xffffff52, th_3, th_2, th_1, th_0 */ +rtw_write32 (adapter,ODM_REG_NHM_TH3_TO_TH0_11N ,0xffffff52 ); +/* 0x89c=0xffffffff, th_7, th_6, th_5, th_4 */ +rtw_write32 (adapter,ODM_REG_NHM_TH7_TO_TH4_11N ,0xffffffff ); +/* 0xe28[7:0]=0xff, th_8 */ +PHY_SetBBReg (adapter,ODM_REG_FPGA0_IQK_11N , bMaskByte0,0xff ); +/* 0x890[9:8]=3, enable CCX */ +PHY_SetBBReg (adapter,ODM_REG_NHM_TH9_TH10_11N ,BIT10 |BIT9 |BIT8 ,0x7 ); +/* 0xc0c[7]=1, max power among all RX ants */ +PHY_SetBBReg (adapter,ODM_REG_OFDM_FA_RSTC_11N ,BIT7 ,0x1 ); }void odm_NHMCounterStatistics (void *pDM_VOID)
@@ -80,8 +86,8 @@ void odm_NHMBB(void *pDM_VOID) pDM_Odm->NHMLastRxOkcnt = *(pDM_Odm->pNumRxBytesUnicast); - -if ((pDM_Odm->NHMCurTxOkcnt) +1 > (u64)(pDM_Odm->NHMCurRxOkcnt<<2 ) +1 ) {/* Tx > 4*Rx possible for adaptivity test */ +/* Tx > 4*Rx possible for adaptivity test */ +if ((pDM_Odm->NHMCurTxOkcnt) +1 > (u64)(pDM_Odm->NHMCurRxOkcnt <<2 ) +1 ) {if (pDM_Odm->NHM_cnt_0 >=190 || pDM_Odm->adaptivity_flag == true) {/* Enable EDCCA since it is possible running Adaptivity testing */ /* test_status = 1; */
@@ -343,7 +349,9 @@ void odm_DIGInit(void *pDM_VOID) pDM_DigTable->bStopDIG = false; pDM_DigTable->bPSDInProgress = false; - pDM_DigTable->CurIGValue = (u8 )PHY_QueryBBReg (pDM_Odm->Adapter,ODM_REG (IGI_A , pDM_Odm),ODM_BIT (IGI , pDM_Odm)); + pDM_DigTable->CurIGValue = (u8 )PHY_QueryBBReg (pDM_Odm->Adapter, +ODM_REG (IGI_A , pDM_Odm), +ODM_BIT (IGI , pDM_Odm)); pDM_DigTable->RssiLowThresh =DM_DIG_THRESH_LOW ; pDM_DigTable->RssiHighThresh =DM_DIG_THRESH_HIGH ; pDM_DigTable->FALowThresh = DMfalseALARM_THRESH_LOW;
@@ -565,10 +573,12 @@ void odm_DIG(void *pDM_VOID)else if (pDM_Odm->bBtConnectProcess)ODM_Write_DIG (pDM_Odm,0x28 );else -ODM_Write_DIG (pDM_Odm, pDM_DigTable->BT30_CurIGI);/* ODM_Write_DIG(pDM_Odm, pDM_DigTable->CurIGValue); */ +/* ODM_Write_DIG(pDM_Odm, pDM_DigTable->CurIGValue); */ +ODM_Write_DIG (pDM_Odm, pDM_DigTable->BT30_CurIGI); } }else {/* BT is not using */ -ODM_Write_DIG (pDM_Odm, CurrentIGI);/* ODM_Write_DIG(pDM_Odm, pDM_DigTable->CurIGValue); */ +/* ODM_Write_DIG(pDM_Odm, pDM_DigTable->CurIGValue); */ +ODM_Write_DIG (pDM_Odm, CurrentIGI); pDM_DigTable->bMediaConnect_0 = pDM_Odm->bLinked; pDM_DigTable->DIG_Dynamic_MIN_0 = DIG_Dynamic_MIN; }
drivers/staging/rtl8723bs/hal/odm_HWConfig.c +13 -4
@@ -372,13 +372,22 @@ static void odm_Process_RSSIForDM( OFDM_pkt += (u8)(pEntry->rssi_stat.PacketMap>>i)&BIT0 ;if (pEntry->rssi_stat.ValidBit ==64 ) { +u32 ofdm_weight, cck_weight; + Weighting = ((OFDM_pkt<<4 ) >64 )?64 :(OFDM_pkt<<4 ); - UndecoratedSmoothedPWDB = (Weighting*UndecoratedSmoothedOFDM+(64 -Weighting)*UndecoratedSmoothedCCK)>>6 ; + ofdm_weight = Weighting * UndecoratedSmoothedOFDM; + cck_weight = (64 - Weighting) * UndecoratedSmoothedCCK; + UndecoratedSmoothedPWDB = (ofdm_weight + cck_weight) >>6 ; }else { -if (pEntry->rssi_stat.ValidBit !=0 ) - UndecoratedSmoothedPWDB = (OFDM_pkt*UndecoratedSmoothedOFDM+(pEntry->rssi_stat.ValidBit-OFDM_pkt)*UndecoratedSmoothedCCK)/pEntry->rssi_stat.ValidBit; -else +if (pEntry->rssi_stat.ValidBit !=0 ) { +u8 valid = pEntry->rssi_stat.ValidBit; +u32 ofdm_sum = OFDM_pkt * UndecoratedSmoothedOFDM; +u32 cck_sum = (valid - OFDM_pkt) * UndecoratedSmoothedCCK; + + UndecoratedSmoothedPWDB = (ofdm_sum + cck_sum) / valid; + }else { UndecoratedSmoothedPWDB =0 ; + } } pEntry->rssi_stat.UndecoratedSmoothedCCK = UndecoratedSmoothedCCK;
drivers/staging/rtl8723bs/hal/rtl8723b_rf6052.c +4 -2
@@ -113,10 +113,12 @@ static int phy_RF6052_Config_ParaFile(struct adapter *Adapter)udelay (1 );/* PlatformStallExecution(1); */ /* Set bit number of Address and Data for RF register */ -PHY_SetBBReg (Adapter, pPhyReg->rfHSSIPara2, b3WireAddressLength,0x0 );/* Set 1 to 4 bits for 8255 */ +/* Set 1 to 4 bits for 8255 */ +PHY_SetBBReg (Adapter, pPhyReg->rfHSSIPara2, b3WireAddressLength,0x0 );udelay (1 );/* PlatformStallExecution(1); */ -PHY_SetBBReg (Adapter, pPhyReg->rfHSSIPara2, b3WireDataLength,0x0 );/* Set 0 to 12 bits for 8255 */ +/* Set 0 to 12 bits for 8255 */ +PHY_SetBBReg (Adapter, pPhyReg->rfHSSIPara2, b3WireDataLength,0x0 );udelay (1 );/* PlatformStallExecution(1); */ /*----Initialize RF fom connfiguration file----*/
drivers/staging/rtl8723bs/hal/rtl8723bs_recv.c +4 -2
@@ -298,8 +298,10 @@ static void rtl8723bs_recv_tasklet(struct tasklet_struct *t) pkt_copy->dev = padapter->pnetdev; precvframe->u.hdr.pkt = pkt_copy; -skb_reserve (pkt_copy,8 - ((SIZE_PTR )(pkt_copy->data) &7 ));/* force pkt_copy->data at 8-byte alignment address */ -skb_reserve (pkt_copy, shift_sz);/* force ip_hdr at 8-byte alignment address according to shift_sz. */ +/* force pkt_copy->data at 8-byte alignment address */ +skb_reserve (pkt_copy,8 - ((SIZE_PTR )(pkt_copy->data) &7 )); +/* force ip_hdr at 8-byte alignment per shift_sz */ +skb_reserve (pkt_copy, shift_sz);memcpy (pkt_copy->data, (ptr + rx_report_sz + pattrib->shift_sz), skb_len); precvframe->u.hdr.rx_head = pkt_copy->head; precvframe->u.hdr.rx_data = precvframe->u.hdr.rx_tail = pkt_copy->data;
drivers/staging/rtl8723bs/hal/rtl8723bs_xmit.c +4 -1
@@ -446,7 +446,10 @@ s32 rtl8723bs_mgnt_xmit( pxmitbuf->priv_data =NULL ;if (GetFrameSubType (pframe) ==WIFI_BEACON ) {/* dump beacon directly */ - ret =rtw_write_port (padapter, pdvobjpriv->Queue2Pipe[pxmitbuf->ff_hwaddr], pxmitbuf->len, (u8 *)pxmitbuf); +u8 ff_addr = pxmitbuf->ff_hwaddr; + + ret =rtw_write_port (padapter, pdvobjpriv->Queue2Pipe[ff_addr], + pxmitbuf->len, (u8 *)pxmitbuf);if (ret != _SUCCESS)rtw_sctx_done_err (&pxmitbuf->sctx,RTW_SCTX_DONE_WRITE_PORT_ERR );
drivers/staging/rtl8723bs/hal/sdio_halinit.c +12 -5
@@ -28,7 +28,9 @@ static u8 CardEnable(struct adapter *padapter)/* unlock ISO/CLK/Power control register */ rtw_write8 (padapter,REG_RSV_CTRL ,0x0 ); - ret =HalPwrSeqCmdParsing (padapter,PWR_CUT_ALL_MSK ,PWR_FAB_ALL_MSK ,PWR_INTF_SDIO_MSK , rtl8723B_card_enable_flow); + ret =HalPwrSeqCmdParsing (padapter,PWR_CUT_ALL_MSK , +PWR_FAB_ALL_MSK ,PWR_INTF_SDIO_MSK , + rtl8723B_card_enable_flow);if (ret == _SUCCESS) {u8 bMacPwrCtrlOn = true;rtw_hal_set_hwreg (padapter,HW_VAR_APFM_ON_MAC , &bMacPwrCtrlOn);
@@ -111,7 +113,9 @@ u8 _InitPowerOn_8723BS(struct adapter *padapter) }/* Tx Page FIFO threshold */ -static void _init_available_page_threshold (struct adapter *padapter,u8 numHQ,u8 numNQ,u8 numLQ,u8 numPubQ) +static void _init_available_page_threshold (struct adapter *padapter, +u8 numHQ,u8 numNQ, +u8 numLQ,u8 numPubQ) {u16 HQ_threshold, NQ_threshold, LQ_threshold;
@@ -852,7 +856,8 @@ static void CardDisableRTL8723BSdio(struct adapter *padapter)u8 bMacPwrCtrlOn;/* Run LPS WL RFOFF flow */ -HalPwrSeqCmdParsing (padapter,PWR_CUT_ALL_MSK ,PWR_FAB_ALL_MSK ,PWR_INTF_SDIO_MSK , rtl8723B_enter_lps_flow); +HalPwrSeqCmdParsing (padapter,PWR_CUT_ALL_MSK ,PWR_FAB_ALL_MSK , +PWR_INTF_SDIO_MSK , rtl8723B_enter_lps_flow);/* ==== Reset digital sequence ====== */
@@ -881,7 +886,8 @@ static void CardDisableRTL8723BSdio(struct adapter *padapter) bMacPwrCtrlOn = false;/* Disable CMD53 R/W */ rtw_hal_set_hwreg (padapter,HW_VAR_APFM_ON_MAC , &bMacPwrCtrlOn); -HalPwrSeqCmdParsing (padapter,PWR_CUT_ALL_MSK ,PWR_FAB_ALL_MSK ,PWR_INTF_SDIO_MSK , rtl8723B_card_disable_flow); +HalPwrSeqCmdParsing (padapter,PWR_CUT_ALL_MSK ,PWR_FAB_ALL_MSK , +PWR_INTF_SDIO_MSK , rtl8723B_card_disable_flow); }u32 rtl8723bs_hal_deinit (struct adapter *padapter)
@@ -1110,7 +1116,8 @@ static s32 _ReadAdapterInfo8723BS(struct adapter *padapter)if (!padapter->hw_init_completed) {rtw_write8 (padapter,0x67 ,0x00 );/* for BT, Switch Ant control to BT */ -CardDisableRTL8723BSdio (padapter);/* for the power consumption issue, wifi ko module is loaded during booting, but wifi GUI is off */ +/* Power consumption issue: wifi module loaded at boot but GUI off */ +CardDisableRTL8723BSdio (padapter); }return _SUCCESS;
Signature · 1 line
2.52.0
PATCH v3 17/22 staging: rtl8723bs: os_dep: fix various line length overflows
In reply to [email protected]From: Luka Gejak <[email protected]>
Fix lines exceeding 100 characters in os_intfs.c, sdio_intf.c, and xmit_linux.c to comply with kernel coding style.
--- drivers/staging/rtl8723bs/os_dep/os_intfs.c | 17 +++++++++++------ drivers/staging/rtl8723bs/os_dep/sdio_intf.c | 3 ++- drivers/staging/rtl8723bs/os_dep/xmit_linux.c | 8 ++++++-- 3 files changed, 19 insertions(+), 9 deletions(-)
drivers/staging/rtl8723bs/os_dep/os_intfs.c +11 -6
@@ -71,9 +71,11 @@ int rtw_ht_enable = 1;* 0x01 means enable 2.4G 40MHz */ static int rtw_bw_mode =0x01 ; -static int rtw_ampdu_enable =1 ;/* for enable tx_ampdu ,0: disable, 0x1:enable (but wifi_spec should be 0), 0x2: force enable (don't care wifi_spec) */ +/* for enable tx_ampdu: 0=disable, 0x1=enable (wifi_spec=0), 0x2=force enable */ +static int rtw_ampdu_enable =1 ;static int rtw_rx_stbc =1 ;/* 0: disable, 1:enable 2.4g */ -static int rtw_ampdu_amsdu;/* 0: disabled, 1:enabled, 2:auto . There is an IOT issu with DLINK DIR-629 when the flag turn on */ +/* 0: disabled, 1:enabled, 2:auto. IOT issue with DLINK DIR-629 when on */ +static int rtw_ampdu_amsdu;/* Short GI support Bit Map */ /* BIT0 - 20MHz, 0: non-support, 1: support */ /* BIT1 - 40MHz, 0: non-support, 1: support */
@@ -98,7 +100,8 @@ module_param(rtw_ant_num, int, 0644);MODULE_PARM_DESC (rtw_ant_num,"Antenna number setting" );static int rtw_antdiv_cfg =1 ;/* 0:OFF , 1:ON, 2:decide by Efuse config */ -static int rtw_antdiv_type;/* 0:decide by efuse 1: for 88EE, 1Tx and 1RxCG are diversity.(2 Ant with SPDT), 2: for 88EE, 1Tx and 2Rx are diversity.(2 Ant, Tx and RxCG are both on aux port, RxCS is on main port), 3: for 88EE, 1Tx and 1RxCG are fixed.(1Ant, Tx and RxCG are both on aux port) */ +/* 0:efuse, 1:1Tx/1RxCG diversity(2Ant+SPDT), 2:1Tx/2Rx diversity, 3:fixed */ +static int rtw_antdiv_type;static int rtw_hw_wps_pbc;
@@ -1144,9 +1147,11 @@ static int rtw_resume_process_normal(struct adapter *padapter) }rtw_hal_disable_interrupt (padapter);/* if (sdio_alloc_irq(adapter_to_dvobj(padapter)) != _SUCCESS) */ -if ((padapter->intf_alloc_irq) && (padapter->intf_alloc_irq (adapter_to_dvobj (padapter)) != _SUCCESS)) { - ret =-1 ; - goto exit; +if (padapter->intf_alloc_irq) { +if (padapter->intf_alloc_irq (adapter_to_dvobj (padapter)) != _SUCCESS) { + ret =-1 ; + goto exit; + } }rtw_reset_drv_sw (padapter);
drivers/staging/rtl8723bs/os_dep/sdio_intf.c +2 -1
@@ -222,7 +222,8 @@ static void sd_intf_stop(struct adapter *padapter) } -static struct adapter *rtw_sdio_if1_init (struct dvobj_priv *dvobj,const struct sdio_device_id *pdid) +static struct adapter *rtw_sdio_if1_init (struct dvobj_priv *dvobj, +const struct sdio_device_id *pdid) {int status = _FAIL;struct net_device *pnetdev;
drivers/staging/rtl8723bs/os_dep/xmit_linux.c +6 -2
@@ -46,7 +46,9 @@ signed int rtw_endofpktfile(struct pkt_file *pfile)return false; } -int rtw_os_xmit_resource_alloc (struct adapter *padapter,struct xmit_buf *pxmitbuf,u32 alloc_sz,u8 flag) +int rtw_os_xmit_resource_alloc (struct adapter *padapter, +struct xmit_buf *pxmitbuf, +u32 alloc_sz,u8 flag) {if (alloc_sz >0 ) { pxmitbuf->pallocated_buf =kzalloc (alloc_sz,GFP_KERNEL );
@@ -59,7 +61,9 @@ int rtw_os_xmit_resource_alloc(struct adapter *padapter, struct xmit_buf *pxmitbreturn _SUCCESS; } -void rtw_os_xmit_resource_free (struct adapter *padapter,struct xmit_buf *pxmitbuf,u32 free_sz,u8 flag) +void rtw_os_xmit_resource_free (struct adapter *padapter, +struct xmit_buf *pxmitbuf, +u32 free_sz,u8 flag) {if (free_sz >0 )kfree (pxmitbuf->pallocated_buf);
Signature · 1 line
2.52.0
PATCH v3 18/22 staging: rtl8723bs: core: fix line lengths in rtw_cmd.c
In reply to [email protected]From: Luka Gejak <[email protected]>
Break long lines exceeding 100 characters to comply with kernel coding style.
--- drivers/staging/rtl8723bs/core/rtw_cmd.c | 147 +++++++++++++---------- 1 file changed, 81 insertions(+), 66 deletions(-)
drivers/staging/rtl8723bs/core/rtw_cmd.c +81 -66
@@ -183,7 +183,7 @@ int rtw_init_cmd_priv(struct cmd_priv *pcmdpriv)return -ENOMEM ; } - pcmdpriv->rsp_buf = pcmdpriv->rsp_allocated_buf +4 - ((SIZE_PTR )(pcmdpriv->rsp_allocated_buf) &3 ); + pcmdpriv->rsp_buf =PTR_ALIGN (pcmdpriv->rsp_allocated_buf,4 ); pcmdpriv->cmd_issued_cnt =0 ; pcmdpriv->cmd_done_cnt =0 ;
@@ -392,7 +392,7 @@ int rtw_cmd_thread(void *context)while (1 ) {if (wait_for_completion_interruptible (&pcmdpriv->cmd_queue_comp)) {netdev_dbg (padapter->pnetdev, -FUNC_ADPT_FMT " wait_for_completion_interruptible(&pcmdpriv->cmd_queue_comp) return != 0, break\n" , +FUNC_ADPT_FMT " cmd_queue_comp interrupted\n" ,FUNC_ADPT_ARG (padapter));break ; }
@@ -726,31 +726,33 @@ u8 rtw_joinbss_cmd(struct adapter *padapter, struct wlan_network *pnetwork)memcpy (&psecuritypriv->authenticator_ie[1 ], &psecnetwork->ies[12 ], (256 -1 )); psecnetwork->ie_length =0 ; -/* Added by Albert 2009/02/18 */ -/* If the driver wants to use the bssid to create the connection. */ -/* If not, we have to copy the connecting AP's MAC address to it so that */ -/* the driver just has the bssid information for PMKIDList searching. */ +/* If not using bssid, copy connecting AP's MAC for PMKIDList searching. */ if (!pmlmepriv->assoc_by_bssid) -memcpy (&pmlmepriv->assoc_bssid[0 ], &pnetwork->network.mac_address[0 ],ETH_ALEN ); +memcpy (pmlmepriv->assoc_bssid, pnetwork->network.mac_address,ETH_ALEN ); - psecnetwork->ie_length =rtw_restruct_sec_ie (padapter, &pnetwork->network.ies[0 ], &psecnetwork->ies[0 ], pnetwork->network.ie_length); - - pqospriv->qos_option =0 ; - -if (pregistrypriv->wmm_enable) { - tmp_len =rtw_restruct_wmm_ie (padapter, &pnetwork->network.ies[0 ], &psecnetwork->ies[0 ], pnetwork->network.ie_length, psecnetwork->ie_length); - -if (psecnetwork->ie_length != tmp_len) { - psecnetwork->ie_length = tmp_len; - pqospriv->qos_option =1 ;/* There is WMM IE in this corresp. beacon */ - }else { - pqospriv->qos_option =0 ;/* There is no WMM IE in this corresp. beacon */ + { +u8 *src_ie = pnetwork->network.ies; +u8 *dst_ie = psecnetwork->ies; +int src_len = pnetwork->network.ie_length; + + psecnetwork->ie_length =rtw_restruct_sec_ie (padapter, src_ie, + dst_ie, src_len); + + pqospriv->qos_option =0 ; +if (pregistrypriv->wmm_enable) { + tmp_len =rtw_restruct_wmm_ie (padapter, src_ie, dst_ie, + src_len, psecnetwork->ie_length); +if (psecnetwork->ie_length != tmp_len) { + psecnetwork->ie_length = tmp_len; + pqospriv->qos_option =1 ; + } } - } - phtpriv->ht_option = false; - ptmp =rtw_get_ie (&pnetwork->network.ies[12 ],WLAN_EID_HT_CAPABILITY , &tmp_len, pnetwork->network.ie_length -12 ); + phtpriv->ht_option = false; + ptmp =rtw_get_ie (&src_ie[12 ],WLAN_EID_HT_CAPABILITY , + &tmp_len, src_len -12 ); + }if (pregistrypriv->ht_enable && ptmp && tmp_len >0 ) {/* Added by Albert 2010/06/23 */ /* For the WEP mode, we will use the bg mode to do the connection to avoid some IOT issue. */
@@ -787,7 +789,8 @@ u8 rtw_joinbss_cmd(struct adapter *padapter, struct wlan_network *pnetwork)return res; } -u8 rtw_disassoc_cmd (struct adapter *padapter,u32 deauth_timeout_ms,bool enqueue)/* for sta_mode */ +/* for sta_mode */ +u8 rtw_disassoc_cmd (struct adapter *padapter,u32 deauth_timeout_ms,bool enqueue) {struct cmd_obj *cmdobj =NULL ;struct disconnect_parm *param =NULL ;
@@ -823,10 +826,12 @@ u8 rtw_disassoc_cmd(struct adapter *padapter, u32 deauth_timeout_ms, bool enqueureturn res; } -u8 rtw_setopmode_cmd (struct adapter *padapter,enum ndis_802_11_network_infrastructure networktype,bool enqueue) +u8 rtw_setopmode_cmd (struct adapter *padapter, +enum ndis_802_11_network_infrastructure networktype, +bool enqueue) { -struct cmd_obj *ph2c; -struct setopmode_parm *psetop; +struct cmd_obj *ph2c; +struct setopmode_parm *psetop;struct cmd_priv *pcmdpriv = &padapter->cmdpriv;u8 res = _SUCCESS;
@@ -879,10 +884,14 @@ u8 rtw_setstakey_cmd(struct adapter *padapter, struct sta_info *sta, u8 unicast_else GET_ENCRY_ALGO (psecuritypriv, sta, psetstakey_para->algorithm, false); -if (unicast_key) +if (unicast_key) {memcpy (&psetstakey_para->key, &sta->dot118021x_UncstKey,16 ); -else -memcpy (&psetstakey_para->key, &psecuritypriv->dot118021XGrpKey[psecuritypriv->dot118021XGrpKeyid].skey,16 ); + }else { +u8 keyid = psecuritypriv->dot118021XGrpKeyid; +u8 *grpkey = psecuritypriv->dot118021XGrpKey[keyid].skey; + +memcpy (&psetstakey_para->key, grpkey,16 ); + }/* jeff: set this because at least sw key is ready */ padapter->securitypriv.busetkipkey = true;
@@ -1104,25 +1113,26 @@ u8 rtw_dynamic_chk_wk_cmd(struct adapter *padapter)static void collect_traffic_statistics (struct adapter *padapter) {struct dvobj_priv *pdvobjpriv =adapter_to_dvobj (padapter); - -/* Tx */ - pdvobjpriv->traffic_stat.tx_bytes = padapter->xmitpriv.tx_bytes; - pdvobjpriv->traffic_stat.tx_pkts = padapter->xmitpriv.tx_pkts; - pdvobjpriv->traffic_stat.tx_drop = padapter->xmitpriv.tx_drop; - -/* Rx */ - pdvobjpriv->traffic_stat.rx_bytes = padapter->recvpriv.rx_bytes; - pdvobjpriv->traffic_stat.rx_pkts = padapter->recvpriv.rx_pkts; - pdvobjpriv->traffic_stat.rx_drop = padapter->recvpriv.rx_drop; - -/* Calculate throughput in last interval */ - pdvobjpriv->traffic_stat.cur_tx_bytes = pdvobjpriv->traffic_stat.tx_bytes - pdvobjpriv->traffic_stat.last_tx_bytes; - pdvobjpriv->traffic_stat.cur_rx_bytes = pdvobjpriv->traffic_stat.rx_bytes - pdvobjpriv->traffic_stat.last_rx_bytes; - pdvobjpriv->traffic_stat.last_tx_bytes = pdvobjpriv->traffic_stat.tx_bytes; - pdvobjpriv->traffic_stat.last_rx_bytes = pdvobjpriv->traffic_stat.rx_bytes; - - pdvobjpriv->traffic_stat.cur_tx_tp = (u32)(pdvobjpriv->traffic_stat.cur_tx_bytes *8 /2 /1024 /1024 ); - pdvobjpriv->traffic_stat.cur_rx_tp = (u32)(pdvobjpriv->traffic_stat.cur_rx_bytes *8 /2 /1024 /1024 ); +struct rtw_traffic_statistics *stats = &pdvobjpriv->traffic_stat; + +/* Tx */ + stats->tx_bytes = padapter->xmitpriv.tx_bytes; + stats->tx_pkts = padapter->xmitpriv.tx_pkts; + stats->tx_drop = padapter->xmitpriv.tx_drop; + +/* Rx */ + stats->rx_bytes = padapter->recvpriv.rx_bytes; + stats->rx_pkts = padapter->recvpriv.rx_pkts; + stats->rx_drop = padapter->recvpriv.rx_drop; + +/* Calculate throughput in last interval */ + stats->cur_tx_bytes = stats->tx_bytes - stats->last_tx_bytes; + stats->cur_rx_bytes = stats->rx_bytes - stats->last_rx_bytes; + stats->last_tx_bytes = stats->tx_bytes; + stats->last_rx_bytes = stats->rx_bytes; + + stats->cur_tx_tp = (u32)(stats->cur_tx_bytes *8 /2 /1024 /1024 ); + stats->cur_rx_tp = (u32)(stats->cur_rx_bytes *8 /2 /1024 /1024 ); }u8 traffic_status_watchdog (struct adapter *padapter,u8 from_timer)
@@ -1168,27 +1178,31 @@ u8 traffic_status_watchdog(struct adapter *padapter, u8 from_timer) }/* check traffic for powersaving. */ -if (((pmlmepriv->LinkDetectInfo.NumRxUnicastOkInPeriod + pmlmepriv->LinkDetectInfo.NumTxOkInPeriod) >8 ) || - (pmlmepriv->LinkDetectInfo.NumRxUnicastOkInPeriod >2 )) { - bEnterPS = false; + { +struct rt_link_detect_t *ldi = &pmlmepriv->LinkDetectInfo; +u32 rx_tx_sum = ldi->NumRxUnicastOkInPeriod + ldi->NumTxOkInPeriod; -if (bBusyTraffic) { -if (pmlmepriv->LinkDetectInfo.TrafficTransitionCount <=4 ) - pmlmepriv->LinkDetectInfo.TrafficTransitionCount =4 ; +if ((rx_tx_sum >8 ) || (ldi->NumRxUnicastOkInPeriod >2 )) { + bEnterPS = false; - pmlmepriv->LinkDetectInfo.TrafficTransitionCount++; +if (bBusyTraffic) { +if (ldi->TrafficTransitionCount <=4 ) + ldi->TrafficTransitionCount =4 ; -if (pmlmepriv->LinkDetectInfo.TrafficTransitionCount >30 /*TrafficTransitionLevel*/ ) - pmlmepriv->LinkDetectInfo.TrafficTransitionCount =30 ; - } - }else { -if (pmlmepriv->LinkDetectInfo.TrafficTransitionCount >=2 ) - pmlmepriv->LinkDetectInfo.TrafficTransitionCount -=2 ; -else - pmlmepriv->LinkDetectInfo.TrafficTransitionCount =0 ; + ldi->TrafficTransitionCount++; + +if (ldi->TrafficTransitionCount >30 ) + ldi->TrafficTransitionCount =30 ; + } + }else { +if (ldi->TrafficTransitionCount >=2 ) + ldi->TrafficTransitionCount -=2 ; +else + ldi->TrafficTransitionCount =0 ; -if (pmlmepriv->LinkDetectInfo.TrafficTransitionCount ==0 ) - bEnterPS = true; +if (ldi->TrafficTransitionCount ==0 ) + bEnterPS = true; + } }/* LeisurePS only work in infra mode. */
@@ -1734,7 +1748,8 @@ u8 rtw_drvextra_cmd_hdl(struct adapter *padapter, unsigned char *pbuf) pdrvextra_cmd = (struct drvextra_cmd_parm *)pbuf;switch (pdrvextra_cmd->ec_id) { -case DYNAMIC_CHK_WK_CID :/* only primary padapter go to this cmd, but execute dynamic_chk_wk_hdl() for two interfaces */ +/* only primary padapter goes to this cmd, but execute for two interfaces */ +case DYNAMIC_CHK_WK_CID :dynamic_chk_wk_hdl (padapter);break ;case POWER_SAVING_CTRL_WK_CID :
Signature · 1 line
2.52.0
PATCH v3 19/22 staging: rtl8723bs: core: fix line lengths in rtw_mlme_ext.c
In reply to [email protected]From: Luka Gejak <[email protected]>
Break long lines exceeding 100 characters to comply with kernel coding style.
--- drivers/staging/rtl8723bs/core/rtw_mlme_ext.c | 471 ++++++++++++------ 1 file changed, 325 insertions(+), 146 deletions(-)
drivers/staging/rtl8723bs/core/rtw_mlme_ext.c +325 -146
@@ -62,12 +62,14 @@ static unsigned char REALTEK_96B_IE[] = {0x00, 0xe0, 0x4c, 0x02, 0x01, 0x20};/* ChannelPlan definitions */ static struct rt_channel_plan_2g RTW_ChannelPlan2G[RT_CHANNEL_DOMAIN_2G_MAX ] = { - {{1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10 ,11 ,12 ,13 },13 },/* 0x00, RT_CHANNEL_DOMAIN_2G_WORLD , Passive scan CH 12, 13 */ +/* 0x00, RT_CHANNEL_DOMAIN_2G_WORLD, Passive scan CH 12, 13 */ + {{1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10 ,11 ,12 ,13 },13 }, {{1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10 ,11 ,12 ,13 },13 },/* 0x01, RT_CHANNEL_DOMAIN_2G_ETSI1 */ {{1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10 ,11 },11 },/* 0x02, RT_CHANNEL_DOMAIN_2G_FCC1 */ {{1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10 ,11 ,12 ,13 ,14 },14 },/* 0x03, RT_CHANNEL_DOMAIN_2G_MIKK1 */ {{10 ,11 ,12 ,13 },4 },/* 0x04, RT_CHANNEL_DOMAIN_2G_ETSI2 */ - {{1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10 ,11 ,12 ,13 ,14 },14 },/* 0x05, RT_CHANNEL_DOMAIN_2G_GLOBAL , Passive scan CH 12, 13, 14 */ +/* 0x05, RT_CHANNEL_DOMAIN_2G_GLOBAL, Passive scan CH 12, 13, 14 */ + {{1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10 ,11 ,12 ,13 ,14 },14 }, {{},0 },/* 0x06, RT_CHANNEL_DOMAIN_2G_NULL */ };
@@ -194,15 +196,24 @@ int init_hw_mlme_ext(struct adapter *padapter)void init_mlme_default_rate_set (struct adapter *padapter) {struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; - -unsigned char mixed_datarate[NumRates] = {_1M_RATE_, _2M_RATE_, _5M_RATE_, _11M_RATE_, _6M_RATE_, _9M_RATE_, _12M_RATE_, _18M_RATE_, _24M_RATE_, _36M_RATE_, _48M_RATE_, _54M_RATE_,0xff }; -unsigned char mixed_basicrate[NumRates] = {_1M_RATE_, _2M_RATE_, _5M_RATE_, _11M_RATE_, _6M_RATE_, _12M_RATE_, _24M_RATE_,0xff ,}; -unsigned char supported_mcs_set[16 ] = {0xff ,0xff ,0x00 ,0x00 ,0x01 ,0x0 ,0x0 ,0x0 ,0x0 ,0x0 ,0x0 ,0x0 ,0x0 ,0x0 ,0x0 ,0x0 }; +static const unsigned char mixed_datarate[NumRates] = { + _1M_RATE_, _2M_RATE_, _5M_RATE_, _11M_RATE_, + _6M_RATE_, _9M_RATE_, _12M_RATE_, _18M_RATE_, + _24M_RATE_, _36M_RATE_, _48M_RATE_, _54M_RATE_,0xff + }; +static const unsigned char mixed_basicrate[NumRates] = { + _1M_RATE_, _2M_RATE_, _5M_RATE_, _11M_RATE_, + _6M_RATE_, _12M_RATE_, _24M_RATE_,0xff + }; +static const unsigned char supported_mcs_set[16 ] = { +0xff ,0xff ,0x00 ,0x00 ,0x01 ,0x00 ,0x00 ,0x00 , +0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 + };memcpy (pmlmeext->datarate, mixed_datarate, NumRates);memcpy (pmlmeext->basicrate, mixed_basicrate, NumRates); - -memcpy (pmlmeext->default_supported_mcs_set, supported_mcs_set,sizeof (pmlmeext->default_supported_mcs_set)); +memcpy (pmlmeext->default_supported_mcs_set, supported_mcs_set, +sizeof (pmlmeext->default_supported_mcs_set)); }static void init_mlme_ext_priv_value (struct adapter *padapter)
@@ -319,7 +330,8 @@ static void init_channel_list(struct adapter *padapter, struct rt_channel_info * } -static u8 init_channel_set (struct adapter *padapter,u8 ChannelPlan,struct rt_channel_info *channel_set) +static u8 init_channel_set (struct adapter *padapter,u8 ChannelPlan, +struct rt_channel_info *channel_set) {u8 index, chanset_size =0 ;u8 b2_4GBand = false;
@@ -340,22 +352,27 @@ static u8 init_channel_set(struct adapter *padapter, u8 ChannelPlan, struct rt_cif (b2_4GBand) {for (index =0 ; index < RTW_ChannelPlan2G[Index2G].Len; index++) { - channel_set[chanset_size].ChannelNum = RTW_ChannelPlan2G[Index2G].Channel[index]; - -if ((ChannelPlan ==RT_CHANNEL_DOMAIN_GLOBAL_DOAMIN ) ||/* Channel 1~11 is active, and 12~14 is passive */ - (ChannelPlan ==RT_CHANNEL_DOMAIN_GLOBAL_NULL )) { -if (channel_set[chanset_size].ChannelNum >=1 && channel_set[chanset_size].ChannelNum <=11 ) - channel_set[chanset_size].ScanType =SCAN_ACTIVE ; -else if ((channel_set[chanset_size].ChannelNum >=12 && channel_set[chanset_size].ChannelNum <=14 )) - channel_set[chanset_size].ScanType =SCAN_PASSIVE ; +struct rt_channel_info *ch = &channel_set[chanset_size]; + + ch->ChannelNum = RTW_ChannelPlan2G[Index2G].Channel[index]; + +if ((ChannelPlan ==RT_CHANNEL_DOMAIN_GLOBAL_DOAMIN ) || + (ChannelPlan ==RT_CHANNEL_DOMAIN_GLOBAL_NULL )) { +/* Channel 1~11 active, 12~14 passive */ +if (ch->ChannelNum >=1 && ch->ChannelNum <=11 ) + ch->ScanType =SCAN_ACTIVE ; +else if (ch->ChannelNum >=12 && ch->ChannelNum <=14 ) + ch->ScanType =SCAN_PASSIVE ; }else if (ChannelPlan ==RT_CHANNEL_DOMAIN_WORLD_WIDE_13 || - Index2G ==RT_CHANNEL_DOMAIN_2G_WORLD ) {/* channel 12~13, passive scan */ -if (channel_set[chanset_size].ChannelNum <=11 ) - channel_set[chanset_size].ScanType =SCAN_ACTIVE ; + Index2G ==RT_CHANNEL_DOMAIN_2G_WORLD ) { +/* channel 12~13, passive scan */ +if (ch->ChannelNum <=11 ) + ch->ScanType =SCAN_ACTIVE ;else - channel_set[chanset_size].ScanType =SCAN_PASSIVE ; - }else - channel_set[chanset_size].ScanType =SCAN_ACTIVE ; + ch->ScanType =SCAN_PASSIVE ; + }else { + ch->ScanType =SCAN_ACTIVE ; + } chanset_size++; }
@@ -391,8 +408,11 @@ void init_mlme_ext_priv(struct adapter *padapter)init_mlme_ap_info (padapter); - pmlmeext->max_chan_nums =init_channel_set (padapter, pmlmepriv->ChannelPlan, pmlmeext->channel_set); -init_channel_list (padapter, pmlmeext->channel_set, pmlmeext->max_chan_nums, &pmlmeext->channel_list); + pmlmeext->max_chan_nums =init_channel_set (padapter, + pmlmepriv->ChannelPlan, + pmlmeext->channel_set); +init_channel_list (padapter, pmlmeext->channel_set, + pmlmeext->max_chan_nums, &pmlmeext->channel_list); pmlmeext->last_scan_time =0 ; pmlmeext->chan_scan_time =SURVEY_TO ; pmlmeext->mlmeext_init = true;
@@ -417,7 +437,9 @@ void free_mlme_ext_priv(struct mlme_ext_priv *pmlmeext) } } -static void _mgt_dispatcher (struct adapter *padapter,struct mlme_handler *ptable,union recv_frame *precv_frame) +static void _mgt_dispatcher (struct adapter *padapter, +struct mlme_handler *ptable, +union recv_frame *precv_frame) {u8 *pframe = precv_frame->u.hdr.rx_data;
@@ -568,8 +590,10 @@ unsigned int OnBeacon(struct adapter *padapter, union recv_frame *precv_frame)int ret = _SUCCESS;u8 *p =NULL ;u32 ielen =0 ; +u8 *ie_start = pframe +sizeof (struct ieee80211_hdr_3addr ) + _BEACON_IE_OFFSET_; +int ie_len = len -sizeof (struct ieee80211_hdr_3addr ) - _BEACON_IE_OFFSET_; - p =rtw_get_ie (pframe +sizeof (struct ieee80211_hdr_3addr ) + _BEACON_IE_OFFSET_,WLAN_EID_EXT_SUPP_RATES , &ielen, precv_frame->u.hdr.len -sizeof (struct ieee80211_hdr_3addr ) - _BEACON_IE_OFFSET_); + p =rtw_get_ie (ie_start,WLAN_EID_EXT_SUPP_RATES , &ielen, ie_len);if (p && ielen >0 ) {if (p +2 + ielen < pframe + len) {if ((*(p +1 + ielen) ==0x2D ) && (*(p +2 + ielen) !=0x2D ))
@@ -596,7 +620,12 @@ unsigned int OnBeacon(struct adapter *padapter, union recv_frame *precv_frame) }/* check the vendor of the assoc AP */ - pmlmeinfo->assoc_AP_vendor =check_assoc_AP (pframe+sizeof (struct ieee80211_hdr_3addr ), len-sizeof (struct ieee80211_hdr_3addr )); + { +u8 *ap_ie = pframe +sizeof (struct ieee80211_hdr_3addr ); +int ap_ie_len = len -sizeof (struct ieee80211_hdr_3addr ); + + pmlmeinfo->assoc_AP_vendor =check_assoc_AP (ap_ie, ap_ie_len); + }/* update TSF Value */ update_TSF (pmlmeext, pframe, len);
@@ -615,7 +644,8 @@ unsigned int OnBeacon(struct adapter *padapter, union recv_frame *precv_frame)return _SUCCESS; } -if (((pmlmeinfo->state&0x03 ) ==WIFI_FW_STATION_STATE ) && (pmlmeinfo->state &WIFI_FW_ASSOC_SUCCESS )) { +if ((pmlmeinfo->state &0x03 ) ==WIFI_FW_STATION_STATE && + (pmlmeinfo->state &WIFI_FW_ASSOC_SUCCESS )) { psta =rtw_get_stainfo (pstapriv,GetAddr2Ptr (pframe));if (psta) { ret =rtw_check_bcn_info (padapter, pframe, len);
@@ -647,9 +677,17 @@ unsigned int OnBeacon(struct adapter *padapter, union recv_frame *precv_frame) goto _END_ONBEACON_;/* get supported rate */ -if (update_sta_support_rate (padapter, (pframe +WLAN_HDR_A3_LEN + _BEACON_IE_OFFSET_), (len -WLAN_HDR_A3_LEN - _BEACON_IE_OFFSET_), cam_idx) == _FAIL) { - pmlmeinfo->FW_sta_info[cam_idx].status =0 ; - goto _END_ONBEACON_; + { +u8 *rate_ie = pframe +WLAN_HDR_A3_LEN + _BEACON_IE_OFFSET_; +int rate_len = len -WLAN_HDR_A3_LEN - _BEACON_IE_OFFSET_; +int ret; + + ret =update_sta_support_rate (padapter, rate_ie, + rate_len, cam_idx); +if (ret == _FAIL) { + pmlmeinfo->FW_sta_info[cam_idx].status =0 ; + goto _END_ONBEACON_; + } }/* update TSF Value */
@@ -797,9 +835,11 @@ unsigned int OnAuth(struct adapter *padapter, union recv_frame *precv_frame) pstat->state |=WIFI_FW_AUTH_STATE ; pstat->authalg = algorithm; }else if (seq ==3 ) { +u8 *auth_ie = pframe +WLAN_HDR_A3_LEN +4 + _AUTH_IE_OFFSET_; +int auth_len = len -WLAN_HDR_A3_LEN - _AUTH_IE_OFFSET_ -4 ; - p =rtw_get_ie (pframe +WLAN_HDR_A3_LEN +4 + _AUTH_IE_OFFSET_,WLAN_EID_CHALLENGE , (int *)&ie_len, - len -WLAN_HDR_A3_LEN - _AUTH_IE_OFFSET_ -4 ); + p =rtw_get_ie (auth_ie,WLAN_EID_CHALLENGE , (int *)&ie_len, + auth_len);if (!p || ie_len <=0 ) { status =WLAN_STATUS_CHALLENGE_FAIL ;
@@ -1018,7 +1058,12 @@ unsigned int OnAssocReq(struct adapter *padapter, union recv_frame *precv_frame) goto OnAssocReqFail;/* check if the supported rate is ok */ - p =rtw_get_ie (pframe +WLAN_HDR_A3_LEN + ie_offset,WLAN_EID_SUPP_RATES , &ie_len, pkt_len -WLAN_HDR_A3_LEN - ie_offset); + { +u8 *rate_ie = pframe +WLAN_HDR_A3_LEN + ie_offset; +int rate_ie_len = pkt_len -WLAN_HDR_A3_LEN - ie_offset; + + p =rtw_get_ie (rate_ie,WLAN_EID_SUPP_RATES , &ie_len, rate_ie_len); + }if (!p) {/* use our own rate set as statoin used */ /* memcpy(supportRate, AP_BSSRATE, AP_BSSRATE_LEN); */
@@ -1067,7 +1112,9 @@ unsigned int OnAssocReq(struct adapter *padapter, union recv_frame *precv_frame) wpa_ie = elems.rsn_ie; wpa_ie_len = elems.rsn_ie_len; -if (rtw_parse_wpa2_ie (wpa_ie-2 , wpa_ie_len+2 , &group_cipher, &pairwise_cipher,NULL ) == _SUCCESS) { +if (rtw_parse_wpa2_ie (wpa_ie -2 , wpa_ie_len +2 , + &group_cipher, &pairwise_cipher, +NULL ) == _SUCCESS) { pstat->dot8021xalg =1 ;/* psk, todo:802.1x */ pstat->wpa_psk |=BIT (1 );
@@ -1129,8 +1176,12 @@ unsigned int OnAssocReq(struct adapter *padapter, union recv_frame *precv_frame) && (pstat->flags & (WLAN_STA_WPS|WLAN_STA_MAYBE_WPS))) {if (pmlmepriv->wps_beacon_ie) {u8 selected_registrar =0 ; +u8 *wps_ie = pmlmepriv->wps_beacon_ie; +uint wps_len = pmlmepriv->wps_beacon_ie_len; -rtw_get_wps_attr_content (pmlmepriv->wps_beacon_ie, pmlmepriv->wps_beacon_ie_len,WPS_ATTR_SELECTED_REGISTRAR , &selected_registrar,NULL ); +rtw_get_wps_attr_content (wps_ie, wps_len, +WPS_ATTR_SELECTED_REGISTRAR , + &selected_registrar,NULL );if (!selected_registrar) { status =WLAN_STATUS_AP_UNABLE_TO_HANDLE_NEW_STA ;
@@ -2144,11 +2195,18 @@ void issue_beacon(struct adapter *padapter, int timeout_ms)u8 *wps_ie;uint wps_ielen;u8 sr =0 ; - - wps_ie =rtw_get_wps_ie (pmgntframe->buf_addr+TXDESC_OFFSET +sizeof (struct ieee80211_hdr_3addr )+_BEACON_IE_OFFSET_, - pattrib->pktlen-sizeof (struct ieee80211_hdr_3addr )-_BEACON_IE_OFFSET_,NULL , &wps_ielen); +u8 *bcn_ie = pmgntframe->buf_addr +TXDESC_OFFSET + +sizeof (struct ieee80211_hdr_3addr ) + + _BEACON_IE_OFFSET_; +int bcn_ie_len = pattrib->pktlen - +sizeof (struct ieee80211_hdr_3addr ) - + _BEACON_IE_OFFSET_; + + wps_ie =rtw_get_wps_ie (bcn_ie, bcn_ie_len,NULL , &wps_ielen);if (wps_ie && wps_ielen >0 ) -rtw_get_wps_attr_content (wps_ie, wps_ielen,WPS_ATTR_SELECTED_REGISTRAR , (u8 *)(&sr),NULL ); +rtw_get_wps_attr_content (wps_ie, wps_ielen, +WPS_ATTR_SELECTED_REGISTRAR , + &sr,NULL );if (sr !=0 )set_fwstate (pmlmepriv,WIFI_UNDER_WPS );else
@@ -2179,33 +2237,47 @@ void issue_beacon(struct adapter *padapter, int timeout_ms) pframe +=2 ; pattrib->pktlen +=2 ; -/* SSID */ - pframe =rtw_set_ie (pframe,WLAN_EID_SSID , cur_network->ssid.ssid_length, cur_network->ssid.ssid, &pattrib->pktlen); + { +u8 *ssid = cur_network->ssid.ssid; +int ssid_len = cur_network->ssid.ssid_length; +u8 *rates = cur_network->supported_rates; +u8 ds_cfg = cur_network->configuration.ds_config; + +/* SSID */ + pframe =rtw_set_ie (pframe,WLAN_EID_SSID , ssid_len, ssid, + &pattrib->pktlen); -/* supported rates... */ - rate_len =rtw_get_rateset_len (cur_network->supported_rates); - pframe =rtw_set_ie (pframe,WLAN_EID_SUPP_RATES , ((rate_len >8 ) ?8 : rate_len), cur_network->supported_rates, &pattrib->pktlen); +/* supported rates */ + rate_len =rtw_get_rateset_len (rates); + pframe =rtw_set_ie (pframe,WLAN_EID_SUPP_RATES , +min_t (int, rate_len,8 ), rates, + &pattrib->pktlen); -/* DS parameter set */ - pframe =rtw_set_ie (pframe,WLAN_EID_DS_PARAMS ,1 , (unsigned char *)&(cur_network->configuration.ds_config), &pattrib->pktlen); +/* DS parameter set */ + pframe =rtw_set_ie (pframe,WLAN_EID_DS_PARAMS ,1 , &ds_cfg, + &pattrib->pktlen); + } -/* if ((pmlmeinfo->state&0x03) == WIFI_FW_ADHOC_STATE) */ {u8 erpinfo =0 ; -u32 ATIMWindow; -/* IBSS Parameter Set... */ -/* ATIMWindow = cur->configuration.ATIMWindow; */ - ATIMWindow =0 ; - pframe =rtw_set_ie (pframe,WLAN_EID_IBSS_PARAMS ,2 , (unsigned char *)(&ATIMWindow), &pattrib->pktlen); +u32 ATIMWindow =0 ; + +/* IBSS Parameter Set */ + pframe =rtw_set_ie (pframe,WLAN_EID_IBSS_PARAMS ,2 , + (unsigned char *)&ATIMWindow, &pattrib->pktlen);/* ERP IE */ - pframe =rtw_set_ie (pframe,WLAN_EID_ERP_INFO ,1 , &erpinfo, &pattrib->pktlen); + pframe =rtw_set_ie (pframe,WLAN_EID_ERP_INFO ,1 , &erpinfo, + &pattrib->pktlen); } +/* EXTENDED SUPPORTED RATE */ +if (rate_len >8 ) { +u8 *ext_rates = cur_network->supported_rates +8 ; -/* EXTERNDED SUPPORTED RATE */ -if (rate_len >8 ) - pframe =rtw_set_ie (pframe,WLAN_EID_EXT_SUPP_RATES , (rate_len -8 ), (cur_network->supported_rates +8 ), &pattrib->pktlen); + pframe =rtw_set_ie (pframe,WLAN_EID_EXT_SUPP_RATES , + rate_len -8 , ext_rates, &pattrib->pktlen); + }/* todo:HT for adhoc */
@@ -2284,7 +2356,10 @@ void issue_probersp(struct adapter *padapter, unsigned char *da, u8 is_valid_p2preturn ;if ((pmlmeinfo->state&0x03 ) ==WIFI_FW_AP_STATE ) { - pwps_ie =rtw_get_wps_ie (cur_network->ies+_FIXED_IE_LENGTH_, cur_network->ie_length-_FIXED_IE_LENGTH_,NULL , &wps_ielen); +u8 *ie_ptr = cur_network->ies + _FIXED_IE_LENGTH_; +int ie_len = cur_network->ie_length - _FIXED_IE_LENGTH_; + + pwps_ie =rtw_get_wps_ie (ie_ptr, ie_len,NULL , &wps_ielen);/* inerset & update wps_probe_resp_ie */ if (pmlmepriv->wps_probe_resp_ie && pwps_ie && wps_ielen >0 ) {
@@ -2380,33 +2455,49 @@ void issue_probersp(struct adapter *padapter, unsigned char *da, u8 is_valid_p2p pattrib->pktlen +=2 ;/* below for ad-hoc mode */ + { +u8 *ssid = cur_network->ssid.ssid; +int ssid_len = cur_network->ssid.ssid_length; +u8 *rates = cur_network->supported_rates; +u8 ds_cfg = cur_network->configuration.ds_config; + +/* SSID */ + pframe =rtw_set_ie (pframe,WLAN_EID_SSID , ssid_len, ssid, + &pattrib->pktlen); + +/* supported rates */ + rate_len =rtw_get_rateset_len (rates); + pframe =rtw_set_ie (pframe,WLAN_EID_SUPP_RATES , +min_t (int, rate_len,8 ), rates, + &pattrib->pktlen); + +/* DS parameter set */ + pframe =rtw_set_ie (pframe,WLAN_EID_DS_PARAMS ,1 , &ds_cfg, + &pattrib->pktlen); + } -/* SSID */ - pframe =rtw_set_ie (pframe,WLAN_EID_SSID , cur_network->ssid.ssid_length, cur_network->ssid.ssid, &pattrib->pktlen); - -/* supported rates... */ - rate_len =rtw_get_rateset_len (cur_network->supported_rates); - pframe =rtw_set_ie (pframe,WLAN_EID_SUPP_RATES , ((rate_len >8 ) ?8 : rate_len), cur_network->supported_rates, &pattrib->pktlen); - -/* DS parameter set */ - pframe =rtw_set_ie (pframe,WLAN_EID_DS_PARAMS ,1 , (unsigned char *)&(cur_network->configuration.ds_config), &pattrib->pktlen); - -if ((pmlmeinfo->state&0x03 ) ==WIFI_FW_ADHOC_STATE ) { +if ((pmlmeinfo->state &0x03 ) ==WIFI_FW_ADHOC_STATE ) {u8 erpinfo =0 ; -u32 ATIMWindow; -/* IBSS Parameter Set... */ -/* ATIMWindow = cur->configuration.ATIMWindow; */ - ATIMWindow =0 ; - pframe =rtw_set_ie (pframe,WLAN_EID_IBSS_PARAMS ,2 , (unsigned char *)(&ATIMWindow), &pattrib->pktlen); +u32 ATIMWindow =0 ; + +/* IBSS Parameter Set */ + pframe =rtw_set_ie (pframe,WLAN_EID_IBSS_PARAMS ,2 , + (unsigned char *)&ATIMWindow, + &pattrib->pktlen);/* ERP IE */ - pframe =rtw_set_ie (pframe,WLAN_EID_ERP_INFO ,1 , &erpinfo, &pattrib->pktlen); + pframe =rtw_set_ie (pframe,WLAN_EID_ERP_INFO ,1 , &erpinfo, + &pattrib->pktlen); } +/* EXTENDED SUPPORTED RATE */ +if (rate_len >8 ) { +u8 *ext_rates = cur_network->supported_rates +8 ; -/* EXTERNDED SUPPORTED RATE */ -if (rate_len >8 ) - pframe =rtw_set_ie (pframe,WLAN_EID_EXT_SUPP_RATES , (rate_len -8 ), (cur_network->supported_rates +8 ), &pattrib->pktlen); + pframe =rtw_set_ie (pframe,WLAN_EID_EXT_SUPP_RATES , + rate_len -8 , ext_rates, + &pattrib->pktlen); + }/* todo:HT for adhoc */
@@ -2485,8 +2576,11 @@ static int _issue_probereq(struct adapter *padapter,get_rate_set (padapter, bssrate, &bssrate_len);if (bssrate_len >8 ) { - pframe =rtw_set_ie (pframe,WLAN_EID_SUPP_RATES ,8 , bssrate, &(pattrib->pktlen)); - pframe =rtw_set_ie (pframe,WLAN_EID_EXT_SUPP_RATES , (bssrate_len -8 ), (bssrate +8 ), &(pattrib->pktlen)); + pframe =rtw_set_ie (pframe,WLAN_EID_SUPP_RATES ,8 , bssrate, + &pattrib->pktlen); + pframe =rtw_set_ie (pframe,WLAN_EID_EXT_SUPP_RATES , + bssrate_len -8 , bssrate +8 , + &pattrib->pktlen); }else { pframe =rtw_set_ie (pframe,WLAN_EID_SUPP_RATES , bssrate_len, bssrate, &(pattrib->pktlen)); }
@@ -2521,8 +2615,8 @@ inline void issue_probereq(struct adapter *padapter, struct ndis_802_11_ssid *ps_issue_probereq (padapter, pssid, da,0 ,1 , false); } -int issue_probereq_ex (struct adapter *padapter,struct ndis_802_11_ssid *pssid,u8 *da,u8 ch,bool append_wps, -int try_cnt,int wait_ms) +int issue_probereq_ex (struct adapter *padapter,struct ndis_802_11_ssid *pssid, +u8 *da,u8 ch,bool append_wps,int try_cnt,int wait_ms) {int ret;int i =0 ;
@@ -2629,14 +2723,16 @@ void issue_auth(struct adapter *padapter, struct sta_info *psta, unsigned shortmemcpy (pwlanhdr->addr2,myid (&padapter->eeprompriv),ETH_ALEN );memcpy (pwlanhdr->addr3,get_my_bssid (&pmlmeinfo->network),ETH_ALEN ); -/* setting auth algo number */ - val16 = (pmlmeinfo->auth_algo == dot11AuthAlgrthm_Shared) ?1 :0 ;/* 0:OPEN System, 1:Shared key */ +/* setting auth algo number: 0=OPEN System, 1=Shared key */ + val16 = (pmlmeinfo->auth_algo == dot11AuthAlgrthm_Shared) ?1 :0 ;if (val16) use_shared_key =1 ; le_tmp =cpu_to_le16 (val16);/* setting IV for auth seq #3 */ -if ((pmlmeinfo->auth_seq ==3 ) && (pmlmeinfo->state &WIFI_FW_AUTH_STATE ) && (use_shared_key ==1 )) { +if (pmlmeinfo->auth_seq ==3 && + (pmlmeinfo->state &WIFI_FW_AUTH_STATE ) && + use_shared_key ==1 ) {__le32 le_tmp32; val32 = ((pmlmeinfo->iv++) | (pmlmeinfo->key_index <<30 ));
@@ -2658,8 +2754,11 @@ void issue_auth(struct adapter *padapter, struct sta_info *psta, unsigned short pframe =rtw_set_fixed_ie (pframe, _STATUS_CODE_, (unsigned char *)&le_tmp, &(pattrib->pktlen));/* then checking to see if sending challenging text... */ -if ((pmlmeinfo->auth_seq ==3 ) && (pmlmeinfo->state &WIFI_FW_AUTH_STATE ) && (use_shared_key ==1 )) { - pframe =rtw_set_ie (pframe,WLAN_EID_CHALLENGE ,128 , pmlmeinfo->chg_txt, &(pattrib->pktlen)); +if (pmlmeinfo->auth_seq ==3 && + (pmlmeinfo->state &WIFI_FW_AUTH_STATE ) && + use_shared_key ==1 ) { + pframe =rtw_set_ie (pframe,WLAN_EID_CHALLENGE ,128 , + pmlmeinfo->chg_txt, &pattrib->pktlen);SetPrivacy (fctrl);
@@ -2682,7 +2781,8 @@ void issue_auth(struct adapter *padapter, struct sta_info *psta, unsigned short } -void issue_asocrsp (struct adapter *padapter,unsigned short status,struct sta_info *pstat,int pkt_type) +void issue_asocrsp (struct adapter *padapter,unsigned short status, +struct sta_info *pstat,int pkt_type) {struct xmit_frame *pmgntframe;struct ieee80211_hdr *pwlanhdr;
@@ -2743,18 +2843,25 @@ void issue_asocrsp(struct adapter *padapter, unsigned short status, struct sta_i pframe =rtw_set_fixed_ie (pframe, _ASOC_ID_, (unsigned char *)&le_tmp, &(pattrib->pktlen));if (pstat->bssratelen <=8 ) { - pframe =rtw_set_ie (pframe,WLAN_EID_SUPP_RATES , pstat->bssratelen, pstat->bssrateset, &(pattrib->pktlen)); + pframe =rtw_set_ie (pframe,WLAN_EID_SUPP_RATES , + pstat->bssratelen, pstat->bssrateset, + &pattrib->pktlen); }else { - pframe =rtw_set_ie (pframe,WLAN_EID_SUPP_RATES ,8 , pstat->bssrateset, &(pattrib->pktlen)); - pframe =rtw_set_ie (pframe,WLAN_EID_EXT_SUPP_RATES , (pstat->bssratelen-8 ), pstat->bssrateset+8 , &(pattrib->pktlen)); + pframe =rtw_set_ie (pframe,WLAN_EID_SUPP_RATES ,8 , + pstat->bssrateset, &pattrib->pktlen); + pframe =rtw_set_ie (pframe,WLAN_EID_EXT_SUPP_RATES , + pstat->bssratelen -8 , pstat->bssrateset +8 , + &pattrib->pktlen); }if ((pstat->flags &WLAN_STA_HT ) && (pmlmepriv->htpriv.ht_option)) {uint ie_len =0 ; +u8 *beacon_ie = ie + _BEACON_IE_OFFSET_; +int beacon_len = pnetwork->ie_length - _BEACON_IE_OFFSET_;/* FILL HT CAP INFO IE */ -/* p = hostapd_eid_ht_capabilities_info(hapd, p); */ - pbuf =rtw_get_ie (ie + _BEACON_IE_OFFSET_,WLAN_EID_HT_CAPABILITY , &ie_len, (pnetwork->ie_length - _BEACON_IE_OFFSET_)); + pbuf =rtw_get_ie (beacon_ie,WLAN_EID_HT_CAPABILITY , + &ie_len, beacon_len);if (pbuf && ie_len >0 ) {memcpy (pframe, pbuf, ie_len+2 ); pframe += (ie_len+2 );
@@ -2762,8 +2869,8 @@ void issue_asocrsp(struct adapter *padapter, unsigned short status, struct sta_i }/* FILL HT ADD INFO IE */ -/* p = hostapd_eid_ht_operation(hapd, p); */ - pbuf =rtw_get_ie (ie + _BEACON_IE_OFFSET_,WLAN_EID_HT_OPERATION , &ie_len, (pnetwork->ie_length - _BEACON_IE_OFFSET_)); + pbuf =rtw_get_ie (beacon_ie,WLAN_EID_HT_OPERATION , + &ie_len, beacon_len);if (pbuf && ie_len >0 ) {memcpy (pframe, pbuf, ie_len+2 ); pframe += (ie_len+2 );
@@ -2778,7 +2885,10 @@ void issue_asocrsp(struct adapter *padapter, unsigned short status, struct sta_iunsigned char WMM_PARA_IE [] = {0x00 ,0x50 ,0xf2 ,0x02 ,0x01 ,0x01 };for (pbuf = ie + _BEACON_IE_OFFSET_; ; pbuf += (ie_len +2 )) { - pbuf =rtw_get_ie (pbuf,WLAN_EID_VENDOR_SPECIFIC , &ie_len, (pnetwork->ie_length - _BEACON_IE_OFFSET_ - (ie_len +2 ))); +int remaining = pnetwork->ie_length - _BEACON_IE_OFFSET_ - (ie_len +2 ); + + pbuf =rtw_get_ie (pbuf,WLAN_EID_VENDOR_SPECIFIC , + &ie_len, remaining);if (pbuf && !memcmp (pbuf+2 ,WMM_PARA_IE ,6 )) {memcpy (pframe, pbuf, ie_len+2 ); pframe += (ie_len+2 );
@@ -2868,7 +2978,13 @@ void issue_assocreq(struct adapter *padapter) pattrib->pktlen +=2 ;/* SSID */ - pframe =rtw_set_ie (pframe,WLAN_EID_SSID , pmlmeinfo->network.ssid.ssid_length, pmlmeinfo->network.ssid.ssid, &(pattrib->pktlen)); + { +u8 *ssid = pmlmeinfo->network.ssid.ssid; +int ssid_len = pmlmeinfo->network.ssid.ssid_length; + + pframe =rtw_set_ie (pframe,WLAN_EID_SSID , ssid_len, ssid, + &pattrib->pktlen); + }/* supported rate & extended supported rate */
@@ -2916,10 +3032,15 @@ void issue_assocreq(struct adapter *padapter)if (bssrate_len >8 ) { - pframe =rtw_set_ie (pframe,WLAN_EID_SUPP_RATES ,8 , bssrate, &(pattrib->pktlen)); - pframe =rtw_set_ie (pframe,WLAN_EID_EXT_SUPP_RATES , (bssrate_len -8 ), (bssrate +8 ), &(pattrib->pktlen)); - }else - pframe =rtw_set_ie (pframe,WLAN_EID_SUPP_RATES , bssrate_len, bssrate, &(pattrib->pktlen)); + pframe =rtw_set_ie (pframe,WLAN_EID_SUPP_RATES ,8 , bssrate, + &pattrib->pktlen); + pframe =rtw_set_ie (pframe,WLAN_EID_EXT_SUPP_RATES , + bssrate_len -8 , bssrate +8 , + &pattrib->pktlen); + }else { + pframe =rtw_set_ie (pframe,WLAN_EID_SUPP_RATES , bssrate_len, + bssrate, &pattrib->pktlen); + }/* vendor specific IE, such as WPA, WMM, WPS */ for (i =sizeof (struct ndis_802_11_fix_ie ); i < pmlmeinfo->network.ie_length;) {
@@ -2941,7 +3062,9 @@ void issue_assocreq(struct adapter *padapter) vs_ie_length =14 ; } - pframe =rtw_set_ie (pframe,WLAN_EID_VENDOR_SPECIFIC , vs_ie_length, pIE->data, &(pattrib->pktlen)); + pframe =rtw_set_ie (pframe,WLAN_EID_VENDOR_SPECIFIC , + vs_ie_length, pIE->data, + &pattrib->pktlen); }break ;
@@ -2951,15 +3074,22 @@ void issue_assocreq(struct adapter *padapter)case WLAN_EID_HT_CAPABILITY :if (padapter->mlmepriv.htpriv.ht_option) {if (!(is_ap_in_tkip (padapter))) { -memcpy (&(pmlmeinfo->HT_caps), pIE->data,sizeof (struct HT_caps_element )); - pframe =rtw_set_ie (pframe,WLAN_EID_HT_CAPABILITY , pIE->length, (u8 *)(&(pmlmeinfo->HT_caps)), &(pattrib->pktlen)); +memcpy (&pmlmeinfo->HT_caps, pIE->data, +sizeof (struct HT_caps_element )); + pframe =rtw_set_ie (pframe,WLAN_EID_HT_CAPABILITY , + pIE->length, + (u8 *)&pmlmeinfo->HT_caps, + &pattrib->pktlen); } }break ;case WLAN_EID_EXT_CAPABILITY : -if (padapter->mlmepriv.htpriv.ht_option) - pframe =rtw_set_ie (pframe,WLAN_EID_EXT_CAPABILITY , pIE->length, pIE->data, &(pattrib->pktlen)); +if (padapter->mlmepriv.htpriv.ht_option) { + pframe =rtw_set_ie (pframe,WLAN_EID_EXT_CAPABILITY , + pIE->length, pIE->data, + &pattrib->pktlen); + }break ;default :break ;
@@ -3060,7 +3190,8 @@ static int _issue_nulldata(struct adapter *padapter, unsigned char *da,* When wait_ms > 0, this function should be called at process context * da == NULL for station mode */ -int issue_nulldata (struct adapter *padapter,unsigned char *da,unsigned int power_mode,int try_cnt,int wait_ms) +int issue_nulldata (struct adapter *padapter,unsigned char *da, +unsigned int power_mode,int try_cnt,int wait_ms) {int ret;int i =0 ;
@@ -3205,7 +3336,8 @@ static int _issue_qos_nulldata(struct adapter *padapter, unsigned char *da,/* when wait_ms >0 , this function should be called at process context */ /* da == NULL for station mode */ -int issue_qos_nulldata (struct adapter *padapter,unsigned char *da,u16 tid,int try_cnt,int wait_ms) +int issue_qos_nulldata (struct adapter *padapter,unsigned char *da,u16 tid, +int try_cnt,int wait_ms) {int ret;int i =0 ;
@@ -3334,7 +3466,8 @@ int issue_deauth_ex(struct adapter *padapter, u8 *da, unsigned short reason, intreturn ret; } -void issue_action_SA_Query (struct adapter *padapter,unsigned char *raddr,unsigned char action,unsigned short tid) +void issue_action_SA_Query (struct adapter *padapter,unsigned char *raddr, +unsigned char action,unsigned short tid) {u8 category =RTW_WLAN_CATEGORY_SA_QUERY ;struct xmit_frame *pmgntframe;
@@ -3401,7 +3534,8 @@ void issue_action_SA_Query(struct adapter *padapter, unsigned char *raddr, unsigdump_mgntframe (padapter, pmgntframe); } -void issue_action_BA (struct adapter *padapter,unsigned char *raddr,unsigned char action,unsigned short status) +void issue_action_BA (struct adapter *padapter,unsigned char *raddr, +unsigned char action,unsigned short status) {u8 category =RTW_WLAN_CATEGORY_BACK ;u16 start_seq;
@@ -3504,17 +3638,20 @@ void issue_action_BA(struct adapter *padapter, unsigned char *raddr, unsigned chelse rtw_hal_get_def_var (padapter,HW_VAR_MAX_RX_AMPDU_FACTOR , &max_rx_ampdu_factor); - -if (max_rx_ampdu_factor ==IEEE80211_HT_MAX_AMPDU_64K ) - BA_para_set = ((le16_to_cpu (pmlmeinfo->ADDBA_req.BA_para_set) &0x3f ) |0x1000 );/* 64 buffer size */ -else if (max_rx_ampdu_factor ==IEEE80211_HT_MAX_AMPDU_32K ) - BA_para_set = ((le16_to_cpu (pmlmeinfo->ADDBA_req.BA_para_set) &0x3f ) |0x0800 );/* 32 buffer size */ -else if (max_rx_ampdu_factor ==IEEE80211_HT_MAX_AMPDU_16K ) - BA_para_set = ((le16_to_cpu (pmlmeinfo->ADDBA_req.BA_para_set) &0x3f ) |0x0400 );/* 16 buffer size */ -else if (max_rx_ampdu_factor ==IEEE80211_HT_MAX_AMPDU_8K ) - BA_para_set = ((le16_to_cpu (pmlmeinfo->ADDBA_req.BA_para_set) &0x3f ) |0x0200 );/* 8 buffer size */ -else - BA_para_set = ((le16_to_cpu (pmlmeinfo->ADDBA_req.BA_para_set) &0x3f ) |0x1000 );/* 64 buffer size */ + { +u16 ba_mask =le16_to_cpu (pmlmeinfo->ADDBA_req.BA_para_set) &0x3f ; + +if (max_rx_ampdu_factor ==IEEE80211_HT_MAX_AMPDU_64K ) + BA_para_set = ba_mask |0x1000 ;/* 64 buffer size */ +else if (max_rx_ampdu_factor ==IEEE80211_HT_MAX_AMPDU_32K ) + BA_para_set = ba_mask |0x0800 ;/* 32 buffer size */ +else if (max_rx_ampdu_factor ==IEEE80211_HT_MAX_AMPDU_16K ) + BA_para_set = ba_mask |0x0400 ;/* 16 buffer size */ +else if (max_rx_ampdu_factor ==IEEE80211_HT_MAX_AMPDU_8K ) + BA_para_set = ba_mask |0x0200 ;/* 8 buffer size */ +else + BA_para_set = ba_mask |0x1000 ;/* 64 buffer size */ + }if (hal_btcoex_IsBTCoexCtrlAMPDUSize (padapter) && padapter->driver_rx_ampdu_factor ==0xFF ) {
@@ -3530,8 +3667,16 @@ void issue_action_BA(struct adapter *padapter, unsigned char *raddr, unsigned chelse /* auto */ le_tmp =cpu_to_le16 (BA_para_set); - pframe =rtw_set_fixed_ie (pframe,2 , (unsigned char *)(&(le_tmp)), &(pattrib->pktlen)); - pframe =rtw_set_fixed_ie (pframe,2 , (unsigned char *)(&(pmlmeinfo->ADDBA_req.BA_timeout_value)), &(pattrib->pktlen)); + pframe =rtw_set_fixed_ie (pframe,2 , (unsigned char *)&le_tmp, + &pattrib->pktlen); + { +unsigned char *ba_timeout; + + ba_timeout = (unsigned char *) + &pmlmeinfo->ADDBA_req.BA_timeout_value; + pframe =rtw_set_fixed_ie (pframe,2 , ba_timeout, + &pattrib->pktlen); + }break ;case 2 :/* DELBA */ BA_para_set = (status &0x1F ) <<3 ;
@@ -3645,7 +3790,13 @@ static void issue_action_BSSCoexistPacket(struct adapter *padapter) pbss_network = (struct wlan_bssid_ex *)&pnetwork->network; - p =rtw_get_ie (pbss_network->ies + _FIXED_IE_LENGTH_,WLAN_EID_HT_CAPABILITY , &len, pbss_network->ie_length - _FIXED_IE_LENGTH_); + { +u8 *bss_ie = pbss_network->ies + _FIXED_IE_LENGTH_; +int bss_len = pbss_network->ie_length - _FIXED_IE_LENGTH_; + + p =rtw_get_ie (bss_ie,WLAN_EID_HT_CAPABILITY , + &len, bss_len); + }if (!p || len ==0 ) {/* non-HT */ if (pbss_network->configuration.ds_config <=0 )
@@ -3683,7 +3834,9 @@ static void issue_action_BSSCoexistPacket(struct adapter *padapter) } } - pframe =rtw_set_ie (pframe,WLAN_EID_BSS_INTOLERANT_CHL_REPORT , k, InfoContent, &(pattrib->pktlen)); + pframe =rtw_set_ie (pframe, +WLAN_EID_BSS_INTOLERANT_CHL_REPORT , + k, InfoContent, &pattrib->pktlen); }
@@ -3750,9 +3903,12 @@ unsigned int send_beacon(struct adapter *padapter)cond_resched ();rtw_hal_get_hwreg (padapter,HW_VAR_BCN_VALID , (u8 *)(&bxmitok)); poll++; - }while ((poll%10 ) !=0 && false == bxmitok && !padapter->bSurpriseRemoved && !padapter->bDriverStopped); + }while ((poll %10 ) !=0 && !bxmitok && + !padapter->bSurpriseRemoved && + !padapter->bDriverStopped); - }while (false == bxmitok && issue <100 && !padapter->bSurpriseRemoved && !padapter->bDriverStopped); + }while (!bxmitok && issue <100 && + !padapter->bSurpriseRemoved && !padapter->bDriverStopped);if (padapter->bSurpriseRemoved || padapter->bDriverStopped)return _FAIL;
@@ -3792,10 +3948,14 @@ void site_survey(struct adapter *padapter)if (pmlmeext->sitesurvey_res.channel_idx ==0 ) {#ifdef DBG_FIXED_CHAN if (pmlmeext->fixed_chan !=0xff ) -set_channel_bwmode (padapter, pmlmeext->fixed_chan,HAL_PRIME_CHNL_OFFSET_DONT_CARE ,CHANNEL_WIDTH_20 ); +set_channel_bwmode (padapter, pmlmeext->fixed_chan, +HAL_PRIME_CHNL_OFFSET_DONT_CARE , +CHANNEL_WIDTH_20 ); else#endif -set_channel_bwmode (padapter, survey_channel,HAL_PRIME_CHNL_OFFSET_DONT_CARE ,CHANNEL_WIDTH_20 ); +set_channel_bwmode (padapter, survey_channel, +HAL_PRIME_CHNL_OFFSET_DONT_CARE , +CHANNEL_WIDTH_20 ); }else {#ifdef DBG_FIXED_CHAN if (pmlmeext->fixed_chan !=0xff )
@@ -3846,7 +4006,9 @@ void site_survey(struct adapter *padapter)/* switch back to the original channel */ /* SelectChannel(padapter, pmlmeext->cur_channel, pmlmeext->cur_ch_offset); */ -set_channel_bwmode (padapter, pmlmeext->cur_channel, pmlmeext->cur_ch_offset, pmlmeext->cur_bwmode); +set_channel_bwmode (padapter, pmlmeext->cur_channel, + pmlmeext->cur_ch_offset, + pmlmeext->cur_bwmode);/* flush 4-AC Queue after site_survey */ /* val8 = 0; */
@@ -3883,7 +4045,8 @@ void site_survey(struct adapter *padapter) }/* collect bss info from Beacon and Probe request/response frames. */ -u8 collect_bss_info (struct adapter *padapter,union recv_frame *precv_frame,struct wlan_bssid_ex *bssid) +u8 collect_bss_info (struct adapter *padapter,union recv_frame *precv_frame, +struct wlan_bssid_ex *bssid) {int i;u32 len;
@@ -3930,9 +4093,13 @@ u8 collect_bss_info(struct adapter *padapter, union recv_frame *precv_frame, strmemcpy (bssid->ies, (pframe +sizeof (struct ieee80211_hdr_3addr )), bssid->ie_length);/* get the signal strength */ - bssid->rssi = precv_frame->u.hdr.attrib.phy_info.RecvSignalPower;/* in dBM.raw data */ - bssid->phy_info.signal_quality = precv_frame->u.hdr.attrib.phy_info.SignalQuality;/* in percentage */ - bssid->phy_info.signal_strength = precv_frame->u.hdr.attrib.phy_info.SignalStrength;/* in percentage */ + { +struct phy_info *phy = &precv_frame->u.hdr.attrib.phy_info; + + bssid->rssi = phy->RecvSignalPower;/* in dBM.raw data */ + bssid->phy_info.signal_quality = phy->SignalQuality;/* in percentage */ + bssid->phy_info.signal_strength = phy->SignalStrength;/* in percentage */ + }/* checking SSID */ p =rtw_get_ie (bssid->ies + ie_offset,WLAN_EID_SSID , &len, bssid->ie_length - ie_offset);
@@ -3961,7 +4128,8 @@ u8 collect_bss_info(struct adapter *padapter, union recv_frame *precv_frame, str i = len; } - p =rtw_get_ie (bssid->ies + ie_offset,WLAN_EID_EXT_SUPP_RATES , &len, bssid->ie_length - ie_offset); + p =rtw_get_ie (bssid->ies + ie_offset,WLAN_EID_EXT_SUPP_RATES , &len, + bssid->ie_length - ie_offset);if (p) {if (len > (NDIS_802_11_LENGTH_RATES_EX -i))return _FAIL;
@@ -4019,7 +4187,8 @@ u8 collect_bss_info(struct adapter *padapter, union recv_frame *precv_frame, strif ((pregistrypriv->wifi_spec ==1 ) && (false == pmlmeinfo->bwmode_updated)) {struct mlme_priv *pmlmepriv = &padapter->mlmepriv; - p =rtw_get_ie (bssid->ies + ie_offset,WLAN_EID_HT_CAPABILITY , &len, bssid->ie_length - ie_offset); + p =rtw_get_ie (bssid->ies + ie_offset,WLAN_EID_HT_CAPABILITY , &len, + bssid->ie_length - ie_offset);if (p && len >0 ) {struct HT_caps_element *pHT_caps;
@@ -4063,8 +4232,8 @@ void start_create_ibss(struct adapter *padapter)rtw_hal_set_hwreg (padapter,HW_VAR_DO_IQK ,NULL );/* switch channel */ -/* SelectChannel(padapter, pmlmeext->cur_channel, HAL_PRIME_CHNL_OFFSET_DONT_CARE); */ -set_channel_bwmode (padapter, pmlmeext->cur_channel,HAL_PRIME_CHNL_OFFSET_DONT_CARE ,CHANNEL_WIDTH_20 ); +set_channel_bwmode (padapter, pmlmeext->cur_channel, +HAL_PRIME_CHNL_OFFSET_DONT_CARE ,CHANNEL_WIDTH_20 );beacon_timing_control (padapter);
@@ -4192,7 +4361,8 @@ void start_clnt_assoc(struct adapter *padapter)set_link_timer (pmlmeext,REASSOC_TO ); } -unsigned int receive_disconnect (struct adapter *padapter,unsigned char *MacAddr,unsigned short reason) +unsigned int receive_disconnect (struct adapter *padapter,unsigned char *MacAddr, +unsigned short reason) {struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;struct mlme_ext_info *pmlmeinfo = &pmlmeext->mlmext_info;
@@ -4239,7 +4409,8 @@ static void process_80211d(struct adapter *padapter, struct wlan_bssid_ex *bssidu8 noc;/* number of channel */ u8 j, k; - ie =rtw_get_ie (bssid->ies + _FIXED_IE_LENGTH_,WLAN_EID_COUNTRY , &len, bssid->ie_length - _FIXED_IE_LENGTH_); + ie =rtw_get_ie (bssid->ies + _FIXED_IE_LENGTH_,WLAN_EID_COUNTRY , &len, + bssid->ie_length - _FIXED_IE_LENGTH_);if (!ie)return ;if (len <6 )
@@ -4500,7 +4671,8 @@ void report_join_res(struct adapter *padapter, int res) pc2h_evt_hdr->seq =atomic_inc_return (&pmlmeext->event_seq); pjoinbss_evt = (struct joinbss_event *)(pevtcmd +sizeof (struct C2HEvent_Header )); -memcpy ((unsigned char *)(&(pjoinbss_evt->network.network)), &(pmlmeinfo->network),sizeof (struct wlan_bssid_ex )); +memcpy ((unsigned char *)(&(pjoinbss_evt->network.network)), + &(pmlmeinfo->network),sizeof (struct wlan_bssid_ex )); pjoinbss_evt->network.join_res = pjoinbss_evt->network.aid = res;
@@ -4670,7 +4842,9 @@ void update_sta_info(struct adapter *padapter, struct sta_info *psta) psta->htpriv.ampdu_enable = pmlmepriv->htpriv.ampdu_enable; - psta->htpriv.rx_ampdu_min_spacing = (pmlmeinfo->HT_caps.u.HT_cap_element.AMPDU_para&IEEE80211_HT_CAP_AMPDU_DENSITY )>>2 ; + psta->htpriv.rx_ampdu_min_spacing = + (pmlmeinfo->HT_caps.u.HT_cap_element.AMPDU_para & +IEEE80211_HT_CAP_AMPDU_DENSITY ) >>2 ;if (support_short_GI (padapter, &(pmlmeinfo->HT_caps),CHANNEL_WIDTH_20 )) psta->htpriv.sgi_20m = true;
@@ -4885,7 +5059,9 @@ void mlmeext_sta_add_event_callback(struct adapter *padapter, struct sta_info *prtw_hal_update_sta_rate_mask (padapter, psta);/* ToDo: HT for Ad-hoc */ - psta->wireless_mode =rtw_check_network_type (psta->bssrateset, psta->bssratelen, pmlmeext->cur_channel); + psta->wireless_mode =rtw_check_network_type (psta->bssrateset, + psta->bssratelen, + pmlmeext->cur_channel); psta->raid =networktype_to_raid_ex (padapter, psta);/* rate radaptive */
@@ -5406,9 +5582,12 @@ u8 disconnect_hdl(struct adapter *padapter, unsigned char *pbuf)u8 val8;if (is_client_associated_to_ap (padapter)) -issue_deauth_ex (padapter, pnetwork->mac_address,WLAN_REASON_DEAUTH_LEAVING , param->deauth_timeout_ms/100 ,100 ); +issue_deauth_ex (padapter, pnetwork->mac_address, +WLAN_REASON_DEAUTH_LEAVING , + param->deauth_timeout_ms /100 ,100 ); -if (((pmlmeinfo->state&0x03 ) ==WIFI_FW_ADHOC_STATE ) || ((pmlmeinfo->state&0x03 ) ==WIFI_FW_AP_STATE )) { +if (((pmlmeinfo->state &0x03 ) ==WIFI_FW_ADHOC_STATE ) || + ((pmlmeinfo->state &0x03 ) ==WIFI_FW_AP_STATE )) {/* Stop BCN */ val8 =0 ;rtw_hal_set_hwreg (padapter,HW_VAR_BCN_FUNC , (u8 *)(&val8));
Signature · 1 line
2.52.0
PATCH v3 20/22 staging: rtl8723bs: core: fix line lengths in rtw_mlme.c
In reply to [email protected]From: Luka Gejak <[email protected]>
Break long lines exceeding 100 characters to comply with kernel coding style.
--- drivers/staging/rtl8723bs/core/rtw_mlme.c | 101 ++++++++++++++-------- 1 file changed, 66 insertions(+), 35 deletions(-)
drivers/staging/rtl8723bs/core/rtw_mlme.c +66 -35
@@ -52,7 +52,8 @@ int rtw_init_mlme_priv(struct adapter *padapter) pmlmepriv->pscanned =NULL ; pmlmepriv->fw_state =WIFI_STATION_STATE ;/* Must sync with rtw_wdev_alloc() */ pmlmepriv->cur_network.network.infrastructure_mode = Ndis802_11AutoUnknown; - pmlmepriv->scan_mode =SCAN_ACTIVE ;/* 1: active, 0: passive. Maybe someday we should rename this varable to "active_mode" (Jeff) */ +/* 1: active, 0: passive. Maybe someday rename to "active_mode" */ + pmlmepriv->scan_mode =SCAN_ACTIVE ;spin_lock_init (&pmlmepriv->lock);INIT_LIST_HEAD (&pmlmepriv->free_bss_pool.queue);
@@ -376,7 +377,8 @@ int is_same_network(struct wlan_bssid_ex *src, struct wlan_bssid_ex *dst, u8 fea (d_cap & WLAN_CAPABILITY_ESS)); } -struct wlan_network *_rtw_find_same_network (struct __queue *scanned_queue,struct wlan_network *network) +struct wlan_network *_rtw_find_same_network (struct __queue *scanned_queue, +struct wlan_network *network) {struct list_head *phead, *plist;struct wlan_network *found =NULL ;
@@ -427,7 +429,8 @@ void update_network(struct wlan_bssid_ex *dst, struct wlan_bssid_ex *src,long rssi_final;/* The rule below is 1/5 for sample value, 4/5 for history value */ -if (check_fwstate (&padapter->mlmepriv, _FW_LINKED) &&is_same_network (&padapter->mlmepriv.cur_network.network, src,0 )) { +if (check_fwstate (&padapter->mlmepriv, _FW_LINKED) && +is_same_network (&padapter->mlmepriv.cur_network.network, src,0 )) {/* Take the recvpriv's value for the connected AP*/ ss_final = padapter->recvpriv.signal_strength; sq_final = padapter->recvpriv.signal_qual;
@@ -469,10 +472,13 @@ static void update_current_network(struct adapter *adapter, struct wlan_bssid_ex &pmlmepriv->cur_network.network, &pmlmepriv->cur_network.network); -if (check_fwstate (pmlmepriv, _FW_LINKED) && (is_same_network (&pmlmepriv->cur_network.network, pnetwork,0 ))) { +if (check_fwstate (pmlmepriv, _FW_LINKED) && +is_same_network (&pmlmepriv->cur_network.network, pnetwork,0 )) {update_network (&pmlmepriv->cur_network.network, pnetwork, adapter, true); -rtw_update_protection (adapter, (pmlmepriv->cur_network.network.ies) +sizeof (struct ndis_802_11_fix_ie ), - pmlmepriv->cur_network.network.ie_length); +rtw_update_protection (adapter, + pmlmepriv->cur_network.network.ies + +sizeof (struct ndis_802_11_fix_ie ), + pmlmepriv->cur_network.network.ie_length); } }
@@ -609,7 +615,10 @@ int rtw_is_desired_network(struct adapter *adapter, struct wlan_network *pnetwor privacy = pnetwork->network.privacy;if (check_fwstate (pmlmepriv,WIFI_UNDER_WPS )) { -if (rtw_get_wps_ie (pnetwork->network.ies + _FIXED_IE_LENGTH_, pnetwork->network.ie_length - _FIXED_IE_LENGTH_,NULL , &wps_ielen)) +u8 *ies = pnetwork->network.ies + _FIXED_IE_LENGTH_; +uint ie_len = pnetwork->network.ie_length - _FIXED_IE_LENGTH_; + +if (rtw_get_wps_ie (ies, ie_len,NULL , &wps_ielen))return true;else return false;
@@ -617,12 +626,14 @@ int rtw_is_desired_network(struct adapter *adapter, struct wlan_network *pnetworif (adapter->registrypriv.wifi_spec ==1 ) {/* for correct flow of 8021X to do.... */ u8 *p =NULL ;uint ie_len =0 ; +u8 *ies = pnetwork->network.ies + _BEACON_IE_OFFSET_; +uint ies_len = pnetwork->network.ie_length - _BEACON_IE_OFFSET_;if ((desired_encmode == Ndis802_11EncryptionDisabled) && (privacy !=0 )) bselected = false;if (psecuritypriv->ndisauthtype == Ndis802_11AuthModeWPA2PSK) { - p =rtw_get_ie (pnetwork->network.ies + _BEACON_IE_OFFSET_,WLAN_EID_RSN , &ie_len, (pnetwork->network.ie_length - _BEACON_IE_OFFSET_)); + p =rtw_get_ie (ies,WLAN_EID_RSN , &ie_len, ies_len);if (p && ie_len >0 ) bselected = true;else
@@ -957,7 +968,8 @@ void rtw_scan_abort(struct adapter *adapter) pmlmeext->scan_abort = false; } -static struct sta_info *rtw_joinbss_update_stainfo (struct adapter *padapter,struct wlan_network *pnetwork) +static struct sta_info *rtw_joinbss_update_stainfo (struct adapter *padapter, +struct wlan_network *pnetwork) {int i;struct sta_info *bmc_sta, *psta =NULL ;
@@ -1041,7 +1053,9 @@ static struct sta_info *rtw_joinbss_update_stainfo(struct adapter *padapter, str/* pnetwork : returns from rtw_joinbss_event_callback */ /* ptarget_wlan: found from scanned_queue */ -static void rtw_joinbss_update_network (struct adapter *padapter,struct wlan_network *ptarget_wlan,struct wlan_network *pnetwork) +static void rtw_joinbss_update_network (struct adapter *padapter, +struct wlan_network *ptarget_wlan, +struct wlan_network *pnetwork) {struct mlme_priv *pmlmepriv = &padapter->mlmepriv;struct wlan_network *cur_network = &pmlmepriv->cur_network;
@@ -1059,7 +1073,8 @@ static void rtw_joinbss_update_network(struct adapter *padapter, struct wlan_net padapter->recvpriv.signal_strength = ptarget_wlan->network.phy_info.signal_strength; padapter->recvpriv.signal_qual = ptarget_wlan->network.phy_info.signal_quality;/* the ptarget_wlan->network.rssi is raw data, we use ptarget_wlan->network.phy_info.signal_strength instead (has scaled) */ - padapter->recvpriv.rssi =translate_percentage_to_dbm (ptarget_wlan->network.phy_info.signal_strength); + padapter->recvpriv.rssi = +translate_percentage_to_dbm (ptarget_wlan->network.phy_info.signal_strength);rtw_set_signal_stat_timer (&padapter->recvpriv);
@@ -1084,7 +1099,9 @@ static void rtw_joinbss_update_network(struct adapter *padapter, struct wlan_netrtw_update_protection (padapter, (cur_network->network.ies) +sizeof (struct ndis_802_11_fix_ie ), (cur_network->network.ie_length)); -rtw_update_ht_cap (padapter, cur_network->network.ies, cur_network->network.ie_length, (u8 ) cur_network->network.configuration.ds_config); +rtw_update_ht_cap (padapter, cur_network->network.ies, + cur_network->network.ie_length, + (u8 )cur_network->network.configuration.ds_config); }static struct rt_pmkid_list backupPMKIDList[NUM_PMKID_CACHE ];
@@ -1106,7 +1123,8 @@ void rtw_reset_securitypriv(struct adapter *adapter)/* Backup the btkip_countermeasure information. */ /* When the countermeasure is trigger, the driver have to disconnect with AP for 60 seconds. */ -memcpy (&backupPMKIDList[0 ], &adapter->securitypriv.PMKIDList[0 ],sizeof (struct rt_pmkid_list ) *NUM_PMKID_CACHE ); +memcpy (&backupPMKIDList[0 ], &adapter->securitypriv.PMKIDList[0 ], +sizeof (struct rt_pmkid_list ) *NUM_PMKID_CACHE ); backupPMKIDIndex = adapter->securitypriv.PMKIDIndex; backupTKIPCountermeasure = adapter->securitypriv.btkip_countermeasure; backupTKIPcountermeasure_time = adapter->securitypriv.btkip_countermeasure_time;
@@ -1118,7 +1136,8 @@ void rtw_reset_securitypriv(struct adapter *adapter)/* Added by Albert 2009/02/18 */ /* Restore the PMK information to securitypriv structure for the following connection. */ -memcpy (&adapter->securitypriv.PMKIDList[0 ], &backupPMKIDList[0 ],sizeof (struct rt_pmkid_list ) *NUM_PMKID_CACHE ); +memcpy (&adapter->securitypriv.PMKIDList[0 ], &backupPMKIDList[0 ], +sizeof (struct rt_pmkid_list ) *NUM_PMKID_CACHE ); adapter->securitypriv.PMKIDIndex = backupPMKIDIndex; adapter->securitypriv.btkip_countermeasure = backupTKIPCountermeasure; adapter->securitypriv.btkip_countermeasure_time = backupTKIPcountermeasure_time;
@@ -1166,7 +1185,8 @@ void rtw_joinbss_event_prehandle(struct adapter *adapter, u8 *pbuf)struct wlan_network *pcur_wlan =NULL , *ptarget_wlan =NULL ;unsigned int the_same_macaddr = false; - the_same_macaddr = !memcmp (pnetwork->network.mac_address, cur_network->network.mac_address,ETH_ALEN ); + the_same_macaddr = !memcmp (pnetwork->network.mac_address, + cur_network->network.mac_address,ETH_ALEN ); pnetwork->network.length =get_wlan_bssid_ex_sz (&pnetwork->network);if (pnetwork->network.length >sizeof (struct wlan_bssid_ex ))
@@ -1349,9 +1369,9 @@ void rtw_stassoc_event_callback(struct adapter *adapter, u8 *pbuf)/* for AD-HOC mode */ psta =rtw_get_stainfo (&adapter->stapriv, pstassoc->macaddr);if (psta) { -/* the sta have been in sta_info_queue => do nothing */ - -return ;/* between drv has received this event before and fw have not yet to set key to CAM_ENTRY) */ +/* sta already in sta_info_queue, do nothing */ +/* drv received this event but fw hasn't set key to CAM_ENTRY yet */ +return ; } psta =rtw_alloc_stainfo (&adapter->stapriv, pstassoc->macaddr);
@@ -1435,7 +1455,8 @@ void rtw_stadel_event_callback(struct adapter *adapter, u8 *pbuf)if (adapter->registrypriv.wifi_spec ==1 ) { roam = false; - }else if (reason ==WLAN_REASON_EXPIRATION_CHK &&rtw_chk_roam_flags (adapter,RTW_ROAM_ON_EXPIRED )) { + }else if (reason ==WLAN_REASON_EXPIRATION_CHK && +rtw_chk_roam_flags (adapter,RTW_ROAM_ON_EXPIRED )) { roam = true; }else if (reason ==WLAN_REASON_ACTIVE_ROAM &&rtw_chk_roam_flags (adapter,RTW_ROAM_ACTIVE )) { roam = true;
@@ -1904,7 +1925,8 @@ signed int rtw_set_auth(struct adapter *adapter, struct security_priv *psecurityreturn res; } -signed int rtw_set_key (struct adapter *adapter,struct security_priv *psecuritypriv,signed int keyid,u8 set_tx,bool enqueue) +signed int rtw_set_key (struct adapter *adapter,struct security_priv *psecuritypriv, +signed int keyid,u8 set_tx,bool enqueue) {u8 keylen;struct cmd_obj *pcmd;
@@ -1979,7 +2001,8 @@ signed int rtw_set_key(struct adapter *adapter, struct security_priv *psecurityp }/* adjust ies for rtw_joinbss_cmd in WMM */ -int rtw_restruct_wmm_ie (struct adapter *adapter,u8 *in_ie,u8 *out_ie,uint in_len,uint initial_out_len) +int rtw_restruct_wmm_ie (struct adapter *adapter,u8 *in_ie,u8 *out_ie, +uint in_len,uint initial_out_len) {unsigned int ielength =0 ;unsigned int i, j;
@@ -2290,7 +2313,9 @@ void rtw_build_wmm_ie_ht(struct adapter *padapter, u8 *out_ie, uint *pout_len) }/* the function is >= passive_level */ -unsigned int rtw_restructure_ht_ie (struct adapter *padapter,u8 *in_ie,u8 *out_ie,uint in_len,uint *pout_len,u8 channel) +unsigned int rtw_restructure_ht_ie (struct adapter *padapter,u8 *in_ie, +u8 *out_ie,uint in_len, +uint *pout_len,u8 channel) {u32 ielen, out_len;enum ieee80211_max_ampdu_length_exp max_rx_ampdu_factor;
@@ -2436,20 +2461,26 @@ void rtw_update_ht_cap(struct adapter *padapter, u8 *pie, uint ie_len, u8 channe phtpriv->ampdu_enable = true;/* check Max Rx A-MPDU Size */ - len =0 ; - p =rtw_get_ie (pie +sizeof (struct ndis_802_11_fix_ie ),WLAN_EID_HT_CAPABILITY , &len, ie_len -sizeof (struct ndis_802_11_fix_ie )); -if (p && len >0 ) { - pht_capie = (struct ieee80211_ht_cap *)(p +2 ); - max_ampdu_sz = (pht_capie->ampdu_params_info &IEEE80211_HT_CAP_AMPDU_FACTOR ); - max_ampdu_sz =1 << (max_ampdu_sz +3 );/* max_ampdu_sz (kbytes); */ - - phtpriv->rx_ampdu_maxlen = max_ampdu_sz; - } + { +u8 *ies = pie +sizeof (struct ndis_802_11_fix_ie ); +uint ies_len = ie_len -sizeof (struct ndis_802_11_fix_ie ); + + len =0 ; + p =rtw_get_ie (ies,WLAN_EID_HT_CAPABILITY , &len, ies_len); +if (p && len >0 ) { + pht_capie = (struct ieee80211_ht_cap *)(p +2 ); + max_ampdu_sz = pht_capie->ampdu_params_info & +IEEE80211_HT_CAP_AMPDU_FACTOR ; + max_ampdu_sz =1 << (max_ampdu_sz +3 ); + + phtpriv->rx_ampdu_maxlen = max_ampdu_sz; + } - len =0 ; - p =rtw_get_ie (pie +sizeof (struct ndis_802_11_fix_ie ),WLAN_EID_HT_OPERATION , &len, ie_len -sizeof (struct ndis_802_11_fix_ie )); -if (p && len >0 ) { -/* todo: */ + len =0 ; + p =rtw_get_ie (ies,WLAN_EID_HT_OPERATION , &len, ies_len); +if (p && len >0 ) { +/* todo: */ + } }if ((pregistrypriv->bw_mode &0x0f ) >0 )
Signature · 1 line
2.52.0
PATCH v3 21/22 staging: rtl8723bs: core: fix line lengths in rtw_xmit.c
In reply to [email protected]From: Luka Gejak <[email protected]>
Break long lines exceeding 100 characters to comply with kernel coding style.
--- drivers/staging/rtl8723bs/core/rtw_xmit.c | 44 ++++++++++++++++------- 1 file changed, 32 insertions(+), 12 deletions(-)
drivers/staging/rtl8723bs/core/rtw_xmit.c +32 -12
@@ -435,7 +435,9 @@ static void update_attrib_vcs_info(struct adapter *padapter, struct xmit_frame * pattrib->vcs_mode = padapter->driver_vcs_type; } -static void update_attrib_phy_info (struct adapter *padapter,struct pkt_attrib *pattrib,struct sta_info *psta) +static void update_attrib_phy_info (struct adapter *padapter, +struct pkt_attrib *pattrib, +struct sta_info *psta) {struct mlme_ext_priv *mlmeext = &padapter->mlmeextpriv;
@@ -471,7 +473,9 @@ static void update_attrib_phy_info(struct adapter *padapter, struct pkt_attrib * pattrib->retry_ctrl = false; } -static s32 update_attrib_sec_info (struct adapter *padapter,struct pkt_attrib *pattrib,struct sta_info *psta) +static s32 update_attrib_sec_info (struct adapter *padapter, +struct pkt_attrib *pattrib, +struct sta_info *psta) {signed int res = _SUCCESS;struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
@@ -510,8 +514,14 @@ static s32 update_attrib_sec_info(struct adapter *padapter, struct pkt_attrib *p }/* For WPS 1.0 WEP, driver should not encrypt EAPOL Packet for WPS handshake. */ -if (((pattrib->encrypt == _WEP40_) || (pattrib->encrypt == _WEP104_)) && (pattrib->ether_type ==0x888e )) - pattrib->encrypt = _NO_PRIVACY_; + { +bool is_wep = pattrib->encrypt == _WEP40_ || + pattrib->encrypt == _WEP104_; +bool is_eapol = pattrib->ether_type ==0x888e ; + +if (is_wep && is_eapol) + pattrib->encrypt = _NO_PRIVACY_; + } }switch (pattrib->encrypt) {
@@ -794,15 +804,18 @@ static s32 xmitframe_addmic(struct adapter *padapter, struct xmit_frame *pxmitfrif (pattrib->encrypt == _TKIP_) {/* encode mic code */ { -u8 null_key[16 ] = {0x0 ,0x0 ,0x0 ,0x0 ,0x0 ,0x0 ,0x0 ,0x0 ,0x0 ,0x0 ,0x0 ,0x0 ,0x0 ,0x0 ,0x0 ,0x0 }; +static const u8 null_key[16 ] = {0 }; pframe = pxmitframe->buf_addr + hw_hdr_offset;if (bmcst) { -if (!memcmp (psecuritypriv->dot118021XGrptxmickey[psecuritypriv->dot118021XGrpKeyid].skey, null_key,16 )) +u8 grpkeyid = psecuritypriv->dot118021XGrpKeyid; +u8 *grp_mic = psecuritypriv->dot118021XGrptxmickey[grpkeyid].skey; + +if (!memcmp (grp_mic, null_key,16 ))return _FAIL;/* start to calculate the mic code */ -rtw_secmicsetkey (&micdata, psecuritypriv->dot118021XGrptxmickey[psecuritypriv->dot118021XGrpKeyid].skey); +rtw_secmicsetkey (&micdata, grp_mic); }else {if (!memcmp (&pattrib->dot11tkiptxmickey.skey[0 ], null_key,16 ))return _FAIL;
@@ -1047,7 +1060,8 @@ u32 rtw_calculate_wlan_pkt_size_by_attribue(struct pkt_attrib *pattrib)* 5. move frag chunk from pframe to pxmitframe->mem * 6. apply sw-encrypt, if necessary. */ -s32 rtw_xmitframe_coalesce (struct adapter *padapter,struct sk_buff *pkt,struct xmit_frame *pxmitframe) +s32 rtw_xmitframe_coalesce (struct adapter *padapter,struct sk_buff *pkt, +struct xmit_frame *pxmitframe) {struct pkt_file pktfile;
@@ -1174,7 +1188,8 @@ s32 rtw_xmitframe_coalesce(struct adapter *padapter, struct sk_buff *pkt, struct }/* broadcast or multicast management pkt use BIP, unicast management pkt use CCMP encryption */ -s32 rtw_mgmt_xmitframe_coalesce (struct adapter *padapter,struct sk_buff *pkt,struct xmit_frame *pxmitframe) +s32 rtw_mgmt_xmitframe_coalesce (struct adapter *padapter,struct sk_buff *pkt, +struct xmit_frame *pxmitframe) {u8 *pframe, *mem_start =NULL , *tmp_buf =NULL ;u8 subtype;
@@ -1787,7 +1802,9 @@ s32 rtw_xmitframe_enqueue(struct adapter *padapter, struct xmit_frame *pxmitframreturn _SUCCESS; } -struct tx_servq *rtw_get_sta_pending (struct adapter *padapter,struct sta_info *psta,signed int up,u8 *ac) +struct tx_servq *rtw_get_sta_pending (struct adapter *padapter, +struct sta_info *psta, +signed int up,u8 *ac) {struct tx_servq *ptxservq =NULL ;
@@ -2040,7 +2057,8 @@ inline bool xmitframe_hiq_filter(struct xmit_frame *xmitframe)return allow; } -signed int xmitframe_enqueue_for_sleeping_sta (struct adapter *padapter,struct xmit_frame *pxmitframe) +signed int xmitframe_enqueue_for_sleeping_sta (struct adapter *padapter, +struct xmit_frame *pxmitframe) {signed int ret = false;struct sta_info *psta =NULL ;
@@ -2155,7 +2173,9 @@ signed int xmitframe_enqueue_for_sleeping_sta(struct adapter *padapter, struct xreturn ret; } -static void dequeue_xmitframes_to_sleeping_queue (struct adapter *padapter,struct sta_info *psta,struct __queue *pframequeue) +static void dequeue_xmitframes_to_sleeping_queue (struct adapter *padapter, +struct sta_info *psta, +struct __queue *pframequeue) {signed int ret;struct list_head *plist, *phead, *tmp;
Signature · 1 line
2.52.0
PATCH v3 22/22 staging: rtl8723bs: core: fix various line length overflows
In reply to [email protected]From: Luka Gejak <[email protected]>
Fix lines exceeding 100 characters in rtw_ieee80211.c and rtw_security.c to comply with kernel coding style.
--- .../staging/rtl8723bs/core/rtw_ieee80211.c | 36 ++++++++++++++----- drivers/staging/rtl8723bs/core/rtw_security.c | 11 ++++-- 2 files changed, 35 insertions(+), 12 deletions(-)
drivers/staging/rtl8723bs/core/rtw_ieee80211.c +27 -9
@@ -333,11 +333,17 @@ int rtw_generate_ie(struct registry_priv *pregistrypriv) ie =rtw_set_ie (ie,WLAN_EID_DS_PARAMS ,1 , (u8 *)&(pdev_network->configuration.ds_config), &sz);/* IBSS Parameter Set */ + { +u8 *atim = (u8 *)&pdev_network->configuration.atim_window; - ie =rtw_set_ie (ie,WLAN_EID_IBSS_PARAMS ,2 , (u8 *)&(pdev_network->configuration.atim_window), &sz); + ie =rtw_set_ie (ie,WLAN_EID_IBSS_PARAMS ,2 , atim, &sz); + } + +if (rateLen >8 ) { +u8 *ext_rates = pdev_network->supported_rates +8 ; -if (rateLen >8 ) - ie =rtw_set_ie (ie,WLAN_EID_EXT_SUPP_RATES , (rateLen -8 ), (pdev_network->supported_rates +8 ), &sz); + ie =rtw_set_ie (ie,WLAN_EID_EXT_SUPP_RATES , rateLen -8 , ext_rates, &sz); + }/* HT Cap. */ if ((pregistrypriv->wireless_mode & WIRELESS_11_24N) &&
@@ -437,7 +443,8 @@ int rtw_get_wpa2_cipher_suite(u8 *s)return 0 ; } -int rtw_parse_wpa_ie (u8 *wpa_ie,int wpa_ie_len,int *group_cipher,int *pairwise_cipher,int *is_8021x) +int rtw_parse_wpa_ie (u8 *wpa_ie,int wpa_ie_len,int *group_cipher, +int *pairwise_cipher,int *is_8021x) {int i, ret = _SUCCESS;int left, count;
@@ -500,7 +507,8 @@ int rtw_parse_wpa_ie(u8 *wpa_ie, int wpa_ie_len, int *group_cipher, int *pairwisreturn ret; } -int rtw_parse_wpa2_ie (u8 *rsn_ie,int rsn_ie_len,int *group_cipher,int *pairwise_cipher,int *is_8021x) +int rtw_parse_wpa2_ie (u8 *rsn_ie,int rsn_ie_len,int *group_cipher, +int *pairwise_cipher,int *is_8021x) {int i, ret = _SUCCESS;int left, count;
@@ -738,7 +746,8 @@ u8 *rtw_get_wps_attr(u8 *wps_ie, uint wps_ielen, u16 target_attr_id, u8 *buf_att* * Returns: the address of the specific WPS attribute content found, or NULL */ -u8 *rtw_get_wps_attr_content (u8 *wps_ie,uint wps_ielen,u16 target_attr_id,u8 *buf_content,uint *len_content) +u8 *rtw_get_wps_attr_content (u8 *wps_ie,uint wps_ielen,u16 target_attr_id, +u8 *buf_content,uint *len_content) {u8 *attr_ptr;u32 attr_len;
@@ -1019,7 +1028,11 @@ static int rtw_get_cipher_info(struct wlan_network *pnetwork) pbuf =rtw_get_wpa2_ie (&pnetwork->network.ies[12 ], &wpa_ielen, pnetwork->network.ie_length-12 );if (pbuf && (wpa_ielen >0 )) { -if (rtw_parse_wpa2_ie (pbuf, wpa_ielen+2 , &group_cipher, &pairwise_cipher, &is8021x) == _SUCCESS) { +int ret2 =rtw_parse_wpa2_ie (pbuf, wpa_ielen +2 , + &group_cipher, + &pairwise_cipher, + &is8021x); +if (ret2 == _SUCCESS) { pnetwork->bcn_info.pairwise_cipher = pairwise_cipher; pnetwork->bcn_info.group_cipher = group_cipher; pnetwork->bcn_info.is_8021x = is8021x;
@@ -1065,7 +1078,11 @@ void rtw_get_bcn_info(struct wlan_network *pnetwork)/* get bwmode and ch_offset */ /* parsing HT_CAP_IE */ - p =rtw_get_ie (pnetwork->network.ies + _FIXED_IE_LENGTH_,WLAN_EID_HT_CAPABILITY , &len, pnetwork->network.ie_length - _FIXED_IE_LENGTH_); + { +u8 *ies_start = pnetwork->network.ies + _FIXED_IE_LENGTH_; +uint ies_len = pnetwork->network.ie_length - _FIXED_IE_LENGTH_; + + p =rtw_get_ie (ies_start,WLAN_EID_HT_CAPABILITY , &len, ies_len);if (p && len >0 ) { pht_cap = (struct ieee80211_ht_cap *)(p +2 ); pnetwork->bcn_info.ht_cap_info =le16_to_cpu (pht_cap->cap_info);
@@ -1073,7 +1090,8 @@ void rtw_get_bcn_info(struct wlan_network *pnetwork) pnetwork->bcn_info.ht_cap_info =0 ; }/* parsing HT_INFO_IE */ - p =rtw_get_ie (pnetwork->network.ies + _FIXED_IE_LENGTH_,WLAN_EID_HT_OPERATION , &len, pnetwork->network.ie_length - _FIXED_IE_LENGTH_); + p =rtw_get_ie (ies_start,WLAN_EID_HT_OPERATION , &len, ies_len); + }if (p && len >0 ) { pht_info = (struct HT_info_element *)(p +2 ); pnetwork->bcn_info.ht_info_infos_0 = pht_info->infos[0 ];
drivers/staging/rtl8723bs/core/rtw_security.c +8 -3
@@ -61,9 +61,12 @@ void rtw_wep_encrypt(struct adapter *padapter, u8 *pxmitframe) keylength = psecuritypriv->dot11DefKeylen[psecuritypriv->dot11PrivacyKeyIndex];for (curfragnum =0 ; curfragnum < pattrib->nr_frags; curfragnum++) { +u8 keyidx = psecuritypriv->dot11PrivacyKeyIndex; +u8 *defkey = psecuritypriv->dot11DefKey[keyidx].skey; + iv = pframe + pattrib->hdrlen;memcpy (&wepkey[0 ], iv,3 ); -memcpy (&wepkey[3 ], &psecuritypriv->dot11DefKey[psecuritypriv->dot11PrivacyKeyIndex].skey[0 ], keylength); +memcpy (&wepkey[3 ], defkey, keylength); payload = pframe + pattrib->iv_len + pattrib->hdrlen;if ((curfragnum +1 ) == pattrib->nr_frags) {/* the last fragment */
@@ -1041,7 +1044,8 @@ static signed int aes_decipher(u8 *key, uint hdrlen,if (hdrlen !=WLAN_HDR_A3_QOS_LEN ) hdrlen +=2 ; - } else if ((frtype == WIFI_DATA) && /* only for data packet . add for CONFIG_IEEE80211W, none 11w also can use */ +/* only for data packet . add for CONFIG_IEEE80211W, none 11w also can use */ + } else if ((frtype == WIFI_DATA) && ((frsubtype == 0x08) || (frsubtype == 0x09) || (frsubtype == 0x0a) ||
@@ -1464,8 +1468,9 @@ void rtw_sec_restore_wep_key(struct adapter *adapter) {struct security_priv *securitypriv = &(adapter->securitypriv);signed int keyid; +u32 alg = securitypriv->dot11PrivacyAlgrthm; -if ((securitypriv->dot11PrivacyAlgrthm == _WEP40_) || (securitypriv->dot11PrivacyAlgrthm == _WEP104_)) { +if ((alg == _WEP40_) || (alg == _WEP104_)) {for (keyid =0 ; keyid <4 ; keyid++) {if (securitypriv->key_mask &BIT (keyid)) {if (keyid == securitypriv->dot11PrivacyKeyIndex)
Signature · 1 line
2.52.0