Last active
July 21, 2018 22:41
-
-
Save dlech/b122356b3332292bc44d1d3077622595 to your computer and use it in GitHub Desktop.
rtl8188eu changes from 4.4 to 4.14
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git b/drivers/staging/rtl8188eu/Kconfig a/drivers/staging/rtl8188eu/Kconfig | |
index 94f38793ab47..cb836c59d564 100644 | |
--- b/drivers/staging/rtl8188eu/Kconfig | |
+++ a/drivers/staging/rtl8188eu/Kconfig | |
@@ -1,6 +1,7 @@ | |
config R8188EU | |
tristate "Realtek RTL8188EU Wireless LAN NIC driver" | |
depends on WLAN && USB && CFG80211 | |
+ depends on m | |
select WIRELESS_EXT | |
select WEXT_PRIV | |
---help--- | |
diff --git b/drivers/staging/rtl8188eu/Makefile a/drivers/staging/rtl8188eu/Makefile | |
index ed723585b502..033fb2e6950d 100644 | |
--- b/drivers/staging/rtl8188eu/Makefile | |
+++ a/drivers/staging/rtl8188eu/Makefile | |
@@ -1,3 +1,4 @@ | |
+# SPDX-License-Identifier: GPL-2.0 | |
r8188eu-y := \ | |
core/rtw_ap.o \ | |
core/rtw_cmd.o \ | |
@@ -53,4 +54,4 @@ r8188eu-y := \ | |
obj-$(CONFIG_R8188EU) := r8188eu.o | |
-ccflags-y += -D__CHECK_ENDIAN__ -I$(src)/include | |
+ccflags-y += -I$(srctree)/$(src)/include | |
diff --git b/drivers/staging/rtl8188eu/TODO a/drivers/staging/rtl8188eu/TODO | |
index b574b235b340..ce60f07b9977 100644 | |
--- b/drivers/staging/rtl8188eu/TODO | |
+++ a/drivers/staging/rtl8188eu/TODO | |
@@ -15,5 +15,5 @@ TODO: | |
rcu_read_unlock(); | |
Perhaps delete it, perhaps assign to some local variable. | |
-Please send any patches to Greg Kroah-Hartman <[email protected]>, | |
+Please send any patches to Greg Kroah-Hartman <[email protected]>, | |
and Larry Finger <[email protected]>. | |
diff --git b/drivers/staging/rtl8188eu/core/rtw_ap.c a/drivers/staging/rtl8188eu/core/rtw_ap.c | |
index 3cdb40fea5ee..fa611455109a 100644 | |
--- b/drivers/staging/rtl8188eu/core/rtw_ap.c | |
+++ a/drivers/staging/rtl8188eu/core/rtw_ap.c | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#define _RTW_AP_C_ | |
@@ -31,11 +26,10 @@ | |
void init_mlme_ap_info(struct adapter *padapter) | |
{ | |
- struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); | |
+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv; | |
struct sta_priv *pstapriv = &padapter->stapriv; | |
struct wlan_acl_pool *pacl_list = &pstapriv->acl_list; | |
- | |
spin_lock_init(&pmlmepriv->bcn_update_lock); | |
/* for ACL */ | |
@@ -48,7 +42,7 @@ void free_mlme_ap_info(struct adapter *padapter) | |
{ | |
struct sta_info *psta = NULL; | |
struct sta_priv *pstapriv = &padapter->stapriv; | |
- struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); | |
+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv; | |
struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; | |
struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); | |
@@ -64,28 +58,26 @@ void free_mlme_ap_info(struct adapter *padapter) | |
/* free bc/mc sta_info */ | |
psta = rtw_get_bcmc_stainfo(padapter); | |
- spin_lock_bh(&(pstapriv->sta_hash_lock)); | |
+ spin_lock_bh(&pstapriv->sta_hash_lock); | |
rtw_free_stainfo(padapter, psta); | |
- spin_unlock_bh(&(pstapriv->sta_hash_lock)); | |
+ spin_unlock_bh(&pstapriv->sta_hash_lock); | |
} | |
static void update_BCNTIM(struct adapter *padapter) | |
{ | |
struct sta_priv *pstapriv = &padapter->stapriv; | |
- struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); | |
- struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); | |
- struct wlan_bssid_ex *pnetwork_mlmeext = &(pmlmeinfo->network); | |
+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; | |
+ struct mlme_ext_info *pmlmeinfo = &pmlmeext->mlmext_info; | |
+ struct wlan_bssid_ex *pnetwork_mlmeext = &pmlmeinfo->network; | |
unsigned char *pie = pnetwork_mlmeext->IEs; | |
- | |
- /* update TIM IE */ | |
- if (true) { | |
u8 *p, *dst_ie, *premainder_ie = NULL; | |
u8 *pbackup_remainder_ie = NULL; | |
uint offset, tmp_len, tim_ielen, tim_ie_offset, remainder_ielen; | |
+ /* update TIM IE */ | |
p = rtw_get_ie(pie + _FIXED_IE_LENGTH_, _TIM_IE_, &tim_ielen, | |
pnetwork_mlmeext->IELength - _FIXED_IE_LENGTH_); | |
- if (p != NULL && tim_ielen > 0) { | |
+ if (p && tim_ielen > 0) { | |
tim_ielen += 2; | |
premainder_ie = p + tim_ielen; | |
tim_ie_offset = (int)(p - pie); | |
@@ -101,11 +93,10 @@ static void update_BCNTIM(struct adapter *padapter) | |
offset += pnetwork_mlmeext->Ssid.SsidLength + 2; | |
/* get supported rates len */ | |
- p = rtw_get_ie(pie + _BEACON_IE_OFFSET_, | |
- _SUPPORTEDRATES_IE_, &tmp_len, | |
- (pnetwork_mlmeext->IELength - | |
+ p = rtw_get_ie(pie + _BEACON_IE_OFFSET_, _SUPPORTEDRATES_IE_, | |
+ &tmp_len, (pnetwork_mlmeext->IELength - | |
_BEACON_IE_OFFSET_)); | |
- if (p != NULL) | |
+ if (p) | |
offset += tmp_len+2; | |
/* DS Parameter Set IE, len = 3 */ | |
@@ -123,13 +114,12 @@ static void update_BCNTIM(struct adapter *padapter) | |
if (remainder_ielen > 0) { | |
pbackup_remainder_ie = rtw_malloc(remainder_ielen); | |
if (pbackup_remainder_ie && premainder_ie) | |
- memcpy(pbackup_remainder_ie, | |
- premainder_ie, remainder_ielen); | |
+ memcpy(pbackup_remainder_ie, premainder_ie, | |
+ remainder_ielen); | |
} | |
*dst_ie++ = _TIM_IE_; | |
- if ((pstapriv->tim_bitmap&0xff00) && | |
- (pstapriv->tim_bitmap&0x00fc)) | |
+ if ((pstapriv->tim_bitmap & 0xff00) && (pstapriv->tim_bitmap & 0x00fc)) | |
tim_ielen = 5; | |
else | |
tim_ielen = 4; | |
@@ -159,7 +149,6 @@ static void update_BCNTIM(struct adapter *padapter) | |
} | |
offset = (uint)(dst_ie - pie); | |
pnetwork_mlmeext->IELength = offset + remainder_ielen; | |
- } | |
set_tx_beacon_cmd(padapter); | |
} | |
@@ -191,7 +180,7 @@ void rtw_add_bcn_ie(struct adapter *padapter, struct wlan_bssid_ex *pnetwork, | |
i += (pIE->Length + 2); | |
} | |
- if (p != NULL && ielen > 0) { | |
+ if (p && ielen > 0) { | |
ielen += 2; | |
premainder_ie = p + ielen; | |
@@ -203,14 +192,14 @@ void rtw_add_bcn_ie(struct adapter *padapter, struct wlan_bssid_ex *pnetwork, | |
if (bmatch) | |
dst_ie = p; | |
else | |
- dst_ie = (p+ielen); | |
+ dst_ie = p + ielen; | |
} | |
if (remainder_ielen > 0) { | |
pbackup_remainder_ie = rtw_malloc(remainder_ielen); | |
if (pbackup_remainder_ie && premainder_ie) | |
- memcpy(pbackup_remainder_ie, | |
- premainder_ie, remainder_ielen); | |
+ memcpy(pbackup_remainder_ie, premainder_ie, | |
+ remainder_ielen); | |
} | |
*dst_ie++ = index; | |
@@ -240,7 +229,7 @@ void rtw_remove_bcn_ie(struct adapter *padapter, struct wlan_bssid_ex *pnetwork, | |
p = rtw_get_ie(pie + _FIXED_IE_LENGTH_, index, &ielen, | |
pnetwork->IELength - _FIXED_IE_LENGTH_); | |
- if (p != NULL && ielen > 0) { | |
+ if (p && ielen > 0) { | |
ielen += 2; | |
premainder_ie = p + ielen; | |
@@ -255,8 +244,8 @@ void rtw_remove_bcn_ie(struct adapter *padapter, struct wlan_bssid_ex *pnetwork, | |
if (remainder_ielen > 0) { | |
pbackup_remainder_ie = rtw_malloc(remainder_ielen); | |
if (pbackup_remainder_ie && premainder_ie) | |
- memcpy(pbackup_remainder_ie, | |
- premainder_ie, remainder_ielen); | |
+ memcpy(pbackup_remainder_ie, premainder_ie, | |
+ remainder_ielen); | |
} | |
/* copy remainder IE */ | |
@@ -318,9 +307,9 @@ void expire_timeout_chk(struct adapter *padapter) | |
spin_unlock_bh(&pstapriv->auth_list_lock); | |
- spin_lock_bh(&(pstapriv->sta_hash_lock)); | |
+ spin_lock_bh(&pstapriv->sta_hash_lock); | |
rtw_free_stainfo(padapter, psta); | |
- spin_unlock_bh(&(pstapriv->sta_hash_lock)); | |
+ spin_unlock_bh(&pstapriv->sta_hash_lock); | |
spin_lock_bh(&pstapriv->auth_list_lock); | |
} | |
@@ -369,8 +358,8 @@ void expire_timeout_chk(struct adapter *padapter) | |
* for this station | |
*/ | |
pstapriv->tim_bitmap |= BIT(psta->aid); | |
- update_beacon(padapter, _TIM_IE_, | |
- NULL, false); | |
+ update_beacon(padapter, _TIM_IE_, NULL, | |
+ false); | |
if (!pmlmeext->active_keep_alive_check) | |
continue; | |
@@ -458,13 +447,11 @@ void expire_timeout_chk(struct adapter *padapter) | |
void add_RATid(struct adapter *padapter, struct sta_info *psta, u8 rssi_level) | |
{ | |
int i; | |
- u8 rf_type; | |
u32 init_rate = 0; | |
unsigned char sta_band = 0, raid, shortGIrate = false; | |
- unsigned char limit; | |
unsigned int tx_ra_bitmap = 0; | |
struct ht_priv *psta_ht = NULL; | |
- struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); | |
+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv; | |
struct wlan_bssid_ex *pcur_network = (struct wlan_bssid_ex *)&pmlmepriv->cur_network.network; | |
if (psta) | |
@@ -482,16 +469,9 @@ void add_RATid(struct adapter *padapter, struct sta_info *psta, u8 rssi_level) | |
} | |
/* n mode ra_bitmap */ | |
if (psta_ht->ht_option) { | |
- rtw_hal_get_hwreg(padapter, HW_VAR_RF_TYPE, (u8 *)(&rf_type)); | |
- if (rf_type == RF_2T2R) | |
- limit = 16;/* 2R */ | |
- else | |
- limit = 8;/* 1R */ | |
- | |
- for (i = 0; i < limit; i++) { | |
- if (psta_ht->ht_cap.supp_mcs_set[i/8] & BIT(i%8)) | |
+ for (i = 0; i < 8; i++) | |
+ if (psta_ht->ht_cap.mcs.rx_mask[0] & BIT(i)) | |
tx_ra_bitmap |= BIT(i + 12); | |
- } | |
/* max short GI rate */ | |
shortGIrate = psta_ht->sgi; | |
@@ -556,7 +536,7 @@ static void update_bmc_sta(struct adapter *padapter) | |
unsigned char network_type, raid; | |
int i, supportRateNum = 0; | |
unsigned int tx_ra_bitmap = 0; | |
- struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); | |
+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv; | |
struct wlan_bssid_ex *pcur_network = (struct wlan_bssid_ex *)&pmlmepriv->cur_network.network; | |
struct sta_info *psta = rtw_get_bcmc_stainfo(padapter); | |
@@ -569,7 +549,7 @@ static void update_bmc_sta(struct adapter *padapter) | |
psta->ieee8021x_blocked = 0; | |
- memset((void *)&psta->sta_stats, 0, sizeof(struct stainfo_stats)); | |
+ memset(&psta->sta_stats, 0, sizeof(struct stainfo_stats)); | |
/* prepare for add_RATid */ | |
supportRateNum = rtw_get_rateset_len((u8 *)&pcur_network->SupportedRates); | |
@@ -606,7 +586,7 @@ static void update_bmc_sta(struct adapter *padapter) | |
arg = psta->mac_id & 0x1f; | |
arg |= BIT(7); | |
tx_ra_bitmap |= ((raid << 28) & 0xf0000000); | |
- DBG_88E("update_bmc_sta, mask = 0x%x, arg = 0x%x\n", tx_ra_bitmap, arg); | |
+ DBG_88E("%s, mask = 0x%x, arg = 0x%x\n", __func__, tx_ra_bitmap, arg); | |
/* bitmap[0:27] = tx_rate_bitmap */ | |
/* bitmap[28:31]= Rate Adaptive id */ | |
@@ -638,9 +618,9 @@ static void update_bmc_sta(struct adapter *padapter) | |
void update_sta_info_apmode(struct adapter *padapter, struct sta_info *psta) | |
{ | |
- struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); | |
+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv; | |
struct security_priv *psecuritypriv = &padapter->securitypriv; | |
- struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); | |
+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; | |
struct ht_priv *phtpriv_ap = &pmlmepriv->htpriv; | |
struct ht_priv *phtpriv_sta = &psta->htpriv; | |
@@ -666,11 +646,15 @@ void update_sta_info_apmode(struct adapter *padapter, struct sta_info *psta) | |
phtpriv_sta->ampdu_enable = phtpriv_ap->ampdu_enable; | |
/* check if sta support s Short GI */ | |
- if ((phtpriv_sta->ht_cap.cap_info & phtpriv_ap->ht_cap.cap_info) & (IEEE80211_HT_CAP_SGI_20 | IEEE80211_HT_CAP_SGI_40)) | |
+ if (le16_to_cpu(phtpriv_sta->ht_cap.cap_info & | |
+ phtpriv_ap->ht_cap.cap_info) & | |
+ (IEEE80211_HT_CAP_SGI_20 | IEEE80211_HT_CAP_SGI_40)) | |
phtpriv_sta->sgi = true; | |
/* bwmode */ | |
- if ((phtpriv_sta->ht_cap.cap_info & phtpriv_ap->ht_cap.cap_info) & IEEE80211_HT_CAP_SUP_WIDTH) { | |
+ if (le16_to_cpu(phtpriv_sta->ht_cap.cap_info & | |
+ phtpriv_ap->ht_cap.cap_info) & | |
+ IEEE80211_HT_CAP_SUP_WIDTH) { | |
phtpriv_sta->bwmode = pmlmeext->cur_bwmode; | |
phtpriv_sta->ch_offset = pmlmeext->cur_ch_offset; | |
} | |
@@ -692,7 +676,7 @@ void update_sta_info_apmode(struct adapter *padapter, struct sta_info *psta) | |
/* todo: init other variables */ | |
- memset((void *)&psta->sta_stats, 0, sizeof(struct stainfo_stats)); | |
+ memset(&psta->sta_stats, 0, sizeof(struct stainfo_stats)); | |
spin_lock_bh(&psta->lock); | |
psta->state |= _FW_LINKED; | |
@@ -704,18 +688,18 @@ static void update_hw_ht_param(struct adapter *padapter) | |
unsigned char max_AMPDU_len; | |
unsigned char min_MPDU_spacing; | |
struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; | |
- struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); | |
+ struct mlme_ext_info *pmlmeinfo = &pmlmeext->mlmext_info; | |
DBG_88E("%s\n", __func__); | |
/* handle A-MPDU parameter field */ | |
/* | |
- AMPDU_para [1:0]:Max AMPDU Len => 0:8k , 1:16k, 2:32k, 3:64k | |
- AMPDU_para [4:2]:Min MPDU Start Spacing | |
+ ampdu_params_info [1:0]:Max AMPDU Len => 0:8k , 1:16k, 2:32k, 3:64k | |
+ ampdu_params_info [4:2]:Min MPDU Start Spacing | |
*/ | |
- max_AMPDU_len = pmlmeinfo->HT_caps.u.HT_cap_element.AMPDU_para & 0x03; | |
+ max_AMPDU_len = pmlmeinfo->HT_caps.ampdu_params_info & 0x03; | |
- min_MPDU_spacing = (pmlmeinfo->HT_caps.u.HT_cap_element.AMPDU_para & 0x1c) >> 2; | |
+ min_MPDU_spacing = (pmlmeinfo->HT_caps.ampdu_params_info & 0x1c) >> 2; | |
rtw_hal_set_hwreg(padapter, HW_VAR_AMPDU_MIN_SPACE, (u8 *)(&min_MPDU_spacing)); | |
@@ -724,7 +708,7 @@ static void update_hw_ht_param(struct adapter *padapter) | |
/* */ | |
/* Config SM Power Save setting */ | |
/* */ | |
- pmlmeinfo->SM_PS = (le16_to_cpu(pmlmeinfo->HT_caps.u.HT_cap_element.HT_caps_info) & 0x0C) >> 2; | |
+ pmlmeinfo->SM_PS = (le16_to_cpu(pmlmeinfo->HT_caps.cap_info) & 0x0C) >> 2; | |
if (pmlmeinfo->SM_PS == WLAN_HT_CAP_SM_PS_STATIC) | |
DBG_88E("%s(): WLAN_HT_CAP_SM_PS_STATIC\n", __func__); | |
} | |
@@ -735,14 +719,14 @@ static void start_bss_network(struct adapter *padapter, u8 *pbuf) | |
u8 val8, cur_channel, cur_bwmode, cur_ch_offset; | |
u16 bcn_interval; | |
u32 acparm; | |
- int ie_len; | |
+ uint ie_len; | |
struct registry_priv *pregpriv = &padapter->registrypriv; | |
- struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); | |
- struct security_priv *psecuritypriv = &(padapter->securitypriv); | |
+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv; | |
+ struct security_priv *psecuritypriv = &padapter->securitypriv; | |
struct wlan_bssid_ex *pnetwork = (struct wlan_bssid_ex *)&pmlmepriv->cur_network.network; | |
- struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); | |
- struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); | |
- struct wlan_bssid_ex *pnetwork_mlmeext = &(pmlmeinfo->network); | |
+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; | |
+ struct mlme_ext_info *pmlmeinfo = &pmlmeext->mlmext_info; | |
+ struct wlan_bssid_ex *pnetwork_mlmeext = &pmlmeinfo->network; | |
struct HT_info_element *pht_info = NULL; | |
bcn_interval = (u16)pnetwork->Configuration.BeaconPeriod; | |
@@ -751,9 +735,11 @@ static void start_bss_network(struct adapter *padapter, u8 *pbuf) | |
cur_ch_offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE; | |
- /* check if there is wps ie, */ | |
- /* if there is wpsie in beacon, the hostapd will update beacon twice when stating hostapd, */ | |
- /* and at first time the security ie (RSN/WPA IE) will not include in beacon. */ | |
+ /* check if there is wps ie, | |
+ * if there is wpsie in beacon, the hostapd will update | |
+ * beacon twice when stating hostapd, and at first time the | |
+ * security ie (RSN/WPA IE) will not include in beacon. | |
+ */ | |
if (!rtw_get_wps_ie(pnetwork->IEs + _FIXED_IE_LENGTH_, pnetwork->IELength - _FIXED_IE_LENGTH_, NULL, NULL)) | |
pmlmeext->bstart_bss = true; | |
@@ -767,8 +753,11 @@ static void start_bss_network(struct adapter *padapter, u8 *pbuf) | |
update_hw_ht_param(padapter); | |
} | |
- if (pmlmepriv->cur_network.join_res != true) { /* setting only at first time */ | |
- /* WEP Key will be set before this function, do not clear CAM. */ | |
+ /* setting only at first time */ | |
+ if (pmlmepriv->cur_network.join_res != true) { | |
+ /* WEP Key will be set before this function, do not | |
+ * clear CAM. | |
+ */ | |
if ((psecuritypriv->dot11PrivacyAlgrthm != _WEP40_) && | |
(psecuritypriv->dot11PrivacyAlgrthm != _WEP104_)) | |
flush_all_cam_entry(padapter); /* clear CAM */ | |
@@ -825,7 +814,9 @@ static void start_bss_network(struct adapter *padapter, u8 *pbuf) | |
} | |
} | |
} | |
- /* TODO: need to judge the phy parameters on concurrent mode for single phy */ | |
+ /* TODO: need to judge the phy parameters on concurrent | |
+ * mode for single phy | |
+ */ | |
set_channel_bwmode(padapter, cur_channel, cur_ch_offset, cur_bwmode); | |
DBG_88E("CH =%d, BW =%d, offset =%d\n", cur_channel, cur_bwmode, cur_ch_offset); | |
@@ -873,7 +864,7 @@ int rtw_check_beacon_data(struct adapter *padapter, u8 *pbuf, int len) | |
u8 WMM_PARA_IE[] = {0x00, 0x50, 0xf2, 0x02, 0x01, 0x01}; | |
struct registry_priv *pregistrypriv = &padapter->registrypriv; | |
struct security_priv *psecuritypriv = &padapter->securitypriv; | |
- struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); | |
+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv; | |
struct wlan_bssid_ex *pbss_network = (struct wlan_bssid_ex *)&pmlmepriv->cur_network.network; | |
u8 *ie = pbss_network->IEs; | |
@@ -894,7 +885,7 @@ int rtw_check_beacon_data(struct adapter *padapter, u8 *pbuf, int len) | |
return _FAIL; | |
- if (len > MAX_IE_SZ) | |
+ if (len < 0 || len > MAX_IE_SZ) | |
return _FAIL; | |
pbss_network->IELength = len; | |
@@ -909,7 +900,7 @@ int rtw_check_beacon_data(struct adapter *padapter, u8 *pbuf, int len) | |
pbss_network->Rssi = 0; | |
- ether_addr_copy(pbss_network->MacAddress, myid(&(padapter->eeprompriv))); | |
+ ether_addr_copy(pbss_network->MacAddress, myid(&padapter->eeprompriv)); | |
/* beacon interval */ | |
p = rtw_get_beacon_interval_from_ie(ie);/* 8: TimeStamp, 2: Beacon Interval 2:Capability */ | |
@@ -938,14 +929,14 @@ int rtw_check_beacon_data(struct adapter *padapter, u8 *pbuf, int len) | |
memset(supportRate, 0, NDIS_802_11_LENGTH_RATES_EX); | |
/* get supported rates */ | |
p = rtw_get_ie(ie + _BEACON_IE_OFFSET_, _SUPPORTEDRATES_IE_, &ie_len, (pbss_network->IELength - _BEACON_IE_OFFSET_)); | |
- if (p != NULL) { | |
+ if (p) { | |
memcpy(supportRate, p + 2, ie_len); | |
supportRateNum = ie_len; | |
} | |
/* get ext_supported rates */ | |
p = rtw_get_ie(ie + _BEACON_IE_OFFSET_, _EXT_SUPPORTEDRATES_IE_, &ie_len, pbss_network->IELength - _BEACON_IE_OFFSET_); | |
- if (p != NULL) { | |
+ if (p) { | |
memcpy(supportRate + supportRateNum, p + 2, ie_len); | |
supportRateNum += ie_len; | |
} | |
@@ -1007,7 +998,7 @@ int rtw_check_beacon_data(struct adapter *padapter, u8 *pbuf, int len) | |
} | |
break; | |
} | |
- if ((p == NULL) || (ie_len == 0)) | |
+ if ((!p) || (ie_len == 0)) | |
break; | |
} | |
@@ -1021,9 +1012,12 @@ int rtw_check_beacon_data(struct adapter *padapter, u8 *pbuf, int len) | |
if ((p) && !memcmp(p + 2, WMM_PARA_IE, 6)) { | |
pmlmepriv->qospriv.qos_option = 1; | |
- *(p+8) |= BIT(7);/* QoS Info, support U-APSD */ | |
+ /* QoS Info, support U-APSD */ | |
+ *(p + 8) |= BIT(7); | |
- /* disable all ACM bits since the WMM admission control is not supported */ | |
+ /* disable all ACM bits since the WMM | |
+ * admission control is not supported | |
+ */ | |
*(p + 10) &= ~BIT(4); /* BE */ | |
*(p + 14) &= ~BIT(4); /* BK */ | |
*(p + 18) &= ~BIT(4); /* VI */ | |
@@ -1031,7 +1025,7 @@ int rtw_check_beacon_data(struct adapter *padapter, u8 *pbuf, int len) | |
break; | |
} | |
- if ((p == NULL) || (ie_len == 0)) | |
+ if ((!p) || (ie_len == 0)) | |
break; | |
} | |
} | |
@@ -1039,15 +1033,12 @@ int rtw_check_beacon_data(struct adapter *padapter, u8 *pbuf, int len) | |
p = rtw_get_ie(ie + _BEACON_IE_OFFSET_, _HT_CAPABILITY_IE_, &ie_len, | |
(pbss_network->IELength - _BEACON_IE_OFFSET_)); | |
if (p && ie_len > 0) { | |
- u8 rf_type; | |
- struct rtw_ieee80211_ht_cap *pht_cap = (struct rtw_ieee80211_ht_cap *)(p+2); | |
+ struct ieee80211_ht_cap *pht_cap = (struct ieee80211_ht_cap *)(p + 2); | |
pHT_caps_ie = p; | |
ht_cap = true; | |
network_type |= WIRELESS_11_24N; | |
- rtw_hal_get_hwreg(padapter, HW_VAR_RF_TYPE, (u8 *)(&rf_type)); | |
- | |
if ((psecuritypriv->wpa_pairwise_cipher & WPA_CIPHER_CCMP) || | |
(psecuritypriv->wpa2_pairwise_cipher & WPA_CIPHER_CCMP)) | |
pht_cap->ampdu_params_info |= (IEEE80211_HT_CAP_AMPDU_DENSITY & (0x07 << 2)); | |
@@ -1057,10 +1048,8 @@ int rtw_check_beacon_data(struct adapter *padapter, u8 *pbuf, int len) | |
/* set Max Rx AMPDU size to 64K */ | |
pht_cap->ampdu_params_info |= (IEEE80211_HT_CAP_AMPDU_FACTOR & 0x03); | |
- if (rf_type == RF_1T1R) { | |
- pht_cap->supp_mcs_set[0] = 0xff; | |
- pht_cap->supp_mcs_set[1] = 0x0; | |
- } | |
+ pht_cap->mcs.rx_mask[0] = 0xff; | |
+ pht_cap->mcs.rx_mask[1] = 0x0; | |
memcpy(&pmlmepriv->htpriv.ht_cap, p+2, ie_len); | |
} | |
@@ -1118,7 +1107,7 @@ int rtw_check_beacon_data(struct adapter *padapter, u8 *pbuf, int len) | |
psta = rtw_get_stainfo(&padapter->stapriv, pbss_network->MacAddress); | |
if (!psta) { | |
psta = rtw_alloc_stainfo(&padapter->stapriv, pbss_network->MacAddress); | |
- if (psta == NULL) | |
+ if (!psta) | |
return _FAIL; | |
} | |
@@ -1154,7 +1143,7 @@ int rtw_acl_add_sta(struct adapter *padapter, u8 *addr) | |
if ((NUM_ACL - 1) < pacl_list->num) | |
return -1; | |
- spin_lock_bh(&(pacl_node_q->lock)); | |
+ spin_lock_bh(&pacl_node_q->lock); | |
phead = get_list_head(pacl_node_q); | |
plist = phead->next; | |
@@ -1172,12 +1161,12 @@ int rtw_acl_add_sta(struct adapter *padapter, u8 *addr) | |
} | |
} | |
- spin_unlock_bh(&(pacl_node_q->lock)); | |
+ spin_unlock_bh(&pacl_node_q->lock); | |
if (added) | |
return ret; | |
- spin_lock_bh(&(pacl_node_q->lock)); | |
+ spin_lock_bh(&pacl_node_q->lock); | |
for (i = 0; i < NUM_ACL; i++) { | |
paclnode = &pacl_list->aclnode[i]; | |
@@ -1199,7 +1188,7 @@ int rtw_acl_add_sta(struct adapter *padapter, u8 *addr) | |
DBG_88E("%s, acl_num =%d\n", __func__, pacl_list->num); | |
- spin_unlock_bh(&(pacl_node_q->lock)); | |
+ spin_unlock_bh(&pacl_node_q->lock); | |
return ret; | |
} | |
@@ -1214,7 +1203,7 @@ int rtw_acl_remove_sta(struct adapter *padapter, u8 *addr) | |
DBG_88E("%s(acl_num =%d) =%pM\n", __func__, pacl_list->num, (addr)); | |
- spin_lock_bh(&(pacl_node_q->lock)); | |
+ spin_lock_bh(&pacl_node_q->lock); | |
phead = get_list_head(pacl_node_q); | |
plist = phead->next; | |
@@ -1234,23 +1223,18 @@ int rtw_acl_remove_sta(struct adapter *padapter, u8 *addr) | |
} | |
} | |
- spin_unlock_bh(&(pacl_node_q->lock)); | |
+ spin_unlock_bh(&pacl_node_q->lock); | |
DBG_88E("%s, acl_num =%d\n", __func__, pacl_list->num); | |
return 0; | |
} | |
-static void update_bcn_fixed_ie(struct adapter *padapter) | |
-{ | |
- DBG_88E("%s\n", __func__); | |
-} | |
- | |
static void update_bcn_erpinfo_ie(struct adapter *padapter) | |
{ | |
- struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); | |
- struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); | |
- struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); | |
- struct wlan_bssid_ex *pnetwork = &(pmlmeinfo->network); | |
+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv; | |
+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; | |
+ struct mlme_ext_info *pmlmeinfo = &pmlmeext->mlmext_info; | |
+ struct wlan_bssid_ex *pnetwork = &pmlmeinfo->network; | |
unsigned char *p, *ie = pnetwork->IEs; | |
u32 len = 0; | |
@@ -1279,52 +1263,27 @@ static void update_bcn_erpinfo_ie(struct adapter *padapter) | |
} | |
} | |
-static void update_bcn_htcap_ie(struct adapter *padapter) | |
-{ | |
- DBG_88E("%s\n", __func__); | |
-} | |
- | |
-static void update_bcn_htinfo_ie(struct adapter *padapter) | |
-{ | |
- DBG_88E("%s\n", __func__); | |
-} | |
- | |
-static void update_bcn_rsn_ie(struct adapter *padapter) | |
-{ | |
- DBG_88E("%s\n", __func__); | |
-} | |
- | |
-static void update_bcn_wpa_ie(struct adapter *padapter) | |
-{ | |
- DBG_88E("%s\n", __func__); | |
-} | |
- | |
-static void update_bcn_wmm_ie(struct adapter *padapter) | |
-{ | |
- DBG_88E("%s\n", __func__); | |
-} | |
- | |
static void update_bcn_wps_ie(struct adapter *padapter) | |
{ | |
u8 *pwps_ie = NULL, *pwps_ie_src; | |
u8 *premainder_ie, *pbackup_remainder_ie = NULL; | |
uint wps_ielen = 0, wps_offset, remainder_ielen; | |
- struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); | |
- struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); | |
- struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); | |
- struct wlan_bssid_ex *pnetwork = &(pmlmeinfo->network); | |
+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv; | |
+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; | |
+ struct mlme_ext_info *pmlmeinfo = &pmlmeext->mlmext_info; | |
+ struct wlan_bssid_ex *pnetwork = &pmlmeinfo->network; | |
unsigned char *ie = pnetwork->IEs; | |
u32 ielen = pnetwork->IELength; | |
DBG_88E("%s\n", __func__); | |
pwps_ie_src = pmlmepriv->wps_beacon_ie; | |
- if (pwps_ie_src == NULL) | |
+ if (!pwps_ie_src) | |
return; | |
pwps_ie = rtw_get_wps_ie(ie+_FIXED_IE_LENGTH_, ielen-_FIXED_IE_LENGTH_, NULL, &wps_ielen); | |
- if (pwps_ie == NULL || wps_ielen == 0) | |
+ if (!pwps_ie || wps_ielen == 0) | |
return; | |
wps_offset = (uint)(pwps_ie-ie); | |
@@ -1354,22 +1313,12 @@ static void update_bcn_wps_ie(struct adapter *padapter) | |
kfree(pbackup_remainder_ie); | |
} | |
-static void update_bcn_p2p_ie(struct adapter *padapter) | |
-{ | |
-} | |
- | |
static void update_bcn_vendor_spec_ie(struct adapter *padapter, u8 *oui) | |
{ | |
DBG_88E("%s\n", __func__); | |
- if (!memcmp(RTW_WPA_OUI, oui, 4)) | |
- update_bcn_wpa_ie(padapter); | |
- else if (!memcmp(WMM_OUI, oui, 4)) | |
- update_bcn_wmm_ie(padapter); | |
- else if (!memcmp(WPS_OUI, oui, 4)) | |
+ if (!memcmp(WPS_OUI, oui, 4)) | |
update_bcn_wps_ie(padapter); | |
- else if (!memcmp(P2P_OUI, oui, 4)) | |
- update_bcn_p2p_ie(padapter); | |
else | |
DBG_88E("unknown OUI type!\n"); | |
} | |
@@ -1382,8 +1331,8 @@ void update_beacon(struct adapter *padapter, u8 ie_id, u8 *oui, u8 tx) | |
if (!padapter) | |
return; | |
- pmlmepriv = &(padapter->mlmepriv); | |
- pmlmeext = &(padapter->mlmeextpriv); | |
+ pmlmepriv = &padapter->mlmepriv; | |
+ pmlmeext = &padapter->mlmeextpriv; | |
if (!pmlmeext->bstart_bss) | |
return; | |
@@ -1391,24 +1340,12 @@ void update_beacon(struct adapter *padapter, u8 ie_id, u8 *oui, u8 tx) | |
spin_lock_bh(&pmlmepriv->bcn_update_lock); | |
switch (ie_id) { | |
- case 0xFF: | |
- update_bcn_fixed_ie(padapter);/* 8: TimeStamp, 2: Beacon Interval 2:Capability */ | |
- break; | |
case _TIM_IE_: | |
update_BCNTIM(padapter); | |
break; | |
case _ERPINFO_IE_: | |
update_bcn_erpinfo_ie(padapter); | |
break; | |
- case _HT_CAPABILITY_IE_: | |
- update_bcn_htcap_ie(padapter); | |
- break; | |
- case _RSN_IE_2_: | |
- update_bcn_rsn_ie(padapter); | |
- break; | |
- case _HT_ADD_INFO_IE_: | |
- update_bcn_htinfo_ie(padapter); | |
- break; | |
case _VENDOR_SPECIFIC_IE_: | |
update_bcn_vendor_spec_ie(padapter, oui); | |
break; | |
@@ -1440,7 +1377,7 @@ static int rtw_ht_operation_update(struct adapter *padapter) | |
{ | |
u16 cur_op_mode, new_op_mode; | |
int op_mode_changes = 0; | |
- struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); | |
+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv; | |
struct ht_priv *phtpriv_ap = &pmlmepriv->htpriv; | |
if (pmlmepriv->htpriv.ht_option) | |
@@ -1482,7 +1419,8 @@ static int rtw_ht_operation_update(struct adapter *padapter) | |
if (pmlmepriv->num_sta_no_ht || | |
(pmlmepriv->ht_op_mode & HT_INFO_OPERATION_MODE_NON_GF_DEVS_PRESENT)) | |
new_op_mode = OP_MODE_MIXED; | |
- else if ((phtpriv_ap->ht_cap.cap_info & IEEE80211_HT_CAP_SUP_WIDTH) && | |
+ else if ((le16_to_cpu(phtpriv_ap->ht_cap.cap_info) & | |
+ IEEE80211_HT_CAP_SUP_WIDTH) && | |
pmlmepriv->num_sta_ht_20mhz) | |
new_op_mode = OP_MODE_20MHZ_HT_STA_ASSOCED; | |
else if (pmlmepriv->olbc_ht) | |
@@ -1532,8 +1470,8 @@ void associated_clients_update(struct adapter *padapter, u8 updated) | |
void bss_cap_update_on_sta_join(struct adapter *padapter, struct sta_info *psta) | |
{ | |
u8 beacon_updated = false; | |
- struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); | |
- struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); | |
+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv; | |
+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; | |
if (!(psta->flags & WLAN_STA_SHORT_PREAMBLE)) { | |
if (!psta->no_short_preamble_set) { | |
@@ -1612,7 +1550,7 @@ void bss_cap_update_on_sta_join(struct adapter *padapter, struct sta_info *psta) | |
} | |
if (psta->flags & WLAN_STA_HT) { | |
- u16 ht_capab = psta->htpriv.ht_cap.cap_info; | |
+ u16 ht_capab = le16_to_cpu(psta->htpriv.ht_cap.cap_info); | |
DBG_88E("HT: STA %pM HT Capabilities Info: 0x%04x\n", | |
(psta->hwaddr), ht_capab); | |
@@ -1667,8 +1605,8 @@ void bss_cap_update_on_sta_join(struct adapter *padapter, struct sta_info *psta) | |
u8 bss_cap_update_on_sta_leave(struct adapter *padapter, struct sta_info *psta) | |
{ | |
u8 beacon_updated = false; | |
- struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); | |
- struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); | |
+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv; | |
+ struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; | |
if (!psta) | |
return beacon_updated; | |
@@ -1763,54 +1701,20 @@ u8 ap_free_sta(struct adapter *padapter, struct sta_info *psta, | |
beacon_updated = bss_cap_update_on_sta_leave(padapter, psta); | |
- spin_lock_bh(&(pstapriv->sta_hash_lock)); | |
+ spin_lock_bh(&pstapriv->sta_hash_lock); | |
rtw_free_stainfo(padapter, psta); | |
- spin_unlock_bh(&(pstapriv->sta_hash_lock)); | |
+ spin_unlock_bh(&pstapriv->sta_hash_lock); | |
return beacon_updated; | |
} | |
-int rtw_ap_inform_ch_switch(struct adapter *padapter, u8 new_ch, u8 ch_offset) | |
-{ | |
- struct list_head *phead, *plist; | |
- struct sta_info *psta = NULL; | |
- struct sta_priv *pstapriv = &padapter->stapriv; | |
- struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; | |
- struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); | |
- u8 bc_addr[ETH_ALEN] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; | |
- | |
- if ((pmlmeinfo->state&0x03) != WIFI_FW_AP_STATE) | |
- return 0; | |
- | |
- DBG_88E(FUNC_NDEV_FMT" with ch:%u, offset:%u\n", | |
- FUNC_NDEV_ARG(padapter->pnetdev), new_ch, ch_offset); | |
- | |
- spin_lock_bh(&pstapriv->asoc_list_lock); | |
- phead = &pstapriv->asoc_list; | |
- plist = phead->next; | |
- | |
- /* for each sta in asoc_queue */ | |
- while (phead != plist) { | |
- psta = container_of(plist, struct sta_info, asoc_list); | |
- plist = plist->next; | |
- | |
- issue_action_spct_ch_switch(padapter, psta->hwaddr, new_ch, ch_offset); | |
- psta->expire_to = min_t(unsigned int, pstapriv->expire_to * 2, 5); | |
- } | |
- spin_unlock_bh(&pstapriv->asoc_list_lock); | |
- | |
- issue_action_spct_ch_switch(padapter, bc_addr, new_ch, ch_offset); | |
- | |
- return 0; | |
-} | |
- | |
int rtw_sta_flush(struct adapter *padapter) | |
{ | |
struct list_head *phead, *plist; | |
struct sta_info *psta = NULL; | |
struct sta_priv *pstapriv = &padapter->stapriv; | |
struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; | |
- struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); | |
+ struct mlme_ext_info *pmlmeinfo = &pmlmeext->mlmext_info; | |
u8 bc_addr[ETH_ALEN] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; | |
DBG_88E(FUNC_NDEV_FMT"\n", FUNC_NDEV_ARG(padapter->pnetdev)); | |
@@ -1847,7 +1751,7 @@ int rtw_sta_flush(struct adapter *padapter) | |
void sta_info_update(struct adapter *padapter, struct sta_info *psta) | |
{ | |
int flags = psta->flags; | |
- struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); | |
+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv; | |
/* update wmm cap. */ | |
if (WLAN_STA_WME & flags) | |
@@ -1884,7 +1788,7 @@ void ap_sta_info_defer_update(struct adapter *padapter, struct sta_info *psta) | |
void start_ap_mode(struct adapter *padapter) | |
{ | |
int i; | |
- struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); | |
+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv; | |
struct sta_priv *pstapriv = &padapter->stapriv; | |
struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; | |
struct wlan_acl_pool *pacl_list = &pstapriv->acl_list; | |
@@ -1916,11 +1820,8 @@ void start_ap_mode(struct adapter *padapter) | |
pmlmepriv->wps_probe_resp_ie = NULL; | |
pmlmepriv->wps_assoc_resp_ie = NULL; | |
- pmlmepriv->p2p_beacon_ie = NULL; | |
- pmlmepriv->p2p_probe_resp_ie = NULL; | |
- | |
/* for ACL */ | |
- INIT_LIST_HEAD(&(pacl_list->acl_node_q.queue)); | |
+ INIT_LIST_HEAD(&pacl_list->acl_node_q.queue); | |
pacl_list->num = 0; | |
pacl_list->mode = 0; | |
for (i = 0; i < NUM_ACL; i++) { | |
@@ -1935,7 +1836,7 @@ void stop_ap_mode(struct adapter *padapter) | |
struct rtw_wlan_acl_node *paclnode; | |
struct sta_info *psta = NULL; | |
struct sta_priv *pstapriv = &padapter->stapriv; | |
- struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); | |
+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv; | |
struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; | |
struct wlan_acl_pool *pacl_list = &pstapriv->acl_list; | |
struct __queue *pacl_node_q = &pacl_list->acl_node_q; | |
@@ -1943,13 +1844,15 @@ void stop_ap_mode(struct adapter *padapter) | |
pmlmepriv->update_bcn = false; | |
pmlmeext->bstart_bss = false; | |
- /* reset and init security priv , this can refine with rtw_reset_securitypriv */ | |
+ /* reset and init security priv , this can refine with | |
+ * rtw_reset_securitypriv | |
+ */ | |
memset((unsigned char *)&padapter->securitypriv, 0, sizeof(struct security_priv)); | |
padapter->securitypriv.ndisauthtype = Ndis802_11AuthModeOpen; | |
padapter->securitypriv.ndisencryptstatus = Ndis802_11WEPDisabled; | |
/* for ACL */ | |
- spin_lock_bh(&(pacl_node_q->lock)); | |
+ spin_lock_bh(&pacl_node_q->lock); | |
phead = get_list_head(pacl_node_q); | |
plist = phead->next; | |
while (phead != plist) { | |
@@ -1964,7 +1867,7 @@ void stop_ap_mode(struct adapter *padapter) | |
pacl_list->num--; | |
} | |
} | |
- spin_unlock_bh(&(pacl_node_q->lock)); | |
+ spin_unlock_bh(&pacl_node_q->lock); | |
DBG_88E("%s, free acl_node_queue, num =%d\n", __func__, pacl_list->num); | |
@@ -1974,9 +1877,9 @@ void stop_ap_mode(struct adapter *padapter) | |
rtw_free_all_stainfo(padapter); | |
psta = rtw_get_bcmc_stainfo(padapter); | |
- spin_lock_bh(&(pstapriv->sta_hash_lock)); | |
+ spin_lock_bh(&pstapriv->sta_hash_lock); | |
rtw_free_stainfo(padapter, psta); | |
- spin_unlock_bh(&(pstapriv->sta_hash_lock)); | |
+ spin_unlock_bh(&pstapriv->sta_hash_lock); | |
rtw_init_bcmc_stainfo(padapter); | |
diff --git b/drivers/staging/rtl8188eu/core/rtw_cmd.c a/drivers/staging/rtl8188eu/core/rtw_cmd.c | |
index 45d0a87f55d2..be8542676adf 100644 | |
--- b/drivers/staging/rtl8188eu/core/rtw_cmd.c | |
+++ a/drivers/staging/rtl8188eu/core/rtw_cmd.c | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#define _RTW_CMD_C_ | |
@@ -26,35 +21,33 @@ | |
#include <rtw_mlme_ext.h> | |
/* | |
-Caller and the rtw_cmd_thread can protect cmd_q by spin_lock. | |
-No irqsave is necessary. | |
+ * Caller and the rtw_cmd_thread can protect cmd_q by spin_lock. | |
+ * No irqsave is necessary. | |
*/ | |
int rtw_init_cmd_priv(struct cmd_priv *pcmdpriv) | |
{ | |
- sema_init(&(pcmdpriv->cmd_queue_sema), 0); | |
- sema_init(&(pcmdpriv->terminate_cmdthread_sema), 0); | |
+ init_completion(&pcmdpriv->cmd_queue_comp); | |
+ init_completion(&pcmdpriv->terminate_cmdthread_comp); | |
- _rtw_init_queue(&(pcmdpriv->cmd_queue)); | |
+ _rtw_init_queue(&pcmdpriv->cmd_queue); | |
return _SUCCESS; | |
} | |
/* | |
-Calling Context: | |
- | |
-rtw_enqueue_cmd can only be called between kernel thread, | |
-since only spin_lock is used. | |
- | |
-ISR/Call-Back functions can't call this sub-function. | |
- | |
+ * Calling Context: | |
+ * | |
+ * rtw_enqueue_cmd can only be called between kernel thread, | |
+ * since only spin_lock is used. | |
+ * | |
+ * ISR/Call-Back functions can't call this sub-function. | |
*/ | |
static int _rtw_enqueue_cmd(struct __queue *queue, struct cmd_obj *obj) | |
{ | |
unsigned long irqL; | |
- | |
- if (obj == NULL) | |
+ if (!obj) | |
goto exit; | |
spin_lock_irqsave(&queue->lock, irqL); | |
@@ -65,7 +58,6 @@ static int _rtw_enqueue_cmd(struct __queue *queue, struct cmd_obj *obj) | |
exit: | |
- | |
return _SUCCESS; | |
} | |
@@ -74,18 +66,12 @@ struct cmd_obj *rtw_dequeue_cmd(struct __queue *queue) | |
unsigned long irqL; | |
struct cmd_obj *obj; | |
- | |
spin_lock_irqsave(&queue->lock, irqL); | |
- if (list_empty(&(queue->queue))) { | |
- obj = NULL; | |
- } else { | |
- obj = container_of((&queue->queue)->next, struct cmd_obj, list); | |
+ obj = list_first_entry_or_null(&queue->queue, struct cmd_obj, list); | |
+ if (obj) | |
list_del_init(&obj->list); | |
- } | |
- | |
spin_unlock_irqrestore(&queue->lock, irqL); | |
- | |
return obj; | |
} | |
@@ -96,7 +82,7 @@ static int rtw_cmd_filter(struct cmd_priv *pcmdpriv, struct cmd_obj *cmd_obj) | |
/* To decide allow or not */ | |
if ((pcmdpriv->padapter->pwrctrlpriv.bHWPwrPindetect) && | |
(!pcmdpriv->padapter->registrypriv.usbss_enable)) { | |
- if (cmd_obj->cmdcode == GEN_CMD_CODE(_Set_Drv_Extra)) { | |
+ if (cmd_obj->cmdcode == _Set_Drv_Extra_CMD_) { | |
struct drvextra_cmd_parm *pdrvextra_cmd_parm = (struct drvextra_cmd_parm *)cmd_obj->parmbuf; | |
if (pdrvextra_cmd_parm->ec_id == POWER_SAVING_CTRL_WK_CID) | |
@@ -104,7 +90,7 @@ static int rtw_cmd_filter(struct cmd_priv *pcmdpriv, struct cmd_obj *cmd_obj) | |
} | |
} | |
- if (cmd_obj->cmdcode == GEN_CMD_CODE(_SetChannelPlan)) | |
+ if (cmd_obj->cmdcode == _SetChannelPlan_CMD_) | |
bAllow = true; | |
if ((!pcmdpriv->padapter->hw_init_completed && !bAllow) || | |
@@ -118,8 +104,7 @@ u32 rtw_enqueue_cmd(struct cmd_priv *pcmdpriv, struct cmd_obj *cmd_obj) | |
int res = _FAIL; | |
struct adapter *padapter = pcmdpriv->padapter; | |
- | |
- if (cmd_obj == NULL) | |
+ if (!cmd_obj) | |
goto exit; | |
cmd_obj->padapter = padapter; | |
@@ -133,23 +118,21 @@ u32 rtw_enqueue_cmd(struct cmd_priv *pcmdpriv, struct cmd_obj *cmd_obj) | |
res = _rtw_enqueue_cmd(&pcmdpriv->cmd_queue, cmd_obj); | |
if (res == _SUCCESS) | |
- up(&pcmdpriv->cmd_queue_sema); | |
+ complete(&pcmdpriv->cmd_queue_comp); | |
exit: | |
- | |
return res; | |
} | |
void rtw_free_cmd_obj(struct cmd_obj *pcmd) | |
{ | |
- | |
if ((pcmd->cmdcode != _JoinBss_CMD_) && (pcmd->cmdcode != _CreateBss_CMD_)) { | |
/* free parmbuf in cmd_obj */ | |
kfree(pcmd->parmbuf); | |
} | |
- if (pcmd->rsp != NULL) { | |
+ if (pcmd->rsp) { | |
if (pcmd->rspsz != 0) { | |
/* free rsp in cmd_obj */ | |
kfree(pcmd->rsp); | |
@@ -158,7 +141,6 @@ void rtw_free_cmd_obj(struct cmd_obj *pcmd) | |
/* free cmd_obj */ | |
kfree(pcmd); | |
- | |
} | |
int rtw_cmd_thread(void *context) | |
@@ -168,17 +150,18 @@ int rtw_cmd_thread(void *context) | |
u8 (*cmd_hdl)(struct adapter *padapter, u8 *pbuf); | |
void (*pcmd_callback)(struct adapter *dev, struct cmd_obj *pcmd); | |
struct adapter *padapter = context; | |
- struct cmd_priv *pcmdpriv = &(padapter->cmdpriv); | |
+ struct cmd_priv *pcmdpriv = &padapter->cmdpriv; | |
allow_signal(SIGTERM); | |
pcmdpriv->cmdthd_running = true; | |
- up(&pcmdpriv->terminate_cmdthread_sema); | |
+ complete(&pcmdpriv->terminate_cmdthread_comp); | |
- RT_TRACE(_module_rtl871x_cmd_c_, _drv_info_, ("start r871x rtw_cmd_thread !!!!\n")); | |
+ RT_TRACE(_module_rtl871x_cmd_c_, _drv_info_, | |
+ ("start r871x %s !!!!\n", __func__)); | |
while (1) { | |
- if (_rtw_down_sema(&pcmdpriv->cmd_queue_sema) == _FAIL) | |
+ if (wait_for_completion_interruptible(&pcmdpriv->cmd_queue_comp)) | |
break; | |
if (padapter->bDriverStopped || | |
@@ -201,9 +184,7 @@ int rtw_cmd_thread(void *context) | |
if (rtw_cmd_filter(pcmdpriv, pcmd) == _FAIL) { | |
pcmd->res = H2C_DROPPED; | |
- goto post_process; | |
- } | |
- | |
+ } else { | |
if (pcmd->cmdcode < ARRAY_SIZE(wlancmds)) { | |
cmd_hdl = wlancmds[pcmd->cmdcode].h2cfuns; | |
@@ -216,13 +197,12 @@ int rtw_cmd_thread(void *context) | |
} | |
cmd_hdl = NULL; | |
- | |
-post_process: | |
+ } | |
/* call callback function for post-processed */ | |
if (pcmd->cmdcode < ARRAY_SIZE(rtw_cmd_callback)) { | |
pcmd_callback = rtw_cmd_callback[pcmd->cmdcode].callback; | |
- if (pcmd_callback == NULL) { | |
+ if (!pcmd_callback) { | |
RT_TRACE(_module_rtl871x_cmd_c_, _drv_info_, ("mlme_cmd_hdl(): pcmd_callback = 0x%p, cmdcode = 0x%x\n", pcmd_callback, pcmd->cmdcode)); | |
rtw_free_cmd_obj(pcmd); | |
} else { | |
@@ -242,26 +222,22 @@ int rtw_cmd_thread(void *context) | |
pcmdpriv->cmdthd_running = false; | |
/* free all cmd_obj resources */ | |
- do { | |
- pcmd = rtw_dequeue_cmd(&pcmdpriv->cmd_queue); | |
- if (pcmd == NULL) | |
- break; | |
- | |
+ while ((pcmd = rtw_dequeue_cmd(&pcmdpriv->cmd_queue))) { | |
/* DBG_88E("%s: leaving... drop cmdcode:%u\n", __func__, pcmd->cmdcode); */ | |
rtw_free_cmd_obj(pcmd); | |
- } while (1); | |
- | |
- up(&pcmdpriv->terminate_cmdthread_sema); | |
+ } | |
+ complete(&pcmdpriv->terminate_cmdthread_comp); | |
complete_and_exit(NULL, 0); | |
} | |
/* | |
-rtw_sitesurvey_cmd(~) | |
- ### NOTE:#### (!!!!) | |
- MUST TAKE CARE THAT BEFORE CALLING THIS FUNC, YOU SHOULD HAVE LOCKED pmlmepriv->lock | |
+ * rtw_sitesurvey_cmd(~) | |
+ * ### NOTE:#### (!!!!) | |
+ * MUST TAKE CARE THAT BEFORE CALLING THIS FUNC, YOU SHOULD HAVE | |
+ * LOCKED pmlmepriv->lock | |
*/ | |
u8 rtw_sitesurvey_cmd(struct adapter *padapter, struct ndis_802_11_ssid *ssid, int ssid_num, | |
struct rtw_ieee80211_channel *ch, int ch_num) | |
@@ -276,11 +252,11 @@ u8 rtw_sitesurvey_cmd(struct adapter *padapter, struct ndis_802_11_ssid *ssid, | |
rtw_lps_ctrl_wk_cmd(padapter, LPS_CTRL_SCAN, 1); | |
ph2c = kzalloc(sizeof(struct cmd_obj), GFP_ATOMIC); | |
- if (ph2c == NULL) | |
+ if (!ph2c) | |
return _FAIL; | |
psurveyPara = kzalloc(sizeof(struct sitesurvey_parm), GFP_ATOMIC); | |
- if (psurveyPara == NULL) { | |
+ if (!psurveyPara) { | |
kfree(ph2c); | |
return _FAIL; | |
} | |
@@ -289,7 +265,7 @@ u8 rtw_sitesurvey_cmd(struct adapter *padapter, struct ndis_802_11_ssid *ssid, | |
RT_TRACE(_module_rtl871x_cmd_c_, _drv_info_, ("%s: flush network queue\n", __func__)); | |
- init_h2fwcmd_w_parm_no_rsp(ph2c, psurveyPara, GEN_CMD_CODE(_SiteSurvey)); | |
+ init_h2fwcmd_w_parm_no_rsp(ph2c, psurveyPara, _SiteSurvey_CMD_); | |
/* psurveyPara->bsslimit = 48; */ | |
psurveyPara->scan_mode = pmlmepriv->scan_mode; | |
@@ -323,25 +299,21 @@ u8 rtw_sitesurvey_cmd(struct adapter *padapter, struct ndis_802_11_ssid *ssid, | |
res = rtw_enqueue_cmd(pcmdpriv, ph2c); | |
if (res == _SUCCESS) { | |
- pmlmepriv->scan_start_time = jiffies; | |
- | |
mod_timer(&pmlmepriv->scan_to_timer, | |
jiffies + msecs_to_jiffies(SCANNING_TIMEOUT)); | |
- rtw_led_control(padapter, LED_CTL_SITE_SURVEY); | |
+ LedControl8188eu(padapter, LED_CTL_SITE_SURVEY); | |
pmlmepriv->scan_interval = SCAN_INTERVAL;/* 30*2 sec = 60sec */ | |
} else { | |
_clr_fwstate_(pmlmepriv, _FW_UNDER_SURVEY); | |
} | |
- | |
return res; | |
} | |
void rtw_readtssi_cmdrsp_callback(struct adapter *padapter, struct cmd_obj *pcmd) | |
{ | |
- | |
kfree(pcmd->parmbuf); | |
kfree(pcmd); | |
} | |
@@ -354,16 +326,15 @@ u8 rtw_createbss_cmd(struct adapter *padapter) | |
struct wlan_bssid_ex *pdev_network = &padapter->registrypriv.dev_network; | |
u8 res = _SUCCESS; | |
- | |
- rtw_led_control(padapter, LED_CTL_START_TO_LINK); | |
+ LedControl8188eu(padapter, LED_CTL_START_TO_LINK); | |
if (pmlmepriv->assoc_ssid.SsidLength == 0) | |
RT_TRACE(_module_rtl871x_cmd_c_, _drv_info_, (" createbss for Any SSid:%s\n", pmlmepriv->assoc_ssid.Ssid)); | |
else | |
RT_TRACE(_module_rtl871x_cmd_c_, _drv_info_, (" createbss for SSid:%s\n", pmlmepriv->assoc_ssid.Ssid)); | |
- pcmd = kzalloc(sizeof(struct cmd_obj), GFP_KERNEL); | |
- if (pcmd == NULL) { | |
+ pcmd = kzalloc(sizeof(struct cmd_obj), GFP_ATOMIC); | |
+ if (!pcmd) { | |
res = _FAIL; | |
goto exit; | |
} | |
@@ -378,7 +349,6 @@ u8 rtw_createbss_cmd(struct adapter *padapter) | |
res = rtw_enqueue_cmd(pcmdpriv, pcmd); | |
exit: | |
- | |
return res; | |
} | |
@@ -396,10 +366,9 @@ u8 rtw_joinbss_cmd(struct adapter *padapter, struct wlan_network *pnetwork) | |
struct ht_priv *phtpriv = &pmlmepriv->htpriv; | |
enum ndis_802_11_network_infra ndis_network_mode = pnetwork->network.InfrastructureMode; | |
struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; | |
- struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); | |
- | |
+ struct mlme_ext_info *pmlmeinfo = &pmlmeext->mlmext_info; | |
- rtw_led_control(padapter, LED_CTL_START_TO_LINK); | |
+ LedControl8188eu(padapter, LED_CTL_START_TO_LINK); | |
if (pmlmepriv->assoc_ssid.SsidLength == 0) | |
RT_TRACE(_module_rtl871x_cmd_c_, _drv_info_, ("+Join cmd: Any SSid\n")); | |
@@ -407,15 +376,13 @@ u8 rtw_joinbss_cmd(struct adapter *padapter, struct wlan_network *pnetwork) | |
RT_TRACE(_module_rtl871x_cmd_c_, _drv_notice_, ("+Join cmd: SSid =[%s]\n", pmlmepriv->assoc_ssid.Ssid)); | |
pcmd = kzalloc(sizeof(struct cmd_obj), GFP_ATOMIC); | |
- if (pcmd == NULL) { | |
+ if (!pcmd) { | |
res = _FAIL; | |
- RT_TRACE(_module_rtl871x_cmd_c_, _drv_err_, ("rtw_joinbss_cmd: memory allocate for cmd_obj fail!!!\n")); | |
goto exit; | |
} | |
/* for IEs is fix buf size */ | |
t_len = sizeof(struct wlan_bssid_ex); | |
- | |
/* for hidden ap to set fw_state here */ | |
if (!check_fwstate(pmlmepriv, WIFI_STATION_STATE | WIFI_ADHOC_STATE)) { | |
switch (ndis_network_mode) { | |
@@ -433,12 +400,13 @@ u8 rtw_joinbss_cmd(struct adapter *padapter, struct wlan_network *pnetwork) | |
} | |
psecnetwork = (struct wlan_bssid_ex *)&psecuritypriv->sec_bss; | |
- if (psecnetwork == NULL) { | |
+ if (!psecnetwork) { | |
kfree(pcmd); | |
res = _FAIL; | |
- RT_TRACE(_module_rtl871x_cmd_c_, _drv_err_, ("rtw_joinbss_cmd :psecnetwork == NULL!!!\n")); | |
+ RT_TRACE(_module_rtl871x_cmd_c_, _drv_err_, | |
+ ("%s :psecnetwork == NULL!!!\n", __func__)); | |
goto exit; | |
} | |
@@ -465,7 +433,6 @@ u8 rtw_joinbss_cmd(struct adapter *padapter, struct wlan_network *pnetwork) | |
psecnetwork->IELength = rtw_restruct_sec_ie(padapter, &pnetwork->network.IEs[0], &psecnetwork->IEs[0], pnetwork->network.IELength); | |
- | |
pqospriv->qos_option = 0; | |
if (pregistrypriv->wmm_enable) { | |
@@ -510,7 +477,7 @@ u8 rtw_joinbss_cmd(struct adapter *padapter, struct wlan_network *pnetwork) | |
pcmd->cmdsz = get_wlan_bssid_ex_sz(psecnetwork);/* get cmdsz before endian conversion */ | |
INIT_LIST_HEAD(&pcmd->list); | |
- pcmd->cmdcode = _JoinBss_CMD_;/* GEN_CMD_CODE(_JoinBss) */ | |
+ pcmd->cmdcode = _JoinBss_CMD_; | |
pcmd->parmbuf = (unsigned char *)psecnetwork; | |
pcmd->rsp = NULL; | |
pcmd->rspsz = 0; | |
@@ -519,7 +486,6 @@ u8 rtw_joinbss_cmd(struct adapter *padapter, struct wlan_network *pnetwork) | |
exit: | |
- | |
return res; | |
} | |
@@ -530,12 +496,11 @@ u8 rtw_disassoc_cmd(struct adapter *padapter, u32 deauth_timeout_ms, bool enqueu | |
struct cmd_priv *cmdpriv = &padapter->cmdpriv; | |
u8 res = _SUCCESS; | |
- | |
- RT_TRACE(_module_rtl871x_cmd_c_, _drv_notice_, ("+rtw_disassoc_cmd\n")); | |
+ RT_TRACE(_module_rtl871x_cmd_c_, _drv_notice_, ("+%s\n", __func__)); | |
/* prepare cmd parameter */ | |
param = kzalloc(sizeof(*param), GFP_KERNEL); | |
- if (param == NULL) { | |
+ if (!param) { | |
res = _FAIL; | |
goto exit; | |
} | |
@@ -543,8 +508,8 @@ u8 rtw_disassoc_cmd(struct adapter *padapter, u32 deauth_timeout_ms, bool enqueu | |
if (enqueue) { | |
/* need enqueue, prepare cmd_obj and enqueue */ | |
- cmdobj = kzalloc(sizeof(*cmdobj), GFP_KERNEL); | |
- if (cmdobj == NULL) { | |
+ cmdobj = kzalloc(sizeof(*cmdobj), GFP_ATOMIC); | |
+ if (!cmdobj) { | |
res = _FAIL; | |
kfree(param); | |
goto exit; | |
@@ -560,7 +525,6 @@ u8 rtw_disassoc_cmd(struct adapter *padapter, u32 deauth_timeout_ms, bool enqueu | |
exit: | |
- | |
return res; | |
} | |
@@ -570,31 +534,19 @@ u8 rtw_setopmode_cmd(struct adapter *padapter, enum ndis_802_11_network_infra n | |
struct setopmode_parm *psetop; | |
struct cmd_priv *pcmdpriv = &padapter->cmdpriv; | |
- u8 res = _SUCCESS; | |
- | |
ph2c = kzalloc(sizeof(struct cmd_obj), GFP_KERNEL); | |
- if (ph2c == NULL) { | |
- res = false; | |
- goto exit; | |
- } | |
psetop = kzalloc(sizeof(struct setopmode_parm), GFP_KERNEL); | |
- | |
- if (psetop == NULL) { | |
+ if (!ph2c || !psetop) { | |
kfree(ph2c); | |
- res = false; | |
- goto exit; | |
+ kfree(psetop); | |
+ return false; | |
} | |
init_h2fwcmd_w_parm_no_rsp(ph2c, psetop, _SetOpMode_CMD_); | |
psetop->mode = (u8)networktype; | |
- res = rtw_enqueue_cmd(pcmdpriv, ph2c); | |
- | |
-exit: | |
- | |
- | |
- return res; | |
+ return rtw_enqueue_cmd(pcmdpriv, ph2c); | |
} | |
u8 rtw_setstakey_cmd(struct adapter *padapter, u8 *psta, u8 unicast_key) | |
@@ -607,28 +559,16 @@ u8 rtw_setstakey_cmd(struct adapter *padapter, u8 *psta, u8 unicast_key) | |
struct mlme_priv *pmlmepriv = &padapter->mlmepriv; | |
struct security_priv *psecuritypriv = &padapter->securitypriv; | |
struct sta_info *sta = (struct sta_info *)psta; | |
- u8 res = _SUCCESS; | |
- | |
ph2c = kzalloc(sizeof(struct cmd_obj), GFP_KERNEL); | |
- if (ph2c == NULL) { | |
- res = _FAIL; | |
- goto exit; | |
- } | |
- | |
psetstakey_para = kzalloc(sizeof(struct set_stakey_parm), GFP_KERNEL); | |
- if (psetstakey_para == NULL) { | |
- kfree(ph2c); | |
- res = _FAIL; | |
- goto exit; | |
- } | |
- | |
psetstakey_rsp = kzalloc(sizeof(struct set_stakey_rsp), GFP_KERNEL); | |
- if (psetstakey_rsp == NULL) { | |
+ | |
+ if (!ph2c || !psetstakey_para || !psetstakey_rsp) { | |
kfree(ph2c); | |
kfree(psetstakey_para); | |
- res = _FAIL; | |
- goto exit; | |
+ kfree(psetstakey_rsp); | |
+ return _FAIL; | |
} | |
init_h2fwcmd_w_parm_no_rsp(ph2c, psetstakey_para, _SetStaKey_CMD_); | |
@@ -650,12 +590,7 @@ u8 rtw_setstakey_cmd(struct adapter *padapter, u8 *psta, u8 unicast_key) | |
/* jeff: set this because at least sw key is ready */ | |
padapter->securitypriv.busetkipkey = true; | |
- res = rtw_enqueue_cmd(pcmdpriv, ph2c); | |
- | |
-exit: | |
- | |
- | |
- return res; | |
+ return rtw_enqueue_cmd(pcmdpriv, ph2c); | |
} | |
u8 rtw_clearstakey_cmd(struct adapter *padapter, u8 *psta, u8 entry, u8 enqueue) | |
@@ -667,25 +602,24 @@ u8 rtw_clearstakey_cmd(struct adapter *padapter, u8 *psta, u8 entry, u8 enqueue) | |
struct sta_info *sta = (struct sta_info *)psta; | |
u8 res = _SUCCESS; | |
- | |
if (!enqueue) { | |
clear_cam_entry(padapter, entry); | |
} else { | |
ph2c = kzalloc(sizeof(struct cmd_obj), GFP_ATOMIC); | |
- if (ph2c == NULL) { | |
+ if (!ph2c) { | |
res = _FAIL; | |
goto exit; | |
} | |
psetstakey_para = kzalloc(sizeof(struct set_stakey_parm), GFP_ATOMIC); | |
- if (psetstakey_para == NULL) { | |
+ if (!psetstakey_para) { | |
kfree(ph2c); | |
res = _FAIL; | |
goto exit; | |
} | |
psetstakey_rsp = kzalloc(sizeof(struct set_stakey_rsp), GFP_ATOMIC); | |
- if (psetstakey_rsp == NULL) { | |
+ if (!psetstakey_rsp) { | |
kfree(ph2c); | |
kfree(psetstakey_para); | |
res = _FAIL; | |
@@ -706,7 +640,6 @@ u8 rtw_clearstakey_cmd(struct adapter *padapter, u8 *psta, u8 entry, u8 enqueue) | |
} | |
exit: | |
- | |
return res; | |
} | |
@@ -717,15 +650,14 @@ u8 rtw_addbareq_cmd(struct adapter *padapter, u8 tid, u8 *addr) | |
struct addBaReq_parm *paddbareq_parm; | |
u8 res = _SUCCESS; | |
- | |
ph2c = kzalloc(sizeof(struct cmd_obj), GFP_ATOMIC); | |
- if (ph2c == NULL) { | |
+ if (!ph2c) { | |
res = _FAIL; | |
goto exit; | |
} | |
paddbareq_parm = kzalloc(sizeof(struct addBaReq_parm), GFP_ATOMIC); | |
- if (paddbareq_parm == NULL) { | |
+ if (!paddbareq_parm) { | |
kfree(ph2c); | |
res = _FAIL; | |
goto exit; | |
@@ -734,7 +666,7 @@ u8 rtw_addbareq_cmd(struct adapter *padapter, u8 tid, u8 *addr) | |
paddbareq_parm->tid = tid; | |
memcpy(paddbareq_parm->addr, addr, ETH_ALEN); | |
- init_h2fwcmd_w_parm_no_rsp(ph2c, paddbareq_parm, GEN_CMD_CODE(_AddBAReq)); | |
+ init_h2fwcmd_w_parm_no_rsp(ph2c, paddbareq_parm, _AddBAReq_CMD_); | |
/* DBG_88E("rtw_addbareq_cmd, tid =%d\n", tid); */ | |
@@ -743,7 +675,6 @@ u8 rtw_addbareq_cmd(struct adapter *padapter, u8 tid, u8 *addr) | |
exit: | |
- | |
return res; | |
} | |
@@ -754,15 +685,14 @@ u8 rtw_dynamic_chk_wk_cmd(struct adapter *padapter) | |
struct cmd_priv *pcmdpriv = &padapter->cmdpriv; | |
u8 res = _SUCCESS; | |
- | |
ph2c = kzalloc(sizeof(struct cmd_obj), GFP_ATOMIC); | |
- if (ph2c == NULL) { | |
+ if (!ph2c) { | |
res = _FAIL; | |
goto exit; | |
} | |
pdrvextra_cmd_parm = kzalloc(sizeof(struct drvextra_cmd_parm), GFP_ATOMIC); | |
- if (pdrvextra_cmd_parm == NULL) { | |
+ if (!pdrvextra_cmd_parm) { | |
kfree(ph2c); | |
res = _FAIL; | |
goto exit; | |
@@ -772,8 +702,7 @@ u8 rtw_dynamic_chk_wk_cmd(struct adapter *padapter) | |
pdrvextra_cmd_parm->type_size = 0; | |
pdrvextra_cmd_parm->pbuf = (u8 *)padapter; | |
- init_h2fwcmd_w_parm_no_rsp(ph2c, pdrvextra_cmd_parm, GEN_CMD_CODE(_Set_Drv_Extra)); | |
- | |
+ init_h2fwcmd_w_parm_no_rsp(ph2c, pdrvextra_cmd_parm, _Set_Drv_Extra_CMD_); | |
/* rtw_enqueue_cmd(pcmdpriv, ph2c); */ | |
res = rtw_enqueue_cmd(pcmdpriv, ph2c); | |
@@ -789,8 +718,7 @@ u8 rtw_set_chplan_cmd(struct adapter *padapter, u8 chplan, u8 enqueue) | |
u8 res = _SUCCESS; | |
- | |
- RT_TRACE(_module_rtl871x_cmd_c_, _drv_notice_, ("+rtw_set_chplan_cmd\n")); | |
+ RT_TRACE(_module_rtl871x_cmd_c_, _drv_notice_, ("+%s\n", __func__)); | |
/* check input parameter */ | |
if (!rtw_is_channel_plan_valid(chplan)) { | |
@@ -800,7 +728,7 @@ u8 rtw_set_chplan_cmd(struct adapter *padapter, u8 chplan, u8 enqueue) | |
/* prepare cmd parameter */ | |
setChannelPlan_param = kzalloc(sizeof(struct SetChannelPlan_param), GFP_KERNEL); | |
- if (setChannelPlan_param == NULL) { | |
+ if (!setChannelPlan_param) { | |
res = _FAIL; | |
goto exit; | |
} | |
@@ -809,13 +737,13 @@ u8 rtw_set_chplan_cmd(struct adapter *padapter, u8 chplan, u8 enqueue) | |
if (enqueue) { | |
/* need enqueue, prepare cmd_obj and enqueue */ | |
pcmdobj = kzalloc(sizeof(struct cmd_obj), GFP_KERNEL); | |
- if (pcmdobj == NULL) { | |
+ if (!pcmdobj) { | |
kfree(setChannelPlan_param); | |
res = _FAIL; | |
goto exit; | |
} | |
- init_h2fwcmd_w_parm_no_rsp(pcmdobj, setChannelPlan_param, GEN_CMD_CODE(_SetChannelPlan)); | |
+ init_h2fwcmd_w_parm_no_rsp(pcmdobj, setChannelPlan_param, _SetChannelPlan_CMD_); | |
res = rtw_enqueue_cmd(pcmdpriv, pcmdobj); | |
} else { | |
/* no need to enqueue, do the cmd hdl directly and free cmd parameter */ | |
@@ -831,7 +759,6 @@ u8 rtw_set_chplan_cmd(struct adapter *padapter, u8 chplan, u8 enqueue) | |
exit: | |
- | |
return res; | |
} | |
@@ -840,7 +767,7 @@ static void traffic_status_watchdog(struct adapter *padapter) | |
u8 bEnterPS; | |
u8 bBusyTraffic = false, bTxBusyTraffic = false, bRxBusyTraffic = false; | |
u8 bHigherBusyTraffic = false, bHigherBusyRxTraffic = false, bHigherBusyTxTraffic = false; | |
- struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); | |
+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv; | |
/* */ | |
/* Determine if our traffic is busy now */ | |
@@ -899,7 +826,7 @@ static void dynamic_chk_wk_hdl(struct adapter *padapter, u8 *pbuf, int sz) | |
struct mlme_priv *pmlmepriv; | |
padapter = (struct adapter *)pbuf; | |
- pmlmepriv = &(padapter->mlmepriv); | |
+ pmlmepriv = &padapter->mlmepriv; | |
#ifdef CONFIG_88EU_AP_MODE | |
if (check_fwstate(pmlmepriv, WIFI_AP_STATE) == true) | |
@@ -915,10 +842,9 @@ static void dynamic_chk_wk_hdl(struct adapter *padapter, u8 *pbuf, int sz) | |
static void lps_ctrl_wk_hdl(struct adapter *padapter, u8 lps_ctrl_type) | |
{ | |
struct pwrctrl_priv *pwrpriv = &padapter->pwrctrlpriv; | |
- struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); | |
+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv; | |
u8 mstatus; | |
- | |
if ((check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE) == true) || | |
(check_fwstate(pmlmepriv, WIFI_ADHOC_STATE) == true)) | |
return; | |
@@ -955,7 +881,6 @@ static void lps_ctrl_wk_hdl(struct adapter *padapter, u8 lps_ctrl_type) | |
default: | |
break; | |
} | |
- | |
} | |
u8 rtw_lps_ctrl_wk_cmd(struct adapter *padapter, u8 lps_ctrl_type, u8 enqueue) | |
@@ -968,13 +893,13 @@ u8 rtw_lps_ctrl_wk_cmd(struct adapter *padapter, u8 lps_ctrl_type, u8 enqueue) | |
if (enqueue) { | |
ph2c = kzalloc(sizeof(struct cmd_obj), GFP_ATOMIC); | |
- if (ph2c == NULL) { | |
+ if (!ph2c) { | |
res = _FAIL; | |
goto exit; | |
} | |
pdrvextra_cmd_parm = kzalloc(sizeof(struct drvextra_cmd_parm), GFP_ATOMIC); | |
- if (pdrvextra_cmd_parm == NULL) { | |
+ if (!pdrvextra_cmd_parm) { | |
kfree(ph2c); | |
res = _FAIL; | |
goto exit; | |
@@ -984,7 +909,7 @@ u8 rtw_lps_ctrl_wk_cmd(struct adapter *padapter, u8 lps_ctrl_type, u8 enqueue) | |
pdrvextra_cmd_parm->type_size = lps_ctrl_type; | |
pdrvextra_cmd_parm->pbuf = NULL; | |
- init_h2fwcmd_w_parm_no_rsp(ph2c, pdrvextra_cmd_parm, GEN_CMD_CODE(_Set_Drv_Extra)); | |
+ init_h2fwcmd_w_parm_no_rsp(ph2c, pdrvextra_cmd_parm, _Set_Drv_Extra_CMD_); | |
res = rtw_enqueue_cmd(pcmdpriv, ph2c); | |
} else { | |
@@ -993,7 +918,6 @@ u8 rtw_lps_ctrl_wk_cmd(struct adapter *padapter, u8 lps_ctrl_type, u8 enqueue) | |
exit: | |
- | |
return res; | |
} | |
@@ -1011,13 +935,13 @@ u8 rtw_rpt_timer_cfg_cmd(struct adapter *padapter, u16 min_time) | |
u8 res = _SUCCESS; | |
ph2c = kzalloc(sizeof(struct cmd_obj), GFP_ATOMIC); | |
- if (ph2c == NULL) { | |
+ if (!ph2c) { | |
res = _FAIL; | |
goto exit; | |
} | |
pdrvextra_cmd_parm = kzalloc(sizeof(struct drvextra_cmd_parm), GFP_ATOMIC); | |
- if (pdrvextra_cmd_parm == NULL) { | |
+ if (!pdrvextra_cmd_parm) { | |
kfree(ph2c); | |
res = _FAIL; | |
goto exit; | |
@@ -1026,11 +950,10 @@ u8 rtw_rpt_timer_cfg_cmd(struct adapter *padapter, u16 min_time) | |
pdrvextra_cmd_parm->ec_id = RTP_TIMER_CFG_WK_CID; | |
pdrvextra_cmd_parm->type_size = min_time; | |
pdrvextra_cmd_parm->pbuf = NULL; | |
- init_h2fwcmd_w_parm_no_rsp(ph2c, pdrvextra_cmd_parm, GEN_CMD_CODE(_Set_Drv_Extra)); | |
+ init_h2fwcmd_w_parm_no_rsp(ph2c, pdrvextra_cmd_parm, _Set_Drv_Extra_CMD_); | |
res = rtw_enqueue_cmd(pcmdpriv, ph2c); | |
exit: | |
- | |
return res; | |
} | |
@@ -1053,13 +976,13 @@ u8 rtw_antenna_select_cmd(struct adapter *padapter, u8 antenna, u8 enqueue) | |
if (enqueue) { | |
ph2c = kzalloc(sizeof(struct cmd_obj), GFP_KERNEL); | |
- if (ph2c == NULL) { | |
+ if (!ph2c) { | |
res = _FAIL; | |
goto exit; | |
} | |
pdrvextra_cmd_parm = kzalloc(sizeof(struct drvextra_cmd_parm), GFP_KERNEL); | |
- if (pdrvextra_cmd_parm == NULL) { | |
+ if (!pdrvextra_cmd_parm) { | |
kfree(ph2c); | |
res = _FAIL; | |
goto exit; | |
@@ -1068,7 +991,7 @@ u8 rtw_antenna_select_cmd(struct adapter *padapter, u8 antenna, u8 enqueue) | |
pdrvextra_cmd_parm->ec_id = ANT_SELECT_WK_CID; | |
pdrvextra_cmd_parm->type_size = antenna; | |
pdrvextra_cmd_parm->pbuf = NULL; | |
- init_h2fwcmd_w_parm_no_rsp(ph2c, pdrvextra_cmd_parm, GEN_CMD_CODE(_Set_Drv_Extra)); | |
+ init_h2fwcmd_w_parm_no_rsp(ph2c, pdrvextra_cmd_parm, _Set_Drv_Extra_CMD_); | |
res = rtw_enqueue_cmd(pcmdpriv, ph2c); | |
} else { | |
@@ -1076,7 +999,6 @@ u8 rtw_antenna_select_cmd(struct adapter *padapter, u8 antenna, u8 enqueue) | |
} | |
exit: | |
- | |
return res; | |
} | |
@@ -1086,31 +1008,19 @@ u8 rtw_ps_cmd(struct adapter *padapter) | |
struct drvextra_cmd_parm *pdrvextra_cmd_parm; | |
struct cmd_priv *pcmdpriv = &padapter->cmdpriv; | |
- u8 res = _SUCCESS; | |
- | |
ppscmd = kzalloc(sizeof(struct cmd_obj), GFP_ATOMIC); | |
- if (ppscmd == NULL) { | |
- res = _FAIL; | |
- goto exit; | |
- } | |
- | |
pdrvextra_cmd_parm = kzalloc(sizeof(struct drvextra_cmd_parm), GFP_ATOMIC); | |
- if (pdrvextra_cmd_parm == NULL) { | |
+ if (!ppscmd || !pdrvextra_cmd_parm) { | |
kfree(ppscmd); | |
- res = _FAIL; | |
- goto exit; | |
+ kfree(pdrvextra_cmd_parm); | |
+ return _FAIL; | |
} | |
pdrvextra_cmd_parm->ec_id = POWER_SAVING_CTRL_WK_CID; | |
pdrvextra_cmd_parm->pbuf = NULL; | |
- init_h2fwcmd_w_parm_no_rsp(ppscmd, pdrvextra_cmd_parm, GEN_CMD_CODE(_Set_Drv_Extra)); | |
+ init_h2fwcmd_w_parm_no_rsp(ppscmd, pdrvextra_cmd_parm, _Set_Drv_Extra_CMD_); | |
- res = rtw_enqueue_cmd(pcmdpriv, ppscmd); | |
- | |
-exit: | |
- | |
- | |
- return res; | |
+ return rtw_enqueue_cmd(pcmdpriv, ppscmd); | |
} | |
#ifdef CONFIG_88EU_AP_MODE | |
@@ -1163,13 +1073,13 @@ u8 rtw_chk_hi_queue_cmd(struct adapter *padapter) | |
u8 res = _SUCCESS; | |
ph2c = kzalloc(sizeof(struct cmd_obj), GFP_KERNEL); | |
- if (ph2c == NULL) { | |
+ if (!ph2c) { | |
res = _FAIL; | |
goto exit; | |
} | |
pdrvextra_cmd_parm = kzalloc(sizeof(struct drvextra_cmd_parm), GFP_KERNEL); | |
- if (pdrvextra_cmd_parm == NULL) { | |
+ if (!pdrvextra_cmd_parm) { | |
kfree(ph2c); | |
res = _FAIL; | |
goto exit; | |
@@ -1179,7 +1089,7 @@ u8 rtw_chk_hi_queue_cmd(struct adapter *padapter) | |
pdrvextra_cmd_parm->type_size = 0; | |
pdrvextra_cmd_parm->pbuf = NULL; | |
- init_h2fwcmd_w_parm_no_rsp(ph2c, pdrvextra_cmd_parm, GEN_CMD_CODE(_Set_Drv_Extra)); | |
+ init_h2fwcmd_w_parm_no_rsp(ph2c, pdrvextra_cmd_parm, _Set_Drv_Extra_CMD_); | |
res = rtw_enqueue_cmd(pcmdpriv, ph2c); | |
exit: | |
@@ -1231,7 +1141,6 @@ void rtw_survey_cmd_callback(struct adapter *padapter, struct cmd_obj *pcmd) | |
{ | |
struct mlme_priv *pmlmepriv = &padapter->mlmepriv; | |
- | |
if (pcmd->res == H2C_DROPPED) { | |
/* TODO: cancel timer and do timeout handler directly... */ | |
/* need to make timeout handlerOS independent */ | |
@@ -1245,13 +1154,12 @@ void rtw_survey_cmd_callback(struct adapter *padapter, struct cmd_obj *pcmd) | |
/* free cmd */ | |
rtw_free_cmd_obj(pcmd); | |
- | |
} | |
+ | |
void rtw_disassoc_cmd_callback(struct adapter *padapter, struct cmd_obj *pcmd) | |
{ | |
struct mlme_priv *pmlmepriv = &padapter->mlmepriv; | |
- | |
if (pcmd->res != H2C_SUCCESS) { | |
spin_lock_bh(&pmlmepriv->lock); | |
set_fwstate(pmlmepriv, _FW_LINKED); | |
@@ -1269,7 +1177,6 @@ void rtw_joinbss_cmd_callback(struct adapter *padapter, struct cmd_obj *pcmd) | |
{ | |
struct mlme_priv *pmlmepriv = &padapter->mlmepriv; | |
- | |
if (pcmd->res == H2C_DROPPED) { | |
/* TODO: cancel timer and do timeout handler directly... */ | |
/* need to make timeout handlerOS independent */ | |
@@ -1282,7 +1189,6 @@ void rtw_joinbss_cmd_callback(struct adapter *padapter, struct cmd_obj *pcmd) | |
} | |
rtw_free_cmd_obj(pcmd); | |
- | |
} | |
void rtw_createbss_cmd_callback(struct adapter *padapter, struct cmd_obj *pcmd) | |
@@ -1291,11 +1197,11 @@ void rtw_createbss_cmd_callback(struct adapter *padapter, struct cmd_obj *pcmd) | |
struct wlan_network *pwlan = NULL; | |
struct mlme_priv *pmlmepriv = &padapter->mlmepriv; | |
struct wlan_bssid_ex *pnetwork = (struct wlan_bssid_ex *)pcmd->parmbuf; | |
- struct wlan_network *tgt_network = &(pmlmepriv->cur_network); | |
- | |
+ struct wlan_network *tgt_network = &pmlmepriv->cur_network; | |
if (pcmd->res != H2C_SUCCESS) { | |
- RT_TRACE(_module_rtl871x_cmd_c_, _drv_err_, ("\n ********Error: rtw_createbss_cmd_callback Fail ************\n\n.")); | |
+ RT_TRACE(_module_rtl871x_cmd_c_, _drv_err_, | |
+ ("\n **** Error: %s Fail ****\n\n.", __func__)); | |
mod_timer(&pmlmepriv->assoc_timer, | |
jiffies + msecs_to_jiffies(1)); | |
} | |
@@ -1308,7 +1214,7 @@ void rtw_createbss_cmd_callback(struct adapter *padapter, struct cmd_obj *pcmd) | |
psta = rtw_get_stainfo(&padapter->stapriv, pnetwork->MacAddress); | |
if (!psta) { | |
psta = rtw_alloc_stainfo(&padapter->stapriv, pnetwork->MacAddress); | |
- if (psta == NULL) { | |
+ if (!psta) { | |
RT_TRACE(_module_rtl871x_cmd_c_, _drv_err_, ("\nCan't alloc sta_info when createbss_cmd_callback\n")); | |
goto createbss_cmd_fail; | |
} | |
@@ -1317,28 +1223,31 @@ void rtw_createbss_cmd_callback(struct adapter *padapter, struct cmd_obj *pcmd) | |
rtw_indicate_connect(padapter); | |
} else { | |
pwlan = _rtw_alloc_network(pmlmepriv); | |
- spin_lock_bh(&(pmlmepriv->scanned_queue.lock)); | |
- if (pwlan == NULL) { | |
+ spin_lock_bh(&pmlmepriv->scanned_queue.lock); | |
+ if (!pwlan) { | |
pwlan = rtw_get_oldest_wlan_network(&pmlmepriv->scanned_queue); | |
- if (pwlan == NULL) { | |
+ if (!pwlan) { | |
RT_TRACE(_module_rtl871x_cmd_c_, _drv_err_, ("\n Error: can't get pwlan in rtw_joinbss_event_callback\n")); | |
spin_unlock_bh(&pmlmepriv->scanned_queue.lock); | |
goto createbss_cmd_fail; | |
} | |
pwlan->last_scanned = jiffies; | |
} else { | |
- list_add_tail(&(pwlan->list), &pmlmepriv->scanned_queue.queue); | |
+ list_add_tail(&pwlan->list, | |
+ &pmlmepriv->scanned_queue.queue); | |
} | |
pnetwork->Length = get_wlan_bssid_ex_sz(pnetwork); | |
- memcpy(&(pwlan->network), pnetwork, pnetwork->Length); | |
+ memcpy(&pwlan->network, pnetwork, pnetwork->Length); | |
memcpy(&tgt_network->network, pnetwork, (get_wlan_bssid_ex_sz(pnetwork))); | |
_clr_fwstate_(pmlmepriv, _FW_UNDER_LINKING); | |
spin_unlock_bh(&pmlmepriv->scanned_queue.lock); | |
- /* we will set _FW_LINKED when there is one more sat to join us (rtw_stassoc_event_callback) */ | |
+ /* we will set _FW_LINKED when there is one more sat to | |
+ * join us (rtw_stassoc_event_callback) | |
+ */ | |
} | |
createbss_cmd_fail: | |
@@ -1346,7 +1255,6 @@ void rtw_createbss_cmd_callback(struct adapter *padapter, struct cmd_obj *pcmd) | |
spin_unlock_bh(&pmlmepriv->lock); | |
rtw_free_cmd_obj(pcmd); | |
- | |
} | |
void rtw_setstaKey_cmdrsp_callback(struct adapter *padapter, struct cmd_obj *pcmd) | |
@@ -1355,9 +1263,8 @@ void rtw_setstaKey_cmdrsp_callback(struct adapter *padapter, struct cmd_obj *pc | |
struct set_stakey_rsp *psetstakey_rsp = (struct set_stakey_rsp *)(pcmd->rsp); | |
struct sta_info *psta = rtw_get_stainfo(pstapriv, psetstakey_rsp->addr); | |
- | |
- if (psta == NULL) { | |
- RT_TRACE(_module_rtl871x_cmd_c_, _drv_err_, ("\nERROR: rtw_setstaKey_cmdrsp_callback => can't get sta_info\n\n")); | |
+ if (!psta) { | |
+ RT_TRACE(_module_rtl871x_cmd_c_, _drv_err_, ("\nERROR: %s => can't get sta_info\n\n", __func__)); | |
goto exit; | |
} | |
exit: | |
@@ -1372,9 +1279,8 @@ void rtw_setassocsta_cmdrsp_callback(struct adapter *padapter, struct cmd_obj * | |
struct set_assocsta_rsp *passocsta_rsp = (struct set_assocsta_rsp *)(pcmd->rsp); | |
struct sta_info *psta = rtw_get_stainfo(pstapriv, passocsta_parm->addr); | |
- | |
- if (psta == NULL) { | |
- RT_TRACE(_module_rtl871x_cmd_c_, _drv_err_, ("\nERROR: setassocsta_cmdrsp_callbac => can't get sta_info\n\n")); | |
+ if (!psta) { | |
+ RT_TRACE(_module_rtl871x_cmd_c_, _drv_err_, ("\nERROR: %s => can't get sta_info\n\n", __func__)); | |
goto exit; | |
} | |
@@ -1383,13 +1289,9 @@ void rtw_setassocsta_cmdrsp_callback(struct adapter *padapter, struct cmd_obj * | |
spin_lock_bh(&pmlmepriv->lock); | |
- if ((check_fwstate(pmlmepriv, WIFI_MP_STATE) == true) && (check_fwstate(pmlmepriv, _FW_UNDER_LINKING) == true)) | |
- _clr_fwstate_(pmlmepriv, _FW_UNDER_LINKING); | |
- | |
set_fwstate(pmlmepriv, _FW_LINKED); | |
spin_unlock_bh(&pmlmepriv->lock); | |
exit: | |
rtw_free_cmd_obj(pcmd); | |
- | |
} | |
diff --git b/drivers/staging/rtl8188eu/core/rtw_debug.c a/drivers/staging/rtl8188eu/core/rtw_debug.c | |
index 2c4afb80fc64..60d8c7b9f458 100644 | |
--- b/drivers/staging/rtl8188eu/core/rtw_debug.c | |
+++ a/drivers/staging/rtl8188eu/core/rtw_debug.c | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#define _RTW_DEBUG_C_ | |
@@ -143,144 +138,6 @@ int proc_set_read_reg(struct file *file, const char __user *buffer, | |
return count; | |
} | |
-int proc_get_fwstate(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data) | |
-{ | |
- struct net_device *dev = data; | |
- struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev); | |
- struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); | |
- | |
- int len = 0; | |
- | |
- len += snprintf(page + len, count - len, "fwstate=0x%x\n", get_fwstate(pmlmepriv)); | |
- | |
- *eof = 1; | |
- return len; | |
-} | |
- | |
-int proc_get_sec_info(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data) | |
-{ | |
- struct net_device *dev = data; | |
- struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev); | |
- struct security_priv *psecuritypriv = &padapter->securitypriv; | |
- | |
- int len = 0; | |
- | |
- len += snprintf(page + len, count - len, "auth_alg=0x%x, enc_alg=0x%x, auth_type=0x%x, enc_type=0x%x\n", | |
- psecuritypriv->dot11AuthAlgrthm, psecuritypriv->dot11PrivacyAlgrthm, | |
- psecuritypriv->ndisauthtype, psecuritypriv->ndisencryptstatus); | |
- | |
- *eof = 1; | |
- return len; | |
-} | |
- | |
-int proc_get_mlmext_state(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data) | |
-{ | |
- struct net_device *dev = data; | |
- struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev); | |
- struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; | |
- struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); | |
- | |
- int len = 0; | |
- | |
- len += snprintf(page + len, count - len, "pmlmeinfo->state=0x%x\n", pmlmeinfo->state); | |
- | |
- *eof = 1; | |
- return len; | |
-} | |
- | |
-int proc_get_qos_option(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data) | |
-{ | |
- struct net_device *dev = data; | |
- struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev); | |
- struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); | |
- | |
- int len = 0; | |
- | |
- len += snprintf(page + len, count - len, "qos_option=%d\n", pmlmepriv->qospriv.qos_option); | |
- | |
- *eof = 1; | |
- return len; | |
-} | |
- | |
-int proc_get_ht_option(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data) | |
-{ | |
- struct net_device *dev = data; | |
- struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev); | |
- struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); | |
- | |
- int len = 0; | |
- | |
- len += snprintf(page + len, count - len, "ht_option=%d\n", pmlmepriv->htpriv.ht_option); | |
- *eof = 1; | |
- return len; | |
-} | |
- | |
-int proc_get_rf_info(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data) | |
-{ | |
- struct net_device *dev = data; | |
- struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev); | |
- struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; | |
- int len = 0; | |
- | |
- len += snprintf(page + len, count - len, "cur_ch=%d, cur_bw=%d, cur_ch_offset=%d\n", | |
- pmlmeext->cur_channel, pmlmeext->cur_bwmode, pmlmeext->cur_ch_offset); | |
- *eof = 1; | |
- return len; | |
-} | |
- | |
-int proc_get_ap_info(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data) | |
-{ | |
- struct sta_info *psta; | |
- struct net_device *dev = data; | |
- struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev); | |
- struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); | |
- struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; | |
- struct wlan_network *cur_network = &(pmlmepriv->cur_network); | |
- struct sta_priv *pstapriv = &padapter->stapriv; | |
- int len = 0; | |
- | |
- psta = rtw_get_stainfo(pstapriv, cur_network->network.MacAddress); | |
- if (psta) { | |
- int i; | |
- struct recv_reorder_ctrl *preorder_ctrl; | |
- | |
- len += snprintf(page + len, count - len, "SSID=%s\n", cur_network->network.Ssid.Ssid); | |
- len += snprintf(page + len, count - len, "sta's macaddr:%pM\n", psta->hwaddr); | |
- len += snprintf(page + len, count - len, "cur_channel=%d, cur_bwmode=%d, cur_ch_offset=%d\n", pmlmeext->cur_channel, pmlmeext->cur_bwmode, pmlmeext->cur_ch_offset); | |
- len += snprintf(page + len, count - len, "rtsen=%d, cts2slef=%d\n", psta->rtsen, psta->cts2self); | |
- len += snprintf(page + len, count - len, "state=0x%x, aid=%d, macid=%d, raid=%d\n", psta->state, psta->aid, psta->mac_id, psta->raid); | |
- len += snprintf(page + len, count - len, "qos_en=%d, ht_en=%d, init_rate=%d\n", psta->qos_option, psta->htpriv.ht_option, psta->init_rate); | |
- len += snprintf(page + len, count - len, "bwmode=%d, ch_offset=%d, sgi=%d\n", psta->htpriv.bwmode, psta->htpriv.ch_offset, psta->htpriv.sgi); | |
- len += snprintf(page + len, count - len, "ampdu_enable = %d\n", psta->htpriv.ampdu_enable); | |
- len += snprintf(page + len, count - len, "agg_enable_bitmap=%x, candidate_tid_bitmap=%x\n", psta->htpriv.agg_enable_bitmap, psta->htpriv.candidate_tid_bitmap); | |
- | |
- for (i = 0; i < 16; i++) { | |
- preorder_ctrl = &psta->recvreorder_ctrl[i]; | |
- if (preorder_ctrl->enable) | |
- len += snprintf(page + len, count - len, "tid=%d, indicate_seq=%d\n", i, preorder_ctrl->indicate_seq); | |
- } | |
- } else { | |
- len += snprintf(page + len, count - len, "can't get sta's macaddr, cur_network's macaddr: %pM\n", cur_network->network.MacAddress); | |
- } | |
- | |
- *eof = 1; | |
- return len; | |
-} | |
- | |
int proc_get_adapter_state(char *page, char **start, | |
off_t offset, int count, | |
int *eof, void *data) | |
@@ -296,599 +153,6 @@ int proc_get_adapter_state(char *page, char **start, | |
return len; | |
} | |
-int proc_get_trx_info(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data) | |
-{ | |
- struct net_device *dev = data; | |
- struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev); | |
- struct xmit_priv *pxmitpriv = &padapter->xmitpriv; | |
- struct recv_priv *precvpriv = &padapter->recvpriv; | |
- int len = 0; | |
- | |
- len += snprintf(page + len, count - len, "free_xmitbuf_cnt=%d, free_xmitframe_cnt=%d, free_ext_xmitbuf_cnt=%d, free_recvframe_cnt=%d\n", | |
- pxmitpriv->free_xmitbuf_cnt, pxmitpriv->free_xmitframe_cnt, pxmitpriv->free_xmit_extbuf_cnt, precvpriv->free_recvframe_cnt); | |
- len += snprintf(page + len, count - len, "rx_urb_pending_cn=%d\n", precvpriv->rx_pending_cnt); | |
- | |
- *eof = 1; | |
- return len; | |
-} | |
- | |
-int proc_get_mac_reg_dump1(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data) | |
-{ | |
- struct net_device *dev = data; | |
- struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev); | |
- int len = 0; | |
- int i, j = 1; | |
- | |
- len += snprintf(page + len, count - len, "\n======= MAC REG =======\n"); | |
- | |
- for (i = 0x0; i < 0x300; i += 4) { | |
- if (j%4 == 1) | |
- len += snprintf(page + len, count - len, "0x%02x", i); | |
- len += snprintf(page + len, count - len, " 0x%08x ", usb_read32(padapter, i)); | |
- if ((j++)%4 == 0) | |
- len += snprintf(page + len, count - len, "\n"); | |
- } | |
- | |
- *eof = 1; | |
- return len; | |
-} | |
- | |
-int proc_get_mac_reg_dump2(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data) | |
-{ | |
- struct net_device *dev = data; | |
- struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev); | |
- int len = 0; | |
- int i, j = 1; | |
- | |
- len += snprintf(page + len, count - len, "\n======= MAC REG =======\n"); | |
- memset(page, 0, count); | |
- for (i = 0x300; i < 0x600; i += 4) { | |
- if (j%4 == 1) | |
- len += snprintf(page + len, count - len, "0x%02x", i); | |
- len += snprintf(page + len, count - len, " 0x%08x ", usb_read32(padapter, i)); | |
- if ((j++)%4 == 0) | |
- len += snprintf(page + len, count - len, "\n"); | |
- } | |
- | |
- *eof = 1; | |
- return len; | |
-} | |
- | |
-int proc_get_mac_reg_dump3(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data) | |
-{ | |
- struct net_device *dev = data; | |
- struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev); | |
- int len = 0; | |
- int i, j = 1; | |
- | |
- len += snprintf(page + len, count - len, "\n======= MAC REG =======\n"); | |
- | |
- for (i = 0x600; i < 0x800; i += 4) { | |
- if (j%4 == 1) | |
- len += snprintf(page + len, count - len, "0x%02x", i); | |
- len += snprintf(page + len, count - len, " 0x%08x ", usb_read32(padapter, i)); | |
- if ((j++)%4 == 0) | |
- len += snprintf(page + len, count - len, "\n"); | |
- } | |
- | |
- *eof = 1; | |
- return len; | |
-} | |
- | |
-int proc_get_bb_reg_dump1(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data) | |
-{ | |
- struct net_device *dev = data; | |
- struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev); | |
- int len = 0; | |
- int i, j = 1; | |
- | |
- len += snprintf(page + len, count - len, "\n======= BB REG =======\n"); | |
- for (i = 0x800; i < 0xB00; i += 4) { | |
- if (j%4 == 1) | |
- len += snprintf(page + len, count - len, "0x%02x", i); | |
- len += snprintf(page + len, count - len, " 0x%08x ", usb_read32(padapter, i)); | |
- if ((j++)%4 == 0) | |
- len += snprintf(page + len, count - len, "\n"); | |
- } | |
- *eof = 1; | |
- return len; | |
-} | |
- | |
-int proc_get_bb_reg_dump2(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data) | |
-{ | |
- struct net_device *dev = data; | |
- struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev); | |
- int len = 0; | |
- int i, j = 1; | |
- | |
- len += snprintf(page + len, count - len, "\n======= BB REG =======\n"); | |
- for (i = 0xB00; i < 0xE00; i += 4) { | |
- if (j%4 == 1) | |
- len += snprintf(page + len, count - len, "0x%02x", i); | |
- len += snprintf(page + len, count - len, " 0x%08x ", usb_read32(padapter, i)); | |
- if ((j++)%4 == 0) | |
- len += snprintf(page + len, count - len, "\n"); | |
- } | |
- *eof = 1; | |
- return len; | |
-} | |
- | |
-int proc_get_bb_reg_dump3(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data) | |
-{ | |
- struct net_device *dev = data; | |
- struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev); | |
- int len = 0; | |
- int i, j = 1; | |
- | |
- len += snprintf(page + len, count - len, "\n======= BB REG =======\n"); | |
- for (i = 0xE00; i < 0x1000; i += 4) { | |
- if (j%4 == 1) | |
- len += snprintf(page + len, count - len, "0x%02x", i); | |
- len += snprintf(page + len, count - len, " 0x%08x ", usb_read32(padapter, i)); | |
- if ((j++)%4 == 0) | |
- len += snprintf(page + len, count - len, "\n"); | |
- } | |
- *eof = 1; | |
- return len; | |
-} | |
- | |
-int proc_get_rf_reg_dump1(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data) | |
-{ | |
- struct net_device *dev = data; | |
- struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev); | |
- int len = 0; | |
- int i, j = 1, path; | |
- u32 value; | |
- | |
- len += snprintf(page + len, count - len, "\n======= RF REG =======\n"); | |
- path = 1; | |
- len += snprintf(page + len, count - len, "\nRF_Path(%x)\n", path); | |
- for (i = 0; i < 0xC0; i++) { | |
- value = rtw_hal_read_rfreg(padapter, path, i, 0xffffffff); | |
- if (j%4 == 1) | |
- len += snprintf(page + len, count - len, "0x%02x ", i); | |
- len += snprintf(page + len, count - len, " 0x%08x ", value); | |
- if ((j++)%4 == 0) | |
- len += snprintf(page + len, count - len, "\n"); | |
- } | |
- *eof = 1; | |
- return len; | |
-} | |
- | |
-int proc_get_rf_reg_dump2(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data) | |
-{ | |
- struct net_device *dev = data; | |
- struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev); | |
- int len = 0; | |
- int i, j = 1, path; | |
- u32 value; | |
- | |
- len += snprintf(page + len, count - len, "\n======= RF REG =======\n"); | |
- path = 1; | |
- len += snprintf(page + len, count - len, "\nRF_Path(%x)\n", path); | |
- for (i = 0xC0; i < 0x100; i++) { | |
- value = rtw_hal_read_rfreg(padapter, path, i, 0xffffffff); | |
- if (j%4 == 1) | |
- len += snprintf(page + len, count - len, "0x%02x ", i); | |
- len += snprintf(page + len, count - len, " 0x%08x ", value); | |
- if ((j++)%4 == 0) | |
- len += snprintf(page + len, count - len, "\n"); | |
- } | |
- *eof = 1; | |
- return len; | |
-} | |
- | |
-int proc_get_rf_reg_dump3(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data) | |
-{ | |
- struct net_device *dev = data; | |
- struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev); | |
- int len = 0; | |
- int i, j = 1, path; | |
- u32 value; | |
- | |
- len += snprintf(page + len, count - len, "\n======= RF REG =======\n"); | |
- path = 2; | |
- len += snprintf(page + len, count - len, "\nRF_Path(%x)\n", path); | |
- for (i = 0; i < 0xC0; i++) { | |
- value = rtw_hal_read_rfreg(padapter, path, i, 0xffffffff); | |
- if (j%4 == 1) | |
- len += snprintf(page + len, count - len, "0x%02x ", i); | |
- len += snprintf(page + len, count - len, " 0x%08x ", value); | |
- if ((j++)%4 == 0) | |
- len += snprintf(page + len, count - len, "\n"); | |
- } | |
- | |
- *eof = 1; | |
- return len; | |
-} | |
- | |
- | |
-int proc_get_rf_reg_dump4(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data) | |
-{ | |
- struct net_device *dev = data; | |
- struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev); | |
- int len = 0; | |
- int i, j = 1, path; | |
- u32 value; | |
- | |
- len += snprintf(page + len, count - len, "\n======= RF REG =======\n"); | |
- path = 2; | |
- len += snprintf(page + len, count - len, "\nRF_Path(%x)\n", path); | |
- for (i = 0xC0; i < 0x100; i++) { | |
- value = rtw_hal_read_rfreg(padapter, path, i, 0xffffffff); | |
- if (j%4 == 1) | |
- len += snprintf(page + len, count - len, "0x%02x ", i); | |
- len += snprintf(page + len, count - len, " 0x%08x ", value); | |
- if ((j++)%4 == 0) | |
- len += snprintf(page + len, count - len, "\n"); | |
- } | |
- *eof = 1; | |
- return len; | |
-} | |
- | |
- | |
- | |
-int proc_get_rx_signal(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data) | |
-{ | |
- struct net_device *dev = data; | |
- struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev); | |
- int len = 0; | |
- | |
- len = snprintf(page + len, count, | |
- "rssi:%d\n" | |
- "rxpwdb:%d\n" | |
- "signal_strength:%u\n" | |
- "signal_qual:%u\n" | |
- "noise:%u\n", | |
- padapter->recvpriv.rssi, | |
- padapter->recvpriv.rxpwdb, | |
- padapter->recvpriv.signal_strength, | |
- padapter->recvpriv.signal_qual, | |
- padapter->recvpriv.noise | |
- ); | |
- | |
- *eof = 1; | |
- return len; | |
-} | |
- | |
-int proc_set_rx_signal(struct file *file, const char __user *buffer, | |
- unsigned long count, void *data) | |
-{ | |
- struct net_device *dev = data; | |
- struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev); | |
- char tmp[32]; | |
- u32 is_signal_dbg; | |
- s32 signal_strength; | |
- | |
- if (count < 1) | |
- return -EFAULT; | |
- | |
- if (buffer && !copy_from_user(tmp, buffer, sizeof(tmp))) { | |
- int num = sscanf(tmp, "%u %u", &is_signal_dbg, &signal_strength); | |
- | |
- is_signal_dbg = is_signal_dbg == 0 ? 0 : 1; | |
- if (is_signal_dbg && num != 2) | |
- return count; | |
- | |
- signal_strength = clamp(signal_strength, 0, 100); | |
- | |
- padapter->recvpriv.is_signal_dbg = is_signal_dbg; | |
- padapter->recvpriv.signal_strength_dbg = signal_strength; | |
- | |
- if (is_signal_dbg) | |
- DBG_88E("set %s %u\n", "DBG_SIGNAL_STRENGTH", signal_strength); | |
- else | |
- DBG_88E("set %s\n", "HW_SIGNAL_STRENGTH"); | |
- } | |
- return count; | |
-} | |
- | |
-int proc_get_ht_enable(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data) | |
-{ | |
- struct net_device *dev = data; | |
- struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev); | |
- struct registry_priv *pregpriv = &padapter->registrypriv; | |
- int len = 0; | |
- | |
- if (pregpriv) | |
- len += snprintf(page + len, count - len, | |
- "%d\n", | |
- pregpriv->ht_enable | |
- ); | |
- *eof = 1; | |
- return len; | |
-} | |
- | |
-int proc_set_ht_enable(struct file *file, const char __user *buffer, | |
- unsigned long count, void *data) | |
-{ | |
- struct net_device *dev = data; | |
- struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev); | |
- struct registry_priv *pregpriv = &padapter->registrypriv; | |
- char tmp[32]; | |
- s32 mode = 0; | |
- | |
- if (count < 1) | |
- return -EFAULT; | |
- | |
- if (buffer && !copy_from_user(tmp, buffer, sizeof(tmp))) { | |
- if (pregpriv) { | |
- pregpriv->ht_enable = mode; | |
- pr_info("ht_enable=%d\n", pregpriv->ht_enable); | |
- } | |
- } | |
- | |
- return count; | |
-} | |
- | |
-int proc_get_cbw40_enable(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data) | |
-{ | |
- struct net_device *dev = data; | |
- struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev); | |
- struct registry_priv *pregpriv = &padapter->registrypriv; | |
- | |
- int len = 0; | |
- | |
- if (pregpriv) | |
- len += snprintf(page + len, count - len, | |
- "%d\n", | |
- pregpriv->cbw40_enable | |
- ); | |
- | |
- *eof = 1; | |
- return len; | |
-} | |
- | |
-int proc_set_cbw40_enable(struct file *file, const char __user *buffer, | |
- unsigned long count, void *data) | |
-{ | |
- struct net_device *dev = data; | |
- struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev); | |
- struct registry_priv *pregpriv = &padapter->registrypriv; | |
- char tmp[32]; | |
- s32 mode = 0; | |
- | |
- if (count < 1) | |
- return -EFAULT; | |
- | |
- if (buffer && !copy_from_user(tmp, buffer, sizeof(tmp))) { | |
- if (pregpriv) { | |
- pregpriv->cbw40_enable = mode; | |
- pr_info("cbw40_enable=%d\n", mode); | |
- } | |
- } | |
- return count; | |
-} | |
- | |
-int proc_get_ampdu_enable(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data) | |
-{ | |
- struct net_device *dev = data; | |
- struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev); | |
- struct registry_priv *pregpriv = &padapter->registrypriv; | |
- | |
- int len = 0; | |
- | |
- if (pregpriv) | |
- len += snprintf(page + len, count - len, | |
- "%d\n", | |
- pregpriv->ampdu_enable | |
- ); | |
- | |
- *eof = 1; | |
- return len; | |
-} | |
- | |
-int proc_set_ampdu_enable(struct file *file, const char __user *buffer, | |
- unsigned long count, void *data) | |
-{ | |
- struct net_device *dev = data; | |
- struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev); | |
- struct registry_priv *pregpriv = &padapter->registrypriv; | |
- char tmp[32]; | |
- s32 mode = 0; | |
- | |
- if (count < 1) | |
- return -EFAULT; | |
- | |
- if (buffer && !copy_from_user(tmp, buffer, sizeof(tmp))) { | |
- if (pregpriv) { | |
- pregpriv->ampdu_enable = mode; | |
- pr_info("ampdu_enable=%d\n", mode); | |
- } | |
- } | |
- return count; | |
-} | |
- | |
-int proc_get_two_path_rssi(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data) | |
-{ | |
- struct net_device *dev = data; | |
- struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev); | |
- | |
- int len = 0; | |
- | |
- if (padapter) | |
- len += snprintf(page + len, count - len, | |
- "%d %d\n", | |
- padapter->recvpriv.RxRssi[0], | |
- padapter->recvpriv.RxRssi[1] | |
- ); | |
- | |
- *eof = 1; | |
- return len; | |
-} | |
- | |
-int proc_get_rx_stbc(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data) | |
-{ | |
- struct net_device *dev = data; | |
- struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev); | |
- struct registry_priv *pregpriv = &padapter->registrypriv; | |
- | |
- int len = 0; | |
- | |
- if (pregpriv) | |
- len += snprintf(page + len, count - len, | |
- "%d\n", | |
- pregpriv->rx_stbc | |
- ); | |
- | |
- *eof = 1; | |
- return len; | |
-} | |
- | |
-int proc_set_rx_stbc(struct file *file, const char __user *buffer, | |
- unsigned long count, void *data) | |
-{ | |
- struct net_device *dev = data; | |
- struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev); | |
- struct registry_priv *pregpriv = &padapter->registrypriv; | |
- char tmp[32]; | |
- u32 mode = 0; | |
- | |
- if (count < 1) | |
- return -EFAULT; | |
- | |
- if (buffer && !copy_from_user(tmp, buffer, sizeof(tmp))) { | |
- if (pregpriv) { | |
- pregpriv->rx_stbc = mode; | |
- netdev_info(dev, "rx_stbc=%d\n", mode); | |
- } | |
- } | |
- return count; | |
-} | |
- | |
-int proc_get_rssi_disp(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data) | |
-{ | |
- *eof = 1; | |
- return 0; | |
-} | |
- | |
-int proc_set_rssi_disp(struct file *file, const char __user *buffer, | |
- unsigned long count, void *data) | |
-{ | |
- struct net_device *dev = data; | |
- struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev); | |
- char tmp[32]; | |
- u32 enable = 0; | |
- | |
- if (count < 1) { | |
- DBG_88E("argument size is less than 1\n"); | |
- return -EFAULT; | |
- } | |
- | |
- if (buffer && !copy_from_user(tmp, buffer, sizeof(tmp))) { | |
- int num = sscanf(tmp, "%x", &enable); | |
- | |
- if (num != 1) { | |
- DBG_88E("invalid set_rssi_disp parameter!\n"); | |
- return count; | |
- } | |
- | |
- if (enable) { | |
- DBG_88E("Turn On Rx RSSI Display Function\n"); | |
- padapter->bRxRSSIDisplay = enable; | |
- } else { | |
- DBG_88E("Turn Off Rx RSSI Display Function\n"); | |
- padapter->bRxRSSIDisplay = 0; | |
- } | |
- } | |
- return count; | |
-} | |
- | |
-#ifdef CONFIG_88EU_AP_MODE | |
- | |
-int proc_get_all_sta_info(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data) | |
-{ | |
- struct sta_info *psta; | |
- struct net_device *dev = data; | |
- struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev); | |
- struct sta_priv *pstapriv = &padapter->stapriv; | |
- int i, j; | |
- struct list_head *plist, *phead; | |
- struct recv_reorder_ctrl *preorder_ctrl; | |
- int len = 0; | |
- | |
- | |
- len += snprintf(page + len, count - len, "sta_dz_bitmap=0x%x, tim_bitmap=0x%x\n", pstapriv->sta_dz_bitmap, pstapriv->tim_bitmap); | |
- | |
- spin_lock_bh(&pstapriv->sta_hash_lock); | |
- | |
- for (i = 0; i < NUM_STA; i++) { | |
- phead = &(pstapriv->sta_hash[i]); | |
- plist = phead->next; | |
- | |
- while (phead != plist) { | |
- psta = container_of(plist, struct sta_info, hash_list); | |
- | |
- plist = plist->next; | |
- | |
- len += snprintf(page + len, count - len, "sta's macaddr: %pM\n", psta->hwaddr); | |
- len += snprintf(page + len, count - len, "rtsen=%d, cts2slef=%d\n", psta->rtsen, psta->cts2self); | |
- len += snprintf(page + len, count - len, "state=0x%x, aid=%d, macid=%d, raid=%d\n", psta->state, psta->aid, psta->mac_id, psta->raid); | |
- len += snprintf(page + len, count - len, "qos_en=%d, ht_en=%d, init_rate=%d\n", psta->qos_option, psta->htpriv.ht_option, psta->init_rate); | |
- len += snprintf(page + len, count - len, "bwmode=%d, ch_offset=%d, sgi=%d\n", psta->htpriv.bwmode, psta->htpriv.ch_offset, psta->htpriv.sgi); | |
- len += snprintf(page + len, count - len, "ampdu_enable = %d\n", psta->htpriv.ampdu_enable); | |
- len += snprintf(page + len, count - len, "agg_enable_bitmap=%x, candidate_tid_bitmap=%x\n", psta->htpriv.agg_enable_bitmap, psta->htpriv.candidate_tid_bitmap); | |
- len += snprintf(page + len, count - len, "sleepq_len=%d\n", psta->sleepq_len); | |
- len += snprintf(page + len, count - len, "capability=0x%x\n", psta->capability); | |
- len += snprintf(page + len, count - len, "flags=0x%x\n", psta->flags); | |
- len += snprintf(page + len, count - len, "wpa_psk=0x%x\n", psta->wpa_psk); | |
- len += snprintf(page + len, count - len, "wpa2_group_cipher=0x%x\n", psta->wpa2_group_cipher); | |
- len += snprintf(page + len, count - len, "wpa2_pairwise_cipher=0x%x\n", psta->wpa2_pairwise_cipher); | |
- len += snprintf(page + len, count - len, "qos_info=0x%x\n", psta->qos_info); | |
- len += snprintf(page + len, count - len, "dot118021XPrivacy=0x%x\n", psta->dot118021XPrivacy); | |
- | |
- for (j = 0; j < 16; j++) { | |
- preorder_ctrl = &psta->recvreorder_ctrl[j]; | |
- if (preorder_ctrl->enable) | |
- len += snprintf(page + len, count - len, "tid=%d, indicate_seq=%d\n", j, preorder_ctrl->indicate_seq); | |
- } | |
- } | |
- } | |
- spin_unlock_bh(&pstapriv->sta_hash_lock); | |
- | |
- *eof = 1; | |
- return len; | |
-} | |
-#endif | |
- | |
int proc_get_best_channel(char *page, char **start, | |
off_t offset, int count, | |
int *eof, void *data) | |
diff --git b/drivers/staging/rtl8188eu/core/rtw_efuse.c a/drivers/staging/rtl8188eu/core/rtw_efuse.c | |
index eb894233a785..b9bdff0490ca 100644 | |
--- b/drivers/staging/rtl8188eu/core/rtw_efuse.c | |
+++ a/drivers/staging/rtl8188eu/core/rtw_efuse.c | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#define _RTW_EFUSE_C_ | |
@@ -104,13 +99,11 @@ efuse_phymap_to_logical(u8 *phymap, u16 _offset, u16 _size_byte, u8 *pbuf) | |
u8 u1temp = 0; | |
efuseTbl = kzalloc(EFUSE_MAP_LEN_88E, GFP_KERNEL); | |
- if (efuseTbl == NULL) { | |
- DBG_88E("%s: alloc efuseTbl fail!\n", __func__); | |
+ if (!efuseTbl) | |
return; | |
- } | |
eFuseWord = (u16 **)rtw_malloc2d(EFUSE_MAX_SECTION_88E, EFUSE_MAX_WORD_UNIT, sizeof(u16)); | |
- if (eFuseWord == NULL) { | |
+ if (!eFuseWord) { | |
DBG_88E("%s: alloc eFuseWord fail!\n", __func__); | |
goto eFuseWord_failed; | |
} | |
@@ -224,7 +217,7 @@ static void efuse_read_phymap_from_txpktbuf( | |
) | |
{ | |
u16 dbg_addr = 0; | |
- u32 start = 0, passing_time = 0; | |
+ unsigned long start = 0; | |
u8 reg_0x143 = 0; | |
u32 lo32 = 0, hi32 = 0; | |
u16 len = 0, count = 0; | |
@@ -248,7 +241,7 @@ static void efuse_read_phymap_from_txpktbuf( | |
usb_write8(adapter, REG_TXPKTBUF_DBG, 0); | |
start = jiffies; | |
while (!(reg_0x143 = usb_read8(adapter, REG_TXPKTBUF_DBG)) && | |
- (passing_time = rtw_get_passing_time_ms(start)) < 1000) { | |
+ jiffies_to_msecs(jiffies - start) < 1000) { | |
DBG_88E("%s polling reg_0x143:0x%02x, reg_0x106:0x%02x\n", __func__, reg_0x143, usb_read8(adapter, 0x106)); | |
usleep_range(1000, 2000); | |
} | |
@@ -260,6 +253,7 @@ static void efuse_read_phymap_from_txpktbuf( | |
u8 lenc[2]; | |
u16 lenbak, aaabak; | |
u16 aaa; | |
+ | |
lenc[0] = usb_read8(adapter, REG_PKTBUF_DBG_DATA_L); | |
lenc[1] = usb_read8(adapter, REG_PKTBUF_DBG_DATA_L+1); | |
@@ -324,69 +318,6 @@ void efuse_ReadEFuse(struct adapter *Adapter, u8 efuseType, u16 _offset, u16 _si | |
} | |
} | |
-/* Do not support BT */ | |
-void EFUSE_GetEfuseDefinition(struct adapter *pAdapter, u8 efuseType, u8 type, void *pOut) | |
-{ | |
- switch (type) { | |
- case TYPE_EFUSE_MAX_SECTION: | |
- { | |
- u8 *pMax_section; | |
- pMax_section = pOut; | |
- *pMax_section = EFUSE_MAX_SECTION_88E; | |
- } | |
- break; | |
- case TYPE_EFUSE_REAL_CONTENT_LEN: | |
- { | |
- u16 *pu2Tmp; | |
- pu2Tmp = pOut; | |
- *pu2Tmp = EFUSE_REAL_CONTENT_LEN_88E; | |
- } | |
- break; | |
- case TYPE_EFUSE_CONTENT_LEN_BANK: | |
- { | |
- u16 *pu2Tmp; | |
- pu2Tmp = pOut; | |
- *pu2Tmp = EFUSE_REAL_CONTENT_LEN_88E; | |
- } | |
- break; | |
- case TYPE_AVAILABLE_EFUSE_BYTES_BANK: | |
- { | |
- u16 *pu2Tmp; | |
- pu2Tmp = pOut; | |
- *pu2Tmp = (u16)(EFUSE_REAL_CONTENT_LEN_88E-EFUSE_OOB_PROTECT_BYTES_88E); | |
- } | |
- break; | |
- case TYPE_AVAILABLE_EFUSE_BYTES_TOTAL: | |
- { | |
- u16 *pu2Tmp; | |
- pu2Tmp = pOut; | |
- *pu2Tmp = (u16)(EFUSE_REAL_CONTENT_LEN_88E-EFUSE_OOB_PROTECT_BYTES_88E); | |
- } | |
- break; | |
- case TYPE_EFUSE_MAP_LEN: | |
- { | |
- u16 *pu2Tmp; | |
- pu2Tmp = pOut; | |
- *pu2Tmp = (u16)EFUSE_MAP_LEN_88E; | |
- } | |
- break; | |
- case TYPE_EFUSE_PROTECT_BYTES_BANK: | |
- { | |
- u8 *pu1Tmp; | |
- pu1Tmp = pOut; | |
- *pu1Tmp = (u8)(EFUSE_OOB_PROTECT_BYTES_88E); | |
- } | |
- break; | |
- default: | |
- { | |
- u8 *pu1Tmp; | |
- pu1Tmp = pOut; | |
- *pu1Tmp = 0; | |
- } | |
- break; | |
- } | |
-} | |
- | |
u8 Efuse_WordEnableDataWrite(struct adapter *pAdapter, u16 efuse_addr, u8 word_en, u8 *data) | |
{ | |
u16 tmpaddr = 0; | |
@@ -394,7 +325,7 @@ u8 Efuse_WordEnableDataWrite(struct adapter *pAdapter, u16 efuse_addr, u8 word_e | |
u8 badworden = 0x0F; | |
u8 tmpdata[8]; | |
- memset((void *)tmpdata, 0xff, PGPKT_DATA_SIZE); | |
+ memset(tmpdata, 0xff, PGPKT_DATA_SIZE); | |
if (!(word_en & BIT(0))) { | |
tmpaddr = start_addr; | |
@@ -490,18 +421,15 @@ int Efuse_PgPacketRead(struct adapter *pAdapter, u8 offset, u8 *data) | |
u8 hoffset = 0, hworden = 0; | |
u8 tmpidx = 0; | |
u8 tmpdata[8]; | |
- u8 max_section = 0; | |
u8 tmp_header = 0; | |
- EFUSE_GetEfuseDefinition(pAdapter, EFUSE_WIFI, TYPE_EFUSE_MAX_SECTION, (void *)&max_section); | |
- | |
- if (data == NULL) | |
+ if (!data) | |
return false; | |
- if (offset > max_section) | |
+ if (offset > EFUSE_MAX_SECTION_88E) | |
return false; | |
- memset((void *)data, 0xff, sizeof(u8)*PGPKT_DATA_SIZE); | |
- memset((void *)tmpdata, 0xff, sizeof(u8)*PGPKT_DATA_SIZE); | |
+ memset(data, 0xff, sizeof(u8) * PGPKT_DATA_SIZE); | |
+ memset(tmpdata, 0xff, sizeof(u8) * PGPKT_DATA_SIZE); | |
/* <Roger_TODO> Efuse has been pre-programmed dummy 5Bytes at the end of Efuse by CP. */ | |
/* Skip dummy parts to prevent unexpected data read from Efuse. */ | |
@@ -572,7 +500,7 @@ static bool hal_EfuseFixHeaderProcess(struct adapter *pAdapter, u8 efuseType, st | |
u16 efuse_addr = *pAddr; | |
u32 PgWriteSuccess = 0; | |
- memset((void *)originaldata, 0xff, 8); | |
+ memset(originaldata, 0xff, 8); | |
if (Efuse_PgPacketRead(pAdapter, pFixPkt->offset, originaldata)) { | |
/* check if data exist */ | |
@@ -598,12 +526,12 @@ static bool hal_EfuseFixHeaderProcess(struct adapter *pAdapter, u8 efuseType, st | |
static bool hal_EfusePgPacketWrite2ByteHeader(struct adapter *pAdapter, u8 efuseType, u16 *pAddr, struct pgpkt *pTargetPkt) | |
{ | |
bool bRet = false; | |
- u16 efuse_addr = *pAddr, efuse_max_available_len = 0; | |
+ u16 efuse_addr = *pAddr; | |
+ u16 efuse_max_available_len = | |
+ EFUSE_REAL_CONTENT_LEN_88E - EFUSE_OOB_PROTECT_BYTES_88E; | |
u8 pg_header = 0, tmp_header = 0, pg_header_temp = 0; | |
u8 repeatcnt = 0; | |
- EFUSE_GetEfuseDefinition(pAdapter, efuseType, TYPE_AVAILABLE_EFUSE_BYTES_BANK, (void *)&efuse_max_available_len); | |
- | |
while (efuse_addr < efuse_max_available_len) { | |
pg_header = ((pTargetPkt->offset & 0x07) << 5) | 0x0F; | |
efuse_OneByteWrite(pAdapter, efuse_addr, pg_header); | |
@@ -635,13 +563,14 @@ static bool hal_EfusePgPacketWrite2ByteHeader(struct adapter *pAdapter, u8 efuse | |
} | |
if ((tmp_header & 0x0F) == 0x0F) { /* word_en PG fail */ | |
- if (repeatcnt++ > EFUSE_REPEAT_THRESHOLD_) { | |
+ if (repeatcnt++ > EFUSE_REPEAT_THRESHOLD_) | |
return false; | |
- } | |
+ | |
efuse_addr++; | |
continue; | |
} else if (pg_header != tmp_header) { /* offset PG fail */ | |
struct pgpkt fixPkt; | |
+ | |
fixPkt.offset = ((pg_header_temp & 0xE0) >> 5) | ((tmp_header & 0xF0) >> 1); | |
fixPkt.word_en = tmp_header & 0x0F; | |
fixPkt.word_cnts = Efuse_CalculateWordCnts(fixPkt.word_en); | |
@@ -684,6 +613,7 @@ static bool hal_EfusePgPacketWrite1ByteHeader(struct adapter *pAdapter, u8 efuse | |
bRet = true; | |
} else { | |
struct pgpkt fixPkt; | |
+ | |
fixPkt.offset = (tmp_header>>4) & 0x0F; | |
fixPkt.word_en = tmp_header & 0x0F; | |
fixPkt.word_cnts = Efuse_CalculateWordCnts(fixPkt.word_en); | |
@@ -776,12 +706,11 @@ static bool hal_EfusePartialWriteCheck(struct adapter *pAdapter, u8 efuseType, u | |
bool bRet = false; | |
u8 i, efuse_data = 0, cur_header = 0; | |
u8 matched_wden = 0, badworden = 0; | |
- u16 startAddr = 0, efuse_max_available_len = 0, efuse_max = 0; | |
+ u16 startAddr = 0; | |
+ u16 efuse_max_available_len = | |
+ EFUSE_REAL_CONTENT_LEN_88E - EFUSE_OOB_PROTECT_BYTES_88E; | |
struct pgpkt curPkt; | |
- EFUSE_GetEfuseDefinition(pAdapter, efuseType, TYPE_AVAILABLE_EFUSE_BYTES_BANK, (void *)&efuse_max_available_len); | |
- EFUSE_GetEfuseDefinition(pAdapter, efuseType, TYPE_EFUSE_REAL_CONTENT_LEN, (void *)&efuse_max); | |
- | |
rtw_hal_get_hwreg(pAdapter, HW_VAR_EFUSE_BYTES, (u8 *)&startAddr); | |
startAddr %= EFUSE_REAL_CONTENT_LEN; | |
@@ -853,12 +782,7 @@ hal_EfusePgCheckAvailableAddr( | |
u8 efuseType | |
) | |
{ | |
- u16 efuse_max_available_len = 0; | |
- | |
- /* Change to check TYPE_EFUSE_MAP_LEN , because 8188E raw 256, logic map over 256. */ | |
- EFUSE_GetEfuseDefinition(pAdapter, EFUSE_WIFI, TYPE_EFUSE_MAP_LEN, (void *)&efuse_max_available_len); | |
- | |
- if (Efuse_GetCurrentSize(pAdapter) >= efuse_max_available_len) | |
+ if (Efuse_GetCurrentSize(pAdapter) >= EFUSE_MAP_LEN_88E) | |
return false; | |
return true; | |
} | |
@@ -898,6 +822,7 @@ bool Efuse_PgPacketWrite(struct adapter *pAdapter, u8 offset, u8 word_en, u8 *pD | |
u8 Efuse_CalculateWordCnts(u8 word_en) | |
{ | |
u8 word_cnts = 0; | |
+ | |
if (!(word_en & BIT(0))) | |
word_cnts++; /* 0 : write enable */ | |
if (!(word_en & BIT(1))) | |
@@ -984,13 +909,9 @@ void efuse_WordEnableDataRead(u8 word_en, u8 *sourdata, u8 *targetdata) | |
*/ | |
static void Efuse_ReadAllMap(struct adapter *pAdapter, u8 efuseType, u8 *Efuse) | |
{ | |
- u16 mapLen = 0; | |
- | |
Efuse_PowerSwitch(pAdapter, false, true); | |
- EFUSE_GetEfuseDefinition(pAdapter, efuseType, TYPE_EFUSE_MAP_LEN, (void *)&mapLen); | |
- | |
- efuse_ReadEFuse(pAdapter, efuseType, 0, mapLen, Efuse); | |
+ efuse_ReadEFuse(pAdapter, efuseType, 0, EFUSE_MAP_LEN_88E, Efuse); | |
Efuse_PowerSwitch(pAdapter, false, false); | |
} | |
@@ -1003,12 +924,9 @@ void EFUSE_ShadowMapUpdate( | |
u8 efuseType) | |
{ | |
struct eeprom_priv *pEEPROM = GET_EEPROM_EFUSE_PRIV(pAdapter); | |
- u16 mapLen = 0; | |
- | |
- EFUSE_GetEfuseDefinition(pAdapter, efuseType, TYPE_EFUSE_MAP_LEN, (void *)&mapLen); | |
if (pEEPROM->bautoload_fail_flag) | |
- memset(pEEPROM->efuse_eeprom_data, 0xFF, mapLen); | |
+ memset(pEEPROM->efuse_eeprom_data, 0xFF, EFUSE_MAP_LEN_88E); | |
else | |
Efuse_ReadAllMap(pAdapter, efuseType, pEEPROM->efuse_eeprom_data); | |
} | |
diff --git b/drivers/staging/rtl8188eu/core/rtw_ieee80211.c a/drivers/staging/rtl8188eu/core/rtw_ieee80211.c | |
index 742b29c590df..bb867a987c2b 100644 | |
--- b/drivers/staging/rtl8188eu/core/rtw_ieee80211.c | |
+++ a/drivers/staging/rtl8188eu/core/rtw_ieee80211.c | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#define _IEEE80211_C | |
@@ -76,8 +71,8 @@ int rtw_get_bit_value_from_ieee_value(u8 val) | |
unsigned char dot11_rate_table[] = { | |
2, 4, 11, 22, 12, 18, 24, 36, 48, | |
72, 96, 108, 0}; /* last element must be zero!! */ | |
- | |
int i = 0; | |
+ | |
while (dot11_rate_table[i] != 0) { | |
if (dot11_rate_table[i] == val) | |
return BIT(i); | |
@@ -160,66 +155,14 @@ u8 *rtw_set_ie | |
return pbuf + len + 2; | |
} | |
-inline u8 *rtw_set_ie_ch_switch(u8 *buf, u32 *buf_len, u8 ch_switch_mode, | |
- u8 new_ch, u8 ch_switch_cnt) | |
-{ | |
- u8 ie_data[3]; | |
- | |
- ie_data[0] = ch_switch_mode; | |
- ie_data[1] = new_ch; | |
- ie_data[2] = ch_switch_cnt; | |
- return rtw_set_ie(buf, WLAN_EID_CHANNEL_SWITCH, 3, ie_data, buf_len); | |
-} | |
- | |
-inline u8 secondary_ch_offset_to_hal_ch_offset(u8 ch_offset) | |
-{ | |
- if (ch_offset == SCN) | |
- return HAL_PRIME_CHNL_OFFSET_DONT_CARE; | |
- else if (ch_offset == SCA) | |
- return HAL_PRIME_CHNL_OFFSET_UPPER; | |
- else if (ch_offset == SCB) | |
- return HAL_PRIME_CHNL_OFFSET_LOWER; | |
- | |
- return HAL_PRIME_CHNL_OFFSET_DONT_CARE; | |
-} | |
- | |
-inline u8 hal_ch_offset_to_secondary_ch_offset(u8 ch_offset) | |
-{ | |
- if (ch_offset == HAL_PRIME_CHNL_OFFSET_DONT_CARE) | |
- return SCN; | |
- else if (ch_offset == HAL_PRIME_CHNL_OFFSET_LOWER) | |
- return SCB; | |
- else if (ch_offset == HAL_PRIME_CHNL_OFFSET_UPPER) | |
- return SCA; | |
- | |
- return SCN; | |
-} | |
- | |
-inline u8 *rtw_set_ie_secondary_ch_offset(u8 *buf, u32 *buf_len, u8 secondary_ch_offset) | |
-{ | |
- return rtw_set_ie(buf, WLAN_EID_SECONDARY_CHANNEL_OFFSET, 1, &secondary_ch_offset, buf_len); | |
-} | |
- | |
-inline u8 *rtw_set_ie_mesh_ch_switch_parm(u8 *buf, u32 *buf_len, u8 ttl, | |
- u8 flags, u16 reason, u16 precedence) | |
-{ | |
- u8 ie_data[6]; | |
- | |
- ie_data[0] = ttl; | |
- ie_data[1] = flags; | |
- *(u16 *)(ie_data+2) = cpu_to_le16(reason); | |
- *(u16 *)(ie_data+4) = cpu_to_le16(precedence); | |
- | |
- return rtw_set_ie(buf, 0x118, 6, ie_data, buf_len); | |
-} | |
- | |
/*---------------------------------------------------------------------------- | |
index: the information element id index, limit is the limit for search | |
-----------------------------------------------------------------------------*/ | |
-u8 *rtw_get_ie(u8 *pbuf, int index, int *len, int limit) | |
+u8 *rtw_get_ie(u8 *pbuf, int index, uint *len, int limit) | |
{ | |
int tmp, i; | |
u8 *p; | |
+ | |
if (limit < 1) | |
return NULL; | |
@@ -241,97 +184,6 @@ u8 *rtw_get_ie(u8 *pbuf, int index, int *len, int limit) | |
return NULL; | |
} | |
-/** | |
- * rtw_get_ie_ex - Search specific IE from a series of IEs | |
- * @in_ie: Address of IEs to search | |
- * @in_len: Length limit from in_ie | |
- * @eid: Element ID to match | |
- * @oui: OUI to match | |
- * @oui_len: OUI length | |
- * @ie: If not NULL and the specific IE is found, the IE will be copied to the buf starting from the specific IE | |
- * @ielen: If not NULL and the specific IE is found, will set to the length of the entire IE | |
- * | |
- * Returns: The address of the specific IE found, or NULL | |
- */ | |
-u8 *rtw_get_ie_ex(u8 *in_ie, uint in_len, u8 eid, u8 *oui, u8 oui_len, u8 *ie, uint *ielen) | |
-{ | |
- uint cnt; | |
- u8 *target_ie = NULL; | |
- | |
- | |
- if (ielen) | |
- *ielen = 0; | |
- | |
- if (!in_ie || in_len <= 0) | |
- return target_ie; | |
- | |
- cnt = 0; | |
- | |
- while (cnt < in_len) { | |
- if (eid == in_ie[cnt] && (!oui || !memcmp(&in_ie[cnt+2], oui, oui_len))) { | |
- target_ie = &in_ie[cnt]; | |
- | |
- if (ie) | |
- memcpy(ie, &in_ie[cnt], in_ie[cnt+1]+2); | |
- | |
- if (ielen) | |
- *ielen = in_ie[cnt+1]+2; | |
- | |
- break; | |
- } else { | |
- cnt += in_ie[cnt+1]+2; /* goto next */ | |
- } | |
- } | |
- return target_ie; | |
-} | |
- | |
-/** | |
- * rtw_ies_remove_ie - Find matching IEs and remove | |
- * @ies: Address of IEs to search | |
- * @ies_len: Pointer of length of ies, will update to new length | |
- * @offset: The offset to start scarch | |
- * @eid: Element ID to match | |
- * @oui: OUI to match | |
- * @oui_len: OUI length | |
- * | |
- * Returns: _SUCCESS: ies is updated, _FAIL: not updated | |
- */ | |
-int rtw_ies_remove_ie(u8 *ies, uint *ies_len, uint offset, u8 eid, u8 *oui, u8 oui_len) | |
-{ | |
- int ret = _FAIL; | |
- u8 *target_ie; | |
- u32 target_ielen; | |
- u8 *start; | |
- uint search_len; | |
- | |
- if (!ies || !ies_len || *ies_len <= offset) | |
- goto exit; | |
- | |
- start = ies + offset; | |
- search_len = *ies_len - offset; | |
- | |
- while (1) { | |
- target_ie = rtw_get_ie_ex(start, search_len, eid, oui, oui_len, NULL, &target_ielen); | |
- if (target_ie && target_ielen) { | |
- u8 buf[MAX_IE_SZ] = {0}; | |
- u8 *remain_ies = target_ie + target_ielen; | |
- uint remain_len = search_len - (remain_ies - start); | |
- | |
- memcpy(buf, remain_ies, remain_len); | |
- memcpy(target_ie, buf, remain_len); | |
- *ies_len = *ies_len - target_ielen; | |
- ret = _SUCCESS; | |
- | |
- start = target_ie; | |
- search_len = remain_len; | |
- } else { | |
- break; | |
- } | |
- } | |
-exit: | |
- return ret; | |
-} | |
- | |
void rtw_set_supported_rate(u8 *SupportedRates, uint mode) | |
{ | |
@@ -360,6 +212,7 @@ void rtw_set_supported_rate(u8 *SupportedRates, uint mode) | |
uint rtw_get_rateset_len(u8 *rateset) | |
{ | |
uint i = 0; | |
+ | |
while (1) { | |
if ((rateset[i]) == 0) | |
break; | |
@@ -373,7 +226,8 @@ uint rtw_get_rateset_len(u8 *rateset) | |
int rtw_generate_ie(struct registry_priv *pregistrypriv) | |
{ | |
u8 wireless_mode; | |
- int sz = 0, rateLen; | |
+ int rateLen; | |
+ uint sz = 0; | |
struct wlan_bssid_ex *pdev_network = &pregistrypriv->dev_network; | |
u8 *ie = pdev_network->IEs; | |
@@ -438,9 +292,9 @@ int rtw_generate_ie(struct registry_priv *pregistrypriv) | |
return sz; | |
} | |
-unsigned char *rtw_get_wpa_ie(unsigned char *pie, int *wpa_ie_len, int limit) | |
+unsigned char *rtw_get_wpa_ie(unsigned char *pie, uint *wpa_ie_len, int limit) | |
{ | |
- int len; | |
+ uint len; | |
u16 val16; | |
__le16 le_tmp; | |
unsigned char wpa_oui_type[] = {0x00, 0x50, 0xf2, 0x01}; | |
@@ -478,7 +332,7 @@ unsigned char *rtw_get_wpa_ie(unsigned char *pie, int *wpa_ie_len, int limit) | |
return NULL; | |
} | |
-unsigned char *rtw_get_wpa2_ie(unsigned char *pie, int *rsn_ie_len, int limit) | |
+unsigned char *rtw_get_wpa2_ie(unsigned char *pie, uint *rsn_ie_len, int limit) | |
{ | |
return rtw_get_ie(pie, _WPA2_IE_ID_, rsn_ie_len, limit); | |
@@ -935,8 +789,8 @@ static int rtw_ieee802_11_parse_vendor_specific(u8 *pos, uint elen, | |
} | |
break; | |
default: | |
- DBG_88E("unknown vendor specific information element ignored (vendor OUI %02x:%02x:%02x len=%lu)\n", | |
- pos[0], pos[1], pos[2], (unsigned long)elen); | |
+ DBG_88E("unknown vendor specific information element ignored (vendor OUI %3phC len=%lu)\n", | |
+ pos, (unsigned long)elen); | |
return -1; | |
} | |
return 0; | |
@@ -1101,93 +955,13 @@ void rtw_macaddr_cfg(u8 *mac_addr) | |
DBG_88E("rtw_macaddr_cfg MAC Address = %pM\n", (mac_addr)); | |
} | |
-void dump_ies(u8 *buf, u32 buf_len) | |
-{ | |
- u8 *pos = buf; | |
- u8 id, len; | |
- | |
- while (pos-buf <= buf_len) { | |
- id = *pos; | |
- len = *(pos+1); | |
- | |
- DBG_88E("%s ID:%u, LEN:%u\n", __func__, id, len); | |
- dump_wps_ie(pos, len); | |
- | |
- pos += (2 + len); | |
- } | |
-} | |
- | |
-void dump_wps_ie(u8 *ie, u32 ie_len) | |
-{ | |
- u8 *pos = ie; | |
- u16 id; | |
- u16 len; | |
- u8 *wps_ie; | |
- uint wps_ielen; | |
- | |
- wps_ie = rtw_get_wps_ie(ie, ie_len, NULL, &wps_ielen); | |
- if (wps_ie != ie || wps_ielen == 0) | |
- return; | |
- | |
- pos += 6; | |
- while (pos-ie < ie_len) { | |
- id = get_unaligned_be16(pos); | |
- len = get_unaligned_be16(pos + 2); | |
- DBG_88E("%s ID:0x%04x, LEN:%u\n", __func__, id, len); | |
- pos += (4+len); | |
- } | |
-} | |
- | |
-/* Baron adds to avoid FreeBSD warning */ | |
-int ieee80211_is_empty_essid(const char *essid, int essid_len) | |
-{ | |
- /* Single white space is for Linksys APs */ | |
- if (essid_len == 1 && essid[0] == ' ') | |
- return 1; | |
- | |
- /* Otherwise, if the entire essid is 0, we assume it is hidden */ | |
- while (essid_len) { | |
- essid_len--; | |
- if (essid[essid_len] != '\0') | |
- return 0; | |
- } | |
- | |
- return 1; | |
-} | |
- | |
-int ieee80211_get_hdrlen(u16 fc) | |
-{ | |
- int hdrlen = 24; | |
- | |
- switch (WLAN_FC_GET_TYPE(fc)) { | |
- case RTW_IEEE80211_FTYPE_DATA: | |
- if (fc & RTW_IEEE80211_STYPE_QOS_DATA) | |
- hdrlen += 2; | |
- if ((fc & RTW_IEEE80211_FCTL_FROMDS) && (fc & RTW_IEEE80211_FCTL_TODS)) | |
- hdrlen += 6; /* Addr4 */ | |
- break; | |
- case RTW_IEEE80211_FTYPE_CTL: | |
- switch (WLAN_FC_GET_STYPE(fc)) { | |
- case RTW_IEEE80211_STYPE_CTS: | |
- case RTW_IEEE80211_STYPE_ACK: | |
- hdrlen = 10; | |
- break; | |
- default: | |
- hdrlen = 16; | |
- break; | |
- } | |
- break; | |
- } | |
- | |
- return hdrlen; | |
-} | |
- | |
static int rtw_get_cipher_info(struct wlan_network *pnetwork) | |
{ | |
- u32 wpa_ielen; | |
+ uint wpa_ielen; | |
unsigned char *pbuf; | |
int group_cipher = 0, pairwise_cipher = 0, is8021x = 0; | |
int ret = _FAIL; | |
+ | |
pbuf = rtw_get_wpa_ie(&pnetwork->network.IEs[12], &wpa_ielen, pnetwork->network.IELength - 12); | |
if (pbuf && (wpa_ielen > 0)) { | |
@@ -1228,8 +1002,7 @@ void rtw_get_bcn_info(struct wlan_network *pnetwork) | |
__le16 le_tmp; | |
u16 wpa_len = 0, rsn_len = 0; | |
struct HT_info_element *pht_info = NULL; | |
- struct rtw_ieee80211_ht_cap *pht_cap = NULL; | |
- unsigned int len; | |
+ uint len; | |
unsigned char *p; | |
memcpy(&le_tmp, rtw_get_capability_from_ie(pnetwork->network.IEs), 2); | |
@@ -1264,8 +1037,10 @@ void rtw_get_bcn_info(struct wlan_network *pnetwork) | |
/* parsing HT_CAP_IE */ | |
p = rtw_get_ie(pnetwork->network.IEs + _FIXED_IE_LENGTH_, _HT_CAPABILITY_IE_, &len, pnetwork->network.IELength - _FIXED_IE_LENGTH_); | |
if (p && len > 0) { | |
- pht_cap = (struct rtw_ieee80211_ht_cap *)(p + 2); | |
- pnetwork->BcnInfo.ht_cap_info = pht_cap->cap_info; | |
+ struct ieee80211_ht_cap *ht_cap = | |
+ (struct ieee80211_ht_cap *)(p + 2); | |
+ | |
+ pnetwork->BcnInfo.ht_cap_info = le16_to_cpu(ht_cap->cap_info); | |
} else { | |
pnetwork->BcnInfo.ht_cap_info = 0; | |
} | |
@@ -1340,58 +1115,3 @@ u16 rtw_mcs_rate(u8 rf_type, u8 bw_40MHz, u8 short_GI_20, u8 short_GI_40, unsign | |
} | |
return max_rate; | |
} | |
- | |
-int rtw_action_frame_parse(const u8 *frame, u32 frame_len, u8 *category, u8 *action) | |
-{ | |
- const u8 *frame_body = frame + sizeof(struct rtw_ieee80211_hdr_3addr); | |
- u16 fc; | |
- u8 c, a = 0; | |
- | |
- fc = le16_to_cpu(((struct rtw_ieee80211_hdr_3addr *)frame)->frame_ctl); | |
- | |
- if ((fc & (RTW_IEEE80211_FCTL_FTYPE|RTW_IEEE80211_FCTL_STYPE)) != | |
- (RTW_IEEE80211_FTYPE_MGMT|RTW_IEEE80211_STYPE_ACTION)) | |
- return false; | |
- | |
- c = frame_body[0]; | |
- | |
- switch (c) { | |
- case RTW_WLAN_CATEGORY_P2P: /* vendor-specific */ | |
- break; | |
- default: | |
- a = frame_body[1]; | |
- } | |
- | |
- if (category) | |
- *category = c; | |
- if (action) | |
- *action = a; | |
- | |
- return true; | |
-} | |
- | |
-static const char *_action_public_str[] = { | |
- "ACT_PUB_BSSCOEXIST", | |
- "ACT_PUB_DSE_ENABLE", | |
- "ACT_PUB_DSE_DEENABLE", | |
- "ACT_PUB_DSE_REG_LOCATION", | |
- "ACT_PUB_EXT_CHL_SWITCH", | |
- "ACT_PUB_DSE_MSR_REQ", | |
- "ACT_PUB_DSE_MSR_RPRT", | |
- "ACT_PUB_MP", | |
- "ACT_PUB_DSE_PWR_CONSTRAINT", | |
- "ACT_PUB_VENDOR", | |
- "ACT_PUB_GAS_INITIAL_REQ", | |
- "ACT_PUB_GAS_INITIAL_RSP", | |
- "ACT_PUB_GAS_COMEBACK_REQ", | |
- "ACT_PUB_GAS_COMEBACK_RSP", | |
- "ACT_PUB_TDLS_DISCOVERY_RSP", | |
- "ACT_PUB_LOCATION_TRACK", | |
- "ACT_PUB_RSVD", | |
-}; | |
- | |
-const char *action_public_str(u8 action) | |
-{ | |
- action = min_t(u8, action, ACT_PUBLIC_MAX); | |
- return _action_public_str[action]; | |
-} | |
diff --git b/drivers/staging/rtl8188eu/core/rtw_ioctl_set.c a/drivers/staging/rtl8188eu/core/rtw_ioctl_set.c | |
index 22f5b45f5f7f..767928a2cbb4 100644 | |
--- b/drivers/staging/rtl8188eu/core/rtw_ioctl_set.c | |
+++ a/drivers/staging/rtl8188eu/core/rtw_ioctl_set.c | |
@@ -11,15 +11,9 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#define _RTW_IOCTL_SET_C_ | |
- | |
#include <osdep_service.h> | |
#include <drv_types.h> | |
#include <rtw_ioctl_set.h> | |
@@ -27,13 +21,6 @@ | |
extern void indicate_wx_scan_complete_event(struct adapter *padapter); | |
-#define IS_MAC_ADDRESS_BROADCAST(addr) \ | |
-(\ | |
- ((addr[0] == 0xff) && (addr[1] == 0xff) && \ | |
- (addr[2] == 0xff) && (addr[3] == 0xff) && \ | |
- (addr[4] == 0xff) && (addr[5] == 0xff)) ? true : false \ | |
-) | |
- | |
u8 rtw_do_join(struct adapter *padapter) | |
{ | |
struct list_head *plist, *phead; | |
@@ -69,7 +56,7 @@ u8 rtw_do_join(struct adapter *padapter) | |
RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_info_, ("rtw_do_join(): site survey if scanned_queue is empty\n.")); | |
/* submit site_survey_cmd */ | |
ret = rtw_sitesurvey_cmd(padapter, &pmlmepriv->assoc_ssid, 1, NULL, 0); | |
- if (_SUCCESS != ret) { | |
+ if (ret != _SUCCESS) { | |
pmlmepriv->to_join = false; | |
RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_err_, ("rtw_do_join(): site survey return error\n.")); | |
} | |
@@ -123,7 +110,7 @@ u8 rtw_do_join(struct adapter *padapter) | |
if (!pmlmepriv->LinkDetectInfo.bBusyTraffic || | |
pmlmepriv->to_roaming > 0) { | |
ret = rtw_sitesurvey_cmd(padapter, &pmlmepriv->assoc_ssid, 1, NULL, 0); | |
- if (_SUCCESS != ret) { | |
+ if (ret != _SUCCESS) { | |
pmlmepriv->to_join = false; | |
RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_err_, ("do_join(): site survey return error\n.")); | |
} | |
@@ -582,17 +569,9 @@ u16 rtw_get_cur_max_rate(struct adapter *adapter) | |
struct registry_priv *pregistrypriv = &adapter->registrypriv; | |
struct mlme_priv *pmlmepriv = &adapter->mlmepriv; | |
struct wlan_bssid_ex *pcur_bss = &pmlmepriv->cur_network.network; | |
- struct rtw_ieee80211_ht_cap *pht_capie; | |
- u8 rf_type = 0; | |
u8 bw_40MHz = 0, short_GI_20 = 0, short_GI_40 = 0; | |
- u16 mcs_rate = 0; | |
u32 ht_ielen = 0; | |
- if (adapter->registrypriv.mp_mode == 1) { | |
- if (check_fwstate(pmlmepriv, WIFI_MP_STATE)) | |
- return 0; | |
- } | |
- | |
if ((!check_fwstate(pmlmepriv, _FW_LINKED)) && | |
(!check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE))) | |
return 0; | |
@@ -600,23 +579,18 @@ u16 rtw_get_cur_max_rate(struct adapter *adapter) | |
if (pmlmeext->cur_wireless_mode & (WIRELESS_11_24N|WIRELESS_11_5N)) { | |
p = rtw_get_ie(&pcur_bss->IEs[12], _HT_CAPABILITY_IE_, &ht_ielen, pcur_bss->IELength-12); | |
if (p && ht_ielen > 0) { | |
- pht_capie = (struct rtw_ieee80211_ht_cap *)(p+2); | |
- | |
- memcpy(&mcs_rate, pht_capie->supp_mcs_set, 2); | |
- | |
/* cur_bwmod is updated by beacon, pmlmeinfo is updated by association response */ | |
bw_40MHz = (pmlmeext->cur_bwmode && (HT_INFO_HT_PARAM_REC_TRANS_CHNL_WIDTH & pmlmeinfo->HT_info.infos[0])) ? 1 : 0; | |
- short_GI_20 = (le16_to_cpu(pmlmeinfo->HT_caps.u.HT_cap_element.HT_caps_info) & IEEE80211_HT_CAP_SGI_20) ? 1 : 0; | |
- short_GI_40 = (le16_to_cpu(pmlmeinfo->HT_caps.u.HT_cap_element.HT_caps_info) & IEEE80211_HT_CAP_SGI_40) ? 1 : 0; | |
+ short_GI_20 = (le16_to_cpu(pmlmeinfo->HT_caps.cap_info) & IEEE80211_HT_CAP_SGI_20) ? 1 : 0; | |
+ short_GI_40 = (le16_to_cpu(pmlmeinfo->HT_caps.cap_info) & IEEE80211_HT_CAP_SGI_40) ? 1 : 0; | |
- rtw_hal_get_hwreg(adapter, HW_VAR_RF_TYPE, (u8 *)(&rf_type)); | |
max_rate = rtw_mcs_rate( | |
- rf_type, | |
+ RF_1T1R, | |
bw_40MHz & (pregistrypriv->cbw40_enable), | |
short_GI_20, | |
short_GI_40, | |
- pmlmeinfo->HT_caps.u.HT_cap_element.MCS_rate | |
+ pmlmeinfo->HT_caps.mcs.rx_mask | |
); | |
} | |
} else { | |
@@ -647,7 +621,7 @@ int rtw_set_country(struct adapter *adapter, const char *country_code) | |
DBG_88E("%s country_code:%s\n", __func__, country_code); | |
for (i = 0; i < ARRAY_SIZE(channel_table); i++) { | |
- if (0 == strcmp(channel_table[i].name, country_code)) { | |
+ if (strcmp(channel_table[i].name, country_code) == 0) { | |
channel_plan = channel_table[i].channel_plan; | |
break; | |
} | |
diff --git b/drivers/staging/rtl8188eu/core/rtw_iol.c a/drivers/staging/rtl8188eu/core/rtw_iol.c | |
index cdcf0eacc0e0..2e2145caa56b 100644 | |
--- b/drivers/staging/rtl8188eu/core/rtw_iol.c | |
+++ a/drivers/staging/rtl8188eu/core/rtw_iol.c | |
@@ -11,10 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
* | |
******************************************************************************/ | |
@@ -22,10 +18,11 @@ | |
bool rtw_IOL_applied(struct adapter *adapter) | |
{ | |
- if (1 == adapter->registrypriv.fw_iol) | |
+ if (adapter->registrypriv.fw_iol == 1) | |
return true; | |
- if ((2 == adapter->registrypriv.fw_iol) && (!adapter_to_dvobj(adapter)->ishighspeed)) | |
+ if ((adapter->registrypriv.fw_iol == 2) && | |
+ (!adapter_to_dvobj(adapter)->ishighspeed)) | |
return true; | |
return false; | |
} | |
diff --git b/drivers/staging/rtl8188eu/core/rtw_led.c a/drivers/staging/rtl8188eu/core/rtw_led.c | |
index 14461cf34037..1b9bc9817a57 100644 | |
--- b/drivers/staging/rtl8188eu/core/rtw_led.c | |
+++ a/drivers/staging/rtl8188eu/core/rtw_led.c | |
@@ -30,7 +30,7 @@ void BlinkTimerCallback(unsigned long data) | |
if ((padapter->bSurpriseRemoved) || (padapter->bDriverStopped)) | |
return; | |
- schedule_work(&(pLed->BlinkWorkItem)); | |
+ schedule_work(&pLed->BlinkWorkItem); | |
} | |
/* */ | |
@@ -39,7 +39,9 @@ void BlinkTimerCallback(unsigned long data) | |
/* */ | |
void BlinkWorkItemCallback(struct work_struct *work) | |
{ | |
- struct LED_871x *pLed = container_of(work, struct LED_871x, BlinkWorkItem); | |
+ struct LED_871x *pLed = container_of(work, struct LED_871x, | |
+ BlinkWorkItem); | |
+ | |
BlinkHandler(pLed); | |
} | |
@@ -60,7 +62,6 @@ void ResetLedStatus(struct LED_871x *pLed) | |
pLed->bLedNoLinkBlinkInProgress = false; | |
pLed->bLedLinkBlinkInProgress = false; | |
- pLed->bLedStartToLinkBlinkInProgress = false; | |
pLed->bLedScanBlinkInProgress = false; | |
} | |
@@ -72,10 +73,10 @@ void InitLed871x(struct adapter *padapter, struct LED_871x *pLed) | |
ResetLedStatus(pLed); | |
- setup_timer(&(pLed->BlinkTimer), BlinkTimerCallback, | |
+ setup_timer(&pLed->BlinkTimer, BlinkTimerCallback, | |
(unsigned long)pLed); | |
- INIT_WORK(&(pLed->BlinkWorkItem), BlinkWorkItemCallback); | |
+ INIT_WORK(&pLed->BlinkWorkItem, BlinkWorkItemCallback); | |
} | |
@@ -85,8 +86,8 @@ void InitLed871x(struct adapter *padapter, struct LED_871x *pLed) | |
/* */ | |
void DeInitLed871x(struct LED_871x *pLed) | |
{ | |
- cancel_work_sync(&(pLed->BlinkWorkItem)); | |
- del_timer_sync(&(pLed->BlinkTimer)); | |
+ cancel_work_sync(&pLed->BlinkWorkItem); | |
+ del_timer_sync(&pLed->BlinkTimer); | |
ResetLedStatus(pLed); | |
} | |
@@ -99,7 +100,7 @@ void DeInitLed871x(struct LED_871x *pLed) | |
static void SwLedBlink1(struct LED_871x *pLed) | |
{ | |
struct adapter *padapter = pLed->padapter; | |
- struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); | |
+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv; | |
u8 bStopBlinking = false; | |
/* Change LED according to BlinkingLedState specified. */ | |
@@ -247,9 +248,9 @@ static void SwLedBlink1(struct LED_871x *pLed) | |
/* ALPHA, added by chiyoko, 20090106 */ | |
static void SwLedControlMode1(struct adapter *padapter, enum LED_CTL_MODE LedAction) | |
{ | |
- struct led_priv *ledpriv = &(padapter->ledpriv); | |
- struct LED_871x *pLed = &(ledpriv->SwLed0); | |
- struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); | |
+ struct led_priv *ledpriv = &padapter->ledpriv; | |
+ struct LED_871x *pLed = &ledpriv->SwLed0; | |
+ struct mlme_priv *pmlmepriv = &padapter->mlmepriv; | |
switch (LedAction) { | |
case LED_CTL_POWER_ON: | |
@@ -259,11 +260,11 @@ static void SwLedControlMode1(struct adapter *padapter, enum LED_CTL_MODE LedAct | |
if (pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed)) | |
return; | |
if (pLed->bLedLinkBlinkInProgress) { | |
- del_timer_sync(&(pLed->BlinkTimer)); | |
+ del_timer_sync(&pLed->BlinkTimer); | |
pLed->bLedLinkBlinkInProgress = false; | |
} | |
if (pLed->bLedBlinkInProgress) { | |
- del_timer_sync(&(pLed->BlinkTimer)); | |
+ del_timer_sync(&pLed->BlinkTimer); | |
pLed->bLedBlinkInProgress = false; | |
} | |
@@ -282,11 +283,11 @@ static void SwLedControlMode1(struct adapter *padapter, enum LED_CTL_MODE LedAct | |
if (pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed)) | |
return; | |
if (pLed->bLedNoLinkBlinkInProgress) { | |
- del_timer_sync(&(pLed->BlinkTimer)); | |
+ del_timer_sync(&pLed->BlinkTimer); | |
pLed->bLedNoLinkBlinkInProgress = false; | |
} | |
if (pLed->bLedBlinkInProgress) { | |
- del_timer_sync(&(pLed->BlinkTimer)); | |
+ del_timer_sync(&pLed->BlinkTimer); | |
pLed->bLedBlinkInProgress = false; | |
} | |
pLed->bLedLinkBlinkInProgress = true; | |
@@ -306,15 +307,15 @@ static void SwLedControlMode1(struct adapter *padapter, enum LED_CTL_MODE LedAct | |
if (IS_LED_WPS_BLINKING(pLed)) | |
return; | |
if (pLed->bLedNoLinkBlinkInProgress) { | |
- del_timer_sync(&(pLed->BlinkTimer)); | |
+ del_timer_sync(&pLed->BlinkTimer); | |
pLed->bLedNoLinkBlinkInProgress = false; | |
} | |
if (pLed->bLedLinkBlinkInProgress) { | |
- del_timer_sync(&(pLed->BlinkTimer)); | |
+ del_timer_sync(&pLed->BlinkTimer); | |
pLed->bLedLinkBlinkInProgress = false; | |
} | |
if (pLed->bLedBlinkInProgress) { | |
- del_timer_sync(&(pLed->BlinkTimer)); | |
+ del_timer_sync(&pLed->BlinkTimer); | |
pLed->bLedBlinkInProgress = false; | |
} | |
pLed->bLedScanBlinkInProgress = true; | |
@@ -334,11 +335,11 @@ static void SwLedControlMode1(struct adapter *padapter, enum LED_CTL_MODE LedAct | |
if (pLed->CurrLedState == LED_BLINK_SCAN || IS_LED_WPS_BLINKING(pLed)) | |
return; | |
if (pLed->bLedNoLinkBlinkInProgress) { | |
- del_timer_sync(&(pLed->BlinkTimer)); | |
+ del_timer_sync(&pLed->BlinkTimer); | |
pLed->bLedNoLinkBlinkInProgress = false; | |
} | |
if (pLed->bLedLinkBlinkInProgress) { | |
- del_timer_sync(&(pLed->BlinkTimer)); | |
+ del_timer_sync(&pLed->BlinkTimer); | |
pLed->bLedLinkBlinkInProgress = false; | |
} | |
pLed->bLedBlinkInProgress = true; | |
@@ -356,19 +357,19 @@ static void SwLedControlMode1(struct adapter *padapter, enum LED_CTL_MODE LedAct | |
case LED_CTL_START_WPS_BOTTON: | |
if (!pLed->bLedWPSBlinkInProgress) { | |
if (pLed->bLedNoLinkBlinkInProgress) { | |
- del_timer_sync(&(pLed->BlinkTimer)); | |
+ del_timer_sync(&pLed->BlinkTimer); | |
pLed->bLedNoLinkBlinkInProgress = false; | |
} | |
if (pLed->bLedLinkBlinkInProgress) { | |
- del_timer_sync(&(pLed->BlinkTimer)); | |
+ del_timer_sync(&pLed->BlinkTimer); | |
pLed->bLedLinkBlinkInProgress = false; | |
} | |
if (pLed->bLedBlinkInProgress) { | |
- del_timer_sync(&(pLed->BlinkTimer)); | |
+ del_timer_sync(&pLed->BlinkTimer); | |
pLed->bLedBlinkInProgress = false; | |
} | |
if (pLed->bLedScanBlinkInProgress) { | |
- del_timer_sync(&(pLed->BlinkTimer)); | |
+ del_timer_sync(&pLed->BlinkTimer); | |
pLed->bLedScanBlinkInProgress = false; | |
} | |
pLed->bLedWPSBlinkInProgress = true; | |
@@ -383,23 +384,23 @@ static void SwLedControlMode1(struct adapter *padapter, enum LED_CTL_MODE LedAct | |
break; | |
case LED_CTL_STOP_WPS: | |
if (pLed->bLedNoLinkBlinkInProgress) { | |
- del_timer_sync(&(pLed->BlinkTimer)); | |
+ del_timer_sync(&pLed->BlinkTimer); | |
pLed->bLedNoLinkBlinkInProgress = false; | |
} | |
if (pLed->bLedLinkBlinkInProgress) { | |
- del_timer_sync(&(pLed->BlinkTimer)); | |
+ del_timer_sync(&pLed->BlinkTimer); | |
pLed->bLedLinkBlinkInProgress = false; | |
} | |
if (pLed->bLedBlinkInProgress) { | |
- del_timer_sync(&(pLed->BlinkTimer)); | |
+ del_timer_sync(&pLed->BlinkTimer); | |
pLed->bLedBlinkInProgress = false; | |
} | |
if (pLed->bLedScanBlinkInProgress) { | |
- del_timer_sync(&(pLed->BlinkTimer)); | |
+ del_timer_sync(&pLed->BlinkTimer); | |
pLed->bLedScanBlinkInProgress = false; | |
} | |
if (pLed->bLedWPSBlinkInProgress) | |
- del_timer_sync(&(pLed->BlinkTimer)); | |
+ del_timer_sync(&pLed->BlinkTimer); | |
else | |
pLed->bLedWPSBlinkInProgress = true; | |
pLed->CurrLedState = LED_BLINK_WPS_STOP; | |
@@ -415,7 +416,7 @@ static void SwLedControlMode1(struct adapter *padapter, enum LED_CTL_MODE LedAct | |
break; | |
case LED_CTL_STOP_WPS_FAIL: | |
if (pLed->bLedWPSBlinkInProgress) { | |
- del_timer_sync(&(pLed->BlinkTimer)); | |
+ del_timer_sync(&pLed->BlinkTimer); | |
pLed->bLedWPSBlinkInProgress = false; | |
} | |
pLed->bLedNoLinkBlinkInProgress = true; | |
@@ -431,23 +432,23 @@ static void SwLedControlMode1(struct adapter *padapter, enum LED_CTL_MODE LedAct | |
pLed->CurrLedState = RTW_LED_OFF; | |
pLed->BlinkingLedState = RTW_LED_OFF; | |
if (pLed->bLedNoLinkBlinkInProgress) { | |
- del_timer_sync(&(pLed->BlinkTimer)); | |
+ del_timer_sync(&pLed->BlinkTimer); | |
pLed->bLedNoLinkBlinkInProgress = false; | |
} | |
if (pLed->bLedLinkBlinkInProgress) { | |
- del_timer_sync(&(pLed->BlinkTimer)); | |
+ del_timer_sync(&pLed->BlinkTimer); | |
pLed->bLedLinkBlinkInProgress = false; | |
} | |
if (pLed->bLedBlinkInProgress) { | |
- del_timer_sync(&(pLed->BlinkTimer)); | |
+ del_timer_sync(&pLed->BlinkTimer); | |
pLed->bLedBlinkInProgress = false; | |
} | |
if (pLed->bLedWPSBlinkInProgress) { | |
- del_timer_sync(&(pLed->BlinkTimer)); | |
+ del_timer_sync(&pLed->BlinkTimer); | |
pLed->bLedWPSBlinkInProgress = false; | |
} | |
if (pLed->bLedScanBlinkInProgress) { | |
- del_timer_sync(&(pLed->BlinkTimer)); | |
+ del_timer_sync(&pLed->BlinkTimer); | |
pLed->bLedScanBlinkInProgress = false; | |
} | |
SwLedOff(padapter, pLed); | |
@@ -475,15 +476,10 @@ void BlinkHandler(struct LED_871x *pLed) | |
void LedControl8188eu(struct adapter *padapter, enum LED_CTL_MODE LedAction) | |
{ | |
- struct led_priv *ledpriv = &(padapter->ledpriv); | |
- | |
if ((padapter->bSurpriseRemoved) || (padapter->bDriverStopped) || | |
(!padapter->hw_init_completed)) | |
return; | |
- if (!ledpriv->bRegUseLed) | |
- return; | |
- | |
if ((padapter->pwrctrlpriv.rf_pwrstate != rf_on && | |
padapter->pwrctrlpriv.rfoff_reason > RF_CHANGE_BY_PS) && | |
(LedAction == LED_CTL_TX || LedAction == LED_CTL_RX || | |
diff --git b/drivers/staging/rtl8188eu/core/rtw_mlme.c a/drivers/staging/rtl8188eu/core/rtw_mlme.c | |
index c1b82f71b682..f6d71587b803 100644 | |
--- b/drivers/staging/rtl8188eu/core/rtw_mlme.c | |
+++ a/drivers/staging/rtl8188eu/core/rtw_mlme.c | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#define _RTW_MLME_C_ | |
@@ -33,7 +28,6 @@ | |
#include <rtw_ioctl_set.h> | |
#include <linux/vmalloc.h> | |
-extern unsigned char MCS_rate_2R[16]; | |
extern unsigned char MCS_rate_1R[16]; | |
int rtw_init_mlme_priv(struct adapter *padapter) | |
@@ -57,13 +51,11 @@ int rtw_init_mlme_priv(struct adapter *padapter) | |
_rtw_init_queue(&(pmlmepriv->free_bss_pool)); | |
_rtw_init_queue(&(pmlmepriv->scanned_queue)); | |
- set_scanned_network_val(pmlmepriv, 0); | |
- | |
memset(&pmlmepriv->assoc_ssid, 0, sizeof(struct ndis_802_11_ssid)); | |
pbuf = vzalloc(MAX_BSS_CNT * (sizeof(struct wlan_network))); | |
- if (pbuf == NULL) { | |
+ if (!pbuf) { | |
res = _FAIL; | |
goto exit; | |
} | |
@@ -105,12 +97,6 @@ void rtw_free_mlme_priv_ie_data(struct mlme_priv *pmlmepriv) | |
rtw_free_mlme_ie_data(&pmlmepriv->wps_probe_req_ie, &pmlmepriv->wps_probe_req_ie_len); | |
rtw_free_mlme_ie_data(&pmlmepriv->wps_probe_resp_ie, &pmlmepriv->wps_probe_resp_ie_len); | |
rtw_free_mlme_ie_data(&pmlmepriv->wps_assoc_resp_ie, &pmlmepriv->wps_assoc_resp_ie_len); | |
- | |
- rtw_free_mlme_ie_data(&pmlmepriv->p2p_beacon_ie, &pmlmepriv->p2p_beacon_ie_len); | |
- rtw_free_mlme_ie_data(&pmlmepriv->p2p_probe_req_ie, &pmlmepriv->p2p_probe_req_ie_len); | |
- rtw_free_mlme_ie_data(&pmlmepriv->p2p_probe_resp_ie, &pmlmepriv->p2p_probe_resp_ie_len); | |
- rtw_free_mlme_ie_data(&pmlmepriv->p2p_go_probe_resp_ie, &pmlmepriv->p2p_go_probe_resp_ie_len); | |
- rtw_free_mlme_ie_data(&pmlmepriv->p2p_assoc_req_ie, &pmlmepriv->p2p_assoc_req_ie_len); | |
} | |
#else | |
void rtw_free_mlme_priv_ie_data(struct mlme_priv *pmlmepriv) | |
@@ -120,41 +106,34 @@ void rtw_free_mlme_priv_ie_data(struct mlme_priv *pmlmepriv) | |
void rtw_free_mlme_priv(struct mlme_priv *pmlmepriv) | |
{ | |
- rtw_free_mlme_priv_ie_data(pmlmepriv); | |
- | |
if (pmlmepriv) { | |
- if (pmlmepriv->free_bss_buf) | |
+ rtw_free_mlme_priv_ie_data(pmlmepriv); | |
vfree(pmlmepriv->free_bss_buf); | |
} | |
} | |
-struct wlan_network *_rtw_alloc_network(struct mlme_priv *pmlmepriv)/* _queue *free_queue) */ | |
+struct wlan_network *_rtw_alloc_network(struct mlme_priv *pmlmepriv) | |
+ /* _queue *free_queue) */ | |
{ | |
struct wlan_network *pnetwork; | |
struct __queue *free_queue = &pmlmepriv->free_bss_pool; | |
- struct list_head *plist = NULL; | |
spin_lock_bh(&free_queue->lock); | |
- | |
- if (list_empty(&free_queue->queue)) { | |
- pnetwork = NULL; | |
+ pnetwork = list_first_entry_or_null(&free_queue->queue, | |
+ struct wlan_network, list); | |
+ if (!pnetwork) | |
goto exit; | |
- } | |
- plist = free_queue->queue.next; | |
- | |
- pnetwork = container_of(plist, struct wlan_network, list); | |
list_del_init(&pnetwork->list); | |
- RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_, ("_rtw_alloc_network: ptr=%p\n", plist)); | |
+ RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_, | |
+ ("_rtw_alloc_network: ptr=%p\n", &pnetwork->list)); | |
pnetwork->network_type = 0; | |
pnetwork->fixed = false; | |
pnetwork->last_scanned = jiffies; | |
pnetwork->aid = 0; | |
pnetwork->join_res = 0; | |
- pmlmepriv->num_of_scanned++; | |
- | |
exit: | |
spin_unlock_bh(&free_queue->lock); | |
@@ -163,11 +142,12 @@ struct wlan_network *_rtw_alloc_network(struct mlme_priv *pmlmepriv)/* _queue *f | |
static void _rtw_free_network(struct mlme_priv *pmlmepriv, struct wlan_network *pnetwork, u8 isfreeall) | |
{ | |
- u32 curr_time, delta_time; | |
+ unsigned long curr_time; | |
+ u32 delta_time; | |
u32 lifetime = SCANQUEUE_LIFETIME; | |
struct __queue *free_queue = &(pmlmepriv->free_bss_pool); | |
- if (pnetwork == NULL) | |
+ if (!pnetwork) | |
return; | |
if (pnetwork->fixed) | |
@@ -184,7 +164,6 @@ static void _rtw_free_network(struct mlme_priv *pmlmepriv, struct wlan_network * | |
spin_lock_bh(&free_queue->lock); | |
list_del_init(&(pnetwork->list)); | |
list_add_tail(&(pnetwork->list), &(free_queue->queue)); | |
- pmlmepriv->num_of_scanned--; | |
spin_unlock_bh(&free_queue->lock); | |
} | |
@@ -192,19 +171,18 @@ void _rtw_free_network_nolock(struct mlme_priv *pmlmepriv, struct wlan_network * | |
{ | |
struct __queue *free_queue = &(pmlmepriv->free_bss_pool); | |
- if (pnetwork == NULL) | |
+ if (!pnetwork) | |
return; | |
if (pnetwork->fixed) | |
return; | |
list_del_init(&(pnetwork->list)); | |
list_add_tail(&(pnetwork->list), get_list_head(free_queue)); | |
- pmlmepriv->num_of_scanned--; | |
} | |
/* | |
- return the wlan_network with the matching addr | |
- | |
- Shall be calle under atomic context... to avoid possible racing condition... | |
+ * return the wlan_network with the matching addr | |
+ * | |
+ * Shall be called under atomic context... to avoid possible racing condition... | |
*/ | |
struct wlan_network *rtw_find_network(struct __queue *scanned_queue, u8 *addr) | |
{ | |
@@ -272,7 +250,7 @@ int rtw_if_up(struct adapter *padapter) | |
void rtw_generate_random_ibss(u8 *pibss) | |
{ | |
- u32 curtime = jiffies; | |
+ unsigned long curtime = jiffies; | |
pibss[0] = 0x02; /* in ad-hoc mode bit1 must set to 1 */ | |
pibss[1] = 0x11; | |
@@ -280,7 +258,6 @@ void rtw_generate_random_ibss(u8 *pibss) | |
pibss[3] = (u8)(curtime & 0xff);/* p[0]; */ | |
pibss[4] = (u8)((curtime>>8) & 0xff);/* p[1]; */ | |
pibss[5] = (u8)((curtime>>16) & 0xff);/* p[2]; */ | |
- return; | |
} | |
u8 *rtw_get_capability_from_ie(u8 *ie) | |
@@ -344,7 +321,6 @@ int is_same_network(struct wlan_bssid_ex *src, struct wlan_bssid_ex *dst) | |
memcpy((u8 *)&le_scap, rtw_get_capability_from_ie(src->IEs), 2); | |
memcpy((u8 *)&le_dcap, rtw_get_capability_from_ie(dst->IEs), 2); | |
- | |
s_cap = le16_to_cpu(le_scap); | |
d_cap = le16_to_cpu(le_dcap); | |
@@ -365,20 +341,13 @@ struct wlan_network *rtw_get_oldest_wlan_network(struct __queue *scanned_queue) | |
phead = get_list_head(scanned_queue); | |
- plist = phead->next; | |
- | |
- while (1) { | |
- if (phead == plist) | |
- break; | |
- | |
+ for (plist = phead->next; plist != phead; plist = plist->next) { | |
pwlan = container_of(plist, struct wlan_network, list); | |
if (!pwlan->fixed) { | |
- if (oldest == NULL || time_after(oldest->last_scanned, pwlan->last_scanned)) | |
+ if (!oldest || time_after(oldest->last_scanned, pwlan->last_scanned)) | |
oldest = pwlan; | |
} | |
- | |
- plist = plist->next; | |
} | |
return oldest; | |
} | |
@@ -421,7 +390,6 @@ void update_network(struct wlan_bssid_ex *dst, struct wlan_bssid_ex *src, | |
dst->PhyInfo.SignalStrength = ss_final; | |
dst->PhyInfo.SignalQuality = sq_final; | |
dst->Rssi = rssi_final; | |
- | |
} | |
static void update_current_network(struct adapter *adapter, struct wlan_bssid_ex *pnetwork) | |
@@ -437,7 +405,7 @@ static void update_current_network(struct adapter *adapter, struct wlan_bssid_ex | |
} | |
/* | |
-Caller must hold pmlmepriv->lock first. | |
+ * Caller must hold pmlmepriv->lock first. | |
*/ | |
void rtw_update_scanned_network(struct adapter *adapter, struct wlan_bssid_ex *target) | |
{ | |
@@ -463,7 +431,8 @@ void rtw_update_scanned_network(struct adapter *adapter, struct wlan_bssid_ex *t | |
plist = plist->next; | |
} | |
/* If we didn't find a match, then get a new network slot to initialize | |
- * with this beacon's information */ | |
+ * with this beacon's information | |
+ */ | |
if (phead == plist) { | |
if (list_empty(&(pmlmepriv->free_bss_pool.queue))) { | |
/* If there are no more slots, expire the oldest */ | |
@@ -487,7 +456,7 @@ void rtw_update_scanned_network(struct adapter *adapter, struct wlan_bssid_ex *t | |
pnetwork = rtw_alloc_network(pmlmepriv); /* will update scan_time */ | |
- if (pnetwork == NULL) { | |
+ if (!pnetwork) { | |
RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("\n\n\nsomething wrong here\n\n\n")); | |
goto exit; | |
} | |
@@ -522,7 +491,6 @@ void rtw_update_scanned_network(struct adapter *adapter, struct wlan_bssid_ex *t | |
exit: | |
spin_unlock_bh(&queue->lock); | |
- | |
} | |
static void rtw_add_network(struct adapter *adapter, | |
@@ -556,7 +524,7 @@ static int rtw_is_desired_network(struct adapter *adapter, struct wlan_network * | |
privacy = pnetwork->network.Privacy; | |
if (check_fwstate(pmlmepriv, WIFI_UNDER_WPS)) { | |
- if (rtw_get_wps_ie(pnetwork->network.IEs+_FIXED_IE_LENGTH_, pnetwork->network.IELength-_FIXED_IE_LENGTH_, NULL, &wps_ielen) != NULL) | |
+ if (rtw_get_wps_ie(pnetwork->network.IEs+_FIXED_IE_LENGTH_, pnetwork->network.IELength-_FIXED_IE_LENGTH_, NULL, &wps_ielen)) | |
return true; | |
else | |
return false; | |
@@ -577,7 +545,6 @@ static int rtw_is_desired_network(struct adapter *adapter, struct wlan_network * | |
bselected = false; | |
} | |
- | |
return bselected; | |
} | |
@@ -585,10 +552,8 @@ static int rtw_is_desired_network(struct adapter *adapter, struct wlan_network * | |
void rtw_atimdone_event_callback(struct adapter *adapter, u8 *pbuf) | |
{ | |
RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("receive atimdone_evet\n")); | |
- return; | |
} | |
- | |
void rtw_survey_event_callback(struct adapter *adapter, u8 *pbuf) | |
{ | |
u32 len; | |
@@ -689,10 +654,11 @@ void rtw_surveydone_event_callback(struct adapter *adapter, u8 *pbuf) | |
} | |
} else { | |
int s_ret; | |
+ | |
set_fwstate(pmlmepriv, _FW_UNDER_LINKING); | |
pmlmepriv->to_join = false; | |
s_ret = rtw_select_and_join_from_scanned_queue(pmlmepriv); | |
- if (_SUCCESS == s_ret) { | |
+ if (s_ret == _SUCCESS) { | |
mod_timer(&pmlmepriv->assoc_timer, | |
jiffies + msecs_to_jiffies(MAX_JOIN_TIMEOUT)); | |
} else if (s_ret == 2) { /* there is no need to wait for join */ | |
@@ -702,7 +668,7 @@ void rtw_surveydone_event_callback(struct adapter *adapter, u8 *pbuf) | |
DBG_88E("try_to_join, but select scanning queue fail, to_roaming:%d\n", pmlmepriv->to_roaming); | |
if (pmlmepriv->to_roaming != 0) { | |
if (--pmlmepriv->to_roaming == 0 || | |
- _SUCCESS != rtw_sitesurvey_cmd(adapter, &pmlmepriv->assoc_ssid, 1, NULL, 0)) { | |
+ rtw_sitesurvey_cmd(adapter, &pmlmepriv->assoc_ssid, 1, NULL, 0) != _SUCCESS) { | |
pmlmepriv->to_roaming = 0; | |
rtw_free_assoc_resources(adapter); | |
rtw_indicate_disconnect(adapter); | |
@@ -748,7 +714,6 @@ static void free_scanqueue(struct mlme_priv *pmlmepriv) | |
list_del_init(plist); | |
list_add_tail(plist, &free_queue->queue); | |
plist = ptemp; | |
- pmlmepriv->num_of_scanned--; | |
} | |
spin_unlock_bh(&free_queue->lock); | |
@@ -832,7 +797,7 @@ void rtw_indicate_connect(struct adapter *padapter) | |
if (!check_fwstate(&padapter->mlmepriv, _FW_LINKED)) { | |
set_fwstate(pmlmepriv, _FW_LINKED); | |
- rtw_led_control(padapter, LED_CTL_LINK); | |
+ LedControl8188eu(padapter, LED_CTL_LINK); | |
rtw_os_indicate_connect(padapter); | |
} | |
@@ -855,7 +820,6 @@ void rtw_indicate_disconnect(struct adapter *padapter) | |
_clr_fwstate_(pmlmepriv, _FW_UNDER_LINKING | WIFI_UNDER_WPS); | |
- | |
if (pmlmepriv->to_roaming > 0) | |
_clr_fwstate_(pmlmepriv, _FW_LINKED); | |
@@ -864,7 +828,7 @@ void rtw_indicate_disconnect(struct adapter *padapter) | |
rtw_os_indicate_disconnect(padapter); | |
_clr_fwstate_(pmlmepriv, _FW_LINKED); | |
- rtw_led_control(padapter, LED_CTL_NO_LINK); | |
+ LedControl8188eu(padapter, LED_CTL_NO_LINK); | |
rtw_clear_scan_deny(padapter); | |
} | |
@@ -878,14 +842,14 @@ inline void rtw_indicate_scan_done(struct adapter *padapter, bool aborted) | |
void rtw_scan_abort(struct adapter *adapter) | |
{ | |
- u32 start; | |
+ unsigned long start; | |
struct mlme_priv *pmlmepriv = &(adapter->mlmepriv); | |
struct mlme_ext_priv *pmlmeext = &(adapter->mlmeextpriv); | |
start = jiffies; | |
pmlmeext->scan_abort = true; | |
while (check_fwstate(pmlmepriv, _FW_UNDER_SURVEY) && | |
- rtw_get_passing_time_ms(start) <= 200) { | |
+ jiffies_to_msecs(jiffies - start) <= 200) { | |
if (adapter->bDriverStopped || adapter->bSurpriseRemoved) | |
break; | |
DBG_88E(FUNC_NDEV_FMT"fw_state=_FW_UNDER_SURVEY!\n", FUNC_NDEV_ARG(adapter->pnetdev)); | |
@@ -907,7 +871,7 @@ static struct sta_info *rtw_joinbss_update_stainfo(struct adapter *padapter, str | |
struct sta_priv *pstapriv = &padapter->stapriv; | |
psta = rtw_get_stainfo(pstapriv, pnetwork->network.MacAddress); | |
- if (psta == NULL) | |
+ if (!psta) | |
psta = rtw_alloc_stainfo(pstapriv, pnetwork->network.MacAddress); | |
if (psta) { /* update ptarget_sta */ | |
@@ -989,7 +953,6 @@ static void rtw_joinbss_update_network(struct adapter *padapter, struct wlan_net | |
cur_network->aid = pnetwork->join_res; | |
- | |
rtw_set_signal_stat_timer(&padapter->recvpriv); | |
padapter->recvpriv.signal_strength = ptarget_wlan->network.PhyInfo.SignalStrength; | |
padapter->recvpriv.signal_qual = ptarget_wlan->network.PhyInfo.SignalQuality; | |
@@ -1041,7 +1004,6 @@ void rtw_joinbss_event_prehandle(struct adapter *adapter, u8 *pbuf) | |
rtw_get_encrypt_decrypt_from_registrypriv(adapter); | |
- | |
if (pmlmepriv->assoc_ssid.SsidLength == 0) | |
RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("@@@@@ joinbss event call back for Any SSid\n")); | |
else | |
@@ -1101,11 +1063,10 @@ void rtw_joinbss_event_prehandle(struct adapter *adapter, u8 *pbuf) | |
goto ignore_joinbss_callback; | |
} | |
- | |
/* s3. find ptarget_sta & update ptarget_sta after update cur_network only for station mode */ | |
if (check_fwstate(pmlmepriv, WIFI_STATION_STATE) == true) { | |
ptarget_sta = rtw_joinbss_update_stainfo(adapter, pnetwork); | |
- if (ptarget_sta == NULL) { | |
+ if (!ptarget_sta) { | |
RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("Can't update stainfo when joinbss_event callback\n")); | |
spin_unlock_bh(&pmlmepriv->scanned_queue.lock); | |
goto ignore_joinbss_callback; | |
@@ -1120,10 +1081,10 @@ void rtw_joinbss_event_prehandle(struct adapter *adapter, u8 *pbuf) | |
RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_, ("adhoc mode, fw_state:%x", get_fwstate(pmlmepriv))); | |
} | |
- /* s5. Cancle assoc_timer */ | |
+ /* s5. Cancel assoc_timer */ | |
del_timer_sync(&pmlmepriv->assoc_timer); | |
- RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_, ("Cancle assoc_timer\n")); | |
+ RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_, ("Cancel assoc_timer\n")); | |
} else { | |
RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("rtw_joinbss_event_callback err: fw_state:%x", get_fwstate(pmlmepriv))); | |
@@ -1175,7 +1136,7 @@ static u8 search_max_mac_id(struct adapter *padapter) | |
#if defined(CONFIG_88EU_AP_MODE) | |
if (check_fwstate(pmlmepriv, WIFI_AP_STATE)) { | |
for (aid = (pstapriv->max_num_sta); aid > 0; aid--) { | |
- if (pstapriv->sta_aid[aid-1] != NULL) | |
+ if (pstapriv->sta_aid[aid-1]) | |
break; | |
} | |
mac_id = aid + 1; | |
@@ -1196,7 +1157,7 @@ void rtw_stassoc_hw_rpt(struct adapter *adapter, struct sta_info *psta) | |
u16 media_status; | |
u8 macid; | |
- if (psta == NULL) | |
+ if (!psta) | |
return; | |
macid = search_max_mac_id(adapter); | |
@@ -1228,13 +1189,13 @@ void rtw_stassoc_event_callback(struct adapter *adapter, u8 *pbuf) | |
#endif | |
/* for AD-HOC mode */ | |
psta = rtw_get_stainfo(&adapter->stapriv, pstassoc->macaddr); | |
- if (psta != NULL) { | |
+ if (psta) { | |
/* the sta have been in sta_info_queue => do nothing */ | |
RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("Error: rtw_stassoc_event_callback: sta has been in sta_hash_queue\n")); | |
return; /* between drv has received this event before and fw have not yet to set key to CAM_ENTRY) */ | |
} | |
psta = rtw_alloc_stainfo(&adapter->stapriv, pstassoc->macaddr); | |
- if (psta == NULL) { | |
+ if (!psta) { | |
RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("Can't alloc sta_info when rtw_stassoc_event_callback\n")); | |
return; | |
} | |
@@ -1287,6 +1248,7 @@ void rtw_stadel_event_callback(struct adapter *adapter, u8 *pbuf) | |
if (mac_id >= 0) { | |
u16 media_status; | |
+ | |
media_status = (mac_id<<8)|0; /* MACID|OPMODE:0 means disconnect */ | |
/* for STA, AP, ADHOC mode, report disconnect stauts to FW */ | |
rtw_hal_set_hwreg(adapter, HW_VAR_H2C_MEDIA_STATUS_RPT, (u8 *)&media_status); | |
@@ -1381,7 +1343,6 @@ void _rtw_join_timeout_handler (unsigned long data) | |
if (adapter->bDriverStopped || adapter->bSurpriseRemoved) | |
return; | |
- | |
spin_lock_bh(&pmlmepriv->lock); | |
if (pmlmepriv->to_roaming > 0) { /* join timeout caused by roaming */ | |
@@ -1390,7 +1351,7 @@ void _rtw_join_timeout_handler (unsigned long data) | |
if (pmlmepriv->to_roaming != 0) { /* try another , */ | |
DBG_88E("%s try another roaming\n", __func__); | |
do_join_r = rtw_do_join(adapter); | |
- if (_SUCCESS != do_join_r) { | |
+ if (do_join_r != _SUCCESS) { | |
DBG_88E("%s roaming do_join return %d\n", __func__, do_join_r); | |
continue; | |
} | |
@@ -1474,9 +1435,9 @@ static int rtw_check_join_candidate(struct mlme_priv *pmlmepriv | |
, struct wlan_network **candidate, struct wlan_network *competitor) | |
{ | |
int updated = false; | |
+ unsigned long since_scan; | |
struct adapter *adapter = container_of(pmlmepriv, struct adapter, mlmepriv); | |
- | |
/* check bssid, if needed */ | |
if (pmlmepriv->assoc_by_bssid) { | |
if (memcmp(competitor->network.MacAddress, pmlmepriv->assoc_bssid, ETH_ALEN)) | |
@@ -1494,7 +1455,8 @@ static int rtw_check_join_candidate(struct mlme_priv *pmlmepriv | |
goto exit; | |
if (pmlmepriv->to_roaming) { | |
- if (rtw_get_passing_time_ms((u32)competitor->last_scanned) >= RTW_SCAN_RESULT_EXPIRE || | |
+ since_scan = jiffies - competitor->last_scanned; | |
+ if (jiffies_to_msecs(since_scan) >= RTW_SCAN_RESULT_EXPIRE || | |
is_same_ess(&competitor->network, &pmlmepriv->cur_network.network) == false) | |
goto exit; | |
} | |
@@ -1518,10 +1480,10 @@ static int rtw_check_join_candidate(struct mlme_priv *pmlmepriv | |
} | |
/* | |
-Calling context: | |
-The caller of the sub-routine will be in critical section... | |
-The caller must hold the following spinlock | |
-pmlmepriv->lock | |
+ * Calling context: | |
+ * The caller of the sub-routine will be in critical section... | |
+ * The caller must hold the following spinlock | |
+ * pmlmepriv->lock | |
*/ | |
int rtw_select_and_join_from_scanned_queue(struct mlme_priv *pmlmepriv) | |
@@ -1540,7 +1502,7 @@ int rtw_select_and_join_from_scanned_queue(struct mlme_priv *pmlmepriv) | |
pmlmepriv->pscanned = phead->next; | |
while (phead != pmlmepriv->pscanned) { | |
pnetwork = container_of(pmlmepriv->pscanned, struct wlan_network, list); | |
- if (pnetwork == NULL) { | |
+ if (!pnetwork) { | |
RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, ("%s return _FAIL:(pnetwork==NULL)\n", __func__)); | |
ret = _FAIL; | |
goto exit; | |
@@ -1548,7 +1510,7 @@ int rtw_select_and_join_from_scanned_queue(struct mlme_priv *pmlmepriv) | |
pmlmepriv->pscanned = pmlmepriv->pscanned->next; | |
rtw_check_join_candidate(pmlmepriv, &candidate, pnetwork); | |
} | |
- if (candidate == NULL) { | |
+ if (!candidate) { | |
DBG_88E("%s: return _FAIL(candidate==NULL)\n", __func__); | |
ret = _FAIL; | |
goto exit; | |
@@ -1558,7 +1520,6 @@ int rtw_select_and_join_from_scanned_queue(struct mlme_priv *pmlmepriv) | |
candidate->network.Configuration.DSConfig); | |
} | |
- | |
/* check for situation of _FW_LINKED */ | |
if (check_fwstate(pmlmepriv, _FW_LINKED) == true) { | |
DBG_88E("%s: _FW_LINKED while ask_for_joinbss!!!\n", __func__); | |
@@ -1571,10 +1532,11 @@ int rtw_select_and_join_from_scanned_queue(struct mlme_priv *pmlmepriv) | |
rtw_hal_get_def_var(adapter, HAL_DEF_IS_SUPPORT_ANT_DIV, &(supp_ant_div)); | |
if (supp_ant_div) { | |
u8 cur_ant; | |
+ | |
rtw_hal_get_def_var(adapter, HAL_DEF_CURRENT_ANTENNA, &(cur_ant)); | |
DBG_88E("#### Opt_Ant_(%s), cur_Ant(%s)\n", | |
- (2 == candidate->network.PhyInfo.Optimum_antenna) ? "A" : "B", | |
- (2 == cur_ant) ? "A" : "B" | |
+ (candidate->network.PhyInfo.Optimum_antenna == 2) ? "A" : "B", | |
+ (cur_ant == 2) ? "A" : "B" | |
); | |
} | |
@@ -1593,18 +1555,17 @@ int rtw_set_auth(struct adapter *adapter, struct security_priv *psecuritypriv) | |
int res = _SUCCESS; | |
pcmd = kzalloc(sizeof(struct cmd_obj), GFP_KERNEL); | |
- if (pcmd == NULL) { | |
+ if (!pcmd) { | |
res = _FAIL; /* try again */ | |
goto exit; | |
} | |
psetauthparm = kzalloc(sizeof(struct setauth_parm), GFP_KERNEL); | |
- if (psetauthparm == NULL) { | |
+ if (!psetauthparm) { | |
kfree(pcmd); | |
res = _FAIL; | |
goto exit; | |
} | |
- memset(psetauthparm, 0, sizeof(struct setauth_parm)); | |
psetauthparm->mode = (unsigned char)psecuritypriv->dot11AuthAlgrthm; | |
pcmd->cmdcode = _SetAuth_CMD_; | |
pcmd->parmbuf = (unsigned char *)psetauthparm; | |
@@ -1630,17 +1591,15 @@ int rtw_set_key(struct adapter *adapter, struct security_priv *psecuritypriv, in | |
int res = _SUCCESS; | |
pcmd = kzalloc(sizeof(struct cmd_obj), GFP_KERNEL); | |
- if (pcmd == NULL) | |
+ if (!pcmd) | |
return _FAIL; /* try again */ | |
psetkeyparm = kzalloc(sizeof(struct setkey_parm), GFP_KERNEL); | |
- if (psetkeyparm == NULL) { | |
+ if (!psetkeyparm) { | |
res = _FAIL; | |
goto err_free_cmd; | |
} | |
- memset(psetkeyparm, 0, sizeof(struct setkey_parm)); | |
- | |
if (psecuritypriv->dot11AuthAlgrthm == dot11AuthAlgrthm_8021X) { | |
psetkeyparm->algorithm = (unsigned char)psecuritypriv->dot118021XGrpPrivacy; | |
RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, | |
@@ -1746,14 +1705,9 @@ static int SecIsInPMKIDList(struct adapter *Adapter, u8 *bssid) | |
do { | |
if ((psecuritypriv->PMKIDList[i].bUsed) && | |
- (!memcmp(psecuritypriv->PMKIDList[i].Bssid, bssid, ETH_ALEN))) { | |
+ (!memcmp(psecuritypriv->PMKIDList[i].Bssid, bssid, ETH_ALEN))) | |
break; | |
- } else { | |
- i++; | |
- /* continue; */ | |
- } | |
- | |
- } while (i < NUM_PMKID_CACHE); | |
+ } while (++i < NUM_PMKID_CACHE); | |
if (i == NUM_PMKID_CACHE) | |
i = -1;/* Could not find. */ | |
@@ -1949,19 +1903,19 @@ unsigned int rtw_restructure_ht_ie(struct adapter *padapter, u8 *in_ie, u8 *out_ | |
u32 ielen, out_len; | |
enum ht_cap_ampdu_factor max_rx_ampdu_factor; | |
unsigned char *p; | |
- struct rtw_ieee80211_ht_cap ht_capie; | |
unsigned char WMM_IE[] = {0x00, 0x50, 0xf2, 0x02, 0x00, 0x01, 0x00}; | |
struct mlme_priv *pmlmepriv = &padapter->mlmepriv; | |
struct qos_priv *pqospriv = &pmlmepriv->qospriv; | |
struct ht_priv *phtpriv = &pmlmepriv->htpriv; | |
u32 rx_packet_offset, max_recvbuf_sz; | |
- | |
phtpriv->ht_option = false; | |
p = rtw_get_ie(in_ie+12, _HT_CAPABILITY_IE_, &ielen, in_len-12); | |
if (p && ielen > 0) { | |
+ struct ieee80211_ht_cap ht_cap; | |
+ | |
if (pqospriv->qos_option == 0) { | |
out_len = *pout_len; | |
rtw_set_ie(out_ie + out_len, _VENDOR_SPECIFIC_IE_, | |
@@ -1972,33 +1926,33 @@ unsigned int rtw_restructure_ht_ie(struct adapter *padapter, u8 *in_ie, u8 *out_ | |
out_len = *pout_len; | |
- memset(&ht_capie, 0, sizeof(struct rtw_ieee80211_ht_cap)); | |
+ memset(&ht_cap, 0, sizeof(struct ieee80211_ht_cap)); | |
- ht_capie.cap_info = IEEE80211_HT_CAP_SUP_WIDTH | | |
+ ht_cap.cap_info = cpu_to_le16(IEEE80211_HT_CAP_SUP_WIDTH | | |
IEEE80211_HT_CAP_SGI_20 | | |
IEEE80211_HT_CAP_SGI_40 | | |
IEEE80211_HT_CAP_TX_STBC | | |
- IEEE80211_HT_CAP_DSSSCCK40; | |
+ IEEE80211_HT_CAP_DSSSCCK40); | |
rtw_hal_get_def_var(padapter, HAL_DEF_RX_PACKET_OFFSET, &rx_packet_offset); | |
rtw_hal_get_def_var(padapter, HAL_DEF_MAX_RECVBUF_SZ, &max_recvbuf_sz); | |
/* | |
- AMPDU_para [1:0]:Max AMPDU Len => 0:8k , 1:16k, 2:32k, 3:64k | |
- AMPDU_para [4:2]:Min MPDU Start Spacing | |
+ ampdu_params_info [1:0]:Max AMPDU Len => 0:8k , 1:16k, 2:32k, 3:64k | |
+ ampdu_params_info [4:2]:Min MPDU Start Spacing | |
*/ | |
rtw_hal_get_def_var(padapter, HW_VAR_MAX_RX_AMPDU_FACTOR, &max_rx_ampdu_factor); | |
- ht_capie.ampdu_params_info = (max_rx_ampdu_factor&0x03); | |
+ ht_cap.ampdu_params_info = max_rx_ampdu_factor & 0x03; | |
if (padapter->securitypriv.dot11PrivacyAlgrthm == _AES_) | |
- ht_capie.ampdu_params_info |= (IEEE80211_HT_CAP_AMPDU_DENSITY&(0x07<<2)); | |
+ ht_cap.ampdu_params_info |= IEEE80211_HT_CAP_AMPDU_DENSITY & (0x07 << 2); | |
else | |
- ht_capie.ampdu_params_info |= (IEEE80211_HT_CAP_AMPDU_DENSITY&0x00); | |
- | |
+ ht_cap.ampdu_params_info |= IEEE80211_HT_CAP_AMPDU_DENSITY & 0x00; | |
rtw_set_ie(out_ie+out_len, _HT_CAPABILITY_IE_, | |
- sizeof(struct rtw_ieee80211_ht_cap), (unsigned char *)&ht_capie, pout_len); | |
+ sizeof(struct ieee80211_ht_cap), | |
+ (unsigned char *)&ht_cap, pout_len); | |
phtpriv->ht_option = true; | |
@@ -2014,9 +1968,6 @@ unsigned int rtw_restructure_ht_ie(struct adapter *padapter, u8 *in_ie, u8 *out_ | |
/* the function is > passive_level (in critical_section) */ | |
void rtw_update_ht_cap(struct adapter *padapter, u8 *pie, uint ie_len) | |
{ | |
- u8 *p, max_ampdu_sz; | |
- int len; | |
- struct rtw_ieee80211_ht_cap *pht_capie; | |
struct mlme_priv *pmlmepriv = &padapter->mlmepriv; | |
struct ht_priv *phtpriv = &pmlmepriv->htpriv; | |
struct registry_priv *pregistrypriv = &padapter->registrypriv; | |
@@ -2041,35 +1992,15 @@ void rtw_update_ht_cap(struct adapter *padapter, u8 *pie, uint ie_len) | |
phtpriv->ampdu_enable = true; | |
} | |
- | |
- /* check Max Rx A-MPDU Size */ | |
- len = 0; | |
- p = rtw_get_ie(pie+sizeof(struct ndis_802_11_fixed_ie), _HT_CAPABILITY_IE_, &len, ie_len-sizeof(struct ndis_802_11_fixed_ie)); | |
- if (p && len > 0) { | |
- pht_capie = (struct rtw_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; | |
- } | |
- len = 0; | |
- p = rtw_get_ie(pie+sizeof(struct ndis_802_11_fixed_ie), _HT_ADD_INFO_IE_, &len, ie_len-sizeof(struct ndis_802_11_fixed_ie)); | |
- | |
/* update cur_bwmode & cur_ch_offset */ | |
if ((pregistrypriv->cbw40_enable) && | |
- (le16_to_cpu(pmlmeinfo->HT_caps.u.HT_cap_element.HT_caps_info) & BIT(1)) && | |
+ (le16_to_cpu(pmlmeinfo->HT_caps.cap_info) & BIT(1)) && | |
(pmlmeinfo->HT_info.infos[0] & BIT(2))) { | |
int i; | |
- u8 rf_type; | |
- | |
- padapter->HalFunc.GetHwRegHandler(padapter, HW_VAR_RF_TYPE, (u8 *)(&rf_type)); | |
/* update the MCS rates */ | |
- for (i = 0; i < 16; i++) { | |
- if ((rf_type == RF_1T1R) || (rf_type == RF_1T2R)) | |
- pmlmeinfo->HT_caps.u.HT_cap_element.MCS_rate[i] &= MCS_rate_1R[i]; | |
- else | |
- pmlmeinfo->HT_caps.u.HT_cap_element.MCS_rate[i] &= MCS_rate_2R[i]; | |
- } | |
+ for (i = 0; i < 16; i++) | |
+ ((u8 *)&pmlmeinfo->HT_caps.mcs)[i] &= MCS_rate_1R[i]; | |
/* switch to the 40M Hz mode according to the AP */ | |
pmlmeext->cur_bwmode = HT_CHANNEL_WIDTH_40; | |
switch ((pmlmeinfo->HT_info.infos[0] & 0x3)) { | |
@@ -2086,7 +2017,7 @@ void rtw_update_ht_cap(struct adapter *padapter, u8 *pie, uint ie_len) | |
} | |
/* Config SM Power Save setting */ | |
- pmlmeinfo->SM_PS = (le16_to_cpu(pmlmeinfo->HT_caps.u.HT_cap_element.HT_caps_info) & 0x0C) >> 2; | |
+ pmlmeinfo->SM_PS = (le16_to_cpu(pmlmeinfo->HT_caps.cap_info) & 0x0C) >> 2; | |
if (pmlmeinfo->SM_PS == WLAN_HT_CAP_SM_PS_STATIC) | |
DBG_88E("%s(): WLAN_HT_CAP_SM_PS_STATIC\n", __func__); | |
@@ -2113,7 +2044,7 @@ void rtw_issue_addbareq_cmd(struct adapter *padapter, struct xmit_frame *pxmitfr | |
else | |
psta = rtw_get_stainfo(&padapter->stapriv, pattrib->ra); | |
- if (psta == NULL) | |
+ if (!psta) | |
return; | |
phtpriv = &psta->htpriv; | |
@@ -2122,7 +2053,7 @@ void rtw_issue_addbareq_cmd(struct adapter *padapter, struct xmit_frame *pxmitfr | |
issued = (phtpriv->agg_enable_bitmap >> priority) & 0x1; | |
issued |= (phtpriv->candidate_tid_bitmap >> priority) & 0x1; | |
- if (0 == issued) { | |
+ if (issued == 0) { | |
DBG_88E("rtw_issue_addbareq_cmd, p=%d\n", priority); | |
psta->htpriv.candidate_tid_bitmap |= BIT((u8)priority); | |
rtw_addbareq_cmd(padapter, (u8)priority, pattrib->ra); | |
@@ -2138,6 +2069,7 @@ void rtw_roaming(struct adapter *padapter, struct wlan_network *tgt_network) | |
_rtw_roaming(padapter, tgt_network); | |
spin_unlock_bh(&pmlmepriv->lock); | |
} | |
+ | |
void _rtw_roaming(struct adapter *padapter, struct wlan_network *tgt_network) | |
{ | |
struct mlme_priv *pmlmepriv = &padapter->mlmepriv; | |
@@ -2145,12 +2077,12 @@ void _rtw_roaming(struct adapter *padapter, struct wlan_network *tgt_network) | |
struct wlan_network *pnetwork; | |
- if (tgt_network != NULL) | |
+ if (tgt_network) | |
pnetwork = tgt_network; | |
else | |
pnetwork = &pmlmepriv->cur_network; | |
- if (0 < pmlmepriv->to_roaming) { | |
+ if (pmlmepriv->to_roaming > 0) { | |
DBG_88E("roaming from %s(%pM length:%d\n", | |
pnetwork->network.Ssid.Ssid, pnetwork->network.MacAddress, | |
pnetwork->network.Ssid.SsidLength); | |
@@ -2160,13 +2092,13 @@ void _rtw_roaming(struct adapter *padapter, struct wlan_network *tgt_network) | |
while (1) { | |
do_join_r = rtw_do_join(padapter); | |
- if (_SUCCESS == do_join_r) { | |
+ if (do_join_r == _SUCCESS) { | |
break; | |
} else { | |
DBG_88E("roaming do_join return %d\n", do_join_r); | |
pmlmepriv->to_roaming--; | |
- if (0 < pmlmepriv->to_roaming) { | |
+ if (pmlmepriv->to_roaming > 0) { | |
continue; | |
} else { | |
DBG_88E("%s(%d) -to roaming fail, indicate_disconnect\n", __func__, __LINE__); | |
diff --git b/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c a/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c | |
index d900546b672f..611c9409bb98 100644 | |
--- b/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c | |
+++ a/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c | |
@@ -11,15 +11,11 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#define _RTW_MLME_EXT_C_ | |
#include <linux/ieee80211.h> | |
+#include <asm/unaligned.h> | |
#include <osdep_service.h> | |
#include <drv_types.h> | |
@@ -51,7 +47,6 @@ extern unsigned char REALTEK_96B_IE[]; | |
/******************************************************** | |
MCS rate definitions | |
*********************************************************/ | |
-unsigned char MCS_rate_2R[16] = {0xff, 0xff, 0x0, 0x0, 0x01, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}; | |
unsigned char MCS_rate_1R[16] = {0xff, 0x00, 0x0, 0x0, 0x01, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}; | |
/******************************************************** | |
@@ -137,7 +132,9 @@ static struct rt_channel_plan_map RTW_ChannelPlanMap[RT_CHANNEL_DOMAIN_MAX] = { | |
{0x03}, /* 0x41, RT_CHANNEL_DOMAIN_GLOBAL_DOAMIN_2G */ | |
}; | |
-static struct rt_channel_plan_map RTW_CHANNEL_PLAN_MAP_REALTEK_DEFINE = {0x03}; /* use the combination for max channel numbers */ | |
+static const struct rt_channel_plan_map RTW_CHANNEL_PLAN_MAP_REALTEK_DEFINE = { | |
+ 0x03 | |
+}; /* use the combination for max channel numbers */ | |
/* | |
* Search the @param channel_num in given @param channel_set | |
@@ -149,6 +146,7 @@ static struct rt_channel_plan_map RTW_CHANNEL_PLAN_MAP_REALTEK_DEFINE = {0x03}; | |
int rtw_ch_set_search_ch(struct rt_channel_info *ch_set, const u32 ch) | |
{ | |
int i; | |
+ | |
for (i = 0; ch_set[i].ChannelNum != 0; i++) { | |
if (ch == ch_set[i].ChannelNum) | |
break; | |
@@ -276,9 +274,8 @@ static s32 dump_mgntframe_and_wait_ack(struct adapter *padapter, | |
pxmitpriv->ack_tx = true; | |
pmgntframe->ack_report = 1; | |
- if (rtw_hal_mgnt_xmit(padapter, pmgntframe) == _SUCCESS) { | |
+ if (rtw_hal_mgnt_xmit(padapter, pmgntframe) == _SUCCESS) | |
ret = rtw_ack_tx_wait(pxmitpriv, timeout_ms); | |
- } | |
pxmitpriv->ack_tx = false; | |
mutex_unlock(&pxmitpriv->ack_tx_mutex); | |
@@ -289,7 +286,7 @@ static s32 dump_mgntframe_and_wait_ack(struct adapter *padapter, | |
static int update_hidden_ssid(u8 *ies, u32 ies_len, u8 hidden_ssid_mode) | |
{ | |
u8 *ssid_ie; | |
- int ssid_len_ori; | |
+ uint ssid_len_ori; | |
int len_diff = 0; | |
ssid_ie = rtw_get_ie(ies, WLAN_EID_SSID, &ssid_len_ori, ies_len); | |
@@ -324,7 +321,7 @@ static void issue_beacon(struct adapter *padapter, int timeout_ms) | |
struct xmit_frame *pmgntframe; | |
struct pkt_attrib *pattrib; | |
unsigned char *pframe; | |
- struct rtw_ieee80211_hdr *pwlanhdr; | |
+ struct ieee80211_hdr *pwlanhdr; | |
__le16 *fctrl; | |
unsigned int rate_len; | |
struct xmit_priv *pxmitpriv = &(padapter->xmitpriv); | |
@@ -351,28 +348,29 @@ static void issue_beacon(struct adapter *padapter, int timeout_ms) | |
memset(pmgntframe->buf_addr, 0, WLANHDR_OFFSET + TXDESC_OFFSET); | |
pframe = (u8 *)(pmgntframe->buf_addr) + TXDESC_OFFSET; | |
- pwlanhdr = (struct rtw_ieee80211_hdr *)pframe; | |
+ pwlanhdr = (struct ieee80211_hdr *)pframe; | |
- fctrl = &(pwlanhdr->frame_ctl); | |
+ fctrl = &pwlanhdr->frame_control; | |
*(fctrl) = 0; | |
- memcpy(pwlanhdr->addr1, bc_addr, ETH_ALEN); | |
- memcpy(pwlanhdr->addr2, myid(&(padapter->eeprompriv)), ETH_ALEN); | |
- memcpy(pwlanhdr->addr3, cur_network->MacAddress, ETH_ALEN); | |
+ ether_addr_copy(pwlanhdr->addr1, bc_addr); | |
+ ether_addr_copy(pwlanhdr->addr2, myid(&(padapter->eeprompriv))); | |
+ ether_addr_copy(pwlanhdr->addr3, cur_network->MacAddress); | |
SetSeqNum(pwlanhdr, 0/*pmlmeext->mgnt_seq*/); | |
/* pmlmeext->mgnt_seq++; */ | |
SetFrameSubType(pframe, WIFI_BEACON); | |
- pframe += sizeof(struct rtw_ieee80211_hdr_3addr); | |
- pattrib->pktlen = sizeof(struct rtw_ieee80211_hdr_3addr); | |
+ pframe += sizeof(struct ieee80211_hdr_3addr); | |
+ pattrib->pktlen = sizeof(struct ieee80211_hdr_3addr); | |
if ((pmlmeinfo->state&0x03) == WIFI_FW_AP_STATE) { | |
int len_diff; | |
u8 *wps_ie; | |
uint wps_ielen; | |
u8 sr = 0; | |
+ | |
memcpy(pframe, cur_network->IEs, cur_network->IELength); | |
len_diff = update_hidden_ssid( | |
pframe+_BEACON_IE_OFFSET_ | |
@@ -381,8 +379,8 @@ static void issue_beacon(struct adapter *padapter, int timeout_ms) | |
); | |
pframe += (cur_network->IELength+len_diff); | |
pattrib->pktlen += (cur_network->IELength+len_diff); | |
- wps_ie = rtw_get_wps_ie(pmgntframe->buf_addr+TXDESC_OFFSET+sizeof(struct rtw_ieee80211_hdr_3addr)+_BEACON_IE_OFFSET_, | |
- pattrib->pktlen-sizeof(struct rtw_ieee80211_hdr_3addr)-_BEACON_IE_OFFSET_, NULL, &wps_ielen); | |
+ 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); | |
if (wps_ie && wps_ielen > 0) | |
rtw_get_wps_attr_content(wps_ie, wps_ielen, WPS_ATTR_SELECTED_REGISTRAR, (u8 *)(&sr), NULL); | |
if (sr != 0) | |
@@ -465,7 +463,7 @@ static void issue_probersp(struct adapter *padapter, unsigned char *da) | |
struct xmit_frame *pmgntframe; | |
struct pkt_attrib *pattrib; | |
unsigned char *pframe; | |
- struct rtw_ieee80211_hdr *pwlanhdr; | |
+ struct ieee80211_hdr *pwlanhdr; | |
__le16 *fctrl; | |
unsigned char *mac, *bssid; | |
struct xmit_priv *pxmitpriv = &(padapter->xmitpriv); | |
@@ -492,22 +490,22 @@ static void issue_probersp(struct adapter *padapter, unsigned char *da) | |
memset(pmgntframe->buf_addr, 0, WLANHDR_OFFSET + TXDESC_OFFSET); | |
pframe = (u8 *)(pmgntframe->buf_addr) + TXDESC_OFFSET; | |
- pwlanhdr = (struct rtw_ieee80211_hdr *)pframe; | |
+ pwlanhdr = (struct ieee80211_hdr *)pframe; | |
mac = myid(&(padapter->eeprompriv)); | |
bssid = cur_network->MacAddress; | |
- fctrl = &(pwlanhdr->frame_ctl); | |
+ fctrl = &pwlanhdr->frame_control; | |
*(fctrl) = 0; | |
- memcpy(pwlanhdr->addr1, da, ETH_ALEN); | |
- memcpy(pwlanhdr->addr2, mac, ETH_ALEN); | |
- memcpy(pwlanhdr->addr3, bssid, ETH_ALEN); | |
+ ether_addr_copy(pwlanhdr->addr1, da); | |
+ ether_addr_copy(pwlanhdr->addr2, mac); | |
+ ether_addr_copy(pwlanhdr->addr3, bssid); | |
SetSeqNum(pwlanhdr, pmlmeext->mgnt_seq); | |
pmlmeext->mgnt_seq++; | |
SetFrameSubType(fctrl, WIFI_PROBERSP); | |
- pattrib->hdrlen = sizeof(struct rtw_ieee80211_hdr_3addr); | |
+ pattrib->hdrlen = sizeof(struct ieee80211_hdr_3addr); | |
pattrib->pktlen = pattrib->hdrlen; | |
pframe += pattrib->hdrlen; | |
@@ -605,17 +603,15 @@ static void issue_probersp(struct adapter *padapter, unsigned char *da) | |
pattrib->last_txcmdsz = pattrib->pktlen; | |
dump_mgntframe(padapter, pmgntframe); | |
- | |
- return; | |
} | |
-static int _issue_probereq(struct adapter *padapter, struct ndis_802_11_ssid *pssid, u8 *da, int wait_ack) | |
+static int issue_probereq(struct adapter *padapter, struct ndis_802_11_ssid *pssid, u8 *da, bool wait_ack) | |
{ | |
int ret = _FAIL; | |
struct xmit_frame *pmgntframe; | |
struct pkt_attrib *pattrib; | |
unsigned char *pframe; | |
- struct rtw_ieee80211_hdr *pwlanhdr; | |
+ struct ieee80211_hdr *pwlanhdr; | |
__le16 *fctrl; | |
unsigned char *mac; | |
unsigned char bssrate[NumRates]; | |
@@ -639,31 +635,31 @@ static int _issue_probereq(struct adapter *padapter, struct ndis_802_11_ssid *ps | |
memset(pmgntframe->buf_addr, 0, WLANHDR_OFFSET + TXDESC_OFFSET); | |
pframe = (u8 *)(pmgntframe->buf_addr) + TXDESC_OFFSET; | |
- pwlanhdr = (struct rtw_ieee80211_hdr *)pframe; | |
+ pwlanhdr = (struct ieee80211_hdr *)pframe; | |
mac = myid(&(padapter->eeprompriv)); | |
- fctrl = &(pwlanhdr->frame_ctl); | |
+ fctrl = &pwlanhdr->frame_control; | |
*(fctrl) = 0; | |
if (da) { | |
/* unicast probe request frame */ | |
- memcpy(pwlanhdr->addr1, da, ETH_ALEN); | |
- memcpy(pwlanhdr->addr3, da, ETH_ALEN); | |
+ ether_addr_copy(pwlanhdr->addr1, da); | |
+ ether_addr_copy(pwlanhdr->addr3, da); | |
} else { | |
/* broadcast probe request frame */ | |
- memcpy(pwlanhdr->addr1, bc_addr, ETH_ALEN); | |
- memcpy(pwlanhdr->addr3, bc_addr, ETH_ALEN); | |
+ ether_addr_copy(pwlanhdr->addr1, bc_addr); | |
+ ether_addr_copy(pwlanhdr->addr3, bc_addr); | |
} | |
- memcpy(pwlanhdr->addr2, mac, ETH_ALEN); | |
+ ether_addr_copy(pwlanhdr->addr2, mac); | |
SetSeqNum(pwlanhdr, pmlmeext->mgnt_seq); | |
pmlmeext->mgnt_seq++; | |
SetFrameSubType(pframe, WIFI_PROBEREQ); | |
- pframe += sizeof(struct rtw_ieee80211_hdr_3addr); | |
- pattrib->pktlen = sizeof(struct rtw_ieee80211_hdr_3addr); | |
+ pframe += sizeof(struct ieee80211_hdr_3addr); | |
+ pattrib->pktlen = sizeof(struct ieee80211_hdr_3addr); | |
if (pssid) | |
pframe = rtw_set_ie(pframe, _SSID_IE_, pssid->SsidLength, pssid->Ssid, &(pattrib->pktlen)); | |
@@ -702,22 +698,16 @@ static int _issue_probereq(struct adapter *padapter, struct ndis_802_11_ssid *ps | |
return ret; | |
} | |
-static inline void issue_probereq(struct adapter *padapter, | |
- struct ndis_802_11_ssid *pssid, u8 *da) | |
-{ | |
- _issue_probereq(padapter, pssid, da, false); | |
-} | |
- | |
static int issue_probereq_ex(struct adapter *padapter, | |
struct ndis_802_11_ssid *pssid, u8 *da, | |
int try_cnt, int wait_ms) | |
{ | |
int ret; | |
int i = 0; | |
- u32 start = jiffies; | |
+ unsigned long start = jiffies; | |
do { | |
- ret = _issue_probereq(padapter, pssid, da, wait_ms > 0 ? true : false); | |
+ ret = issue_probereq(padapter, pssid, da, wait_ms > 0 ? true : false); | |
i++; | |
@@ -738,11 +728,13 @@ static int issue_probereq_ex(struct adapter *padapter, | |
if (da) | |
DBG_88E(FUNC_ADPT_FMT" to %pM, ch:%u%s, %d/%d in %u ms\n", | |
FUNC_ADPT_ARG(padapter), da, rtw_get_oper_ch(padapter), | |
- ret == _SUCCESS ? ", acked" : "", i, try_cnt, rtw_get_passing_time_ms(start)); | |
+ ret == _SUCCESS ? ", acked" : "", i, try_cnt, | |
+ jiffies_to_msecs(jiffies - start)); | |
else | |
DBG_88E(FUNC_ADPT_FMT", ch:%u%s, %d/%d in %u ms\n", | |
FUNC_ADPT_ARG(padapter), rtw_get_oper_ch(padapter), | |
- ret == _SUCCESS ? ", acked" : "", i, try_cnt, rtw_get_passing_time_ms(start)); | |
+ ret == _SUCCESS ? ", acked" : "", i, try_cnt, | |
+ jiffies_to_msecs(jiffies - start)); | |
} | |
exit: | |
return ret; | |
@@ -755,7 +747,7 @@ static void issue_auth(struct adapter *padapter, struct sta_info *psta, | |
struct xmit_frame *pmgntframe; | |
struct pkt_attrib *pattrib; | |
unsigned char *pframe; | |
- struct rtw_ieee80211_hdr *pwlanhdr; | |
+ struct ieee80211_hdr *pwlanhdr; | |
__le16 *fctrl; | |
unsigned int val32; | |
u16 val16; | |
@@ -779,25 +771,27 @@ static void issue_auth(struct adapter *padapter, struct sta_info *psta, | |
memset(pmgntframe->buf_addr, 0, WLANHDR_OFFSET + TXDESC_OFFSET); | |
pframe = (u8 *)(pmgntframe->buf_addr) + TXDESC_OFFSET; | |
- pwlanhdr = (struct rtw_ieee80211_hdr *)pframe; | |
+ pwlanhdr = (struct ieee80211_hdr *)pframe; | |
- fctrl = &(pwlanhdr->frame_ctl); | |
+ fctrl = &pwlanhdr->frame_control; | |
*(fctrl) = 0; | |
SetSeqNum(pwlanhdr, pmlmeext->mgnt_seq); | |
pmlmeext->mgnt_seq++; | |
SetFrameSubType(pframe, WIFI_AUTH); | |
- pframe += sizeof(struct rtw_ieee80211_hdr_3addr); | |
- pattrib->pktlen = sizeof(struct rtw_ieee80211_hdr_3addr); | |
+ pframe += sizeof(struct ieee80211_hdr_3addr); | |
+ pattrib->pktlen = sizeof(struct ieee80211_hdr_3addr); | |
if (psta) {/* for AP mode */ | |
#ifdef CONFIG_88EU_AP_MODE | |
- memcpy(pwlanhdr->addr1, psta->hwaddr, ETH_ALEN); | |
- memcpy(pwlanhdr->addr2, myid(&(padapter->eeprompriv)), ETH_ALEN); | |
- memcpy(pwlanhdr->addr3, myid(&(padapter->eeprompriv)), ETH_ALEN); | |
+ ether_addr_copy(pwlanhdr->addr1, psta->hwaddr); | |
+ ether_addr_copy(pwlanhdr->addr2, | |
+ myid(&(padapter->eeprompriv))); | |
+ ether_addr_copy(pwlanhdr->addr3, | |
+ myid(&(padapter->eeprompriv))); | |
/* setting auth algo number */ | |
@@ -835,9 +829,10 @@ static void issue_auth(struct adapter *padapter, struct sta_info *psta, | |
} else { | |
__le32 le_tmp32; | |
__le16 le_tmp16; | |
- memcpy(pwlanhdr->addr1, pnetwork->MacAddress, ETH_ALEN); | |
- memcpy(pwlanhdr->addr2, myid(&padapter->eeprompriv), ETH_ALEN); | |
- memcpy(pwlanhdr->addr3, pnetwork->MacAddress, ETH_ALEN); | |
+ | |
+ ether_addr_copy(pwlanhdr->addr1, pnetwork->MacAddress); | |
+ ether_addr_copy(pwlanhdr->addr2, myid(&padapter->eeprompriv)); | |
+ ether_addr_copy(pwlanhdr->addr3, pnetwork->MacAddress); | |
/* setting auth algo number */ | |
val16 = (pmlmeinfo->auth_algo == dot11AuthAlgrthm_Shared) ? 1 : 0;/* 0:OPEN System, 1:Shared key */ | |
@@ -876,7 +871,7 @@ static void issue_auth(struct adapter *padapter, struct sta_info *psta, | |
SetPrivacy(fctrl); | |
- pattrib->hdrlen = sizeof(struct rtw_ieee80211_hdr_3addr); | |
+ pattrib->hdrlen = sizeof(struct ieee80211_hdr_3addr); | |
pattrib->encrypt = _WEP40_; | |
@@ -891,8 +886,6 @@ static void issue_auth(struct adapter *padapter, struct sta_info *psta, | |
rtw_wep_encrypt(padapter, (u8 *)pmgntframe); | |
DBG_88E("%s\n", __func__); | |
dump_mgntframe(padapter, pmgntframe); | |
- | |
- return; | |
} | |
@@ -901,7 +894,7 @@ static void issue_asocrsp(struct adapter *padapter, unsigned short status, | |
struct sta_info *pstat, int pkt_type) | |
{ | |
struct xmit_frame *pmgntframe; | |
- struct rtw_ieee80211_hdr *pwlanhdr; | |
+ struct ieee80211_hdr *pwlanhdr; | |
struct pkt_attrib *pattrib; | |
unsigned char *pbuf, *pframe; | |
unsigned short val; | |
@@ -928,14 +921,15 @@ static void issue_asocrsp(struct adapter *padapter, unsigned short status, | |
memset(pmgntframe->buf_addr, 0, WLANHDR_OFFSET + TXDESC_OFFSET); | |
pframe = (u8 *)(pmgntframe->buf_addr) + TXDESC_OFFSET; | |
- pwlanhdr = (struct rtw_ieee80211_hdr *)pframe; | |
+ pwlanhdr = (struct ieee80211_hdr *)pframe; | |
- fctrl = &(pwlanhdr->frame_ctl); | |
+ fctrl = &pwlanhdr->frame_control; | |
*(fctrl) = 0; | |
- memcpy((void *)GetAddr1Ptr(pwlanhdr), pstat->hwaddr, ETH_ALEN); | |
- memcpy((void *)GetAddr2Ptr(pwlanhdr), myid(&(padapter->eeprompriv)), ETH_ALEN); | |
- memcpy((void *)GetAddr3Ptr(pwlanhdr), pnetwork->MacAddress, ETH_ALEN); | |
+ ether_addr_copy((void *)GetAddr1Ptr(pwlanhdr), pstat->hwaddr); | |
+ ether_addr_copy((void *)GetAddr2Ptr(pwlanhdr), | |
+ myid(&(padapter->eeprompriv))); | |
+ ether_addr_copy((void *)GetAddr3Ptr(pwlanhdr), pnetwork->MacAddress); | |
SetSeqNum(pwlanhdr, pmlmeext->mgnt_seq); | |
@@ -945,7 +939,7 @@ static void issue_asocrsp(struct adapter *padapter, unsigned short status, | |
else | |
return; | |
- pattrib->hdrlen = sizeof(struct rtw_ieee80211_hdr_3addr); | |
+ pattrib->hdrlen = sizeof(struct ieee80211_hdr_3addr); | |
pattrib->pktlen += pattrib->hdrlen; | |
pframe += pattrib->hdrlen; | |
@@ -1029,11 +1023,10 @@ static void issue_assocreq(struct adapter *padapter) | |
struct xmit_frame *pmgntframe; | |
struct pkt_attrib *pattrib; | |
unsigned char *pframe, *p; | |
- struct rtw_ieee80211_hdr *pwlanhdr; | |
+ struct ieee80211_hdr *pwlanhdr; | |
__le16 *fctrl; | |
- __le16 le_tmp; | |
unsigned int i, j, ie_len, index = 0; | |
- unsigned char rf_type, bssrate[NumRates], sta_bssrate[NumRates]; | |
+ unsigned char bssrate[NumRates], sta_bssrate[NumRates]; | |
struct ndis_802_11_var_ie *pIE; | |
struct registry_priv *pregpriv = &padapter->registrypriv; | |
struct xmit_priv *pxmitpriv = &(padapter->xmitpriv); | |
@@ -1053,20 +1046,20 @@ static void issue_assocreq(struct adapter *padapter) | |
memset(pmgntframe->buf_addr, 0, WLANHDR_OFFSET + TXDESC_OFFSET); | |
pframe = (u8 *)(pmgntframe->buf_addr) + TXDESC_OFFSET; | |
- pwlanhdr = (struct rtw_ieee80211_hdr *)pframe; | |
+ pwlanhdr = (struct ieee80211_hdr *)pframe; | |
- fctrl = &(pwlanhdr->frame_ctl); | |
+ fctrl = &pwlanhdr->frame_control; | |
*(fctrl) = 0; | |
- memcpy(pwlanhdr->addr1, pnetwork->MacAddress, ETH_ALEN); | |
- memcpy(pwlanhdr->addr2, myid(&(padapter->eeprompriv)), ETH_ALEN); | |
- memcpy(pwlanhdr->addr3, pnetwork->MacAddress, ETH_ALEN); | |
+ ether_addr_copy(pwlanhdr->addr1, pnetwork->MacAddress); | |
+ ether_addr_copy(pwlanhdr->addr2, myid(&(padapter->eeprompriv))); | |
+ ether_addr_copy(pwlanhdr->addr3, pnetwork->MacAddress); | |
SetSeqNum(pwlanhdr, pmlmeext->mgnt_seq); | |
pmlmeext->mgnt_seq++; | |
SetFrameSubType(pframe, WIFI_ASSOCREQ); | |
- pframe += sizeof(struct rtw_ieee80211_hdr_3addr); | |
- pattrib->pktlen = sizeof(struct rtw_ieee80211_hdr_3addr); | |
+ pframe += sizeof(struct ieee80211_hdr_3addr); | |
+ pattrib->pktlen = sizeof(struct ieee80211_hdr_3addr); | |
/* caps */ | |
@@ -1077,8 +1070,7 @@ static void issue_assocreq(struct adapter *padapter) | |
/* listen interval */ | |
/* todo: listen interval for power saving */ | |
- le_tmp = cpu_to_le16(3); | |
- memcpy(pframe , (unsigned char *)&le_tmp, 2); | |
+ put_unaligned_le16(3, pframe); | |
pframe += 2; | |
pattrib->pktlen += 2; | |
@@ -1146,36 +1138,20 @@ static void issue_assocreq(struct adapter *padapter) | |
if (padapter->mlmepriv.htpriv.ht_option) { | |
p = rtw_get_ie((pmlmeinfo->network.IEs + sizeof(struct ndis_802_11_fixed_ie)), _HT_CAPABILITY_IE_, &ie_len, (pmlmeinfo->network.IELength - sizeof(struct ndis_802_11_fixed_ie))); | |
if ((p != NULL) && (!(is_ap_in_tkip(padapter)))) { | |
- memcpy(&(pmlmeinfo->HT_caps), (p + 2), sizeof(struct HT_caps_element)); | |
+ memcpy(&pmlmeinfo->HT_caps, p + 2, sizeof(struct ieee80211_ht_cap)); | |
/* to disable 40M Hz support while gd_bw_40MHz_en = 0 */ | |
if (pregpriv->cbw40_enable == 0) | |
- pmlmeinfo->HT_caps.u.HT_cap_element.HT_caps_info &= cpu_to_le16(~(BIT(6) | BIT(1))); | |
+ pmlmeinfo->HT_caps.cap_info &= cpu_to_le16(~(BIT(6) | BIT(1))); | |
else | |
- pmlmeinfo->HT_caps.u.HT_cap_element.HT_caps_info |= cpu_to_le16(BIT(1)); | |
+ pmlmeinfo->HT_caps.cap_info |= cpu_to_le16(BIT(1)); | |
/* todo: disable SM power save mode */ | |
- pmlmeinfo->HT_caps.u.HT_cap_element.HT_caps_info |= cpu_to_le16(0x000c); | |
+ pmlmeinfo->HT_caps.cap_info |= cpu_to_le16(0x000c); | |
- rtw_hal_get_hwreg(padapter, HW_VAR_RF_TYPE, (u8 *)(&rf_type)); | |
- switch (rf_type) { | |
- case RF_1T1R: | |
if (pregpriv->rx_stbc) | |
- pmlmeinfo->HT_caps.u.HT_cap_element.HT_caps_info |= cpu_to_le16(0x0100);/* RX STBC One spatial stream */ | |
- memcpy(pmlmeinfo->HT_caps.u.HT_cap_element.MCS_rate, MCS_rate_1R, 16); | |
- break; | |
- case RF_2T2R: | |
- case RF_1T2R: | |
- default: | |
- if ((pregpriv->rx_stbc == 0x3) ||/* enable for 2.4/5 GHz */ | |
- ((pmlmeext->cur_wireless_mode & WIRELESS_11_24N) && (pregpriv->rx_stbc == 0x1)) || /* enable for 2.4GHz */ | |
- (pregpriv->wifi_spec == 1)) { | |
- DBG_88E("declare supporting RX STBC\n"); | |
- pmlmeinfo->HT_caps.u.HT_cap_element.HT_caps_info |= cpu_to_le16(0x0200);/* RX STBC two spatial stream */ | |
- } | |
- memcpy(pmlmeinfo->HT_caps.u.HT_cap_element.MCS_rate, MCS_rate_2R, 16); | |
- break; | |
- } | |
+ pmlmeinfo->HT_caps.cap_info |= cpu_to_le16(0x0100);/* RX STBC One spatial stream */ | |
+ memcpy((u8 *)&pmlmeinfo->HT_caps.mcs, MCS_rate_1R, 16); | |
pframe = rtw_set_ie(pframe, _HT_CAPABILITY_IE_, ie_len, (u8 *)(&(pmlmeinfo->HT_caps)), &(pattrib->pktlen)); | |
} | |
} | |
@@ -1217,8 +1193,6 @@ static void issue_assocreq(struct adapter *padapter) | |
rtw_buf_update(&pmlmepriv->assoc_req, &pmlmepriv->assoc_req_len, (u8 *)pwlanhdr, pattrib->pktlen); | |
else | |
rtw_buf_free(&pmlmepriv->assoc_req, &pmlmepriv->assoc_req_len); | |
- | |
- return; | |
} | |
/* when wait_ack is true, this function should be called at process context */ | |
@@ -1228,7 +1202,7 @@ static int _issue_nulldata(struct adapter *padapter, unsigned char *da, unsigned | |
struct xmit_frame *pmgntframe; | |
struct pkt_attrib *pattrib; | |
unsigned char *pframe; | |
- struct rtw_ieee80211_hdr *pwlanhdr; | |
+ struct ieee80211_hdr *pwlanhdr; | |
__le16 *fctrl; | |
struct xmit_priv *pxmitpriv; | |
struct mlme_ext_priv *pmlmeext; | |
@@ -1255,9 +1229,9 @@ static int _issue_nulldata(struct adapter *padapter, unsigned char *da, unsigned | |
memset(pmgntframe->buf_addr, 0, WLANHDR_OFFSET + TXDESC_OFFSET); | |
pframe = (u8 *)(pmgntframe->buf_addr) + TXDESC_OFFSET; | |
- pwlanhdr = (struct rtw_ieee80211_hdr *)pframe; | |
+ pwlanhdr = (struct ieee80211_hdr *)pframe; | |
- fctrl = &(pwlanhdr->frame_ctl); | |
+ fctrl = &pwlanhdr->frame_control; | |
*(fctrl) = 0; | |
if ((pmlmeinfo->state&0x03) == WIFI_FW_AP_STATE) | |
@@ -1268,16 +1242,16 @@ static int _issue_nulldata(struct adapter *padapter, unsigned char *da, unsigned | |
if (power_mode) | |
SetPwrMgt(fctrl); | |
- memcpy(pwlanhdr->addr1, da, ETH_ALEN); | |
- memcpy(pwlanhdr->addr2, myid(&(padapter->eeprompriv)), ETH_ALEN); | |
- memcpy(pwlanhdr->addr3, pnetwork->MacAddress, ETH_ALEN); | |
+ ether_addr_copy(pwlanhdr->addr1, da); | |
+ ether_addr_copy(pwlanhdr->addr2, myid(&(padapter->eeprompriv))); | |
+ ether_addr_copy(pwlanhdr->addr3, pnetwork->MacAddress); | |
SetSeqNum(pwlanhdr, pmlmeext->mgnt_seq); | |
pmlmeext->mgnt_seq++; | |
SetFrameSubType(pframe, WIFI_DATA_NULL); | |
- pframe += sizeof(struct rtw_ieee80211_hdr_3addr); | |
- pattrib->pktlen = sizeof(struct rtw_ieee80211_hdr_3addr); | |
+ pframe += sizeof(struct ieee80211_hdr_3addr); | |
+ pattrib->pktlen = sizeof(struct ieee80211_hdr_3addr); | |
pattrib->last_txcmdsz = pattrib->pktlen; | |
@@ -1299,7 +1273,7 @@ int issue_nulldata(struct adapter *padapter, unsigned char *da, unsigned int pow | |
{ | |
int ret; | |
int i = 0; | |
- u32 start = jiffies; | |
+ unsigned long start = jiffies; | |
struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); | |
struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); | |
struct wlan_bssid_ex *pnetwork = &(pmlmeinfo->network); | |
@@ -1329,11 +1303,13 @@ int issue_nulldata(struct adapter *padapter, unsigned char *da, unsigned int pow | |
if (da) | |
DBG_88E(FUNC_ADPT_FMT" to %pM, ch:%u%s, %d/%d in %u ms\n", | |
FUNC_ADPT_ARG(padapter), da, rtw_get_oper_ch(padapter), | |
- ret == _SUCCESS ? ", acked" : "", i, try_cnt, rtw_get_passing_time_ms(start)); | |
+ ret == _SUCCESS ? ", acked" : "", i, try_cnt, | |
+ jiffies_to_msecs(jiffies - start)); | |
else | |
DBG_88E(FUNC_ADPT_FMT", ch:%u%s, %d/%d in %u ms\n", | |
FUNC_ADPT_ARG(padapter), rtw_get_oper_ch(padapter), | |
- ret == _SUCCESS ? ", acked" : "", i, try_cnt, rtw_get_passing_time_ms(start)); | |
+ ret == _SUCCESS ? ", acked" : "", i, try_cnt, | |
+ jiffies_to_msecs(jiffies - start)); | |
} | |
exit: | |
return ret; | |
@@ -1346,7 +1322,7 @@ static int _issue_qos_nulldata(struct adapter *padapter, unsigned char *da, u16 | |
struct xmit_frame *pmgntframe; | |
struct pkt_attrib *pattrib; | |
unsigned char *pframe; | |
- struct rtw_ieee80211_hdr *pwlanhdr; | |
+ struct ieee80211_hdr *pwlanhdr; | |
__le16 *fctrl; | |
unsigned short *qc; | |
struct xmit_priv *pxmitpriv = &(padapter->xmitpriv); | |
@@ -1373,9 +1349,9 @@ static int _issue_qos_nulldata(struct adapter *padapter, unsigned char *da, u16 | |
memset(pmgntframe->buf_addr, 0, WLANHDR_OFFSET + TXDESC_OFFSET); | |
pframe = (u8 *)(pmgntframe->buf_addr) + TXDESC_OFFSET; | |
- pwlanhdr = (struct rtw_ieee80211_hdr *)pframe; | |
+ pwlanhdr = (struct ieee80211_hdr *)pframe; | |
- fctrl = &(pwlanhdr->frame_ctl); | |
+ fctrl = &pwlanhdr->frame_control; | |
*(fctrl) = 0; | |
if ((pmlmeinfo->state&0x03) == WIFI_FW_AP_STATE) | |
@@ -1394,16 +1370,16 @@ static int _issue_qos_nulldata(struct adapter *padapter, unsigned char *da, u16 | |
SetAckpolicy(qc, pattrib->ack_policy); | |
- memcpy(pwlanhdr->addr1, da, ETH_ALEN); | |
- memcpy(pwlanhdr->addr2, myid(&(padapter->eeprompriv)), ETH_ALEN); | |
- memcpy(pwlanhdr->addr3, pnetwork->MacAddress, ETH_ALEN); | |
+ ether_addr_copy(pwlanhdr->addr1, da); | |
+ ether_addr_copy(pwlanhdr->addr2, myid(&(padapter->eeprompriv))); | |
+ ether_addr_copy(pwlanhdr->addr3, pnetwork->MacAddress); | |
SetSeqNum(pwlanhdr, pmlmeext->mgnt_seq); | |
pmlmeext->mgnt_seq++; | |
SetFrameSubType(pframe, WIFI_QOS_DATA_NULL); | |
- pframe += sizeof(struct rtw_ieee80211_hdr_3addr_qos); | |
- pattrib->pktlen = sizeof(struct rtw_ieee80211_hdr_3addr_qos); | |
+ pframe += sizeof(struct ieee80211_qos_hdr); | |
+ pattrib->pktlen = sizeof(struct ieee80211_qos_hdr); | |
pattrib->last_txcmdsz = pattrib->pktlen; | |
@@ -1424,7 +1400,7 @@ int issue_qos_nulldata(struct adapter *padapter, unsigned char *da, u16 tid, int | |
{ | |
int ret; | |
int i = 0; | |
- u32 start = jiffies; | |
+ unsigned long start = jiffies; | |
struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); | |
struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); | |
struct wlan_bssid_ex *pnetwork = &(pmlmeinfo->network); | |
@@ -1454,11 +1430,13 @@ int issue_qos_nulldata(struct adapter *padapter, unsigned char *da, u16 tid, int | |
if (da) | |
DBG_88E(FUNC_ADPT_FMT" to %pM, ch:%u%s, %d/%d in %u ms\n", | |
FUNC_ADPT_ARG(padapter), da, rtw_get_oper_ch(padapter), | |
- ret == _SUCCESS ? ", acked" : "", i, try_cnt, rtw_get_passing_time_ms(start)); | |
+ ret == _SUCCESS ? ", acked" : "", i, try_cnt, | |
+ jiffies_to_msecs(jiffies - start)); | |
else | |
DBG_88E(FUNC_ADPT_FMT", ch:%u%s, %d/%d in %u ms\n", | |
FUNC_ADPT_ARG(padapter), rtw_get_oper_ch(padapter), | |
- ret == _SUCCESS ? ", acked" : "", i, try_cnt, rtw_get_passing_time_ms(start)); | |
+ ret == _SUCCESS ? ", acked" : "", i, try_cnt, | |
+ jiffies_to_msecs(jiffies - start)); | |
} | |
exit: | |
return ret; | |
@@ -1469,7 +1447,7 @@ static int _issue_deauth(struct adapter *padapter, unsigned char *da, unsigned s | |
struct xmit_frame *pmgntframe; | |
struct pkt_attrib *pattrib; | |
unsigned char *pframe; | |
- struct rtw_ieee80211_hdr *pwlanhdr; | |
+ struct ieee80211_hdr *pwlanhdr; | |
__le16 *fctrl; | |
struct xmit_priv *pxmitpriv = &(padapter->xmitpriv); | |
struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); | |
@@ -1490,21 +1468,21 @@ static int _issue_deauth(struct adapter *padapter, unsigned char *da, unsigned s | |
memset(pmgntframe->buf_addr, 0, WLANHDR_OFFSET + TXDESC_OFFSET); | |
pframe = (u8 *)(pmgntframe->buf_addr) + TXDESC_OFFSET; | |
- pwlanhdr = (struct rtw_ieee80211_hdr *)pframe; | |
+ pwlanhdr = (struct ieee80211_hdr *)pframe; | |
- fctrl = &(pwlanhdr->frame_ctl); | |
+ fctrl = &pwlanhdr->frame_control; | |
*(fctrl) = 0; | |
- memcpy(pwlanhdr->addr1, da, ETH_ALEN); | |
- memcpy(pwlanhdr->addr2, myid(&(padapter->eeprompriv)), ETH_ALEN); | |
- memcpy(pwlanhdr->addr3, pnetwork->MacAddress, ETH_ALEN); | |
+ ether_addr_copy(pwlanhdr->addr1, da); | |
+ ether_addr_copy(pwlanhdr->addr2, myid(&(padapter->eeprompriv))); | |
+ ether_addr_copy(pwlanhdr->addr3, pnetwork->MacAddress); | |
SetSeqNum(pwlanhdr, pmlmeext->mgnt_seq); | |
pmlmeext->mgnt_seq++; | |
SetFrameSubType(pframe, WIFI_DEAUTH); | |
- pframe += sizeof(struct rtw_ieee80211_hdr_3addr); | |
- pattrib->pktlen = sizeof(struct rtw_ieee80211_hdr_3addr); | |
+ pframe += sizeof(struct ieee80211_hdr_3addr); | |
+ pattrib->pktlen = sizeof(struct ieee80211_hdr_3addr); | |
le_tmp = cpu_to_le16(reason); | |
pframe = rtw_set_fixed_ie(pframe, _RSON_CODE_, &le_tmp, | |
@@ -1536,7 +1514,7 @@ static int issue_deauth_ex(struct adapter *padapter, u8 *da, | |
{ | |
int ret; | |
int i = 0; | |
- u32 start = jiffies; | |
+ unsigned long start = jiffies; | |
do { | |
ret = _issue_deauth(padapter, da, reason, wait_ms > 0 ? true : false); | |
@@ -1559,76 +1537,18 @@ static int issue_deauth_ex(struct adapter *padapter, u8 *da, | |
if (da) | |
DBG_88E(FUNC_ADPT_FMT" to %pM, ch:%u%s, %d/%d in %u ms\n", | |
FUNC_ADPT_ARG(padapter), da, rtw_get_oper_ch(padapter), | |
- ret == _SUCCESS ? ", acked" : "", i, try_cnt, rtw_get_passing_time_ms(start)); | |
+ ret == _SUCCESS ? ", acked" : "", i, try_cnt, | |
+ jiffies_to_msecs(jiffies - start)); | |
else | |
DBG_88E(FUNC_ADPT_FMT", ch:%u%s, %d/%d in %u ms\n", | |
FUNC_ADPT_ARG(padapter), rtw_get_oper_ch(padapter), | |
- ret == _SUCCESS ? ", acked" : "", i, try_cnt, rtw_get_passing_time_ms(start)); | |
+ ret == _SUCCESS ? ", acked" : "", i, try_cnt, | |
+ jiffies_to_msecs(jiffies - start)); | |
} | |
exit: | |
return ret; | |
} | |
-void issue_action_spct_ch_switch(struct adapter *padapter, u8 *ra, u8 new_ch, u8 ch_offset) | |
-{ | |
- struct xmit_frame *pmgntframe; | |
- struct pkt_attrib *pattrib; | |
- unsigned char *pframe; | |
- struct rtw_ieee80211_hdr *pwlanhdr; | |
- __le16 *fctrl; | |
- struct xmit_priv *pxmitpriv = &(padapter->xmitpriv); | |
- struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); | |
- | |
- | |
- DBG_88E(FUNC_NDEV_FMT" ra =%pM, ch:%u, offset:%u\n", | |
- FUNC_NDEV_ARG(padapter->pnetdev), ra, new_ch, ch_offset); | |
- | |
- pmgntframe = alloc_mgtxmitframe(pxmitpriv); | |
- if (pmgntframe == NULL) | |
- return; | |
- | |
- /* update attribute */ | |
- pattrib = &pmgntframe->attrib; | |
- update_mgntframe_attrib(padapter, pattrib); | |
- | |
- memset(pmgntframe->buf_addr, 0, WLANHDR_OFFSET + TXDESC_OFFSET); | |
- | |
- pframe = (u8 *)(pmgntframe->buf_addr) + TXDESC_OFFSET; | |
- pwlanhdr = (struct rtw_ieee80211_hdr *)pframe; | |
- | |
- fctrl = &(pwlanhdr->frame_ctl); | |
- *(fctrl) = 0; | |
- | |
- memcpy(pwlanhdr->addr1, ra, ETH_ALEN); /* RA */ | |
- memcpy(pwlanhdr->addr2, myid(&(padapter->eeprompriv)), ETH_ALEN); /* TA */ | |
- memcpy(pwlanhdr->addr3, ra, ETH_ALEN); /* DA = RA */ | |
- | |
- SetSeqNum(pwlanhdr, pmlmeext->mgnt_seq); | |
- pmlmeext->mgnt_seq++; | |
- SetFrameSubType(pframe, WIFI_ACTION); | |
- | |
- pframe += sizeof(struct rtw_ieee80211_hdr_3addr); | |
- pattrib->pktlen = sizeof(struct rtw_ieee80211_hdr_3addr); | |
- | |
- /* category, action */ | |
- { | |
- u8 category, action; | |
- category = RTW_WLAN_CATEGORY_SPECTRUM_MGMT; | |
- action = RTW_WLAN_ACTION_SPCT_CHL_SWITCH; | |
- | |
- pframe = rtw_set_fixed_ie(pframe, 1, &(category), &(pattrib->pktlen)); | |
- pframe = rtw_set_fixed_ie(pframe, 1, &(action), &(pattrib->pktlen)); | |
- } | |
- | |
- pframe = rtw_set_ie_ch_switch(pframe, &(pattrib->pktlen), 0, new_ch, 0); | |
- pframe = rtw_set_ie_secondary_ch_offset(pframe, &(pattrib->pktlen), | |
- hal_ch_offset_to_secondary_ch_offset(ch_offset)); | |
- | |
- pattrib->last_txcmdsz = pattrib->pktlen; | |
- | |
- dump_mgntframe(padapter, pmgntframe); | |
-} | |
- | |
static void issue_action_BA(struct adapter *padapter, unsigned char *raddr, | |
unsigned char action, unsigned short status) | |
{ | |
@@ -1643,7 +1563,7 @@ static void issue_action_BA(struct adapter *padapter, unsigned char *raddr, | |
struct xmit_frame *pmgntframe; | |
struct pkt_attrib *pattrib; | |
u8 *pframe; | |
- struct rtw_ieee80211_hdr *pwlanhdr; | |
+ struct ieee80211_hdr *pwlanhdr; | |
__le16 *fctrl; | |
struct xmit_priv *pxmitpriv = &(padapter->xmitpriv); | |
struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv); | |
@@ -1666,22 +1586,21 @@ static void issue_action_BA(struct adapter *padapter, unsigned char *raddr, | |
memset(pmgntframe->buf_addr, 0, WLANHDR_OFFSET + TXDESC_OFFSET); | |
pframe = (u8 *)(pmgntframe->buf_addr) + TXDESC_OFFSET; | |
- pwlanhdr = (struct rtw_ieee80211_hdr *)pframe; | |
+ pwlanhdr = (struct ieee80211_hdr *)pframe; | |
- fctrl = &(pwlanhdr->frame_ctl); | |
+ fctrl = &pwlanhdr->frame_control; | |
*(fctrl) = 0; | |
- /* memcpy(pwlanhdr->addr1, get_my_bssid(&(pmlmeinfo->network)), ETH_ALEN); */ | |
- memcpy(pwlanhdr->addr1, raddr, ETH_ALEN); | |
- memcpy(pwlanhdr->addr2, myid(&(padapter->eeprompriv)), ETH_ALEN); | |
- memcpy(pwlanhdr->addr3, pnetwork->MacAddress, ETH_ALEN); | |
+ ether_addr_copy(pwlanhdr->addr1, raddr); | |
+ ether_addr_copy(pwlanhdr->addr2, myid(&(padapter->eeprompriv))); | |
+ ether_addr_copy(pwlanhdr->addr3, pnetwork->MacAddress); | |
SetSeqNum(pwlanhdr, pmlmeext->mgnt_seq); | |
pmlmeext->mgnt_seq++; | |
SetFrameSubType(pframe, WIFI_ACTION); | |
- pframe += sizeof(struct rtw_ieee80211_hdr_3addr); | |
- pattrib->pktlen = sizeof(struct rtw_ieee80211_hdr_3addr); | |
+ pframe += sizeof(struct ieee80211_hdr_3addr); | |
+ pattrib->pktlen = sizeof(struct ieee80211_hdr_3addr); | |
pframe = rtw_set_fixed_ie(pframe, 1, &(category), &(pattrib->pktlen)); | |
pframe = rtw_set_fixed_ie(pframe, 1, &(action), &(pattrib->pktlen)); | |
@@ -1790,7 +1709,7 @@ static void issue_action_BSSCoexistPacket(struct adapter *padapter) | |
struct xmit_frame *pmgntframe; | |
struct pkt_attrib *pattrib; | |
unsigned char *pframe; | |
- struct rtw_ieee80211_hdr *pwlanhdr; | |
+ struct ieee80211_hdr *pwlanhdr; | |
__le16 *fctrl; | |
struct wlan_network *pnetwork = NULL; | |
struct xmit_priv *pxmitpriv = &(padapter->xmitpriv); | |
@@ -1826,21 +1745,21 @@ static void issue_action_BSSCoexistPacket(struct adapter *padapter) | |
memset(pmgntframe->buf_addr, 0, WLANHDR_OFFSET + TXDESC_OFFSET); | |
pframe = (u8 *)(pmgntframe->buf_addr) + TXDESC_OFFSET; | |
- pwlanhdr = (struct rtw_ieee80211_hdr *)pframe; | |
+ pwlanhdr = (struct ieee80211_hdr *)pframe; | |
- fctrl = &(pwlanhdr->frame_ctl); | |
+ fctrl = &pwlanhdr->frame_control; | |
*(fctrl) = 0; | |
- memcpy(pwlanhdr->addr1, cur_network->MacAddress, ETH_ALEN); | |
- memcpy(pwlanhdr->addr2, myid(&(padapter->eeprompriv)), ETH_ALEN); | |
- memcpy(pwlanhdr->addr3, cur_network->MacAddress, ETH_ALEN); | |
+ ether_addr_copy(pwlanhdr->addr1, cur_network->MacAddress); | |
+ ether_addr_copy(pwlanhdr->addr2, myid(&(padapter->eeprompriv))); | |
+ ether_addr_copy(pwlanhdr->addr3, cur_network->MacAddress); | |
SetSeqNum(pwlanhdr, pmlmeext->mgnt_seq); | |
pmlmeext->mgnt_seq++; | |
SetFrameSubType(pframe, WIFI_ACTION); | |
- pframe += sizeof(struct rtw_ieee80211_hdr_3addr); | |
- pattrib->pktlen = sizeof(struct rtw_ieee80211_hdr_3addr); | |
+ pframe += sizeof(struct ieee80211_hdr_3addr); | |
+ pattrib->pktlen = sizeof(struct ieee80211_hdr_3addr); | |
pframe = rtw_set_fixed_ie(pframe, 1, &(category), &(pattrib->pktlen)); | |
pframe = rtw_set_fixed_ie(pframe, 1, &(action), &(pattrib->pktlen)); | |
@@ -1867,7 +1786,7 @@ static void issue_action_BSSCoexistPacket(struct adapter *padapter) | |
plist = phead->next; | |
while (phead != plist) { | |
- int len; | |
+ uint len; | |
u8 *p; | |
struct wlan_bssid_ex *pbss_network; | |
@@ -1965,7 +1884,7 @@ unsigned int send_beacon(struct adapter *padapter) | |
int issue = 0; | |
int poll = 0; | |
- u32 start = jiffies; | |
+ unsigned long start = jiffies; | |
rtw_hal_set_hwreg(padapter, HW_VAR_BCN_VALID, NULL); | |
do { | |
@@ -1981,13 +1900,16 @@ unsigned int send_beacon(struct adapter *padapter) | |
if (padapter->bSurpriseRemoved || padapter->bDriverStopped) | |
return _FAIL; | |
if (!bxmitok) { | |
- DBG_88E("%s fail! %u ms\n", __func__, rtw_get_passing_time_ms(start)); | |
+ DBG_88E("%s fail! %u ms\n", __func__, | |
+ jiffies_to_msecs(jiffies - start)); | |
return _FAIL; | |
} else { | |
- u32 passing_time = rtw_get_passing_time_ms(start); | |
+ u32 passing_time = jiffies_to_msecs(jiffies - start); | |
if (passing_time > 100 || issue > 3) | |
- DBG_88E("%s success, issue:%d, poll:%d, %u ms\n", __func__, issue, poll, rtw_get_passing_time_ms(start)); | |
+ DBG_88E("%s success, issue:%d, poll:%d, %u ms\n", | |
+ __func__, issue, poll, | |
+ jiffies_to_msecs(jiffies - start)); | |
return _SUCCESS; | |
} | |
} | |
@@ -2026,27 +1948,32 @@ static void site_survey(struct adapter *padapter) | |
if (ScanType == SCAN_ACTIVE) { /* obey the channel plan setting... */ | |
int i; | |
+ | |
for (i = 0; i < RTW_SSID_SCAN_AMOUNT; i++) { | |
if (pmlmeext->sitesurvey_res.ssid[i].SsidLength) { | |
/* todo: to issue two probe req??? */ | |
- issue_probereq(padapter, &(pmlmeext->sitesurvey_res.ssid[i]), NULL); | |
+ issue_probereq(padapter, | |
+ &(pmlmeext->sitesurvey_res.ssid[i]), | |
+ NULL, false); | |
/* msleep(SURVEY_TO>>1); */ | |
- issue_probereq(padapter, &(pmlmeext->sitesurvey_res.ssid[i]), NULL); | |
+ issue_probereq(padapter, | |
+ &(pmlmeext->sitesurvey_res.ssid[i]), | |
+ NULL, false); | |
} | |
} | |
if (pmlmeext->sitesurvey_res.scan_mode == SCAN_ACTIVE) { | |
/* todo: to issue two probe req??? */ | |
- issue_probereq(padapter, NULL, NULL); | |
+ issue_probereq(padapter, NULL, NULL, false); | |
/* msleep(SURVEY_TO>>1); */ | |
- issue_probereq(padapter, NULL, NULL); | |
+ issue_probereq(padapter, NULL, NULL, false); | |
} | |
if (pmlmeext->sitesurvey_res.scan_mode == SCAN_ACTIVE) { | |
/* todo: to issue two probe req??? */ | |
- issue_probereq(padapter, NULL, NULL); | |
+ issue_probereq(padapter, NULL, NULL, false); | |
/* msleep(SURVEY_TO>>1); */ | |
- issue_probereq(padapter, NULL, NULL); | |
+ issue_probereq(padapter, NULL, NULL, false); | |
} | |
} | |
@@ -2098,7 +2025,6 @@ static void site_survey(struct adapter *padapter) | |
issue_action_BSSCoexistPacket(padapter); | |
issue_action_BSSCoexistPacket(padapter); | |
} | |
- return; | |
} | |
/* collect bss info from Beacon and Probe request/response frames. */ | |
@@ -2110,14 +2036,14 @@ static u8 collect_bss_info(struct adapter *padapter, | |
u32 len; | |
u8 *p; | |
u16 val16, subtype; | |
- u8 *pframe = precv_frame->rx_data; | |
- u32 packet_len = precv_frame->len; | |
+ u8 *pframe = precv_frame->pkt->data; | |
+ u32 packet_len = precv_frame->pkt->len; | |
u8 ie_offset; | |
struct registry_priv *pregistrypriv = &padapter->registrypriv; | |
struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; | |
struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); | |
- len = packet_len - sizeof(struct rtw_ieee80211_hdr_3addr); | |
+ len = packet_len - sizeof(struct ieee80211_hdr_3addr); | |
if (len > MAX_IE_SZ) | |
return _FAIL; | |
@@ -2147,7 +2073,7 @@ static u8 collect_bss_info(struct adapter *padapter, | |
/* below is to copy the information element */ | |
bssid->IELength = len; | |
- memcpy(bssid->IEs, (pframe + sizeof(struct rtw_ieee80211_hdr_3addr)), bssid->IELength); | |
+ memcpy(bssid->IEs, (pframe + sizeof(struct ieee80211_hdr_3addr)), bssid->IELength); | |
/* get the signal strength in dBM.raw data */ | |
bssid->Rssi = precv_frame->attrib.phy_info.recvpower; | |
@@ -2215,6 +2141,7 @@ static u8 collect_bss_info(struct adapter *padapter, | |
p = rtw_get_ie(bssid->IEs + ie_offset, _HT_ADD_INFO_IE_, &len, bssid->IELength - ie_offset); | |
if (p) { | |
struct HT_info_element *HT_info = (struct HT_info_element *)(p + 2); | |
+ | |
bssid->Configuration.DSConfig = HT_info->primary_channel; | |
} else { /* use current channel */ | |
bssid->Configuration.DSConfig = rtw_get_oper_ch(padapter); | |
@@ -2224,7 +2151,7 @@ static u8 collect_bss_info(struct adapter *padapter, | |
if (subtype == WIFI_PROBEREQ) { | |
/* FIXME */ | |
bssid->InfrastructureMode = Ndis802_11Infrastructure; | |
- memcpy(bssid->MacAddress, GetAddr2Ptr(pframe), ETH_ALEN); | |
+ ether_addr_copy(bssid->MacAddress, GetAddr2Ptr(pframe)); | |
bssid->Privacy = 1; | |
return _SUCCESS; | |
} | |
@@ -2236,10 +2163,10 @@ static u8 collect_bss_info(struct adapter *padapter, | |
if (val16 & BIT(0)) { | |
bssid->InfrastructureMode = Ndis802_11Infrastructure; | |
- memcpy(bssid->MacAddress, GetAddr2Ptr(pframe), ETH_ALEN); | |
+ ether_addr_copy(bssid->MacAddress, GetAddr2Ptr(pframe)); | |
} else { | |
bssid->InfrastructureMode = Ndis802_11IBSS; | |
- memcpy(bssid->MacAddress, GetAddr3Ptr(pframe), ETH_ALEN); | |
+ ether_addr_copy(bssid->MacAddress, GetAddr3Ptr(pframe)); | |
} | |
if (val16 & BIT(4)) | |
@@ -2252,12 +2179,13 @@ static u8 collect_bss_info(struct adapter *padapter, | |
/* 20/40 BSS Coexistence check */ | |
if ((pregistrypriv->wifi_spec == 1) && (!pmlmeinfo->bwmode_updated)) { | |
struct mlme_priv *pmlmepriv = &padapter->mlmepriv; | |
+ | |
p = rtw_get_ie(bssid->IEs + ie_offset, _HT_CAPABILITY_IE_, &len, bssid->IELength - ie_offset); | |
if (p && len > 0) { | |
- struct HT_caps_element *pHT_caps; | |
- pHT_caps = (struct HT_caps_element *)(p + 2); | |
+ struct ieee80211_ht_cap *pHT_caps = | |
+ (struct ieee80211_ht_cap *)(p + 2); | |
- if (le16_to_cpu(pHT_caps->u.HT_cap_element.HT_caps_info)&BIT(14)) | |
+ if (le16_to_cpu(pHT_caps->cap_info) & BIT(14)) | |
pmlmepriv->num_FortyMHzIntolerant++; | |
} else { | |
pmlmepriv->num_sta_no_ht++; | |
@@ -2278,6 +2206,7 @@ static void start_create_ibss(struct adapter *padapter) | |
struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; | |
struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); | |
struct wlan_bssid_ex *pnetwork = (struct wlan_bssid_ex *)(&(pmlmeinfo->network)); | |
+ | |
pmlmeext->cur_channel = (u8)pnetwork->Configuration.DSConfig; | |
pmlmeinfo->bcn_interval = get_beacon_interval(pnetwork); | |
@@ -2617,8 +2546,8 @@ static unsigned int OnProbeReq(struct adapter *padapter, | |
struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; | |
struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); | |
struct wlan_bssid_ex *cur = &(pmlmeinfo->network); | |
- u8 *pframe = precv_frame->rx_data; | |
- uint len = precv_frame->len; | |
+ u8 *pframe = precv_frame->pkt->data; | |
+ uint len = precv_frame->pkt->len; | |
if (check_fwstate(pmlmepriv, WIFI_STATION_STATE)) | |
return _SUCCESS; | |
@@ -2627,7 +2556,7 @@ static unsigned int OnProbeReq(struct adapter *padapter, | |
!check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE|WIFI_AP_STATE)) | |
return _SUCCESS; | |
- p = rtw_get_ie(pframe + WLAN_HDR_A3_LEN + _PROBEREQ_IE_OFFSET_, _SSID_IE_, (int *)&ielen, | |
+ p = rtw_get_ie(pframe + WLAN_HDR_A3_LEN + _PROBEREQ_IE_OFFSET_, _SSID_IE_, &ielen, | |
len - WLAN_HDR_A3_LEN - _PROBEREQ_IE_OFFSET_); | |
/* check (wildcard) SSID */ | |
@@ -2665,8 +2594,8 @@ static unsigned int OnBeacon(struct adapter *padapter, | |
struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); | |
struct mlme_priv *pmlmepriv = &padapter->mlmepriv; | |
struct sta_priv *pstapriv = &padapter->stapriv; | |
- u8 *pframe = precv_frame->rx_data; | |
- uint len = precv_frame->len; | |
+ u8 *pframe = precv_frame->pkt->data; | |
+ uint len = precv_frame->pkt->len; | |
struct wlan_bssid_ex *pbss; | |
int ret = _SUCCESS; | |
struct wlan_bssid_ex *pnetwork = &(pmlmeinfo->network); | |
@@ -2689,7 +2618,7 @@ static unsigned int OnBeacon(struct adapter *padapter, | |
} | |
/* check the vendor of the assoc AP */ | |
- pmlmeinfo->assoc_AP_vendor = check_assoc_AP(pframe+sizeof(struct rtw_ieee80211_hdr_3addr), len-sizeof(struct rtw_ieee80211_hdr_3addr)); | |
+ pmlmeinfo->assoc_AP_vendor = check_assoc_AP(pframe+sizeof(struct ieee80211_hdr_3addr), len-sizeof(struct ieee80211_hdr_3addr)); | |
/* update TSF Value */ | |
update_TSF(pmlmeext, pframe, len); | |
@@ -2762,8 +2691,8 @@ static unsigned int OnAuth(struct adapter *padapter, | |
struct security_priv *psecuritypriv = &padapter->securitypriv; | |
struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; | |
struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); | |
- u8 *pframe = precv_frame->rx_data; | |
- uint len = precv_frame->len; | |
+ u8 *pframe = precv_frame->pkt->data; | |
+ uint len = precv_frame->pkt->len; | |
if ((pmlmeinfo->state&0x03) != WIFI_FW_AP_STATE) | |
return _FAIL; | |
@@ -2864,7 +2793,7 @@ static unsigned int OnAuth(struct adapter *padapter, | |
/* checking for challenging txt... */ | |
DBG_88E("checking for challenging txt...\n"); | |
- p = rtw_get_ie(pframe + WLAN_HDR_A3_LEN + 4 + _AUTH_IE_OFFSET_ , _CHLGETXT_IE_, (int *)&ie_len, | |
+ p = rtw_get_ie(pframe + WLAN_HDR_A3_LEN + 4 + _AUTH_IE_OFFSET_, _CHLGETXT_IE_, &ie_len, | |
len - WLAN_HDR_A3_LEN - _AUTH_IE_OFFSET_ - 4); | |
if ((p == NULL) || (ie_len <= 0)) { | |
@@ -2925,8 +2854,8 @@ static unsigned int OnAuthClient(struct adapter *padapter, | |
unsigned int go2asoc = 0; | |
struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; | |
struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); | |
- u8 *pframe = precv_frame->rx_data; | |
- uint pkt_len = precv_frame->len; | |
+ u8 *pframe = precv_frame->pkt->data; | |
+ uint pkt_len = precv_frame->pkt->len; | |
DBG_88E("%s\n", __func__); | |
@@ -2958,7 +2887,7 @@ static unsigned int OnAuthClient(struct adapter *padapter, | |
if (seq == 2) { | |
if (pmlmeinfo->auth_algo == dot11AuthAlgrthm_Shared) { | |
/* legendary shared system */ | |
- p = rtw_get_ie(pframe + WLAN_HDR_A3_LEN + _AUTH_IE_OFFSET_, _CHLGETXT_IE_, (int *)&len, | |
+ p = rtw_get_ie(pframe + WLAN_HDR_A3_LEN + _AUTH_IE_OFFSET_, _CHLGETXT_IE_, &len, | |
pkt_len - WLAN_HDR_A3_LEN - _AUTH_IE_OFFSET_); | |
if (p == NULL) | |
@@ -3002,7 +2931,7 @@ static unsigned int OnAssocReq(struct adapter *padapter, | |
struct sta_info *pstat; | |
unsigned char reassoc, *p, *pos, *wpa_ie; | |
unsigned char WMM_IE[] = {0x00, 0x50, 0xf2, 0x02, 0x00, 0x01}; | |
- int i, ie_len, wpa_ie_len, left; | |
+ int i, wpa_ie_len, left; | |
unsigned char supportRate[16]; | |
int supportRateNum; | |
unsigned short status = _STATS_SUCCESSFUL_; | |
@@ -3013,8 +2942,8 @@ static unsigned int OnAssocReq(struct adapter *padapter, | |
struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); | |
struct wlan_bssid_ex *cur = &(pmlmeinfo->network); | |
struct sta_priv *pstapriv = &padapter->stapriv; | |
- u8 *pframe = precv_frame->rx_data; | |
- uint pkt_len = precv_frame->len; | |
+ u8 *pframe = precv_frame->pkt->data; | |
+ uint ie_len, pkt_len = precv_frame->pkt->len; | |
if ((pmlmeinfo->state&0x03) != WIFI_FW_AP_STATE) | |
return _FAIL; | |
@@ -3301,13 +3230,15 @@ static unsigned int OnAssocReq(struct adapter *padapter, | |
} | |
/* save HT capabilities in the sta object */ | |
- memset(&pstat->htpriv.ht_cap, 0, sizeof(struct rtw_ieee80211_ht_cap)); | |
- if (elems.ht_capabilities && elems.ht_capabilities_len >= sizeof(struct rtw_ieee80211_ht_cap)) { | |
+ memset(&pstat->htpriv.ht_cap, 0, sizeof(struct ieee80211_ht_cap)); | |
+ if (elems.ht_capabilities && | |
+ elems.ht_capabilities_len >= sizeof(struct ieee80211_ht_cap)) { | |
pstat->flags |= WLAN_STA_HT; | |
pstat->flags |= WLAN_STA_WME; | |
- memcpy(&pstat->htpriv.ht_cap, elems.ht_capabilities, sizeof(struct rtw_ieee80211_ht_cap)); | |
+ memcpy(&pstat->htpriv.ht_cap, | |
+ elems.ht_capabilities, sizeof(struct ieee80211_ht_cap)); | |
} else { | |
pstat->flags &= ~WLAN_STA_HT; | |
} | |
@@ -3443,8 +3374,8 @@ static unsigned int OnAssocRsp(struct adapter *padapter, | |
struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; | |
struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); | |
/* struct wlan_bssid_ex *cur_network = &(pmlmeinfo->network); */ | |
- u8 *pframe = precv_frame->rx_data; | |
- uint pkt_len = precv_frame->len; | |
+ u8 *pframe = precv_frame->pkt->data; | |
+ uint pkt_len = precv_frame->pkt->len; | |
DBG_88E("%s\n", __func__); | |
@@ -3511,11 +3442,10 @@ static unsigned int OnAssocRsp(struct adapter *padapter, | |
UpdateBrateTbl(padapter, pmlmeinfo->network.SupportedRates); | |
report_assoc_result: | |
- if (res > 0) { | |
+ if (res > 0) | |
rtw_buf_update(&pmlmepriv->assoc_rsp, &pmlmepriv->assoc_rsp_len, pframe, pkt_len); | |
- } else { | |
+ else | |
rtw_buf_free(&pmlmepriv->assoc_rsp, &pmlmepriv->assoc_rsp_len); | |
- } | |
report_join_res(padapter, res); | |
@@ -3529,7 +3459,7 @@ static unsigned int OnDeAuth(struct adapter *padapter, | |
struct mlme_priv *pmlmepriv = &padapter->mlmepriv; | |
struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; | |
struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); | |
- u8 *pframe = precv_frame->rx_data; | |
+ u8 *pframe = precv_frame->pkt->data; | |
struct wlan_bssid_ex *pnetwork = &(pmlmeinfo->network); | |
/* check A3 */ | |
@@ -3584,7 +3514,7 @@ static unsigned int OnDisassoc(struct adapter *padapter, | |
struct mlme_priv *pmlmepriv = &padapter->mlmepriv; | |
struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; | |
struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); | |
- u8 *pframe = precv_frame->rx_data; | |
+ u8 *pframe = precv_frame->pkt->data; | |
struct wlan_bssid_ex *pnetwork = &(pmlmeinfo->network); | |
/* check A3 */ | |
@@ -3643,8 +3573,8 @@ static unsigned int on_action_spct(struct adapter *padapter, | |
{ | |
struct sta_info *psta = NULL; | |
struct sta_priv *pstapriv = &padapter->stapriv; | |
- u8 *pframe = precv_frame->rx_data; | |
- u8 *frame_body = (u8 *)(pframe + sizeof(struct rtw_ieee80211_hdr_3addr)); | |
+ u8 *pframe = precv_frame->pkt->data; | |
+ u8 *frame_body = pframe + sizeof(struct ieee80211_hdr_3addr); | |
u8 category; | |
u8 action; | |
@@ -3699,7 +3629,7 @@ static unsigned int OnAction_back(struct adapter *padapter, | |
unsigned short tid, status, reason_code = 0; | |
struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; | |
struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); | |
- u8 *pframe = precv_frame->rx_data; | |
+ u8 *pframe = precv_frame->pkt->data; | |
struct sta_priv *pstapriv = &padapter->stapriv; | |
/* check RA matches or not */ | |
if (memcmp(myid(&(padapter->eeprompriv)), GetAddr1Ptr(pframe), | |
@@ -3718,7 +3648,7 @@ static unsigned int OnAction_back(struct adapter *padapter, | |
if (psta == NULL) | |
return _SUCCESS; | |
- frame_body = (unsigned char *)(pframe + sizeof(struct rtw_ieee80211_hdr_3addr)); | |
+ frame_body = (unsigned char *)(pframe + sizeof(struct ieee80211_hdr_3addr)); | |
category = frame_body[0]; | |
if (category == RTW_WLAN_CATEGORY_BACK) { /* representing Block Ack */ | |
@@ -3731,10 +3661,10 @@ static unsigned int OnAction_back(struct adapter *padapter, | |
memcpy(&(pmlmeinfo->ADDBA_req), &(frame_body[2]), sizeof(struct ADDBA_request)); | |
process_addba_req(padapter, (u8 *)&(pmlmeinfo->ADDBA_req), addr); | |
- if (pmlmeinfo->bAcceptAddbaReq) | |
- issue_action_BA(padapter, addr, RTW_WLAN_ACTION_ADDBA_RESP, 0); | |
- else | |
- issue_action_BA(padapter, addr, RTW_WLAN_ACTION_ADDBA_RESP, 37);/* reject ADDBA Req */ | |
+ /* 37 = reject ADDBA Req */ | |
+ issue_action_BA(padapter, addr, | |
+ RTW_WLAN_ACTION_ADDBA_RESP, | |
+ pmlmeinfo->accept_addba_req ? 0 : 37); | |
break; | |
case RTW_WLAN_ACTION_ADDBA_RESP: /* ADDBA response */ | |
status = get_unaligned_le16(&frame_body[3]); | |
@@ -3772,7 +3702,7 @@ static s32 rtw_action_public_decache(struct recv_frame *recv_frame, s32 token) | |
{ | |
struct adapter *adapter = recv_frame->adapter; | |
struct mlme_ext_priv *mlmeext = &(adapter->mlmeextpriv); | |
- u8 *frame = recv_frame->rx_data; | |
+ u8 *frame = recv_frame->pkt->data; | |
u16 seq_ctrl = ((recv_frame->attrib.seq_num&0xffff) << 4) | | |
(recv_frame->attrib.frag_num & 0xf); | |
@@ -3802,11 +3732,11 @@ static s32 rtw_action_public_decache(struct recv_frame *recv_frame, s32 token) | |
static unsigned int on_action_public_p2p(struct recv_frame *precv_frame) | |
{ | |
- u8 *pframe = precv_frame->rx_data; | |
+ u8 *pframe = precv_frame->pkt->data; | |
u8 *frame_body; | |
u8 dialogToken = 0; | |
- frame_body = (unsigned char *)(pframe + sizeof(struct rtw_ieee80211_hdr_3addr)); | |
+ frame_body = (unsigned char *)(pframe + sizeof(struct ieee80211_hdr_3addr)); | |
dialogToken = frame_body[7]; | |
if (rtw_action_public_decache(precv_frame, dialogToken) == _FAIL) | |
@@ -3818,8 +3748,8 @@ static unsigned int on_action_public_p2p(struct recv_frame *precv_frame) | |
static unsigned int on_action_public_vendor(struct recv_frame *precv_frame) | |
{ | |
unsigned int ret = _FAIL; | |
- u8 *pframe = precv_frame->rx_data; | |
- u8 *frame_body = pframe + sizeof(struct rtw_ieee80211_hdr_3addr); | |
+ u8 *pframe = precv_frame->pkt->data; | |
+ u8 *frame_body = pframe + sizeof(struct ieee80211_hdr_3addr); | |
if (!memcmp(frame_body + 2, P2P_OUI, 4)) | |
ret = on_action_public_p2p(precv_frame); | |
@@ -3830,8 +3760,8 @@ static unsigned int on_action_public_vendor(struct recv_frame *precv_frame) | |
static unsigned int on_action_public_default(struct recv_frame *precv_frame, u8 action) | |
{ | |
unsigned int ret = _FAIL; | |
- u8 *pframe = precv_frame->rx_data; | |
- u8 *frame_body = pframe + sizeof(struct rtw_ieee80211_hdr_3addr); | |
+ u8 *pframe = precv_frame->pkt->data; | |
+ u8 *frame_body = pframe + sizeof(struct ieee80211_hdr_3addr); | |
u8 token; | |
token = frame_body[2]; | |
@@ -3849,8 +3779,8 @@ static unsigned int on_action_public(struct adapter *padapter, | |
struct recv_frame *precv_frame) | |
{ | |
unsigned int ret = _FAIL; | |
- u8 *pframe = precv_frame->rx_data; | |
- u8 *frame_body = pframe + sizeof(struct rtw_ieee80211_hdr_3addr); | |
+ u8 *pframe = precv_frame->pkt->data; | |
+ u8 *frame_body = pframe + sizeof(struct ieee80211_hdr_3addr); | |
u8 category, action; | |
/* check RA matches or not */ | |
@@ -3920,9 +3850,9 @@ static unsigned int OnAction(struct adapter *padapter, | |
unsigned char category; | |
struct action_handler *ptable; | |
unsigned char *frame_body; | |
- u8 *pframe = precv_frame->rx_data; | |
+ u8 *pframe = precv_frame->pkt->data; | |
- frame_body = (unsigned char *)(pframe + sizeof(struct rtw_ieee80211_hdr_3addr)); | |
+ frame_body = (unsigned char *)(pframe + sizeof(struct ieee80211_hdr_3addr)); | |
category = frame_body[0]; | |
@@ -4031,7 +3961,8 @@ static void init_mlme_ext_priv_value(struct adapter *padapter) | |
static int has_channel(struct rt_channel_info *channel_set, | |
u8 chanset_size, | |
- u8 chan) { | |
+ u8 chan) | |
+{ | |
int i; | |
for (i = 0; i < chanset_size; i++) { | |
@@ -4043,7 +3974,8 @@ static int has_channel(struct rt_channel_info *channel_set, | |
static void init_channel_list(struct adapter *padapter, struct rt_channel_info *channel_set, | |
u8 chanset_size, | |
- struct p2p_channels *channel_list) { | |
+ struct p2p_channels *channel_list) | |
+{ | |
struct p2p_oper_class_map op_class[] = { | |
{ IEEE80211G, 81, 1, 13, 1, BW20 }, | |
{ IEEE80211G, 82, 14, 14, 1, BW20 }, | |
@@ -4060,9 +3992,8 @@ static void init_channel_list(struct adapter *padapter, struct rt_channel_info * | |
struct p2p_reg_class *reg = NULL; | |
for (ch = o->min_chan; ch <= o->max_chan; ch += o->inc) { | |
- if (!has_channel(channel_set, chanset_size, ch)) { | |
+ if (!has_channel(channel_set, chanset_size, ch)) | |
continue; | |
- } | |
if ((0 == padapter->registrypriv.ht_enable) && (8 == o->inc)) | |
continue; | |
@@ -4141,7 +4072,7 @@ int init_mlme_ext_priv(struct adapter *padapter) | |
pmlmeext->padapter = padapter; | |
init_mlme_ext_priv_value(padapter); | |
- pmlmeinfo->bAcceptAddbaReq = pregistrypriv->bAcceptAddbaReq; | |
+ pmlmeinfo->accept_addba_req = pregistrypriv->accept_addba_req; | |
init_mlme_ext_timer(padapter); | |
@@ -4177,7 +4108,7 @@ void free_mlme_ext_priv(struct mlme_ext_priv *pmlmeext) | |
static void _mgt_dispatcher(struct adapter *padapter, struct mlme_handler *ptable, struct recv_frame *precv_frame) | |
{ | |
u8 bc_addr[ETH_ALEN] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; | |
- u8 *pframe = precv_frame->rx_data; | |
+ u8 *pframe = precv_frame->pkt->data; | |
if (ptable->func) { | |
/* receive the frames that ra(a1) is my address or ra(a1) is bc address. */ | |
@@ -4196,7 +4127,7 @@ void mgt_dispatcher(struct adapter *padapter, struct recv_frame *precv_frame) | |
struct mlme_priv *pmlmepriv = &padapter->mlmepriv; | |
#endif /* CONFIG_88EU_AP_MODE */ | |
u8 bc_addr[ETH_ALEN] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; | |
- u8 *pframe = precv_frame->rx_data; | |
+ u8 *pframe = precv_frame->pkt->data; | |
struct sta_info *psta = rtw_get_stainfo(&padapter->stapriv, GetAddr2Ptr(pframe)); | |
RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_, | |
@@ -4288,19 +4219,19 @@ void report_survey_event(struct adapter *padapter, | |
pcmd_obj = kzalloc(sizeof(struct cmd_obj), GFP_ATOMIC); | |
- if (pcmd_obj == NULL) | |
+ if (!pcmd_obj) | |
return; | |
cmdsz = sizeof(struct survey_event) + sizeof(struct C2HEvent_Header); | |
pevtcmd = kzalloc(cmdsz, GFP_ATOMIC); | |
- if (pevtcmd == NULL) { | |
+ if (!pevtcmd) { | |
kfree(pcmd_obj); | |
return; | |
} | |
INIT_LIST_HEAD(&pcmd_obj->list); | |
- pcmd_obj->cmdcode = GEN_CMD_CODE(_Set_MLME_EVT); | |
+ pcmd_obj->cmdcode = _Set_MLME_EVT_CMD_; | |
pcmd_obj->cmdsz = cmdsz; | |
pcmd_obj->parmbuf = pevtcmd; | |
@@ -4309,7 +4240,7 @@ void report_survey_event(struct adapter *padapter, | |
pc2h_evt_hdr = (struct C2HEvent_Header *)(pevtcmd); | |
pc2h_evt_hdr->len = sizeof(struct survey_event); | |
- pc2h_evt_hdr->ID = GEN_EVT_CODE(_Survey); | |
+ pc2h_evt_hdr->ID = _Survey_EVT_; | |
pc2h_evt_hdr->seq = atomic_inc_return(&pmlmeext->event_seq); | |
psurvey_evt = (struct survey_event *)(pevtcmd + sizeof(struct C2HEvent_Header)); | |
@@ -4325,8 +4256,6 @@ void report_survey_event(struct adapter *padapter, | |
rtw_enqueue_cmd(pcmdpriv, pcmd_obj); | |
pmlmeext->sitesurvey_res.bss_cnt++; | |
- | |
- return; | |
} | |
void report_surveydone_event(struct adapter *padapter) | |
@@ -4340,19 +4269,19 @@ void report_surveydone_event(struct adapter *padapter) | |
struct cmd_priv *pcmdpriv = &padapter->cmdpriv; | |
pcmd_obj = kzalloc(sizeof(struct cmd_obj), GFP_KERNEL); | |
- if (pcmd_obj == NULL) | |
+ if (!pcmd_obj) | |
return; | |
cmdsz = sizeof(struct surveydone_event) + sizeof(struct C2HEvent_Header); | |
pevtcmd = kzalloc(cmdsz, GFP_KERNEL); | |
- if (pevtcmd == NULL) { | |
+ if (!pevtcmd) { | |
kfree(pcmd_obj); | |
return; | |
} | |
INIT_LIST_HEAD(&pcmd_obj->list); | |
- pcmd_obj->cmdcode = GEN_CMD_CODE(_Set_MLME_EVT); | |
+ pcmd_obj->cmdcode = _Set_MLME_EVT_CMD_; | |
pcmd_obj->cmdsz = cmdsz; | |
pcmd_obj->parmbuf = pevtcmd; | |
@@ -4361,7 +4290,7 @@ void report_surveydone_event(struct adapter *padapter) | |
pc2h_evt_hdr = (struct C2HEvent_Header *)(pevtcmd); | |
pc2h_evt_hdr->len = sizeof(struct surveydone_event); | |
- pc2h_evt_hdr->ID = GEN_EVT_CODE(_SurveyDone); | |
+ pc2h_evt_hdr->ID = _SurveyDone_EVT_; | |
pc2h_evt_hdr->seq = atomic_inc_return(&pmlmeext->event_seq); | |
psurveydone_evt = (struct surveydone_event *)(pevtcmd + sizeof(struct C2HEvent_Header)); | |
@@ -4370,8 +4299,6 @@ void report_surveydone_event(struct adapter *padapter) | |
DBG_88E("survey done event(%x)\n", psurveydone_evt->bss_cnt); | |
rtw_enqueue_cmd(pcmdpriv, pcmd_obj); | |
- | |
- return; | |
} | |
void report_join_res(struct adapter *padapter, int res) | |
@@ -4386,19 +4313,19 @@ void report_join_res(struct adapter *padapter, int res) | |
struct cmd_priv *pcmdpriv = &padapter->cmdpriv; | |
pcmd_obj = kzalloc(sizeof(struct cmd_obj), GFP_ATOMIC); | |
- if (pcmd_obj == NULL) | |
+ if (!pcmd_obj) | |
return; | |
cmdsz = sizeof(struct joinbss_event) + sizeof(struct C2HEvent_Header); | |
pevtcmd = kzalloc(cmdsz, GFP_ATOMIC); | |
- if (pevtcmd == NULL) { | |
+ if (!pevtcmd) { | |
kfree(pcmd_obj); | |
return; | |
} | |
INIT_LIST_HEAD(&pcmd_obj->list); | |
- pcmd_obj->cmdcode = GEN_CMD_CODE(_Set_MLME_EVT); | |
+ pcmd_obj->cmdcode = _Set_MLME_EVT_CMD_; | |
pcmd_obj->cmdsz = cmdsz; | |
pcmd_obj->parmbuf = pevtcmd; | |
@@ -4407,7 +4334,7 @@ void report_join_res(struct adapter *padapter, int res) | |
pc2h_evt_hdr = (struct C2HEvent_Header *)(pevtcmd); | |
pc2h_evt_hdr->len = sizeof(struct joinbss_event); | |
- pc2h_evt_hdr->ID = GEN_EVT_CODE(_JoinBss); | |
+ pc2h_evt_hdr->ID = _JoinBss_EVT_; | |
pc2h_evt_hdr->seq = atomic_inc_return(&pmlmeext->event_seq); | |
pjoinbss_evt = (struct joinbss_event *)(pevtcmd + sizeof(struct C2HEvent_Header)); | |
@@ -4422,8 +4349,6 @@ void report_join_res(struct adapter *padapter, int res) | |
rtw_enqueue_cmd(pcmdpriv, pcmd_obj); | |
- | |
- return; | |
} | |
void report_del_sta_event(struct adapter *padapter, unsigned char *MacAddr, unsigned short reason) | |
@@ -4439,19 +4364,19 @@ void report_del_sta_event(struct adapter *padapter, unsigned char *MacAddr, unsi | |
struct cmd_priv *pcmdpriv = &padapter->cmdpriv; | |
pcmd_obj = kzalloc(sizeof(struct cmd_obj), GFP_KERNEL); | |
- if (pcmd_obj == NULL) | |
+ if (!pcmd_obj) | |
return; | |
cmdsz = sizeof(struct stadel_event) + sizeof(struct C2HEvent_Header); | |
pevtcmd = kzalloc(cmdsz, GFP_KERNEL); | |
- if (pevtcmd == NULL) { | |
+ if (!pevtcmd) { | |
kfree(pcmd_obj); | |
return; | |
} | |
INIT_LIST_HEAD(&pcmd_obj->list); | |
- pcmd_obj->cmdcode = GEN_CMD_CODE(_Set_MLME_EVT); | |
+ pcmd_obj->cmdcode = _Set_MLME_EVT_CMD_; | |
pcmd_obj->cmdsz = cmdsz; | |
pcmd_obj->parmbuf = pevtcmd; | |
@@ -4460,11 +4385,11 @@ void report_del_sta_event(struct adapter *padapter, unsigned char *MacAddr, unsi | |
pc2h_evt_hdr = (struct C2HEvent_Header *)(pevtcmd); | |
pc2h_evt_hdr->len = sizeof(struct stadel_event); | |
- pc2h_evt_hdr->ID = GEN_EVT_CODE(_DelSTA); | |
+ pc2h_evt_hdr->ID = _DelSTA_EVT_; | |
pc2h_evt_hdr->seq = atomic_inc_return(&pmlmeext->event_seq); | |
pdel_sta_evt = (struct stadel_event *)(pevtcmd + sizeof(struct C2HEvent_Header)); | |
- memcpy((unsigned char *)(&(pdel_sta_evt->macaddr)), MacAddr, ETH_ALEN); | |
+ ether_addr_copy((unsigned char *)(&(pdel_sta_evt->macaddr)), MacAddr); | |
memcpy((unsigned char *)(pdel_sta_evt->rsvd), (unsigned char *)(&reason), 2); | |
@@ -4479,8 +4404,6 @@ void report_del_sta_event(struct adapter *padapter, unsigned char *MacAddr, unsi | |
DBG_88E("report_del_sta_event: delete STA, mac_id =%d\n", mac_id); | |
rtw_enqueue_cmd(pcmdpriv, pcmd_obj); | |
- | |
- return; | |
} | |
void report_add_sta_event(struct adapter *padapter, unsigned char *MacAddr, int cam_idx) | |
@@ -4494,19 +4417,19 @@ void report_add_sta_event(struct adapter *padapter, unsigned char *MacAddr, int | |
struct cmd_priv *pcmdpriv = &padapter->cmdpriv; | |
pcmd_obj = kzalloc(sizeof(struct cmd_obj), GFP_KERNEL); | |
- if (pcmd_obj == NULL) | |
+ if (!pcmd_obj) | |
return; | |
cmdsz = sizeof(struct stassoc_event) + sizeof(struct C2HEvent_Header); | |
pevtcmd = kzalloc(cmdsz, GFP_KERNEL); | |
- if (pevtcmd == NULL) { | |
+ if (!pevtcmd) { | |
kfree(pcmd_obj); | |
return; | |
} | |
INIT_LIST_HEAD(&pcmd_obj->list); | |
- pcmd_obj->cmdcode = GEN_CMD_CODE(_Set_MLME_EVT); | |
+ pcmd_obj->cmdcode = _Set_MLME_EVT_CMD_; | |
pcmd_obj->cmdsz = cmdsz; | |
pcmd_obj->parmbuf = pevtcmd; | |
@@ -4515,18 +4438,16 @@ void report_add_sta_event(struct adapter *padapter, unsigned char *MacAddr, int | |
pc2h_evt_hdr = (struct C2HEvent_Header *)(pevtcmd); | |
pc2h_evt_hdr->len = sizeof(struct stassoc_event); | |
- pc2h_evt_hdr->ID = GEN_EVT_CODE(_AddSTA); | |
+ pc2h_evt_hdr->ID = _AddSTA_EVT_; | |
pc2h_evt_hdr->seq = atomic_inc_return(&pmlmeext->event_seq); | |
padd_sta_evt = (struct stassoc_event *)(pevtcmd + sizeof(struct C2HEvent_Header)); | |
- memcpy((unsigned char *)(&(padd_sta_evt->macaddr)), MacAddr, ETH_ALEN); | |
+ ether_addr_copy((unsigned char *)(&(padd_sta_evt->macaddr)), MacAddr); | |
padd_sta_evt->cam_id = cam_idx; | |
DBG_88E("report_add_sta_event: add STA\n"); | |
rtw_enqueue_cmd(pcmdpriv, pcmd_obj); | |
- | |
- return; | |
} | |
@@ -4552,7 +4473,7 @@ void update_sta_info(struct adapter *padapter, struct sta_info *psta) | |
psta->htpriv.ampdu_enable = pmlmepriv->htpriv.ampdu_enable; | |
- if (support_short_GI(padapter, &(pmlmeinfo->HT_caps))) | |
+ if (support_short_GI(padapter, &pmlmeinfo->HT_caps)) | |
psta->htpriv.sgi = true; | |
psta->qos_option = true; | |
@@ -4732,23 +4653,6 @@ void mlmeext_sta_del_event_callback(struct adapter *padapter) | |
Following are the functions for the timer handlers | |
*****************************************************************************/ | |
-void _linked_rx_signal_strehgth_display(struct adapter *padapter); | |
-void _linked_rx_signal_strehgth_display(struct adapter *padapter) | |
-{ | |
- struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; | |
- struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); | |
- u8 mac_id; | |
- int UndecoratedSmoothedPWDB; | |
- if ((pmlmeinfo->state&0x03) == WIFI_FW_STATION_STATE) | |
- mac_id = 0; | |
- else if ((pmlmeinfo->state&0x03) == _HW_STATE_AP_) | |
- mac_id = 2; | |
- | |
- rtw_hal_get_def_var(padapter, HW_DEF_RA_INFO_DUMP, &mac_id); | |
- | |
- rtw_hal_get_def_var(padapter, HAL_DEF_UNDERCORATEDSMOOTHEDPWDB, &UndecoratedSmoothedPWDB); | |
- DBG_88E("UndecoratedSmoothedPWDB:%d\n", UndecoratedSmoothedPWDB); | |
-} | |
static u8 chk_ap_is_alive(struct adapter *padapter, struct sta_info *psta) | |
{ | |
@@ -4775,9 +4679,6 @@ void linked_status_chk(struct adapter *padapter) | |
struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); | |
struct sta_priv *pstapriv = &padapter->stapriv; | |
- if (padapter->bRxRSSIDisplay) | |
- _linked_rx_signal_strehgth_display(padapter); | |
- | |
if (is_client_associated_to_ap(padapter)) { | |
/* linked infrastructure client mode */ | |
@@ -4820,16 +4721,24 @@ void linked_status_chk(struct adapter *padapter) | |
} else { | |
if (rx_chk != _SUCCESS) { | |
if (pmlmeext->retry == 0) { | |
- issue_probereq(padapter, &pmlmeinfo->network.Ssid, pmlmeinfo->network.MacAddress); | |
- issue_probereq(padapter, &pmlmeinfo->network.Ssid, pmlmeinfo->network.MacAddress); | |
- issue_probereq(padapter, &pmlmeinfo->network.Ssid, pmlmeinfo->network.MacAddress); | |
- } | |
- } | |
- | |
- if (tx_chk != _SUCCESS && pmlmeinfo->link_count++ == 0xf) { | |
+ issue_probereq(padapter, | |
+ &pmlmeinfo->network.Ssid, | |
+ pmlmeinfo->network.MacAddress, | |
+ false); | |
+ issue_probereq(padapter, | |
+ &pmlmeinfo->network.Ssid, | |
+ pmlmeinfo->network.MacAddress, | |
+ false); | |
+ issue_probereq(padapter, | |
+ &pmlmeinfo->network.Ssid, | |
+ pmlmeinfo->network.MacAddress, | |
+ false); | |
+ } | |
+ } | |
+ | |
+ if (tx_chk != _SUCCESS && pmlmeinfo->link_count++ == 0xf) | |
tx_chk = issue_nulldata(padapter, NULL, 0, 1, 0); | |
} | |
- } | |
if (rx_chk == _FAIL) { | |
pmlmeext->retry++; | |
@@ -4901,16 +4810,16 @@ void survey_timer_hdl(unsigned long data) | |
} | |
ph2c = kzalloc(sizeof(struct cmd_obj), GFP_ATOMIC); | |
- if (ph2c == NULL) | |
+ if (!ph2c) | |
goto exit_survey_timer_hdl; | |
psurveyPara = kzalloc(sizeof(struct sitesurvey_parm), GFP_ATOMIC); | |
- if (psurveyPara == NULL) { | |
+ if (!psurveyPara) { | |
kfree(ph2c); | |
goto exit_survey_timer_hdl; | |
} | |
- init_h2fwcmd_w_parm_no_rsp(ph2c, psurveyPara, GEN_CMD_CODE(_SiteSurvey)); | |
+ init_h2fwcmd_w_parm_no_rsp(ph2c, psurveyPara, _SiteSurvey_CMD_); | |
rtw_enqueue_cmd(pcmdpriv, ph2c); | |
} | |
@@ -4953,7 +4862,6 @@ void link_timer_hdl(unsigned long data) | |
issue_assocreq(padapter); | |
set_link_timer(pmlmeext, REASSOC_TO); | |
} | |
- return; | |
} | |
void addba_timer_hdl(unsigned long data) | |
@@ -5045,7 +4953,7 @@ u8 createbss_hdl(struct adapter *padapter, u8 *pbuf) | |
/* clear CAM */ | |
flush_all_cam_entry(padapter); | |
- memcpy(pnetwork, pbuf, FIELD_OFFSET(struct wlan_bssid_ex, IELength)); | |
+ memcpy(pnetwork, pbuf, offsetof(struct wlan_bssid_ex, IELength)); | |
pnetwork->IELength = ((struct wlan_bssid_ex *)pbuf)->IELength; | |
if (pnetwork->IELength > MAX_IE_SZ)/* Check pbuf->IELength */ | |
@@ -5104,7 +5012,7 @@ u8 join_cmd_hdl(struct adapter *padapter, u8 *pbuf) | |
pmlmeinfo->candidate_tid_bitmap = 0; | |
pmlmeinfo->bwmode_updated = false; | |
- memcpy(pnetwork, pbuf, FIELD_OFFSET(struct wlan_bssid_ex, IELength)); | |
+ memcpy(pnetwork, pbuf, offsetof(struct wlan_bssid_ex, IELength)); | |
pnetwork->IELength = ((struct wlan_bssid_ex *)pbuf)->IELength; | |
if (pnetwork->IELength > MAX_IE_SZ)/* Check pbuf->IELength */ | |
@@ -5469,7 +5377,7 @@ u8 set_tx_beacon_cmd(struct adapter *padapter) | |
ph2c = kzalloc(sizeof(struct cmd_obj), GFP_KERNEL); | |
- if (ph2c == NULL) { | |
+ if (!ph2c) { | |
res = _FAIL; | |
goto exit; | |
} | |
@@ -5487,7 +5395,7 @@ u8 set_tx_beacon_cmd(struct adapter *padapter) | |
pmlmeinfo->hidden_ssid_mode); | |
ptxBeacon_parm->IELength += len_diff; | |
- init_h2fwcmd_w_parm_no_rsp(ph2c, ptxBeacon_parm, GEN_CMD_CODE(_TX_Beacon)); | |
+ init_h2fwcmd_w_parm_no_rsp(ph2c, ptxBeacon_parm, _TX_Beacon_CMD_); | |
res = rtw_enqueue_cmd(pcmdpriv, ph2c); | |
diff --git b/drivers/staging/rtl8188eu/core/rtw_pwrctrl.c a/drivers/staging/rtl8188eu/core/rtw_pwrctrl.c | |
index 9765946466ab..f86c9cebf09a 100644 | |
--- b/drivers/staging/rtl8188eu/core/rtw_pwrctrl.c | |
+++ a/drivers/staging/rtl8188eu/core/rtw_pwrctrl.c | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#define _RTW_PWRCTRL_C_ | |
@@ -43,7 +38,7 @@ static int rtw_hw_suspend(struct adapter *padapter) | |
LeaveAllPowerSaveMode(padapter); | |
DBG_88E("==> rtw_hw_suspend\n"); | |
- _enter_pwrlock(&pwrpriv->lock); | |
+ mutex_lock(&pwrpriv->mutex_lock); | |
pwrpriv->bips_processing = true; | |
/* s1. */ | |
if (pnetdev) { | |
@@ -61,7 +56,7 @@ static int rtw_hw_suspend(struct adapter *padapter) | |
if (check_fwstate(pmlmepriv, _FW_LINKED)) { | |
_clr_fwstate_(pmlmepriv, _FW_LINKED); | |
- rtw_led_control(padapter, LED_CTL_NO_LINK); | |
+ LedControl8188eu(padapter, LED_CTL_NO_LINK); | |
rtw_os_indicate_disconnect(padapter); | |
@@ -78,7 +73,7 @@ static int rtw_hw_suspend(struct adapter *padapter) | |
pwrpriv->rf_pwrstate = rf_off; | |
pwrpriv->bips_processing = false; | |
- _exit_pwrlock(&pwrpriv->lock); | |
+ mutex_unlock(&pwrpriv->mutex_lock); | |
return 0; | |
@@ -95,12 +90,12 @@ static int rtw_hw_resume(struct adapter *padapter) | |
/* system resume */ | |
DBG_88E("==> rtw_hw_resume\n"); | |
- _enter_pwrlock(&pwrpriv->lock); | |
+ mutex_lock(&pwrpriv->mutex_lock); | |
pwrpriv->bips_processing = true; | |
rtw_reset_drv_sw(padapter); | |
- if (pm_netdev_open(pnetdev, false) != 0) { | |
- _exit_pwrlock(&pwrpriv->lock); | |
+ if (ips_netdrv_open((struct adapter *)rtw_netdev_priv(pnetdev)) != _SUCCESS) { | |
+ mutex_unlock(&pwrpriv->mutex_lock); | |
goto error_exit; | |
} | |
@@ -118,7 +113,7 @@ static int rtw_hw_resume(struct adapter *padapter) | |
pwrpriv->rf_pwrstate = rf_on; | |
pwrpriv->bips_processing = false; | |
- _exit_pwrlock(&pwrpriv->lock); | |
+ mutex_unlock(&pwrpriv->mutex_lock); | |
return 0; | |
@@ -143,7 +138,7 @@ void ips_enter(struct adapter *padapter) | |
return; | |
} | |
- _enter_pwrlock(&pwrpriv->lock); | |
+ mutex_lock(&pwrpriv->mutex_lock); | |
pwrpriv->bips_processing = true; | |
@@ -164,7 +159,7 @@ void ips_enter(struct adapter *padapter) | |
} | |
pwrpriv->bips_processing = false; | |
- _exit_pwrlock(&pwrpriv->lock); | |
+ mutex_unlock(&pwrpriv->mutex_lock); | |
} | |
int ips_leave(struct adapter *padapter) | |
@@ -176,7 +171,7 @@ int ips_leave(struct adapter *padapter) | |
int keyid; | |
- _enter_pwrlock(&pwrpriv->lock); | |
+ mutex_lock(&pwrpriv->mutex_lock); | |
if ((pwrpriv->rf_pwrstate == rf_off) && (!pwrpriv->bips_processing)) { | |
pwrpriv->bips_processing = true; | |
@@ -185,9 +180,9 @@ int ips_leave(struct adapter *padapter) | |
DBG_88E("==>ips_leave cnts:%d\n", pwrpriv->ips_leave_cnts); | |
result = rtw_ips_pwr_up(padapter); | |
- if (result == _SUCCESS) { | |
+ if (result == _SUCCESS) | |
pwrpriv->rf_pwrstate = rf_on; | |
- } | |
+ | |
DBG_88E_LEVEL(_drv_info_, "nolinked power save leave\n"); | |
if ((_WEP40_ == psecuritypriv->dot11PrivacyAlgrthm) || (_WEP104_ == psecuritypriv->dot11PrivacyAlgrthm)) { | |
@@ -210,7 +205,7 @@ int ips_leave(struct adapter *padapter) | |
pwrpriv->bpower_saving = false; | |
} | |
- _exit_pwrlock(&pwrpriv->lock); | |
+ mutex_unlock(&pwrpriv->mutex_lock); | |
return result; | |
} | |
@@ -284,6 +279,7 @@ void rtw_ps_processor(struct adapter *padapter) | |
static void pwr_state_check_handler(unsigned long data) | |
{ | |
struct adapter *padapter = (struct adapter *)data; | |
+ | |
rtw_ps_cmd(padapter); | |
} | |
@@ -348,7 +344,7 @@ void rtw_set_rpwm(struct adapter *padapter, u8 pslv) | |
static u8 PS_RDY_CHECK(struct adapter *padapter) | |
{ | |
- u32 curr_time, delta_time; | |
+ unsigned long curr_time, delta_time; | |
struct pwrctrl_priv *pwrpriv = &padapter->pwrctrlpriv; | |
struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); | |
@@ -418,7 +414,7 @@ void rtw_set_ps_mode(struct adapter *padapter, u8 ps_mode, u8 smart_ps, u8 bcn_a | |
*/ | |
s32 LPS_RF_ON_check(struct adapter *padapter, u32 delay_ms) | |
{ | |
- u32 start_time; | |
+ unsigned long start_time; | |
u8 bAwake = false; | |
s32 err = 0; | |
@@ -435,7 +431,7 @@ s32 LPS_RF_ON_check(struct adapter *padapter, u32 delay_ms) | |
break; | |
} | |
- if (rtw_get_passing_time_ms(start_time) > delay_ms) { | |
+ if (jiffies_to_msecs(jiffies - start_time) > delay_ms) { | |
err = -1; | |
DBG_88E("%s: Wait for FW LPS leave more than %u ms!!!\n", __func__, delay_ms); | |
break; | |
@@ -509,7 +505,7 @@ void rtw_init_pwrctrl_priv(struct adapter *padapter) | |
{ | |
struct pwrctrl_priv *pwrctrlpriv = &padapter->pwrctrlpriv; | |
- _init_pwrlock(&pwrctrlpriv->lock); | |
+ mutex_init(&pwrctrlpriv->mutex_lock); | |
pwrctrlpriv->rf_pwrstate = rf_on; | |
pwrctrlpriv->ips_enter_cnts = 0; | |
pwrctrlpriv->ips_leave_cnts = 0; | |
@@ -561,24 +557,24 @@ int _rtw_pwr_wakeup(struct adapter *padapter, u32 ips_deffer_ms, const char *cal | |
struct pwrctrl_priv *pwrpriv = &padapter->pwrctrlpriv; | |
struct mlme_priv *pmlmepriv = &padapter->mlmepriv; | |
unsigned long expires; | |
+ unsigned long start; | |
int ret = _SUCCESS; | |
expires = jiffies + msecs_to_jiffies(ips_deffer_ms); | |
if (time_before(pwrpriv->ips_deny_time, expires)) | |
pwrpriv->ips_deny_time = jiffies + msecs_to_jiffies(ips_deffer_ms); | |
-{ | |
- u32 start = jiffies; | |
+ start = jiffies; | |
if (pwrpriv->ps_processing) { | |
DBG_88E("%s wait ps_processing...\n", __func__); | |
- while (pwrpriv->ps_processing && rtw_get_passing_time_ms(start) <= 3000) | |
+ while (pwrpriv->ps_processing && | |
+ jiffies_to_msecs(jiffies - start) <= 3000) | |
usleep_range(1000, 3000); | |
if (pwrpriv->ps_processing) | |
DBG_88E("%s wait ps_processing timeout\n", __func__); | |
else | |
DBG_88E("%s wait ps_processing done\n", __func__); | |
} | |
-} | |
/* System suspend is not allowed to wakeup */ | |
if ((!pwrpriv->bInternalAutoSuspend) && (pwrpriv->bInSuspend)) { | |
diff --git b/drivers/staging/rtl8188eu/core/rtw_recv.c a/drivers/staging/rtl8188eu/core/rtw_recv.c | |
index 0f2fe34e14c2..afb9dadc1cfe 100644 | |
--- b/drivers/staging/rtl8188eu/core/rtw_recv.c | |
+++ a/drivers/staging/rtl8188eu/core/rtw_recv.c | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#define _RTW_RECV_C_ | |
@@ -44,7 +39,7 @@ static u8 rtw_rfc1042_header[] = { | |
0xaa, 0xaa, 0x03, 0x00, 0x00, 0x00 | |
}; | |
-void rtw_signal_stat_timer_hdl(unsigned long data); | |
+static void rtw_signal_stat_timer_hdl(unsigned long data); | |
void _rtw_init_sta_recv_priv(struct sta_recv_priv *psta_recvpriv) | |
{ | |
@@ -71,16 +66,12 @@ int _rtw_init_recv_priv(struct recv_priv *precvpriv, struct adapter *padapter) | |
precvpriv->adapter = padapter; | |
- precvpriv->free_recvframe_cnt = NR_RECVFRAME; | |
- | |
precvpriv->pallocated_frame_buf = vzalloc(NR_RECVFRAME * sizeof(struct recv_frame) + RXFRAME_ALIGN_SZ); | |
if (!precvpriv->pallocated_frame_buf) | |
return _FAIL; | |
- precvpriv->precv_frame_buf = (u8 *)N_BYTE_ALIGMENT((size_t)(precvpriv->pallocated_frame_buf), RXFRAME_ALIGN_SZ); | |
- | |
- precvframe = (struct recv_frame *)precvpriv->precv_frame_buf; | |
+ precvframe = PTR_ALIGN(precvpriv->pallocated_frame_buf, RXFRAME_ALIGN_SZ); | |
for (i = 0; i < NR_RECVFRAME; i++) { | |
INIT_LIST_HEAD(&(precvframe->list)); | |
@@ -88,15 +79,11 @@ int _rtw_init_recv_priv(struct recv_priv *precvpriv, struct adapter *padapter) | |
list_add_tail(&(precvframe->list), | |
&(precvpriv->free_recv_queue.queue)); | |
- rtw_os_recv_resource_alloc(precvframe); | |
- | |
- precvframe->len = 0; | |
+ precvframe->pkt = NULL; | |
precvframe->adapter = padapter; | |
precvframe++; | |
} | |
- precvpriv->rx_pending_cnt = 1; | |
- | |
res = rtw_hal_init_recv_priv(padapter); | |
setup_timer(&precvpriv->signal_stat_timer, | |
@@ -116,9 +103,7 @@ void _rtw_free_recv_priv(struct recv_priv *precvpriv) | |
rtw_free_uc_swdec_pending_queue(padapter); | |
- if (precvpriv->pallocated_frame_buf) { | |
vfree(precvpriv->pallocated_frame_buf); | |
- } | |
rtw_hal_free_recv_priv(padapter); | |
@@ -127,29 +112,13 @@ void _rtw_free_recv_priv(struct recv_priv *precvpriv) | |
struct recv_frame *_rtw_alloc_recvframe(struct __queue *pfree_recv_queue) | |
{ | |
struct recv_frame *hdr; | |
- struct list_head *plist, *phead; | |
- struct adapter *padapter; | |
- struct recv_priv *precvpriv; | |
- | |
- if (list_empty(&pfree_recv_queue->queue)) { | |
- hdr = NULL; | |
- } else { | |
- phead = get_list_head(pfree_recv_queue); | |
- | |
- plist = phead->next; | |
- | |
- hdr = container_of(plist, struct recv_frame, list); | |
+ hdr = list_first_entry_or_null(&pfree_recv_queue->queue, | |
+ struct recv_frame, list); | |
+ if (hdr) | |
list_del_init(&hdr->list); | |
- padapter = hdr->adapter; | |
- if (padapter != NULL) { | |
- precvpriv = &padapter->recvpriv; | |
- if (pfree_recv_queue == &precvpriv->free_recv_queue) | |
- precvpriv->free_recvframe_cnt--; | |
- } | |
- } | |
- return (struct recv_frame *)hdr; | |
+ return hdr; | |
} | |
struct recv_frame *rtw_alloc_recvframe(struct __queue *pfree_recv_queue) | |
@@ -168,13 +137,8 @@ struct recv_frame *rtw_alloc_recvframe(struct __queue *pfree_recv_queue) | |
int rtw_free_recvframe(struct recv_frame *precvframe, | |
struct __queue *pfree_recv_queue) | |
{ | |
- struct adapter *padapter; | |
- struct recv_priv *precvpriv; | |
- | |
if (!precvframe) | |
return _FAIL; | |
- padapter = precvframe->adapter; | |
- precvpriv = &padapter->recvpriv; | |
if (precvframe->pkt) { | |
dev_kfree_skb_any(precvframe->pkt);/* free skb by driver */ | |
precvframe->pkt = NULL; | |
@@ -184,15 +148,8 @@ int rtw_free_recvframe(struct recv_frame *precvframe, | |
list_del_init(&(precvframe->list)); | |
- precvframe->len = 0; | |
- | |
list_add_tail(&(precvframe->list), get_list_head(pfree_recv_queue)); | |
- if (padapter != NULL) { | |
- if (pfree_recv_queue == &precvpriv->free_recv_queue) | |
- precvpriv->free_recvframe_cnt++; | |
- } | |
- | |
spin_unlock_bh(&pfree_recv_queue->lock); | |
return _SUCCESS; | |
@@ -200,17 +157,9 @@ int rtw_free_recvframe(struct recv_frame *precvframe, | |
int _rtw_enqueue_recvframe(struct recv_frame *precvframe, struct __queue *queue) | |
{ | |
- struct adapter *padapter = precvframe->adapter; | |
- struct recv_priv *precvpriv = &padapter->recvpriv; | |
- | |
list_del_init(&(precvframe->list)); | |
list_add_tail(&(precvframe->list), get_list_head(queue)); | |
- if (padapter != NULL) { | |
- if (queue == &precvpriv->free_recv_queue) | |
- precvpriv->free_recvframe_cnt++; | |
- } | |
- | |
return _SUCCESS; | |
} | |
@@ -248,7 +197,7 @@ void rtw_free_recvframe_queue(struct __queue *pframequeue, struct __queue *pfre | |
plist = plist->next; | |
- rtw_free_recvframe((struct recv_frame *)hdr, pfree_recv_queue); | |
+ rtw_free_recvframe(hdr, pfree_recv_queue); | |
} | |
spin_unlock(&pframequeue->lock); | |
@@ -259,6 +208,7 @@ u32 rtw_free_uc_swdec_pending_queue(struct adapter *adapter) | |
{ | |
u32 cnt = 0; | |
struct recv_frame *pending_frame; | |
+ | |
while ((pending_frame = rtw_alloc_recvframe(&adapter->recvpriv.uc_swdec_pending_queue))) { | |
rtw_free_recvframe(pending_frame, &adapter->recvpriv.free_recv_queue); | |
DBG_88E("%s: dequeue uc_swdec_pending_queue\n", __func__); | |
@@ -309,9 +259,9 @@ static int recvframe_chkmic(struct adapter *adapter, | |
} | |
/* icv_len included the mic code */ | |
- datalen = precvframe->len-prxattrib->hdrlen - | |
+ datalen = precvframe->pkt->len-prxattrib->hdrlen - | |
prxattrib->iv_len-prxattrib->icv_len-8; | |
- pframe = precvframe->rx_data; | |
+ pframe = precvframe->pkt->data; | |
payload = pframe+prxattrib->hdrlen+prxattrib->iv_len; | |
RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("\n prxattrib->iv_len=%d prxattrib->icv_len=%d\n", prxattrib->iv_len, prxattrib->icv_len)); | |
@@ -344,26 +294,27 @@ static int recvframe_chkmic(struct adapter *adapter, | |
*(pframemic-10), *(pframemic-9))); | |
{ | |
uint i; | |
+ | |
RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, | |
("\n ======demp packet (len=%d)======\n", | |
- precvframe->len)); | |
- for (i = 0; i < precvframe->len; i += 8) { | |
+ precvframe->pkt->len)); | |
+ for (i = 0; i < precvframe->pkt->len; i += 8) { | |
RT_TRACE(_module_rtl871x_recv_c_, | |
_drv_err_, | |
("0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x", | |
- *(precvframe->rx_data+i), | |
- *(precvframe->rx_data+i+1), | |
- *(precvframe->rx_data+i+2), | |
- *(precvframe->rx_data+i+3), | |
- *(precvframe->rx_data+i+4), | |
- *(precvframe->rx_data+i+5), | |
- *(precvframe->rx_data+i+6), | |
- *(precvframe->rx_data+i+7))); | |
+ *(precvframe->pkt->data+i), | |
+ *(precvframe->pkt->data+i+1), | |
+ *(precvframe->pkt->data+i+2), | |
+ *(precvframe->pkt->data+i+3), | |
+ *(precvframe->pkt->data+i+4), | |
+ *(precvframe->pkt->data+i+5), | |
+ *(precvframe->pkt->data+i+6), | |
+ *(precvframe->pkt->data+i+7))); | |
} | |
RT_TRACE(_module_rtl871x_recv_c_, | |
_drv_err_, | |
("\n ====== demp packet end [len=%d]======\n", | |
- precvframe->len)); | |
+ precvframe->pkt->len)); | |
RT_TRACE(_module_rtl871x_recv_c_, | |
_drv_err_, | |
("\n hrdlen=%d,\n", | |
@@ -400,7 +351,7 @@ static int recvframe_chkmic(struct adapter *adapter, | |
RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("recvframe_chkmic: rtw_get_stainfo==NULL!!!\n")); | |
} | |
- recvframe_pull_tail(precvframe, 8); | |
+ skb_trim(precvframe->pkt, precvframe->pkt->len - 8); | |
} | |
exit: | |
@@ -420,7 +371,8 @@ static struct recv_frame *decryptor(struct adapter *padapter, | |
RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("prxstat->decrypted=%x prxattrib->encrypt=0x%03x\n", prxattrib->bdecrypted, prxattrib->encrypt)); | |
if (prxattrib->encrypt > 0) { | |
- u8 *iv = precv_frame->rx_data+prxattrib->hdrlen; | |
+ u8 *iv = precv_frame->pkt->data+prxattrib->hdrlen; | |
+ | |
prxattrib->key_index = (((iv[3])>>6)&0x3); | |
if (prxattrib->key_index > WEP_KEYS) { | |
@@ -440,7 +392,7 @@ static struct recv_frame *decryptor(struct adapter *padapter, | |
} | |
} | |
- if ((prxattrib->encrypt > 0) && ((prxattrib->bdecrypted == 0) || (psecuritypriv->sw_decrypt))) { | |
+ if ((prxattrib->encrypt > 0) && (prxattrib->bdecrypted == 0)) { | |
psecuritypriv->hw_decrypted = false; | |
switch (prxattrib->encrypt) { | |
@@ -488,7 +440,7 @@ static struct recv_frame *portctrl(struct adapter *adapter, | |
auth_alg = adapter->securitypriv.dot11AuthAlgrthm; | |
- ptr = precv_frame->rx_data; | |
+ ptr = precv_frame->pkt->data; | |
pfhdr = precv_frame; | |
pattrib = &pfhdr->attrib; | |
psta_addr = pattrib->ta; | |
@@ -500,7 +452,7 @@ static struct recv_frame *portctrl(struct adapter *adapter, | |
if (auth_alg == 2) { | |
/* get ether_type */ | |
- ptr = ptr + pfhdr->attrib.hdrlen + LLC_HEADER_SIZE; | |
+ ptr = ptr + pfhdr->attrib.hdrlen + LLC_HEADER_SIZE + pfhdr->attrib.iv_len; | |
memcpy(&be_tmp, ptr, 2); | |
ether_type = ntohs(be_tmp); | |
@@ -577,7 +529,7 @@ static void process_pwrbit_data(struct adapter *padapter, | |
{ | |
#ifdef CONFIG_88EU_AP_MODE | |
unsigned char pwrbit; | |
- u8 *ptr = precv_frame->rx_data; | |
+ u8 *ptr = precv_frame->pkt->data; | |
struct rx_pkt_attrib *pattrib = &precv_frame->attrib; | |
struct sta_priv *pstapriv = &padapter->stapriv; | |
struct sta_info *psta = NULL; | |
@@ -665,7 +617,7 @@ static void count_rx_stats(struct adapter *padapter, | |
struct rx_pkt_attrib *pattrib = &prframe->attrib; | |
struct recv_priv *precvpriv = &padapter->recvpriv; | |
- sz = prframe->len; | |
+ sz = prframe->pkt->len; | |
precvpriv->rx_bytes += sz; | |
padapter->mlmepriv.LinkDetectInfo.NumRxOkInPeriod++; | |
@@ -695,7 +647,6 @@ int sta2sta_data_frame( | |
int sta2sta_data_frame(struct adapter *adapter, struct recv_frame *precv_frame, | |
struct sta_info **psta) | |
{ | |
- u8 *ptr = precv_frame->rx_data; | |
int ret = _SUCCESS; | |
struct rx_pkt_attrib *pattrib = &precv_frame->attrib; | |
struct sta_priv *pstapriv = &adapter->stapriv; | |
@@ -751,14 +702,6 @@ int sta2sta_data_frame(struct adapter *adapter, struct recv_frame *precv_frame, | |
sta_addr = pattrib->src; | |
} | |
- } else if (check_fwstate(pmlmepriv, WIFI_MP_STATE)) { | |
- memcpy(pattrib->dst, GetAddr1Ptr(ptr), ETH_ALEN); | |
- memcpy(pattrib->src, GetAddr2Ptr(ptr), ETH_ALEN); | |
- memcpy(pattrib->bssid, GetAddr3Ptr(ptr), ETH_ALEN); | |
- memcpy(pattrib->ra, pattrib->dst, ETH_ALEN); | |
- memcpy(pattrib->ta, pattrib->src, ETH_ALEN); | |
- | |
- sta_addr = mybssid; | |
} else { | |
ret = _FAIL; | |
} | |
@@ -783,7 +726,7 @@ static int ap2sta_data_frame( | |
struct recv_frame *precv_frame, | |
struct sta_info **psta) | |
{ | |
- u8 *ptr = precv_frame->rx_data; | |
+ u8 *ptr = precv_frame->pkt->data; | |
struct rx_pkt_attrib *pattrib = &precv_frame->attrib; | |
int ret = _SUCCESS; | |
struct sta_priv *pstapriv = &adapter->stapriv; | |
@@ -847,23 +790,6 @@ static int ap2sta_data_frame( | |
ret = RTW_RX_HANDLED; | |
goto exit; | |
} | |
- } else if ((check_fwstate(pmlmepriv, WIFI_MP_STATE) == true) && | |
- (check_fwstate(pmlmepriv, _FW_LINKED) == true)) { | |
- memcpy(pattrib->dst, GetAddr1Ptr(ptr), ETH_ALEN); | |
- memcpy(pattrib->src, GetAddr2Ptr(ptr), ETH_ALEN); | |
- memcpy(pattrib->bssid, GetAddr3Ptr(ptr), ETH_ALEN); | |
- memcpy(pattrib->ra, pattrib->dst, ETH_ALEN); | |
- memcpy(pattrib->ta, pattrib->src, ETH_ALEN); | |
- | |
- /* */ | |
- memcpy(pattrib->bssid, mybssid, ETH_ALEN); | |
- | |
- *psta = rtw_get_stainfo(pstapriv, pattrib->bssid); /* get sta_info */ | |
- if (*psta == NULL) { | |
- RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("can't get psta under MP_MODE ; drop pkt\n")); | |
- ret = _FAIL; | |
- goto exit; | |
- } | |
} else if (check_fwstate(pmlmepriv, WIFI_AP_STATE)) { | |
/* Special case */ | |
ret = RTW_RX_HANDLED; | |
@@ -893,7 +819,7 @@ static int sta2ap_data_frame(struct adapter *adapter, | |
struct rx_pkt_attrib *pattrib = &precv_frame->attrib; | |
struct sta_priv *pstapriv = &adapter->stapriv; | |
struct mlme_priv *pmlmepriv = &adapter->mlmepriv; | |
- u8 *ptr = precv_frame->rx_data; | |
+ u8 *ptr = precv_frame->pkt->data; | |
unsigned char *mybssid = get_bssid(pmlmepriv); | |
int ret = _SUCCESS; | |
@@ -917,9 +843,8 @@ static int sta2ap_data_frame(struct adapter *adapter, | |
process_pwrbit_data(adapter, precv_frame); | |
- if ((GetFrameSubType(ptr) & WIFI_QOS_DATA_TYPE) == WIFI_QOS_DATA_TYPE) { | |
+ if ((GetFrameSubType(ptr) & WIFI_QOS_DATA_TYPE) == WIFI_QOS_DATA_TYPE) | |
process_wmmps_data(adapter, precv_frame); | |
- } | |
if (GetFrameSubType(ptr) & BIT(6)) { | |
/* No data, will not indicate to upper layer, temporily count it here */ | |
@@ -929,6 +854,7 @@ static int sta2ap_data_frame(struct adapter *adapter, | |
} | |
} else { | |
u8 *myhwaddr = myid(&adapter->eeprompriv); | |
+ | |
if (memcmp(pattrib->ra, myhwaddr, ETH_ALEN)) { | |
ret = RTW_RX_HANDLED; | |
goto exit; | |
@@ -950,7 +876,7 @@ static int validate_recv_ctrl_frame(struct adapter *padapter, | |
#ifdef CONFIG_88EU_AP_MODE | |
struct rx_pkt_attrib *pattrib = &precv_frame->attrib; | |
struct sta_priv *pstapriv = &padapter->stapriv; | |
- u8 *pframe = precv_frame->rx_data; | |
+ u8 *pframe = precv_frame->pkt->data; | |
if (GetFrameType(pframe) != WIFI_CTRL_TYPE) | |
return _FAIL; | |
@@ -1087,19 +1013,19 @@ static int validate_recv_mgnt_frame(struct adapter *padapter, | |
/* for rx pkt statistics */ | |
psta = rtw_get_stainfo(&padapter->stapriv, | |
- GetAddr2Ptr(precv_frame->rx_data)); | |
+ GetAddr2Ptr(precv_frame->pkt->data)); | |
if (psta) { | |
psta->sta_stats.rx_mgnt_pkts++; | |
- if (GetFrameSubType(precv_frame->rx_data) == WIFI_BEACON) { | |
+ if (GetFrameSubType(precv_frame->pkt->data) == WIFI_BEACON) { | |
psta->sta_stats.rx_beacon_pkts++; | |
- } else if (GetFrameSubType(precv_frame->rx_data) == WIFI_PROBEREQ) { | |
+ } else if (GetFrameSubType(precv_frame->pkt->data) == WIFI_PROBEREQ) { | |
psta->sta_stats.rx_probereq_pkts++; | |
- } else if (GetFrameSubType(precv_frame->rx_data) == WIFI_PROBERSP) { | |
+ } else if (GetFrameSubType(precv_frame->pkt->data) == WIFI_PROBERSP) { | |
if (!memcmp(padapter->eeprompriv.mac_addr, | |
- GetAddr1Ptr(precv_frame->rx_data), ETH_ALEN)) | |
+ GetAddr1Ptr(precv_frame->pkt->data), ETH_ALEN)) | |
psta->sta_stats.rx_probersp_pkts++; | |
- else if (is_broadcast_mac_addr(GetAddr1Ptr(precv_frame->rx_data)) || | |
- is_multicast_mac_addr(GetAddr1Ptr(precv_frame->rx_data))) | |
+ else if (is_broadcast_mac_addr(GetAddr1Ptr(precv_frame->pkt->data)) || | |
+ is_multicast_mac_addr(GetAddr1Ptr(precv_frame->pkt->data))) | |
psta->sta_stats.rx_probersp_bm_pkts++; | |
else | |
psta->sta_stats.rx_probersp_uo_pkts++; | |
@@ -1117,7 +1043,7 @@ static int validate_recv_data_frame(struct adapter *adapter, | |
u8 bretry; | |
u8 *psa, *pda, *pbssid; | |
struct sta_info *psta = NULL; | |
- u8 *ptr = precv_frame->rx_data; | |
+ u8 *ptr = precv_frame->pkt->data; | |
struct rx_pkt_attrib *pattrib = &precv_frame->attrib; | |
struct security_priv *psecuritypriv = &adapter->securitypriv; | |
int ret = _SUCCESS; | |
@@ -1164,11 +1090,10 @@ static int validate_recv_data_frame(struct adapter *adapter, | |
break; | |
} | |
- if (ret == _FAIL) { | |
+ if (ret == _FAIL) | |
goto exit; | |
- } else if (ret == RTW_RX_HANDLED) { | |
+ else if (ret == RTW_RX_HANDLED) | |
goto exit; | |
- } | |
if (psta == NULL) { | |
RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, (" after to_fr_ds_chk; psta==NULL\n")); | |
@@ -1240,12 +1165,13 @@ static int validate_recv_frame(struct adapter *adapter, | |
int retval = _SUCCESS; | |
u8 bDumpRxPkt; | |
struct rx_pkt_attrib *pattrib = &precv_frame->attrib; | |
- u8 *ptr = precv_frame->rx_data; | |
+ u8 *ptr = precv_frame->pkt->data; | |
u8 ver = (unsigned char)(*ptr)&0x3; | |
struct mlme_ext_priv *pmlmeext = &adapter->mlmeextpriv; | |
if (pmlmeext->sitesurvey_res.state == SCAN_PROCESS) { | |
int ch_set_idx = rtw_ch_set_search_ch(pmlmeext->channel_set, rtw_get_oper_ch(adapter)); | |
+ | |
if (ch_set_idx >= 0) | |
pmlmeext->channel_set[ch_set_idx].rx_count++; | |
} | |
@@ -1274,32 +1200,25 @@ static int validate_recv_frame(struct adapter *adapter, | |
/* Dump rx packets */ | |
rtw_hal_get_def_var(adapter, HAL_DEF_DBG_DUMP_RXPKT, &(bDumpRxPkt)); | |
if (bDumpRxPkt == 1) {/* dump all rx packets */ | |
- int i; | |
- DBG_88E("#############################\n"); | |
- | |
- for (i = 0; i < 64; i += 8) | |
- DBG_88E("%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:\n", *(ptr+i), | |
- *(ptr+i+1), *(ptr+i+2), *(ptr+i+3), *(ptr+i+4), *(ptr+i+5), *(ptr+i+6), *(ptr+i+7)); | |
- DBG_88E("#############################\n"); | |
+ if (_drv_err_ <= GlobalDebugLevel) { | |
+ pr_info(DRIVER_PREFIX "#############################\n"); | |
+ print_hex_dump(KERN_INFO, DRIVER_PREFIX, DUMP_PREFIX_NONE, | |
+ 16, 1, ptr, 64, false); | |
+ pr_info(DRIVER_PREFIX "#############################\n"); | |
+ } | |
} else if (bDumpRxPkt == 2) { | |
- if (type == WIFI_MGT_TYPE) { | |
- int i; | |
- DBG_88E("#############################\n"); | |
- | |
- for (i = 0; i < 64; i += 8) | |
- DBG_88E("%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:\n", *(ptr+i), | |
- *(ptr+i+1), *(ptr+i+2), *(ptr+i+3), *(ptr+i+4), *(ptr+i+5), *(ptr+i+6), *(ptr+i+7)); | |
- DBG_88E("#############################\n"); | |
+ if ((_drv_err_ <= GlobalDebugLevel) && (type == WIFI_MGT_TYPE)) { | |
+ pr_info(DRIVER_PREFIX "#############################\n"); | |
+ print_hex_dump(KERN_INFO, DRIVER_PREFIX, DUMP_PREFIX_NONE, | |
+ 16, 1, ptr, 64, false); | |
+ pr_info(DRIVER_PREFIX "#############################\n"); | |
} | |
} else if (bDumpRxPkt == 3) { | |
- if (type == WIFI_DATA_TYPE) { | |
- int i; | |
- DBG_88E("#############################\n"); | |
- | |
- for (i = 0; i < 64; i += 8) | |
- DBG_88E("%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:\n", *(ptr+i), | |
- *(ptr+i+1), *(ptr+i+2), *(ptr+i+3), *(ptr+i+4), *(ptr+i+5), *(ptr+i+6), *(ptr+i+7)); | |
- DBG_88E("#############################\n"); | |
+ if ((_drv_err_ <= GlobalDebugLevel) && (type == WIFI_DATA_TYPE)) { | |
+ pr_info(DRIVER_PREFIX "#############################\n"); | |
+ print_hex_dump(KERN_INFO, DRIVER_PREFIX, DUMP_PREFIX_NONE, | |
+ 16, 1, ptr, 64, false); | |
+ pr_info(DRIVER_PREFIX "#############################\n"); | |
} | |
} | |
switch (type) { | |
@@ -1316,11 +1235,12 @@ static int validate_recv_frame(struct adapter *adapter, | |
retval = _FAIL; /* only data frame return _SUCCESS */ | |
break; | |
case WIFI_DATA_TYPE: /* data */ | |
- rtw_led_control(adapter, LED_CTL_RX); | |
+ LedControl8188eu(adapter, LED_CTL_RX); | |
pattrib->qos = (subtype & BIT(7)) ? 1 : 0; | |
retval = validate_recv_data_frame(adapter, precv_frame); | |
if (retval == _FAIL) { | |
struct recv_priv *precvpriv = &adapter->recvpriv; | |
+ | |
precvpriv->rx_drop++; | |
} | |
break; | |
@@ -1359,13 +1279,11 @@ static int wlanhdr_to_ethhdr(struct recv_frame *precvframe) | |
u8 *psnap_type; | |
struct ieee80211_snap_hdr *psnap; | |
- struct adapter *adapter = precvframe->adapter; | |
- struct mlme_priv *pmlmepriv = &adapter->mlmepriv; | |
- u8 *ptr = precvframe->rx_data; | |
+ u8 *ptr = precvframe->pkt->data; | |
struct rx_pkt_attrib *pattrib = &precvframe->attrib; | |
if (pattrib->encrypt) | |
- recvframe_pull_tail(precvframe, pattrib->icv_len); | |
+ skb_trim(precvframe->pkt, precvframe->pkt->len - pattrib->icv_len); | |
psnap = (struct ieee80211_snap_hdr *)(ptr+pattrib->hdrlen + pattrib->iv_len); | |
psnap_type = ptr+pattrib->hdrlen + pattrib->iv_len+SNAP_SIZE; | |
@@ -1382,7 +1300,7 @@ static int wlanhdr_to_ethhdr(struct recv_frame *precvframe) | |
} | |
rmv_len = pattrib->hdrlen + pattrib->iv_len + (bsnaphdr ? SNAP_SIZE : 0); | |
- len = precvframe->len - rmv_len; | |
+ len = precvframe->pkt->len - rmv_len; | |
RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, | |
("\n===pattrib->hdrlen: %x, pattrib->iv_len:%x===\n\n", pattrib->hdrlen, pattrib->iv_len)); | |
@@ -1391,20 +1309,7 @@ static int wlanhdr_to_ethhdr(struct recv_frame *precvframe) | |
eth_type = ntohs(be_tmp); /* pattrib->ether_type */ | |
pattrib->eth_type = eth_type; | |
- if ((check_fwstate(pmlmepriv, WIFI_MP_STATE))) { | |
- ptr += rmv_len; | |
- *ptr = 0x87; | |
- *(ptr+1) = 0x12; | |
- | |
- eth_type = 0x8712; | |
- /* append rx status for mp test packets */ | |
- ptr = recvframe_pull(precvframe, (rmv_len-sizeof(struct ethhdr)+2)-24); | |
- memcpy(ptr, get_rxmem(precvframe), 24); | |
- ptr += 24; | |
- } else { | |
- ptr = recvframe_pull(precvframe, (rmv_len-sizeof(struct ethhdr) + (bsnaphdr ? 2 : 0))); | |
- } | |
- | |
+ ptr = skb_pull(precvframe->pkt, rmv_len - sizeof(struct ethhdr) + (bsnaphdr ? 2 : 0)); | |
if (!ptr) | |
return _FAIL; | |
@@ -1436,7 +1341,7 @@ static struct recv_frame *recvframe_defrag(struct adapter *adapter, | |
phead = get_list_head(defrag_q); | |
plist = phead->next; | |
pfhdr = container_of(plist, struct recv_frame, list); | |
- prframe = (struct recv_frame *)pfhdr; | |
+ prframe = pfhdr; | |
list_del_init(&(prframe->list)); | |
if (curfragnum != pfhdr->attrib.frag_num) { | |
@@ -1456,7 +1361,7 @@ static struct recv_frame *recvframe_defrag(struct adapter *adapter, | |
while (phead != plist) { | |
pnfhdr = container_of(plist, struct recv_frame, list); | |
- pnextrframe = (struct recv_frame *)pnfhdr; | |
+ pnextrframe = pnfhdr; | |
/* check the fragment sequence (2nd ~n fragment frame) */ | |
@@ -1475,15 +1380,16 @@ static struct recv_frame *recvframe_defrag(struct adapter *adapter, | |
wlanhdr_offset = pnfhdr->attrib.hdrlen + pnfhdr->attrib.iv_len; | |
- recvframe_pull(pnextrframe, wlanhdr_offset); | |
+ skb_pull(pnextrframe->pkt, wlanhdr_offset); | |
/* append to first fragment frame's tail (if privacy frame, pull the ICV) */ | |
- recvframe_pull_tail(prframe, pfhdr->attrib.icv_len); | |
+ skb_trim(prframe->pkt, prframe->pkt->len - pfhdr->attrib.icv_len); | |
/* memcpy */ | |
- memcpy(pfhdr->rx_tail, pnfhdr->rx_data, pnfhdr->len); | |
+ memcpy(skb_tail_pointer(pfhdr->pkt), pnfhdr->pkt->data, | |
+ pnfhdr->pkt->len); | |
- recvframe_put(prframe, pnfhdr->len); | |
+ skb_put(prframe->pkt, pnfhdr->pkt->len); | |
pfhdr->attrib.icv_len = pnfhdr->attrib.icv_len; | |
plist = plist->next; | |
@@ -1524,7 +1430,8 @@ struct recv_frame *recvframe_chk_defrag(struct adapter *padapter, | |
psta_addr = pfhdr->attrib.ta; | |
psta = rtw_get_stainfo(pstapriv, psta_addr); | |
if (psta == NULL) { | |
- u8 type = GetFrameType(pfhdr->rx_data); | |
+ u8 type = GetFrameType(pfhdr->pkt->data); | |
+ | |
if (type != WIFI_DATA_TYPE) { | |
psta = rtw_get_bcmc_stainfo(padapter); | |
pdefrag_q = &psta->sta_recvpriv.defrag_q; | |
@@ -1544,11 +1451,10 @@ struct recv_frame *recvframe_chk_defrag(struct adapter *padapter, | |
if (pdefrag_q != NULL) { | |
if (fragnum == 0) { | |
/* the first fragment */ | |
- if (!list_empty(&pdefrag_q->queue)) { | |
+ if (!list_empty(&pdefrag_q->queue)) | |
/* free current defrag_q */ | |
rtw_free_recvframe_queue(pdefrag_q, pfree_recv_queue); | |
} | |
- } | |
/* Then enqueue the 0~(n-1) fragment into the defrag_q */ | |
@@ -1604,22 +1510,21 @@ static int amsdu_to_msdu(struct adapter *padapter, struct recv_frame *prframe) | |
u8 nr_subframes, i; | |
unsigned char *pdata; | |
struct rx_pkt_attrib *pattrib; | |
- unsigned char *data_ptr; | |
struct sk_buff *sub_skb, *subframes[MAX_SUBFRAME_COUNT]; | |
struct recv_priv *precvpriv = &padapter->recvpriv; | |
struct __queue *pfree_recv_queue = &(precvpriv->free_recv_queue); | |
- nr_subframes = 0; | |
+ nr_subframes = 0; | |
pattrib = &prframe->attrib; | |
- recvframe_pull(prframe, prframe->attrib.hdrlen); | |
+ skb_pull(prframe->pkt, prframe->attrib.hdrlen); | |
if (prframe->attrib.iv_len > 0) | |
- recvframe_pull(prframe, prframe->attrib.iv_len); | |
+ skb_pull(prframe->pkt, prframe->attrib.iv_len); | |
- a_len = prframe->len; | |
+ a_len = prframe->pkt->len; | |
- pdata = prframe->rx_data; | |
+ pdata = prframe->pkt->data; | |
while (a_len > ETH_HLEN) { | |
/* Offset 12 denote 2 mac address */ | |
@@ -1638,8 +1543,7 @@ static int amsdu_to_msdu(struct adapter *padapter, struct recv_frame *prframe) | |
sub_skb = dev_alloc_skb(nSubframe_Length + 12); | |
if (sub_skb) { | |
skb_reserve(sub_skb, 12); | |
- data_ptr = (u8 *)skb_put(sub_skb, nSubframe_Length); | |
- memcpy(data_ptr, pdata, nSubframe_Length); | |
+ skb_put_data(sub_skb, pdata, nSubframe_Length); | |
} else { | |
sub_skb = skb_clone(prframe->pkt, GFP_ATOMIC); | |
if (sub_skb) { | |
@@ -1663,13 +1567,12 @@ static int amsdu_to_msdu(struct adapter *padapter, struct recv_frame *prframe) | |
a_len -= nSubframe_Length; | |
if (a_len != 0) { | |
padding_len = 4 - ((nSubframe_Length + ETH_HLEN) & (4-1)); | |
- if (padding_len == 4) { | |
+ if (padding_len == 4) | |
padding_len = 0; | |
- } | |
- if (a_len < padding_len) { | |
+ if (a_len < padding_len) | |
goto exit; | |
- } | |
+ | |
pdata += padding_len; | |
a_len -= padding_len; | |
} | |
@@ -1707,8 +1610,6 @@ static int amsdu_to_msdu(struct adapter *padapter, struct recv_frame *prframe) | |
} | |
exit: | |
- | |
- prframe->len = 0; | |
rtw_free_recvframe(prframe, pfree_recv_queue);/* free this recv_frame */ | |
return _SUCCESS; | |
@@ -1801,7 +1702,7 @@ static int recv_indicatepkts_in_order(struct adapter *padapter, struct recv_reor | |
/* Check if there is any packet need indicate. */ | |
while (!list_empty(phead)) { | |
prhdr = container_of(plist, struct recv_frame, list); | |
- prframe = (struct recv_frame *)prhdr; | |
+ prframe = prhdr; | |
pattrib = &prframe->attrib; | |
if (!SN_LESS(preorder_ctrl->indicate_seq, pattrib->seq_num)) { | |
@@ -2016,7 +1917,7 @@ static int recv_func_posthandle(struct adapter *padapter, | |
struct __queue *pfree_recv_queue = &padapter->recvpriv.free_recv_queue; | |
/* DATA FRAME */ | |
- rtw_led_control(padapter, LED_CTL_RX); | |
+ LedControl8188eu(padapter, LED_CTL_RX); | |
prframe = decryptor(padapter, prframe); | |
if (prframe == NULL) { | |
@@ -2076,7 +1977,7 @@ static int recv_func(struct adapter *padapter, struct recv_frame *rframe) | |
/* check if need to enqueue into uc_swdec_pending_queue*/ | |
if (check_fwstate(mlmepriv, WIFI_STATION_STATE) && | |
!IS_MCAST(prxattrib->ra) && prxattrib->encrypt > 0 && | |
- (prxattrib->bdecrypted == 0 || psecuritypriv->sw_decrypt) && | |
+ prxattrib->bdecrypted == 0 && | |
!is_wep_enc(psecuritypriv->dot11PrivacyAlgrthm) && | |
!psecuritypriv->busetkipkey) { | |
rtw_enqueue_recvframe(rframe, &padapter->recvpriv.uc_swdec_pending_queue); | |
@@ -2115,7 +2016,7 @@ s32 rtw_recv_entry(struct recv_frame *precvframe) | |
return ret; | |
} | |
-void rtw_signal_stat_timer_hdl(unsigned long data) | |
+static void rtw_signal_stat_timer_hdl(unsigned long data) | |
{ | |
struct adapter *adapter = (struct adapter *)data; | |
struct recv_priv *recvpriv = &adapter->recvpriv; | |
@@ -2125,38 +2026,35 @@ void rtw_signal_stat_timer_hdl(unsigned long data) | |
u8 avg_signal_qual = 0; | |
u8 _alpha = 3; /* this value is based on converging_constant = 5000 and sampling_interval = 1000 */ | |
- 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); | |
- } else { | |
- if (recvpriv->signal_strength_data.update_req == 0) {/* update_req is clear, means we got rx */ | |
+ if (recvpriv->signal_strength_data.update_req == 0) { | |
+ /* update_req is clear, means we got rx */ | |
avg_signal_strength = recvpriv->signal_strength_data.avg_val; | |
- /* after avg_vals are acquired, we can re-stat the signal values */ | |
+ /* after avg_vals are acquired, we can re-stat the signal | |
+ * values | |
+ */ | |
recvpriv->signal_strength_data.update_req = 1; | |
} | |
- if (recvpriv->signal_qual_data.update_req == 0) {/* update_req is clear, means we got rx */ | |
+ if (recvpriv->signal_qual_data.update_req == 0) { | |
+ /* update_req is clear, means we got rx */ | |
avg_signal_qual = recvpriv->signal_qual_data.avg_val; | |
- /* after avg_vals are acquired, we can re-stat the signal values */ | |
+ /* after avg_vals are acquired, we can re-stat the signal | |
+ * values | |
+ */ | |
recvpriv->signal_qual_data.update_req = 1; | |
} | |
/* update value of signal_strength, rssi, signal_qual */ | |
if (check_fwstate(&adapter->mlmepriv, _FW_UNDER_SURVEY) == false) { | |
- tmp_s = avg_signal_strength+(_alpha-1)*recvpriv->signal_strength; | |
- if (tmp_s % _alpha) | |
- tmp_s = tmp_s/_alpha + 1; | |
- else | |
- tmp_s = tmp_s/_alpha; | |
+ tmp_s = avg_signal_strength + | |
+ (_alpha - 1) * recvpriv->signal_strength; | |
+ tmp_s = DIV_ROUND_UP(tmp_s, _alpha); | |
if (tmp_s > 100) | |
tmp_s = 100; | |
- tmp_q = avg_signal_qual+(_alpha-1)*recvpriv->signal_qual; | |
- if (tmp_q % _alpha) | |
- tmp_q = tmp_q/_alpha + 1; | |
- else | |
- tmp_q = tmp_q/_alpha; | |
+ tmp_q = avg_signal_qual + | |
+ (_alpha - 1) * recvpriv->signal_qual; | |
+ tmp_q = DIV_ROUND_UP(tmp_q, _alpha); | |
if (tmp_q > 100) | |
tmp_q = 100; | |
@@ -2164,6 +2062,6 @@ void rtw_signal_stat_timer_hdl(unsigned long data) | |
recvpriv->rssi = (s8)translate_percentage_to_dbm(tmp_s); | |
recvpriv->signal_qual = tmp_q; | |
} | |
- } | |
+ | |
rtw_set_signal_stat_timer(recvpriv); | |
} | |
diff --git b/drivers/staging/rtl8188eu/core/rtw_rf.c a/drivers/staging/rtl8188eu/core/rtw_rf.c | |
index 6983c572b358..e47be87fb402 100644 | |
--- b/drivers/staging/rtl8188eu/core/rtw_rf.c | |
+++ a/drivers/staging/rtl8188eu/core/rtw_rf.c | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#define _RTW_RF_C_ | |
@@ -24,7 +19,6 @@ | |
#include <recv_osdep.h> | |
#include <xmit_osdep.h> | |
- | |
struct ch_freq { | |
u32 channel; | |
u32 frequency; | |
@@ -70,20 +64,3 @@ u32 rtw_ch2freq(u32 channel) | |
return freq; | |
} | |
- | |
-u32 rtw_freq2ch(u32 freq) | |
-{ | |
- u8 i; | |
- u32 ch = 0; | |
- | |
- for (i = 0; i < ch_freq_map_num; i++) { | |
- if (freq == ch_freq_map[i].frequency) { | |
- ch = ch_freq_map[i].channel; | |
- break; | |
- } | |
- } | |
- if (i == ch_freq_map_num) | |
- ch = 1; | |
- | |
- return ch; | |
-} | |
diff --git b/drivers/staging/rtl8188eu/core/rtw_security.c a/drivers/staging/rtl8188eu/core/rtw_security.c | |
index 22839d57dc8c..b283a4903369 100644 | |
--- b/drivers/staging/rtl8188eu/core/rtw_security.c | |
+++ a/drivers/staging/rtl8188eu/core/rtw_security.c | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#define _RTW_SECURITY_C_ | |
@@ -41,6 +36,7 @@ static void arcfour_init(struct arc4context *parc4ctx, u8 *key, u32 key_len) | |
u32 stateindex; | |
u8 *state; | |
u32 counter; | |
+ | |
state = parc4ctx->state; | |
parc4ctx->x = 0; | |
parc4ctx->y = 0; | |
@@ -65,6 +61,7 @@ static u32 arcfour_byte(struct arc4context *parc4ctx) | |
u32 y; | |
u32 sx, sy; | |
u8 *state; | |
+ | |
state = parc4ctx->state; | |
x = (parc4ctx->x + 1) & 0xff; | |
sx = state[x]; | |
@@ -80,6 +77,7 @@ static u32 arcfour_byte(struct arc4context *parc4ctx) | |
static void arcfour_encrypt(struct arc4context *parc4ctx, u8 *dest, u8 *src, u32 len) | |
{ | |
u32 i; | |
+ | |
for (i = 0; i < len; i++) | |
dest[i] = src[i] ^ (unsigned char)arcfour_byte(parc4ctx); | |
} | |
@@ -125,6 +123,7 @@ static __le32 getcrc32(u8 *buf, int len) | |
{ | |
u8 *p; | |
u32 crc; | |
+ | |
if (bcrc32initialized == 0) | |
crc32_init(); | |
@@ -209,7 +208,7 @@ void rtw_wep_decrypt(struct adapter *padapter, u8 *precvframe) | |
struct security_priv *psecuritypriv = &padapter->securitypriv; | |
- pframe = (unsigned char *)((struct recv_frame *)precvframe)->rx_data; | |
+ pframe = (unsigned char *)((struct recv_frame *)precvframe)->pkt->data; | |
/* start to decrypt recvframe */ | |
if ((prxattrib->encrypt == _WEP40_) || (prxattrib->encrypt == _WEP104_)) { | |
@@ -218,7 +217,7 @@ void rtw_wep_decrypt(struct adapter *padapter, u8 *precvframe) | |
keylength = psecuritypriv->dot11DefKeylen[keyindex]; | |
memcpy(&wepkey[0], iv, 3); | |
memcpy(&wepkey[3], &psecuritypriv->dot11DefKey[keyindex].skey[0], keylength); | |
- length = ((struct recv_frame *)precvframe)->len-prxattrib->hdrlen-prxattrib->iv_len; | |
+ length = ((struct recv_frame *)precvframe)->pkt->len-prxattrib->hdrlen-prxattrib->iv_len; | |
payload = pframe+prxattrib->iv_len+prxattrib->hdrlen; | |
@@ -238,7 +237,6 @@ void rtw_wep_decrypt(struct adapter *padapter, u8 *precvframe) | |
&crc, &payload[length-4])); | |
} | |
} | |
- return; | |
} | |
/* 3 ===== TKIP related ===== */ | |
@@ -248,6 +246,7 @@ static u32 secmicgetuint32(u8 *p) | |
{ | |
s32 i; | |
u32 res = 0; | |
+ | |
for (i = 0; i < 4; i++) | |
res |= ((u32)(*p++)) << (8*i); | |
return res; | |
@@ -257,6 +256,7 @@ static void secmicputuint32(u8 *p, u32 val) | |
/* Convert from Us3232 to Byte[] in a portable way */ | |
{ | |
long i; | |
+ | |
for (i = 0; i < 4; i++) { | |
*p++ = (u8)(val & 0xff); | |
val >>= 8; | |
@@ -334,6 +334,7 @@ void rtw_seccalctkipmic(u8 *key, u8 *header, u8 *data, u32 data_len, u8 *mic_cod | |
{ | |
struct mic_data micdata; | |
u8 priority[4] = {0x0, 0x0, 0x0, 0x0}; | |
+ | |
rtw_secmicsetkey(&micdata, key); | |
priority[0] = pri; | |
@@ -658,7 +659,7 @@ u32 rtw_tkip_decrypt(struct adapter *padapter, u8 *precvframe) | |
u32 res = _SUCCESS; | |
- pframe = (unsigned char *)((struct recv_frame *)precvframe)->rx_data; | |
+ pframe = (unsigned char *)((struct recv_frame *)precvframe)->pkt->data; | |
/* 4 start to decrypt recvframe */ | |
if (prxattrib->encrypt == _TKIP_) { | |
@@ -678,7 +679,7 @@ u32 rtw_tkip_decrypt(struct adapter *padapter, u8 *precvframe) | |
iv = pframe+prxattrib->hdrlen; | |
payload = pframe+prxattrib->iv_len+prxattrib->hdrlen; | |
- length = ((struct recv_frame *)precvframe)->len-prxattrib->hdrlen-prxattrib->iv_len; | |
+ length = ((struct recv_frame *)precvframe)->pkt->len-prxattrib->hdrlen-prxattrib->iv_len; | |
GET_TKIP_PN(iv, dot11txpn); | |
@@ -782,6 +783,7 @@ static void aes128k128d(u8 *key, u8 *data, u8 *ciphertext); | |
static void xor_128(u8 *a, u8 *b, u8 *out) | |
{ | |
int i; | |
+ | |
for (i = 0; i < 16; i++) | |
out[i] = a[i] ^ b[i]; | |
} | |
@@ -789,6 +791,7 @@ static void xor_128(u8 *a, u8 *b, u8 *out) | |
static void xor_32(u8 *a, u8 *b, u8 *out) | |
{ | |
int i; | |
+ | |
for (i = 0; i < 4; i++) | |
out[i] = a[i] ^ b[i]; | |
} | |
@@ -806,6 +809,7 @@ static void next_key(u8 *key, int round) | |
0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, | |
0x1b, 0x36, 0x36, 0x36 | |
}; | |
+ | |
sbox_key[0] = sbox(key[13]); | |
sbox_key[1] = sbox(key[14]); | |
sbox_key[2] = sbox(key[15]); | |
@@ -859,6 +863,7 @@ static void mix_column(u8 *in, u8 *out) | |
u8 rotr[4]; | |
u8 temp[4]; | |
u8 tempb[4]; | |
+ | |
for (i = 0 ; i < 4; i++) { | |
if ((in[i] & 0x80) == 0x80) | |
add1b[i] = 0x1b; | |
@@ -911,6 +916,7 @@ static void aes128k128d(u8 *key, u8 *data, u8 *ciphertext) | |
u8 intermediatea[16]; | |
u8 intermediateb[16]; | |
u8 round_key[16]; | |
+ | |
for (i = 0; i < 16; i++) | |
round_key[i] = key[i]; | |
for (round = 0; round < 11; round++) { | |
@@ -942,6 +948,7 @@ static void construct_mic_iv(u8 *mic_iv, int qc_exists, int a4_exists, u8 *mpdu, | |
uint payload_length, u8 *pn_vector) | |
{ | |
int i; | |
+ | |
mic_iv[0] = 0x59; | |
if (qc_exists && a4_exists) | |
mic_iv[1] = mpdu[30] & 0x0f; /* QoS_TC */ | |
@@ -990,6 +997,7 @@ static void construct_mic_header1(u8 *mic_header1, int header_length, u8 *mpdu) | |
static void construct_mic_header2(u8 *mic_header2, u8 *mpdu, int a4_exists, int qc_exists) | |
{ | |
int i; | |
+ | |
for (i = 0; i < 16; i++) | |
mic_header2[i] = 0x00; | |
@@ -1031,6 +1039,7 @@ static void construct_mic_header2(u8 *mic_header2, u8 *mpdu, int a4_exists, int | |
static void construct_ctr_preload(u8 *ctr_preload, int a4_exists, int qc_exists, u8 *mpdu, u8 *pn_vector, int c) | |
{ | |
int i; | |
+ | |
for (i = 0; i < 16; i++) | |
ctr_preload[i] = 0x00; | |
i = 0; | |
@@ -1056,6 +1065,7 @@ static void construct_ctr_preload(u8 *ctr_preload, int a4_exists, int qc_exists, | |
static void bitwise_xor(u8 *ina, u8 *inb, u8 *out) | |
{ | |
int i; | |
+ | |
for (i = 0; i < 16; i++) | |
out[i] = ina[i] ^ inb[i]; | |
} | |
@@ -1081,13 +1091,13 @@ static int aes_cipher(u8 *key, uint hdrlen, u8 *pframe, uint plen) | |
frsubtype >>= 4; | |
- memset((void *)mic_iv, 0, 16); | |
- memset((void *)mic_header1, 0, 16); | |
- memset((void *)mic_header2, 0, 16); | |
- memset((void *)ctr_preload, 0, 16); | |
- memset((void *)chain_buffer, 0, 16); | |
- memset((void *)aes_out, 0, 16); | |
- memset((void *)padded_buffer, 0, 16); | |
+ memset(mic_iv, 0, 16); | |
+ memset(mic_header1, 0, 16); | |
+ memset(mic_header2, 0, 16); | |
+ memset(ctr_preload, 0, 16); | |
+ memset(chain_buffer, 0, 16); | |
+ memset(aes_out, 0, 16); | |
+ memset(padded_buffer, 0, 16); | |
if ((hdrlen == WLAN_HDR_A3_LEN) || (hdrlen == WLAN_HDR_A3_QOS_LEN)) | |
a4_exists = 0; | |
@@ -1262,6 +1272,7 @@ static int aes_decipher(u8 *key, uint hdrlen, | |
uint qc_exists, a4_exists, i, j, payload_remainder, | |
num_blocks, payload_index; | |
int res = _SUCCESS; | |
+ | |
u8 pn_vector[6]; | |
u8 mic_iv[16]; | |
u8 mic_header1[16]; | |
@@ -1279,13 +1290,13 @@ static int aes_decipher(u8 *key, uint hdrlen, | |
uint frsubtype = GetFrameSubType(pframe); | |
frsubtype >>= 4; | |
- memset((void *)mic_iv, 0, 16); | |
- memset((void *)mic_header1, 0, 16); | |
- memset((void *)mic_header2, 0, 16); | |
- memset((void *)ctr_preload, 0, 16); | |
- memset((void *)chain_buffer, 0, 16); | |
- memset((void *)aes_out, 0, 16); | |
- memset((void *)padded_buffer, 0, 16); | |
+ memset(mic_iv, 0, 16); | |
+ memset(mic_header1, 0, 16); | |
+ memset(mic_header2, 0, 16); | |
+ memset(ctr_preload, 0, 16); | |
+ memset(chain_buffer, 0, 16); | |
+ memset(aes_out, 0, 16); | |
+ memset(padded_buffer, 0, 16); | |
/* start to decrypt the payload */ | |
@@ -1458,7 +1469,8 @@ u32 rtw_aes_decrypt(struct adapter *padapter, u8 *precvframe) | |
struct rx_pkt_attrib *prxattrib = &((struct recv_frame *)precvframe)->attrib; | |
struct security_priv *psecuritypriv = &padapter->securitypriv; | |
u32 res = _SUCCESS; | |
- pframe = (unsigned char *)((struct recv_frame *)precvframe)->rx_data; | |
+ | |
+ pframe = (unsigned char *)((struct recv_frame *)precvframe)->pkt->data; | |
/* 4 start to encrypt each fragment */ | |
if (prxattrib->encrypt == _AES_) { | |
stainfo = rtw_get_stainfo(&padapter->stapriv, &prxattrib->ta[0]); | |
@@ -1482,7 +1494,7 @@ u32 rtw_aes_decrypt(struct adapter *padapter, u8 *precvframe) | |
} else { | |
prwskey = &stainfo->dot118021x_UncstKey.skey[0]; | |
} | |
- length = ((struct recv_frame *)precvframe)->len-prxattrib->hdrlen-prxattrib->iv_len; | |
+ length = ((struct recv_frame *)precvframe)->pkt->len-prxattrib->hdrlen-prxattrib->iv_len; | |
res = aes_decipher(prwskey, prxattrib->hdrlen, pframe, length); | |
} else { | |
RT_TRACE(_module_rtl871x_security_c_, _drv_err_, ("rtw_aes_encrypt: stainfo==NULL!!!\n")); | |
diff --git b/drivers/staging/rtl8188eu/core/rtw_sreset.c a/drivers/staging/rtl8188eu/core/rtw_sreset.c | |
index e725a4708775..a198c5779d50 100644 | |
--- b/drivers/staging/rtl8188eu/core/rtw_sreset.c | |
+++ a/drivers/staging/rtl8188eu/core/rtw_sreset.c | |
@@ -11,28 +11,21 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#include <rtw_sreset.h> | |
#include <usb_ops_linux.h> | |
-void sreset_init_value(struct adapter *padapter) | |
+void rtw_hal_sreset_init(struct adapter *padapter) | |
{ | |
- struct hal_data_8188e *pHalData = GET_HAL_DATA(padapter); | |
- struct sreset_priv *psrtpriv = &pHalData->srestpriv; | |
+ struct sreset_priv *psrtpriv = &padapter->HalData->srestpriv; | |
psrtpriv->Wifi_Error_Status = WIFI_STATUS_SUCCESS; | |
} | |
u8 sreset_get_wifi_status(struct adapter *padapter) | |
{ | |
- struct hal_data_8188e *pHalData = GET_HAL_DATA(padapter); | |
- struct sreset_priv *psrtpriv = &pHalData->srestpriv; | |
+ struct sreset_priv *psrtpriv = &padapter->HalData->srestpriv; | |
u8 status = WIFI_STATUS_SUCCESS; | |
u32 val32 = 0; | |
@@ -59,6 +52,5 @@ u8 sreset_get_wifi_status(struct adapter *padapter) | |
void sreset_set_wifi_error_status(struct adapter *padapter, u32 status) | |
{ | |
- struct hal_data_8188e *pHalData = GET_HAL_DATA(padapter); | |
- pHalData->srestpriv.Wifi_Error_Status = status; | |
+ padapter->HalData->srestpriv.Wifi_Error_Status = status; | |
} | |
diff --git b/drivers/staging/rtl8188eu/core/rtw_sta_mgt.c a/drivers/staging/rtl8188eu/core/rtw_sta_mgt.c | |
index 1beeac46bfe7..22cf362b8528 100644 | |
--- b/drivers/staging/rtl8188eu/core/rtw_sta_mgt.c | |
+++ a/drivers/staging/rtl8188eu/core/rtw_sta_mgt.c | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#define _RTW_STA_MGT_C_ | |
@@ -66,7 +61,6 @@ static void _rtw_init_stainfo(struct sta_info *psta) | |
psta->keep_alive_trycnt = 0; | |
#endif /* CONFIG_88EU_AP_MODE */ | |
- | |
} | |
u32 _rtw_init_sta_priv(struct sta_priv *pstapriv) | |
@@ -74,7 +68,6 @@ u32 _rtw_init_sta_priv(struct sta_priv *pstapriv) | |
struct sta_info *psta; | |
s32 i; | |
- | |
pstapriv->pallocated_stainfo_buf = vzalloc(sizeof(struct sta_info) * NUM_STA + 4); | |
if (!pstapriv->pallocated_stainfo_buf) | |
@@ -121,7 +114,6 @@ u32 _rtw_init_sta_priv(struct sta_priv *pstapriv) | |
pstapriv->max_num_sta = NUM_STA; | |
#endif | |
- | |
return _SUCCESS; | |
} | |
@@ -159,6 +151,7 @@ u32 _rtw_free_sta_priv(struct sta_priv *pstapriv) | |
while (phead != plist) { | |
int i; | |
+ | |
psta = container_of(plist, struct sta_info, | |
hash_list); | |
plist = plist->next; | |
@@ -172,7 +165,6 @@ u32 _rtw_free_sta_priv(struct sta_priv *pstapriv) | |
spin_unlock_bh(&pstapriv->sta_hash_lock); | |
/*===============================*/ | |
- if (pstapriv->pallocated_stainfo_buf) | |
vfree(pstapriv->pallocated_stainfo_buf); | |
} | |
@@ -189,17 +181,15 @@ struct sta_info *rtw_alloc_stainfo(struct sta_priv *pstapriv, u8 *hwaddr) | |
int i = 0; | |
u16 wRxSeqInitialValue = 0xffff; | |
- | |
pfree_sta_queue = &pstapriv->free_sta_queue; | |
- spin_lock_bh(&(pfree_sta_queue->lock)); | |
- | |
- if (list_empty(&pfree_sta_queue->queue)) { | |
+ spin_lock_bh(&pfree_sta_queue->lock); | |
+ psta = list_first_entry_or_null(&pfree_sta_queue->queue, | |
+ struct sta_info, list); | |
+ if (!psta) { | |
spin_unlock_bh(&pfree_sta_queue->lock); | |
- psta = NULL; | |
} else { | |
- psta = container_of((&pfree_sta_queue->queue)->next, struct sta_info, list); | |
- list_del_init(&(psta->list)); | |
+ list_del_init(&psta->list); | |
spin_unlock_bh(&pfree_sta_queue->lock); | |
_rtw_init_stainfo(psta); | |
memcpy(psta->hwaddr, hwaddr, ETH_ALEN); | |
@@ -210,14 +200,11 @@ struct sta_info *rtw_alloc_stainfo(struct sta_priv *pstapriv, u8 *hwaddr) | |
psta = NULL; | |
goto exit; | |
} | |
- phash_list = &(pstapriv->sta_hash[index]); | |
- | |
- spin_lock_bh(&(pstapriv->sta_hash_lock)); | |
+ phash_list = &pstapriv->sta_hash[index]; | |
+ spin_lock_bh(&pstapriv->sta_hash_lock); | |
list_add_tail(&psta->hash_list, phash_list); | |
- | |
pstapriv->asoc_sta_count++; | |
- | |
spin_unlock_bh(&pstapriv->sta_hash_lock); | |
/* Commented by Albert 2009/08/13 */ | |
@@ -273,7 +260,6 @@ u32 rtw_free_stainfo(struct adapter *padapter, struct sta_info *psta) | |
struct xmit_priv *pxmitpriv = &padapter->xmitpriv; | |
struct sta_priv *pstapriv = &padapter->stapriv; | |
- | |
if (!psta) | |
goto exit; | |
@@ -321,7 +307,6 @@ u32 rtw_free_stainfo(struct adapter *padapter, struct sta_info *psta) | |
/* for A-MPDU Rx reordering buffer control, cancel reordering_ctrl_timer */ | |
for (i = 0; i < 16; i++) { | |
struct list_head *phead, *plist; | |
- struct recv_frame *prhdr; | |
struct recv_frame *prframe; | |
struct __queue *ppending_recvframe_queue; | |
struct __queue *pfree_recv_queue = &padapter->recvpriv.free_recv_queue; | |
@@ -338,8 +323,7 @@ u32 rtw_free_stainfo(struct adapter *padapter, struct sta_info *psta) | |
plist = phead->next; | |
while (!list_empty(phead)) { | |
- prhdr = container_of(plist, struct recv_frame, list); | |
- prframe = (struct recv_frame *)prhdr; | |
+ prframe = container_of(plist, struct recv_frame, list); | |
plist = plist->next; | |
@@ -393,7 +377,6 @@ u32 rtw_free_stainfo(struct adapter *padapter, struct sta_info *psta) | |
exit: | |
- | |
return _SUCCESS; | |
} | |
@@ -406,7 +389,6 @@ void rtw_free_all_stainfo(struct adapter *padapter) | |
struct sta_priv *pstapriv = &padapter->stapriv; | |
struct sta_info *pbcmc_stainfo = rtw_get_bcmc_stainfo(padapter); | |
- | |
if (pstapriv->asoc_sta_count == 1) | |
return; | |
@@ -437,7 +419,6 @@ struct sta_info *rtw_get_stainfo(struct sta_priv *pstapriv, u8 *hwaddr) | |
u8 *addr; | |
u8 bc_addr[ETH_ALEN] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; | |
- | |
if (!hwaddr) | |
return NULL; | |
@@ -475,7 +456,6 @@ u32 rtw_init_bcmc_stainfo(struct adapter *padapter) | |
unsigned char bcast_addr[ETH_ALEN] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; | |
struct sta_priv *pstapriv = &padapter->stapriv; | |
- | |
psta = rtw_alloc_stainfo(pstapriv, bcast_addr); | |
if (!psta) { | |
@@ -493,11 +473,9 @@ u32 rtw_init_bcmc_stainfo(struct adapter *padapter) | |
struct sta_info *rtw_get_bcmc_stainfo(struct adapter *padapter) | |
{ | |
- struct sta_info *psta; | |
struct sta_priv *pstapriv = &padapter->stapriv; | |
u8 bc_addr[ETH_ALEN] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; | |
- psta = rtw_get_stainfo(pstapriv, bc_addr); | |
- return psta; | |
+ return rtw_get_stainfo(pstapriv, bc_addr); | |
} | |
u8 rtw_access_ctrl(struct adapter *padapter, u8 *mac_addr) | |
diff --git b/drivers/staging/rtl8188eu/core/rtw_wlan_util.c a/drivers/staging/rtl8188eu/core/rtw_wlan_util.c | |
index 59b443255a90..2db8a5d11c0d 100644 | |
--- b/drivers/staging/rtl8188eu/core/rtw_wlan_util.c | |
+++ a/drivers/staging/rtl8188eu/core/rtw_wlan_util.c | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#define _RTW_WLAN_UTIL_C_ | |
@@ -346,9 +341,6 @@ void set_channel_bwmode(struct adapter *padapter, unsigned char channel, unsigne | |
{ | |
u8 center_ch; | |
- if (padapter->bNotifyChannelChange) | |
- DBG_88E("[%s] ch = %d, offset = %d, bwmode = %d\n", __func__, channel, channel_offset, bwmode); | |
- | |
if ((bwmode == HT_CHANNEL_WIDTH_20) || | |
(channel_offset == HAL_PRIME_CHNL_OFFSET_DONT_CARE)) { | |
/* SelectChannel(padapter, channel); */ | |
@@ -387,6 +379,7 @@ int get_bsstype(unsigned short capability) | |
u16 get_beacon_interval(struct wlan_bssid_ex *bss) | |
{ | |
__le16 val; | |
+ | |
memcpy((unsigned char *)&val, rtw_get_beacon_interval_from_ie(bss->IEs), 2); | |
return le16_to_cpu(val); | |
@@ -715,12 +708,12 @@ static void bwmode_update_check(struct adapter *padapter, struct ndis_802_11_var | |
void HT_caps_handler(struct adapter *padapter, struct ndis_802_11_var_ie *pIE) | |
{ | |
unsigned int i; | |
- u8 rf_type; | |
u8 max_AMPDU_len, min_MPDU_spacing; | |
struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; | |
struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); | |
struct mlme_priv *pmlmepriv = &padapter->mlmepriv; | |
struct ht_priv *phtpriv = &pmlmepriv->htpriv; | |
+ u8 *HT_cap = (u8 *)(&pmlmeinfo->HT_caps); | |
if (pIE == NULL) | |
return; | |
@@ -733,32 +726,26 @@ void HT_caps_handler(struct adapter *padapter, struct ndis_802_11_var_ie *pIE) | |
for (i = 0; i < (pIE->Length); i++) { | |
if (i != 2) { | |
/* Got the endian issue here. */ | |
- pmlmeinfo->HT_caps.u.HT_cap[i] &= (pIE->data[i]); | |
+ HT_cap[i] &= (pIE->data[i]); | |
} else { | |
/* modify from fw by Thomas 2010/11/17 */ | |
- if ((pmlmeinfo->HT_caps.u.HT_cap_element.AMPDU_para & 0x3) > (pIE->data[i] & 0x3)) | |
+ if ((pmlmeinfo->HT_caps.ampdu_params_info & 0x3) > (pIE->data[i] & 0x3)) | |
max_AMPDU_len = pIE->data[i] & 0x3; | |
else | |
- max_AMPDU_len = pmlmeinfo->HT_caps.u.HT_cap_element.AMPDU_para & 0x3; | |
+ max_AMPDU_len = pmlmeinfo->HT_caps.ampdu_params_info & 0x3; | |
- if ((pmlmeinfo->HT_caps.u.HT_cap_element.AMPDU_para & 0x1c) > (pIE->data[i] & 0x1c)) | |
- min_MPDU_spacing = pmlmeinfo->HT_caps.u.HT_cap_element.AMPDU_para & 0x1c; | |
+ if ((pmlmeinfo->HT_caps.ampdu_params_info & 0x1c) > (pIE->data[i] & 0x1c)) | |
+ min_MPDU_spacing = pmlmeinfo->HT_caps.ampdu_params_info & 0x1c; | |
else | |
min_MPDU_spacing = pIE->data[i] & 0x1c; | |
- pmlmeinfo->HT_caps.u.HT_cap_element.AMPDU_para = max_AMPDU_len | min_MPDU_spacing; | |
+ pmlmeinfo->HT_caps.ampdu_params_info = max_AMPDU_len | min_MPDU_spacing; | |
} | |
} | |
- rtw_hal_get_hwreg(padapter, HW_VAR_RF_TYPE, (u8 *)(&rf_type)); | |
- | |
/* update the MCS rates */ | |
- for (i = 0; i < 16; i++) { | |
- if ((rf_type == RF_1T1R) || (rf_type == RF_1T2R)) | |
- pmlmeinfo->HT_caps.u.HT_cap_element.MCS_rate[i] &= MCS_rate_1R[i]; | |
- else | |
- pmlmeinfo->HT_caps.u.HT_cap_element.MCS_rate[i] &= MCS_rate_2R[i]; | |
- } | |
+ for (i = 0; i < 16; i++) | |
+ ((u8 *)&pmlmeinfo->HT_caps.mcs)[i] &= MCS_rate_1R[i]; | |
} | |
void HT_info_handler(struct adapter *padapter, struct ndis_802_11_var_ie *pIE) | |
@@ -803,9 +790,9 @@ void HTOnAssocRsp(struct adapter *padapter) | |
AMPDU_para [1:0]:Max AMPDU Len => 0:8k , 1:16k, 2:32k, 3:64k | |
AMPDU_para [4:2]:Min MPDU Start Spacing | |
*/ | |
- max_AMPDU_len = pmlmeinfo->HT_caps.u.HT_cap_element.AMPDU_para & 0x03; | |
+ max_AMPDU_len = pmlmeinfo->HT_caps.ampdu_params_info & 0x03; | |
- min_MPDU_spacing = (pmlmeinfo->HT_caps.u.HT_cap_element.AMPDU_para & 0x1c) >> 2; | |
+ min_MPDU_spacing = (pmlmeinfo->HT_caps.ampdu_params_info & 0x1c) >> 2; | |
rtw_hal_set_hwreg(padapter, HW_VAR_AMPDU_MIN_SPACE, (u8 *)(&min_MPDU_spacing)); | |
@@ -877,7 +864,6 @@ int rtw_check_bcn_info(struct adapter *Adapter, u8 *pframe, u32 packet_len) | |
u32 wpa_ielen = 0; | |
u8 *pbssid = GetAddr3Ptr(pframe); | |
struct HT_info_element *pht_info = NULL; | |
- struct rtw_ieee80211_ht_cap *pht_cap = NULL; | |
u32 bcn_channel; | |
unsigned short ht_cap_info; | |
unsigned char ht_info_infos_0; | |
@@ -886,7 +872,7 @@ int rtw_check_bcn_info(struct adapter *Adapter, u8 *pframe, u32 packet_len) | |
if (is_client_associated_to_ap(Adapter) == false) | |
return true; | |
- len = packet_len - sizeof(struct rtw_ieee80211_hdr_3addr); | |
+ len = packet_len - sizeof(struct ieee80211_hdr_3addr); | |
if (len > MAX_IE_SZ) { | |
DBG_88E("%s IE too long for survey event\n", __func__); | |
@@ -912,14 +898,16 @@ int rtw_check_bcn_info(struct adapter *Adapter, u8 *pframe, u32 packet_len) | |
/* below is to copy the information element */ | |
bssid->IELength = len; | |
- memcpy(bssid->IEs, (pframe + sizeof(struct rtw_ieee80211_hdr_3addr)), bssid->IELength); | |
+ memcpy(bssid->IEs, (pframe + sizeof(struct ieee80211_hdr_3addr)), bssid->IELength); | |
/* check bw and channel offset */ | |
/* parsing HT_CAP_IE */ | |
p = rtw_get_ie(bssid->IEs + _FIXED_IE_LENGTH_, _HT_CAPABILITY_IE_, &len, bssid->IELength - _FIXED_IE_LENGTH_); | |
if (p && len > 0) { | |
- pht_cap = (struct rtw_ieee80211_ht_cap *)(p + 2); | |
- ht_cap_info = pht_cap->cap_info; | |
+ struct ieee80211_ht_cap *ht_cap = | |
+ (struct ieee80211_ht_cap *)(p + 2); | |
+ | |
+ ht_cap_info = le16_to_cpu(ht_cap->cap_info); | |
} else { | |
ht_cap_info = 0; | |
} | |
@@ -1248,16 +1236,17 @@ unsigned int update_supported_rate(unsigned char *ptn, unsigned int ptn_sz) | |
return mask; | |
} | |
-unsigned int update_MSC_rate(struct HT_caps_element *pHT_caps) | |
+unsigned int update_MSC_rate(struct ieee80211_ht_cap *pHT_caps) | |
{ | |
unsigned int mask = 0; | |
- mask = (pHT_caps->u.HT_cap_element.MCS_rate[0] << 12) | (pHT_caps->u.HT_cap_element.MCS_rate[1] << 20); | |
+ mask = (pHT_caps->mcs.rx_mask[0] << 12) | | |
+ (pHT_caps->mcs.rx_mask[1] << 20); | |
return mask; | |
} | |
-int support_short_GI(struct adapter *padapter, struct HT_caps_element *pHT_caps) | |
+int support_short_GI(struct adapter *padapter, struct ieee80211_ht_cap *pHT_caps) | |
{ | |
unsigned char bit_offset; | |
struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; | |
@@ -1271,7 +1260,7 @@ int support_short_GI(struct adapter *padapter, struct HT_caps_element *pHT_caps) | |
bit_offset = (pmlmeext->cur_bwmode & HT_CHANNEL_WIDTH_40) ? 6 : 5; | |
- if (__le16_to_cpu(pHT_caps->u.HT_cap_element.HT_caps_info) & (0x1 << bit_offset)) | |
+ if (__le16_to_cpu(pHT_caps->cap_info) & (0x1 << bit_offset)) | |
return _SUCCESS; | |
else | |
return _FAIL; | |
@@ -1311,6 +1300,7 @@ void set_sta_rate(struct adapter *padapter, struct sta_info *psta) | |
void update_tx_basic_rate(struct adapter *padapter, u8 wirelessmode) | |
{ | |
unsigned char supported_rates[NDIS_802_11_LENGTH_RATES_EX]; | |
+ | |
memset(supported_rates, 0, NDIS_802_11_LENGTH_RATES_EX); | |
if ((wirelessmode & WIRELESS_11B) && (wirelessmode == WIRELESS_11B)) | |
@@ -1335,6 +1325,7 @@ unsigned char check_assoc_AP(u8 *pframe, uint len) | |
struct ndis_802_11_var_ie *pIE; | |
u8 epigram_vendor_flag; | |
u8 ralink_vendor_flag; | |
+ | |
epigram_vendor_flag = 0; | |
ralink_vendor_flag = 0; | |
@@ -1513,7 +1504,7 @@ void update_wireless_mode(struct adapter *padapter) | |
SIFS_Timer = 0x0a0a0808;/* 0x0808 -> for CCK, 0x0a0a -> for OFDM */ | |
/* change this value if having IOT issues. */ | |
- padapter->HalFunc.SetHwRegHandler(padapter, HW_VAR_RESP_SIFS, (u8 *)&SIFS_Timer); | |
+ rtw_hal_set_hwreg(padapter, HW_VAR_RESP_SIFS, (u8 *)&SIFS_Timer); | |
if (pmlmeext->cur_wireless_mode & WIRELESS_11B) | |
update_mgnt_tx_rate(padapter, IEEE80211_CCK_RATE_1MB); | |
@@ -1579,7 +1570,8 @@ void process_addba_req(struct adapter *padapter, u8 *paddba_req, u8 *addr) | |
tid = (param>>2)&0x0f; | |
preorder_ctrl = &psta->recvreorder_ctrl[tid]; | |
preorder_ctrl->indicate_seq = 0xffff; | |
- preorder_ctrl->enable = (pmlmeinfo->bAcceptAddbaReq) ? true : false; | |
+ preorder_ctrl->enable = (pmlmeinfo->accept_addba_req) ? true | |
+ : false; | |
} | |
} | |
@@ -1588,7 +1580,7 @@ void update_TSF(struct mlme_ext_priv *pmlmeext, u8 *pframe, uint len) | |
u8 *pIE; | |
__le32 *pbuf; | |
- pIE = pframe + sizeof(struct rtw_ieee80211_hdr_3addr); | |
+ pIE = pframe + sizeof(struct ieee80211_hdr_3addr); | |
pbuf = (__le32 *)pIE; | |
pmlmeext->TSFValue = le32_to_cpu(*(pbuf+1)); | |
diff --git b/drivers/staging/rtl8188eu/core/rtw_xmit.c a/drivers/staging/rtl8188eu/core/rtw_xmit.c | |
index cabb810369bd..be2f46eb9f78 100644 | |
--- b/drivers/staging/rtl8188eu/core/rtw_xmit.c | |
+++ a/drivers/staging/rtl8188eu/core/rtw_xmit.c | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#define _RTW_XMIT_C_ | |
@@ -62,8 +57,6 @@ s32 _rtw_init_xmit_priv(struct xmit_priv *pxmitpriv, struct adapter *padapter) | |
/* We don't need to memset padapter->XXX to zero, because adapter is allocated by vzalloc(). */ | |
spin_lock_init(&pxmitpriv->lock); | |
- sema_init(&pxmitpriv->xmit_sema, 0); | |
- sema_init(&pxmitpriv->terminate_xmitthread_sema, 0); | |
/* | |
Please insert all the queue initializaiton using _rtw_init_queue below | |
@@ -93,7 +86,7 @@ s32 _rtw_init_xmit_priv(struct xmit_priv *pxmitpriv, struct adapter *padapter) | |
res = _FAIL; | |
goto exit; | |
} | |
- pxmitpriv->pxmit_frame_buf = (u8 *)N_BYTE_ALIGMENT((size_t)(pxmitpriv->pallocated_frame_buf), 4); | |
+ pxmitpriv->pxmit_frame_buf = PTR_ALIGN(pxmitpriv->pallocated_frame_buf, 4); | |
/* pxmitpriv->pxmit_frame_buf = pxmitpriv->pallocated_frame_buf + 4 - */ | |
/* ((size_t) (pxmitpriv->pallocated_frame_buf) &3); */ | |
@@ -131,7 +124,7 @@ s32 _rtw_init_xmit_priv(struct xmit_priv *pxmitpriv, struct adapter *padapter) | |
goto exit; | |
} | |
- pxmitpriv->pxmitbuf = (u8 *)N_BYTE_ALIGMENT((size_t)(pxmitpriv->pallocated_xmitbuf), 4); | |
+ pxmitpriv->pxmitbuf = PTR_ALIGN(pxmitpriv->pallocated_xmitbuf, 4); | |
/* pxmitpriv->pxmitbuf = pxmitpriv->pallocated_xmitbuf + 4 - */ | |
/* ((size_t) (pxmitpriv->pallocated_xmitbuf) &3); */ | |
@@ -149,10 +142,9 @@ s32 _rtw_init_xmit_priv(struct xmit_priv *pxmitpriv, struct adapter *padapter) | |
if (res == _FAIL) { | |
msleep(10); | |
res = rtw_os_xmit_resource_alloc(padapter, pxmitbuf, (MAX_XMITBUF_SZ + XMITBUF_ALIGN_SZ)); | |
- if (res == _FAIL) { | |
+ if (res == _FAIL) | |
goto exit; | |
} | |
- } | |
pxmitbuf->flags = XMIT_VO_QUEUE; | |
@@ -173,7 +165,7 @@ s32 _rtw_init_xmit_priv(struct xmit_priv *pxmitpriv, struct adapter *padapter) | |
goto exit; | |
} | |
- pxmitpriv->pxmit_extbuf = (u8 *)N_BYTE_ALIGMENT((size_t)(pxmitpriv->pallocated_xmit_extbuf), 4); | |
+ pxmitpriv->pxmit_extbuf = PTR_ALIGN(pxmitpriv->pallocated_xmit_extbuf, 4); | |
pxmitbuf = (struct xmit_buf *)pxmitpriv->pxmit_extbuf; | |
@@ -204,8 +196,6 @@ s32 _rtw_init_xmit_priv(struct xmit_priv *pxmitpriv, struct adapter *padapter) | |
pxmitpriv->txirp_cnt = 1; | |
- sema_init(&(pxmitpriv->tx_retevt), 0); | |
- | |
/* per AC pending irp */ | |
pxmitpriv->beq_cnt = 0; | |
pxmitpriv->bkq_cnt = 0; | |
@@ -230,7 +220,6 @@ void _rtw_free_xmit_priv(struct xmit_priv *pxmitpriv) | |
struct adapter *padapter = pxmitpriv->adapter; | |
struct xmit_frame *pxmitframe = (struct xmit_frame *)pxmitpriv->pxmit_frame_buf; | |
struct xmit_buf *pxmitbuf = (struct xmit_buf *)pxmitpriv->pxmitbuf; | |
- u32 max_xmit_extbuf_size = MAX_XMIT_EXTBUF_SZ; | |
u32 num_xmit_extbuf = NR_XMIT_EXTBUFF; | |
if (pxmitpriv->pxmit_frame_buf == NULL) | |
@@ -243,26 +232,21 @@ void _rtw_free_xmit_priv(struct xmit_priv *pxmitpriv) | |
} | |
for (i = 0; i < NR_XMITBUFF; i++) { | |
- rtw_os_xmit_resource_free(padapter, pxmitbuf, (MAX_XMITBUF_SZ + XMITBUF_ALIGN_SZ)); | |
+ rtw_os_xmit_resource_free(pxmitbuf); | |
pxmitbuf++; | |
} | |
- if (pxmitpriv->pallocated_frame_buf) | |
vfree(pxmitpriv->pallocated_frame_buf); | |
- | |
- if (pxmitpriv->pallocated_xmitbuf) | |
vfree(pxmitpriv->pallocated_xmitbuf); | |
/* free xmit extension buff */ | |
pxmitbuf = (struct xmit_buf *)pxmitpriv->pxmit_extbuf; | |
for (i = 0; i < num_xmit_extbuf; i++) { | |
- rtw_os_xmit_resource_free(padapter, pxmitbuf, (max_xmit_extbuf_size + XMITBUF_ALIGN_SZ)); | |
+ rtw_os_xmit_resource_free(pxmitbuf); | |
pxmitbuf++; | |
} | |
- if (pxmitpriv->pallocated_xmit_extbuf) { | |
vfree(pxmitpriv->pallocated_xmit_extbuf); | |
- } | |
rtw_free_hwxmits(padapter); | |
@@ -319,6 +303,7 @@ static void update_attrib_vcs_info(struct adapter *padapter, struct xmit_frame * | |
/* check HT op mode */ | |
if (pattrib->ht_en) { | |
u8 htopmode = pmlmeinfo->HT_protection; | |
+ | |
if ((pmlmeext->cur_bwmode && (htopmode == 2 || htopmode == 3)) || | |
(!pmlmeext->cur_bwmode && htopmode == 3)) { | |
pattrib->vcs_mode = RTS_CTS; | |
@@ -416,7 +401,7 @@ static void set_qos(struct pkt_file *ppktfile, struct pkt_attrib *pattrib) | |
_rtw_pktfile_read(ppktfile, (u8 *)&ip_hdr, sizeof(ip_hdr)); | |
/* user_prio = (ntohs(ip_hdr.tos) >> 5) & 0x3; */ | |
user_prio = ip_hdr.tos >> 5; | |
- } else if (pattrib->ether_type == 0x888e) { | |
+ } else if (pattrib->ether_type == ETH_P_PAE) { | |
/* "When priority processing of data frames is supported, */ | |
/* a STA's SME should send EAPOL-Key frames at the highest priority." */ | |
user_prio = 7; | |
@@ -465,14 +450,15 @@ static s32 update_attrib(struct adapter *padapter, struct sk_buff *pkt, struct p | |
pattrib->pktlen = pktfile.pkt_len; | |
- if (ETH_P_IP == pattrib->ether_type) { | |
+ if (pattrib->ether_type == ETH_P_IP) { | |
/* The following is for DHCP and ARP packet, we use cck1M to tx these packets and let LPS awake some time */ | |
/* to prevent DHCP protocol fail */ | |
u8 tmp[24]; | |
+ | |
_rtw_pktfile_read(&pktfile, &tmp[0], 24); | |
pattrib->dhcp_pkt = 0; | |
if (pktfile.pkt_len > 282) {/* MINIMUM_DHCP_PACKET_SIZE) { */ | |
- if (ETH_P_IP == pattrib->ether_type) {/* IP header */ | |
+ if (pattrib->ether_type == ETH_P_IP) {/* IP header */ | |
if (((tmp[21] == 68) && (tmp[23] == 67)) || | |
((tmp[21] == 67) && (tmp[23] == 68))) { | |
/* 68 : UDP BOOTP client */ | |
@@ -483,15 +469,15 @@ static s32 update_attrib(struct adapter *padapter, struct sk_buff *pkt, struct p | |
} | |
} | |
} | |
- } else if (0x888e == pattrib->ether_type) { | |
+ } else if (pattrib->ether_type == ETH_P_PAE) { | |
DBG_88E_LEVEL(_drv_info_, "send eapol packet\n"); | |
} | |
- if ((pattrib->ether_type == 0x888e) || (pattrib->dhcp_pkt == 1)) | |
+ if ((pattrib->ether_type == ETH_P_PAE) || (pattrib->dhcp_pkt == 1)) | |
rtw_set_scan_deny(padapter, 3000); | |
/* If EAPOL , ARP , OR DHCP packet, driver must be in active mode. */ | |
- if ((pattrib->ether_type == 0x0806) || (pattrib->ether_type == 0x888e) || (pattrib->dhcp_pkt == 1)) | |
+ if ((pattrib->ether_type == ETH_P_ARP) || (pattrib->ether_type == ETH_P_PAE) || (pattrib->dhcp_pkt == 1)) | |
rtw_lps_ctrl_wk_cmd(padapter, LPS_CTRL_SPECIAL_PACKET, 1); | |
bmcast = IS_MCAST(pattrib->ra); | |
@@ -523,8 +509,6 @@ static s32 update_attrib(struct adapter *padapter, struct sk_buff *pkt, struct p | |
} | |
pattrib->ack_policy = 0; | |
- /* get ether_hdr_len */ | |
- pattrib->pkt_hdrlen = ETH_HLEN;/* pattrib->ether_type == 0x8100) ? (14 + 4): 14; vlan tag */ | |
pattrib->hdrlen = WLAN_HDR_A3_LEN; | |
pattrib->subtype = WIFI_DATA_TYPE; | |
@@ -547,8 +531,8 @@ static s32 update_attrib(struct adapter *padapter, struct sk_buff *pkt, struct p | |
pattrib->encrypt = 0; | |
- if ((pattrib->ether_type != 0x888e) && !check_fwstate(pmlmepriv, WIFI_MP_STATE)) { | |
- RT_TRACE(_module_rtl871x_xmit_c_, _drv_err_, ("\npsta->ieee8021x_blocked == true, pattrib->ether_type(%.4x) != 0x888e\n", pattrib->ether_type)); | |
+ if (pattrib->ether_type != ETH_P_PAE) { | |
+ RT_TRACE(_module_rtl871x_xmit_c_, _drv_err_, ("\npsta->ieee8021x_blocked == true, pattrib->ether_type(%.4x) != ETH_P_PAE\n", pattrib->ether_type)); | |
res = _FAIL; | |
goto exit; | |
} | |
@@ -603,15 +587,13 @@ static s32 update_attrib(struct adapter *padapter, struct sk_buff *pkt, struct p | |
} | |
RT_TRACE(_module_rtl871x_xmit_c_, _drv_info_, | |
- ("update_attrib: encrypt=%d securitypriv.sw_encrypt=%d\n", | |
- pattrib->encrypt, padapter->securitypriv.sw_encrypt)); | |
+ ("update_attrib: encrypt=%d\n", pattrib->encrypt)); | |
- if (pattrib->encrypt && | |
- (padapter->securitypriv.sw_encrypt || !psecuritypriv->hw_decrypted)) { | |
+ if (pattrib->encrypt && !psecuritypriv->hw_decrypted) { | |
pattrib->bswenc = true; | |
RT_TRACE(_module_rtl871x_xmit_c_, _drv_err_, | |
- ("update_attrib: encrypt=%d securitypriv.hw_decrypted=%d bswenc = true\n", | |
- pattrib->encrypt, padapter->securitypriv.sw_encrypt)); | |
+ ("update_attrib: encrypt=%d bswenc = true\n", | |
+ pattrib->encrypt)); | |
} else { | |
pattrib->bswenc = false; | |
RT_TRACE(_module_rtl871x_xmit_c_, _drv_info_, ("update_attrib: bswenc = false\n")); | |
@@ -777,13 +759,13 @@ s32 rtw_make_wlanhdr(struct adapter *padapter, u8 *hdr, struct pkt_attrib *pattr | |
{ | |
u16 *qc; | |
- struct rtw_ieee80211_hdr *pwlanhdr = (struct rtw_ieee80211_hdr *)hdr; | |
+ struct ieee80211_hdr *pwlanhdr = (struct ieee80211_hdr *)hdr; | |
struct mlme_priv *pmlmepriv = &padapter->mlmepriv; | |
struct qos_priv *pqospriv = &pmlmepriv->qospriv; | |
u8 qos_option = false; | |
int res = _SUCCESS; | |
- __le16 *fctrl = &pwlanhdr->frame_ctl; | |
+ __le16 *fctrl = &pwlanhdr->frame_control; | |
struct sta_info *psta; | |
@@ -793,12 +775,11 @@ s32 rtw_make_wlanhdr(struct adapter *padapter, u8 *hdr, struct pkt_attrib *pattr | |
if (pattrib->psta) { | |
psta = pattrib->psta; | |
} else { | |
- if (bmcst) { | |
+ if (bmcst) | |
psta = rtw_get_bcmc_stainfo(padapter); | |
- } else { | |
+ else | |
psta = rtw_get_stainfo(&padapter->stapriv, pattrib->ra); | |
} | |
- } | |
memset(hdr, 0, WLANHDR_OFFSET); | |
@@ -1007,7 +988,7 @@ s32 rtw_xmitframe_coalesce(struct adapter *padapter, struct sk_buff *pkt, struct | |
} | |
_rtw_open_pktfile(pkt, &pktfile); | |
- _rtw_pktfile_read(&pktfile, NULL, pattrib->pkt_hdrlen); | |
+ _rtw_pktfile_read(&pktfile, NULL, ETH_HLEN); | |
frg_inx = 0; | |
frg_len = pxmitpriv->frag_len - 4;/* 2346-4 = 2342 */ | |
@@ -1062,9 +1043,8 @@ s32 rtw_xmitframe_coalesce(struct adapter *padapter, struct sk_buff *pkt, struct | |
mpdu_len -= llc_sz; | |
} | |
- if ((pattrib->icv_len > 0) && (pattrib->bswenc)) { | |
+ if ((pattrib->icv_len > 0) && (pattrib->bswenc)) | |
mpdu_len -= pattrib->icv_len; | |
- } | |
if (bmcst) { | |
/* don't do fragment to broadcat/multicast packets */ | |
@@ -1082,7 +1062,7 @@ s32 rtw_xmitframe_coalesce(struct adapter *padapter, struct sk_buff *pkt, struct | |
frg_inx++; | |
- if (bmcst || rtw_endofpktfile(&pktfile)) { | |
+ if (bmcst || pktfile.pkt_len == 0) { | |
pattrib->nr_frags = frg_inx; | |
pattrib->last_txcmdsz = pattrib->hdrlen + pattrib->iv_len + ((pattrib->nr_frags == 1) ? llc_sz : 0) + | |
@@ -1159,9 +1139,8 @@ s32 rtw_put_snap(u8 *data, u16 h_proto) | |
void rtw_update_protection(struct adapter *padapter, u8 *ie, uint ie_len) | |
{ | |
- uint protection; | |
+ uint protection, erp_len; | |
u8 *perp; | |
- int erp_len; | |
struct xmit_priv *pxmitpriv = &padapter->xmitpriv; | |
struct registry_priv *pregistrypriv = &padapter->registrypriv; | |
@@ -1216,40 +1195,24 @@ void rtw_count_tx_stats(struct adapter *padapter, struct xmit_frame *pxmitframe, | |
struct xmit_buf *rtw_alloc_xmitbuf_ext(struct xmit_priv *pxmitpriv) | |
{ | |
unsigned long irql; | |
- struct xmit_buf *pxmitbuf = NULL; | |
- struct list_head *plist, *phead; | |
+ struct xmit_buf *pxmitbuf; | |
struct __queue *pfree_queue = &pxmitpriv->free_xmit_extbuf_queue; | |
- | |
spin_lock_irqsave(&pfree_queue->lock, irql); | |
- | |
- if (list_empty(&pfree_queue->queue)) { | |
- pxmitbuf = NULL; | |
- } else { | |
- phead = get_list_head(pfree_queue); | |
- | |
- plist = phead->next; | |
- | |
- pxmitbuf = container_of(plist, struct xmit_buf, list); | |
- | |
- list_del_init(&(pxmitbuf->list)); | |
- } | |
- | |
- if (pxmitbuf != NULL) { | |
+ pxmitbuf = list_first_entry_or_null(&pfree_queue->queue, | |
+ struct xmit_buf, list); | |
+ if (pxmitbuf) { | |
+ list_del_init(&pxmitbuf->list); | |
pxmitpriv->free_xmit_extbuf_cnt--; | |
- | |
pxmitbuf->priv_data = NULL; | |
/* pxmitbuf->ext_tag = true; */ | |
- | |
if (pxmitbuf->sctx) { | |
DBG_88E("%s pxmitbuf->sctx is not NULL\n", __func__); | |
rtw_sctx_done_err(&pxmitbuf->sctx, RTW_SCTX_DONE_BUF_ALLOC); | |
} | |
} | |
- | |
spin_unlock_irqrestore(&pfree_queue->lock, irql); | |
- | |
return pxmitbuf; | |
} | |
@@ -1278,28 +1241,16 @@ s32 rtw_free_xmitbuf_ext(struct xmit_priv *pxmitpriv, struct xmit_buf *pxmitbuf) | |
struct xmit_buf *rtw_alloc_xmitbuf(struct xmit_priv *pxmitpriv) | |
{ | |
unsigned long irql; | |
- struct xmit_buf *pxmitbuf = NULL; | |
- struct list_head *plist, *phead; | |
+ struct xmit_buf *pxmitbuf; | |
struct __queue *pfree_xmitbuf_queue = &pxmitpriv->free_xmitbuf_queue; | |
- | |
/* DBG_88E("+rtw_alloc_xmitbuf\n"); */ | |
spin_lock_irqsave(&pfree_xmitbuf_queue->lock, irql); | |
- | |
- if (list_empty(&pfree_xmitbuf_queue->queue)) { | |
- pxmitbuf = NULL; | |
- } else { | |
- phead = get_list_head(pfree_xmitbuf_queue); | |
- | |
- plist = phead->next; | |
- | |
- pxmitbuf = container_of(plist, struct xmit_buf, list); | |
- | |
- list_del_init(&(pxmitbuf->list)); | |
- } | |
- | |
- if (pxmitbuf != NULL) { | |
+ pxmitbuf = list_first_entry_or_null(&pfree_xmitbuf_queue->queue, | |
+ struct xmit_buf, list); | |
+ if (pxmitbuf) { | |
+ list_del_init(&pxmitbuf->list); | |
pxmitpriv->free_xmitbuf_cnt--; | |
pxmitbuf->priv_data = NULL; | |
if (pxmitbuf->sctx) { | |
@@ -1309,7 +1260,6 @@ struct xmit_buf *rtw_alloc_xmitbuf(struct xmit_priv *pxmitpriv) | |
} | |
spin_unlock_irqrestore(&pfree_xmitbuf_queue->lock, irql); | |
- | |
return pxmitbuf; | |
} | |
@@ -1355,38 +1305,33 @@ Must be very very cautious... | |
*/ | |
-struct xmit_frame *rtw_alloc_xmitframe(struct xmit_priv *pxmitpriv)/* _queue *pfree_xmit_queue) */ | |
+struct xmit_frame *rtw_alloc_xmitframe(struct xmit_priv *pxmitpriv) | |
+ /* _queue *pfree_xmit_queue) */ | |
{ | |
/* | |
Please remember to use all the osdep_service api, | |
and lock/unlock or _enter/_exit critical to protect | |
pfree_xmit_queue | |
*/ | |
- | |
- struct xmit_frame *pxframe = NULL; | |
- struct list_head *plist, *phead; | |
+ struct xmit_frame *pxframe; | |
struct __queue *pfree_xmit_queue = &pxmitpriv->free_xmit_queue; | |
- | |
spin_lock_bh(&pfree_xmit_queue->lock); | |
- | |
- if (list_empty(&pfree_xmit_queue->queue)) { | |
- RT_TRACE(_module_rtl871x_xmit_c_, _drv_info_, ("rtw_alloc_xmitframe:%d\n", pxmitpriv->free_xmitframe_cnt)); | |
- pxframe = NULL; | |
+ pxframe = list_first_entry_or_null(&pfree_xmit_queue->queue, | |
+ struct xmit_frame, list); | |
+ if (!pxframe) { | |
+ RT_TRACE(_module_rtl871x_xmit_c_, _drv_info_, | |
+ ("rtw_alloc_xmitframe:%d\n", | |
+ pxmitpriv->free_xmitframe_cnt)); | |
} else { | |
- phead = get_list_head(pfree_xmit_queue); | |
+ list_del_init(&pxframe->list); | |
- plist = phead->next; | |
- | |
- pxframe = container_of(plist, struct xmit_frame, list); | |
- | |
- list_del_init(&(pxframe->list)); | |
- } | |
- | |
- if (pxframe != NULL) { /* default value setting */ | |
+ /* default value setting */ | |
pxmitpriv->free_xmitframe_cnt--; | |
- RT_TRACE(_module_rtl871x_xmit_c_, _drv_info_, ("rtw_alloc_xmitframe():free_xmitframe_cnt=%d\n", pxmitpriv->free_xmitframe_cnt)); | |
+ RT_TRACE(_module_rtl871x_xmit_c_, _drv_info_, | |
+ ("rtw_alloc_xmitframe():free_xmitframe_cnt=%d\n", | |
+ pxmitpriv->free_xmitframe_cnt)); | |
pxframe->buf_addr = NULL; | |
pxframe->pxmitbuf = NULL; | |
@@ -1402,10 +1347,8 @@ struct xmit_frame *rtw_alloc_xmitframe(struct xmit_priv *pxmitpriv)/* _queue *pf | |
pxframe->agg_num = 1; | |
pxframe->ack_report = 0; | |
} | |
- | |
spin_unlock_bh(&pfree_xmit_queue->lock); | |
- | |
return pxframe; | |
} | |
@@ -1604,11 +1547,10 @@ s32 rtw_xmit_classifier(struct adapter *padapter, struct xmit_frame *pxmitframe) | |
int res = _SUCCESS; | |
- if (pattrib->psta) { | |
+ if (pattrib->psta) | |
psta = pattrib->psta; | |
- } else { | |
+ else | |
psta = rtw_get_stainfo(pstapriv, pattrib->ra); | |
- } | |
if (psta == NULL) { | |
res = _FAIL; | |
@@ -1661,6 +1603,7 @@ void rtw_free_hwxmits(struct adapter *padapter) | |
void rtw_init_hwxmits(struct hw_xmit *phwxmit, int entry) | |
{ | |
int i; | |
+ | |
for (i = 0; i < entry; i++, phwxmit++) | |
phwxmit->accnt = 0; | |
} | |
@@ -1702,16 +1645,6 @@ u32 rtw_get_ff_hwaddr(struct xmit_frame *pxmitframe) | |
return addr; | |
} | |
-static void do_queue_select(struct adapter *padapter, struct pkt_attrib *pattrib) | |
-{ | |
- u8 qsel; | |
- | |
- qsel = pattrib->priority; | |
- RT_TRACE(_module_rtl871x_xmit_c_, _drv_info_, ("### do_queue_select priority=%d , qsel = %d\n", pattrib->priority , qsel)); | |
- | |
- pattrib->qsel = qsel; | |
-} | |
- | |
/* | |
* The main transmit(tx) entry | |
* | |
@@ -1742,9 +1675,9 @@ s32 rtw_xmit(struct adapter *padapter, struct sk_buff **ppkt) | |
} | |
pxmitframe->pkt = *ppkt; | |
- rtw_led_control(padapter, LED_CTL_TX); | |
+ LedControl8188eu(padapter, LED_CTL_TX); | |
- do_queue_select(padapter, &pxmitframe->attrib); | |
+ pxmitframe->attrib.qsel = pxmitframe->attrib.priority; | |
#ifdef CONFIG_88EU_AP_MODE | |
spin_lock_bh(&pxmitpriv->lock); | |
@@ -2186,11 +2119,6 @@ void rtw_sctx_done_err(struct submit_ctx **sctx, int status) | |
} | |
} | |
-void rtw_sctx_done(struct submit_ctx **sctx) | |
-{ | |
- rtw_sctx_done_err(sctx, RTW_SCTX_DONE_SUCCESS); | |
-} | |
- | |
int rtw_ack_tx_wait(struct xmit_priv *pxmitpriv, u32 timeout_ms) | |
{ | |
struct submit_ctx *pack_tx_ops = &pxmitpriv->ack_tx_ops; | |
diff --git b/drivers/staging/rtl8188eu/hal/Hal8188ERateAdaptive.c a/drivers/staging/rtl8188eu/hal/Hal8188ERateAdaptive.c | |
index a108e8032327..bbb981c6bcec 100644 | |
--- b/drivers/staging/rtl8188eu/hal/Hal8188ERateAdaptive.c | |
+++ a/drivers/staging/rtl8188eu/hal/Hal8188ERateAdaptive.c | |
@@ -1,3 +1,4 @@ | |
+// SPDX-License-Identifier: GPL-2.0 | |
/*++ | |
Copyright (c) Realtek Semiconductor Corp. All rights reserved. | |
@@ -557,7 +558,7 @@ int ODM_RAInfo_Init(struct odm_dm_struct *dm_odm, u8 macid) | |
u8 WirelessMode = 0xFF; /* invalid value */ | |
u8 max_rate_idx = 0x13; /* MCS7 */ | |
- if (dm_odm->pWirelessMode != NULL) | |
+ if (dm_odm->pWirelessMode) | |
WirelessMode = *(dm_odm->pWirelessMode); | |
if (WirelessMode != 0xFF) { | |
diff --git b/drivers/staging/rtl8188eu/hal/bb_cfg.c a/drivers/staging/rtl8188eu/hal/bb_cfg.c | |
index f58a8222c899..26e0ef224299 100644 | |
--- b/drivers/staging/rtl8188eu/hal/bb_cfg.c | |
+++ a/drivers/staging/rtl8188eu/hal/bb_cfg.c | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
-* You should have received a copy of the GNU General Public License along with | |
-* this program; if not, write to the Free Software Foundation, Inc., | |
-* 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
-* | |
-* | |
******************************************************************************/ | |
#include "odm_precomp.h" | |
@@ -503,7 +498,7 @@ static u32 array_phy_reg_pg_8188e[] = { | |
static void store_pwrindex_offset(struct adapter *adapter, | |
u32 regaddr, u32 bitmask, u32 data) | |
{ | |
- struct hal_data_8188e *hal_data = GET_HAL_DATA(adapter); | |
+ struct hal_data_8188e *hal_data = adapter->HalData; | |
u32 * const power_level_offset = | |
hal_data->MCSTxPowerLevelOriginalOffset[hal_data->pwrGroupCnt]; | |
@@ -523,7 +518,6 @@ static void store_pwrindex_offset(struct adapter *adapter, | |
power_level_offset[4] = data; | |
if (regaddr == rTxAGC_A_Mcs15_Mcs12) { | |
power_level_offset[5] = data; | |
- if (hal_data->rf_type == RF_1T1R) | |
hal_data->pwrGroupCnt++; | |
} | |
if (regaddr == rTxAGC_B_Rate18_06) | |
@@ -540,11 +534,8 @@ static void store_pwrindex_offset(struct adapter *adapter, | |
power_level_offset[11] = data; | |
if (regaddr == rTxAGC_B_Mcs11_Mcs08) | |
power_level_offset[12] = data; | |
- if (regaddr == rTxAGC_B_Mcs15_Mcs12) { | |
+ if (regaddr == rTxAGC_B_Mcs15_Mcs12) | |
power_level_offset[13] = data; | |
- if (hal_data->rf_type != RF_1T1R) | |
- hal_data->pwrGroupCnt++; | |
- } | |
} | |
static void rtl_addr_delay(struct adapter *adapt, | |
@@ -593,23 +584,16 @@ static bool config_bb_with_pgheader(struct adapter *adapt) | |
static void rtl88e_phy_init_bb_rf_register_definition(struct adapter *adapter) | |
{ | |
- struct hal_data_8188e *hal_data = GET_HAL_DATA(adapter); | |
struct bb_reg_def *reg[4]; | |
- reg[RF_PATH_A] = &hal_data->PHYRegDef[RF_PATH_A]; | |
- reg[RF_PATH_B] = &hal_data->PHYRegDef[RF_PATH_B]; | |
- reg[RF_PATH_C] = &hal_data->PHYRegDef[RF_PATH_C]; | |
- reg[RF_PATH_D] = &hal_data->PHYRegDef[RF_PATH_D]; | |
+ reg[RF_PATH_A] = &adapter->HalData->PHYRegDef[RF_PATH_A]; | |
+ reg[RF_PATH_B] = &adapter->HalData->PHYRegDef[RF_PATH_B]; | |
reg[RF_PATH_A]->rfintfs = rFPGA0_XAB_RFInterfaceSW; | |
reg[RF_PATH_B]->rfintfs = rFPGA0_XAB_RFInterfaceSW; | |
- reg[RF_PATH_C]->rfintfs = rFPGA0_XCD_RFInterfaceSW; | |
- reg[RF_PATH_D]->rfintfs = rFPGA0_XCD_RFInterfaceSW; | |
reg[RF_PATH_A]->rfintfi = rFPGA0_XAB_RFInterfaceRB; | |
reg[RF_PATH_B]->rfintfi = rFPGA0_XAB_RFInterfaceRB; | |
- reg[RF_PATH_C]->rfintfi = rFPGA0_XCD_RFInterfaceRB; | |
- reg[RF_PATH_D]->rfintfi = rFPGA0_XCD_RFInterfaceRB; | |
reg[RF_PATH_A]->rfintfo = rFPGA0_XA_RFInterfaceOE; | |
reg[RF_PATH_B]->rfintfo = rFPGA0_XB_RFInterfaceOE; | |
@@ -622,13 +606,9 @@ static void rtl88e_phy_init_bb_rf_register_definition(struct adapter *adapter) | |
reg[RF_PATH_A]->rfLSSI_Select = rFPGA0_XAB_RFParameter; | |
reg[RF_PATH_B]->rfLSSI_Select = rFPGA0_XAB_RFParameter; | |
- reg[RF_PATH_C]->rfLSSI_Select = rFPGA0_XCD_RFParameter; | |
- reg[RF_PATH_D]->rfLSSI_Select = rFPGA0_XCD_RFParameter; | |
reg[RF_PATH_A]->rfTxGainStage = rFPGA0_TxGainStage; | |
reg[RF_PATH_B]->rfTxGainStage = rFPGA0_TxGainStage; | |
- reg[RF_PATH_C]->rfTxGainStage = rFPGA0_TxGainStage; | |
- reg[RF_PATH_D]->rfTxGainStage = rFPGA0_TxGainStage; | |
reg[RF_PATH_A]->rfHSSIPara1 = rFPGA0_XA_HSSIParameter1; | |
reg[RF_PATH_B]->rfHSSIPara1 = rFPGA0_XB_HSSIParameter1; | |
@@ -638,43 +618,27 @@ static void rtl88e_phy_init_bb_rf_register_definition(struct adapter *adapter) | |
reg[RF_PATH_A]->rfSwitchControl = rFPGA0_XAB_SwitchControl; | |
reg[RF_PATH_B]->rfSwitchControl = rFPGA0_XAB_SwitchControl; | |
- reg[RF_PATH_C]->rfSwitchControl = rFPGA0_XCD_SwitchControl; | |
- reg[RF_PATH_D]->rfSwitchControl = rFPGA0_XCD_SwitchControl; | |
reg[RF_PATH_A]->rfAGCControl1 = rOFDM0_XAAGCCore1; | |
reg[RF_PATH_B]->rfAGCControl1 = rOFDM0_XBAGCCore1; | |
- reg[RF_PATH_C]->rfAGCControl1 = rOFDM0_XCAGCCore1; | |
- reg[RF_PATH_D]->rfAGCControl1 = rOFDM0_XDAGCCore1; | |
reg[RF_PATH_A]->rfAGCControl2 = rOFDM0_XAAGCCore2; | |
reg[RF_PATH_B]->rfAGCControl2 = rOFDM0_XBAGCCore2; | |
- reg[RF_PATH_C]->rfAGCControl2 = rOFDM0_XCAGCCore2; | |
- reg[RF_PATH_D]->rfAGCControl2 = rOFDM0_XDAGCCore2; | |
reg[RF_PATH_A]->rfRxIQImbalance = rOFDM0_XARxIQImbalance; | |
reg[RF_PATH_B]->rfRxIQImbalance = rOFDM0_XBRxIQImbalance; | |
- reg[RF_PATH_C]->rfRxIQImbalance = rOFDM0_XCRxIQImbalance; | |
- reg[RF_PATH_D]->rfRxIQImbalance = rOFDM0_XDRxIQImbalance; | |
reg[RF_PATH_A]->rfRxAFE = rOFDM0_XARxAFE; | |
reg[RF_PATH_B]->rfRxAFE = rOFDM0_XBRxAFE; | |
- reg[RF_PATH_C]->rfRxAFE = rOFDM0_XCRxAFE; | |
- reg[RF_PATH_D]->rfRxAFE = rOFDM0_XDRxAFE; | |
reg[RF_PATH_A]->rfTxIQImbalance = rOFDM0_XATxIQImbalance; | |
reg[RF_PATH_B]->rfTxIQImbalance = rOFDM0_XBTxIQImbalance; | |
- reg[RF_PATH_C]->rfTxIQImbalance = rOFDM0_XCTxIQImbalance; | |
- reg[RF_PATH_D]->rfTxIQImbalance = rOFDM0_XDTxIQImbalance; | |
reg[RF_PATH_A]->rfTxAFE = rOFDM0_XATxAFE; | |
reg[RF_PATH_B]->rfTxAFE = rOFDM0_XBTxAFE; | |
- reg[RF_PATH_C]->rfTxAFE = rOFDM0_XCTxAFE; | |
- reg[RF_PATH_D]->rfTxAFE = rOFDM0_XDTxAFE; | |
reg[RF_PATH_A]->rfLSSIReadBack = rFPGA0_XA_LSSIReadBack; | |
reg[RF_PATH_B]->rfLSSIReadBack = rFPGA0_XB_LSSIReadBack; | |
- reg[RF_PATH_C]->rfLSSIReadBack = rFPGA0_XC_LSSIReadBack; | |
- reg[RF_PATH_D]->rfLSSIReadBack = rFPGA0_XD_LSSIReadBack; | |
reg[RF_PATH_A]->rfLSSIReadBackPi = TransceiverA_HSPI_Readback; | |
reg[RF_PATH_B]->rfLSSIReadBackPi = TransceiverB_HSPI_Readback; | |
@@ -683,13 +647,12 @@ static void rtl88e_phy_init_bb_rf_register_definition(struct adapter *adapter) | |
static bool config_parafile(struct adapter *adapt) | |
{ | |
struct eeprom_priv *eeprom = GET_EEPROM_EFUSE_PRIV(adapt); | |
- struct hal_data_8188e *hal_data = GET_HAL_DATA(adapt); | |
set_baseband_phy_config(adapt); | |
/* If EEPROM or EFUSE autoload OK, We must config by PHY_REG_PG.txt */ | |
if (!eeprom->bautoload_fail_flag) { | |
- hal_data->pwrGroupCnt = 0; | |
+ adapt->HalData->pwrGroupCnt = 0; | |
config_bb_with_pgheader(adapt); | |
} | |
set_baseband_agc_config(adapt); | |
@@ -699,7 +662,6 @@ static bool config_parafile(struct adapter *adapt) | |
bool rtl88eu_phy_bb_config(struct adapter *adapt) | |
{ | |
int rtstatus = true; | |
- struct hal_data_8188e *hal_data = GET_HAL_DATA(adapt); | |
u32 regval; | |
u8 crystal_cap; | |
@@ -719,7 +681,7 @@ bool rtl88eu_phy_bb_config(struct adapter *adapt) | |
rtstatus = config_parafile(adapt); | |
/* write 0x24[16:11] = 0x24[22:17] = crystal_cap */ | |
- crystal_cap = hal_data->CrystalCap & 0x3F; | |
+ crystal_cap = adapt->HalData->CrystalCap & 0x3F; | |
phy_set_bb_reg(adapt, REG_AFE_XTAL_CTRL, 0x7ff800, | |
(crystal_cap | (crystal_cap << 6))); | |
diff --git b/drivers/staging/rtl8188eu/hal/fw.c a/drivers/staging/rtl8188eu/hal/fw.c | |
index 23aa6d37acac..03d091bad13a 100644 | |
--- b/drivers/staging/rtl8188eu/hal/fw.c | |
+++ a/drivers/staging/rtl8188eu/hal/fw.c | |
@@ -11,10 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
* The full GNU General Public License is included in this distribution in the | |
* file called LICENSE. | |
* | |
@@ -58,43 +54,21 @@ static void _rtl88e_fw_block_write(struct adapter *adapt, | |
const u8 *buffer, u32 size) | |
{ | |
u32 blk_sz = sizeof(u32); | |
- u8 *buf_ptr = (u8 *)buffer; | |
- u32 *pu4BytePtr = (u32 *)buffer; | |
- u32 i, offset, blk_cnt, remain; | |
+ const u8 *byte_buffer; | |
+ const u32 *dword_buffer = (u32 *)buffer; | |
+ u32 i, write_address, blk_cnt, remain; | |
blk_cnt = size / blk_sz; | |
remain = size % blk_sz; | |
- for (i = 0; i < blk_cnt; i++) { | |
- offset = i * blk_sz; | |
- usb_write32(adapt, (FW_8192C_START_ADDRESS + offset), | |
- *(pu4BytePtr + i)); | |
- } | |
- | |
- if (remain) { | |
- offset = blk_cnt * blk_sz; | |
- buf_ptr += offset; | |
- for (i = 0; i < remain; i++) { | |
- usb_write8(adapt, (FW_8192C_START_ADDRESS + | |
- offset + i), *(buf_ptr + i)); | |
- } | |
- } | |
-} | |
- | |
-static void _rtl88e_fill_dummy(u8 *pfwbuf, u32 *pfwlen) | |
-{ | |
- u32 fwlen = *pfwlen; | |
- u8 remain = (u8)(fwlen % 4); | |
- | |
- remain = (remain == 0) ? 0 : (4 - remain); | |
+ write_address = FW_8192C_START_ADDRESS; | |
- while (remain > 0) { | |
- pfwbuf[fwlen] = 0; | |
- fwlen++; | |
- remain--; | |
- } | |
+ for (i = 0; i < blk_cnt; i++, write_address += blk_sz) | |
+ usb_write32(adapt, write_address, dword_buffer[i]); | |
- *pfwlen = fwlen; | |
+ byte_buffer = buffer + blk_cnt * blk_sz; | |
+ for (i = 0; i < remain; i++, write_address++) | |
+ usb_write8(adapt, write_address, byte_buffer[i]); | |
} | |
static void _rtl88e_fw_page_write(struct adapter *adapt, | |
@@ -115,8 +89,6 @@ static void _rtl88e_write_fw(struct adapter *adapt, u8 *buffer, u32 size) | |
u32 page_no, remain; | |
u32 page, offset; | |
- _rtl88e_fill_dummy(buf_ptr, &size); | |
- | |
page_no = size / FW_8192C_PAGE_SIZE; | |
remain = size % FW_8192C_PAGE_SIZE; | |
@@ -182,14 +154,14 @@ static int _rtl88e_fw_free_to_go(struct adapter *adapt) | |
int rtl88eu_download_fw(struct adapter *adapt) | |
{ | |
- struct hal_data_8188e *rtlhal = GET_HAL_DATA(adapt); | |
struct dvobj_priv *dvobj = adapter_to_dvobj(adapt); | |
struct device *device = dvobj_to_dev(dvobj); | |
const struct firmware *fw; | |
const char fw_name[] = "rtlwifi/rtl8188eufw.bin"; | |
struct rtl92c_firmware_header *pfwheader = NULL; | |
- u8 *pfwdata; | |
- u32 fwsize; | |
+ u8 *download_data, *fw_data; | |
+ size_t download_size; | |
+ unsigned int trailing_zeros_length; | |
if (request_firmware(&fw, fw_name, device)) { | |
dev_err(device, "Firmware %s not available\n", fw_name); | |
@@ -199,34 +171,42 @@ int rtl88eu_download_fw(struct adapter *adapt) | |
if (fw->size > FW_8188E_SIZE) { | |
dev_err(device, "Firmware size exceed 0x%X. Check it.\n", | |
FW_8188E_SIZE); | |
+ release_firmware(fw); | |
return -1; | |
} | |
- pfwdata = kzalloc(FW_8188E_SIZE, GFP_KERNEL); | |
- if (!pfwdata) | |
- return -ENOMEM; | |
+ trailing_zeros_length = (4 - fw->size % 4) % 4; | |
- rtlhal->pfirmware = pfwdata; | |
- memcpy(rtlhal->pfirmware, fw->data, fw->size); | |
- rtlhal->fwsize = fw->size; | |
+ fw_data = kmalloc(fw->size + trailing_zeros_length, GFP_KERNEL); | |
+ if (!fw_data) { | |
release_firmware(fw); | |
+ return -ENOMEM; | |
+ } | |
+ | |
+ memcpy(fw_data, fw->data, fw->size); | |
+ memset(fw_data + fw->size, 0, trailing_zeros_length); | |
- fwsize = rtlhal->fwsize; | |
- pfwheader = (struct rtl92c_firmware_header *)pfwdata; | |
+ pfwheader = (struct rtl92c_firmware_header *)fw_data; | |
if (IS_FW_HEADER_EXIST(pfwheader)) { | |
- pfwdata = pfwdata + 32; | |
- fwsize = fwsize - 32; | |
+ download_data = fw_data + 32; | |
+ download_size = fw->size + trailing_zeros_length - 32; | |
+ } else { | |
+ download_data = fw_data; | |
+ download_size = fw->size + trailing_zeros_length; | |
} | |
+ release_firmware(fw); | |
+ | |
if (usb_read8(adapt, REG_MCUFWDL) & RAM_DL_SEL) { | |
usb_write8(adapt, REG_MCUFWDL, 0); | |
rtl88e_firmware_selfreset(adapt); | |
} | |
_rtl88e_enable_fw_download(adapt, true); | |
usb_write8(adapt, REG_MCUFWDL, usb_read8(adapt, REG_MCUFWDL) | FWDL_ChkSum_rpt); | |
- _rtl88e_write_fw(adapt, pfwdata, fwsize); | |
+ _rtl88e_write_fw(adapt, download_data, download_size); | |
_rtl88e_enable_fw_download(adapt, false); | |
+ kfree(fw_data); | |
return _rtl88e_fw_free_to_go(adapt); | |
} | |
diff --git b/drivers/staging/rtl8188eu/hal/hal_com.c a/drivers/staging/rtl8188eu/hal/hal_com.c | |
index 38e9fdc312d3..960cc406d238 100644 | |
--- b/drivers/staging/rtl8188eu/hal/hal_com.c | |
+++ a/drivers/staging/rtl8188eu/hal/hal_com.c | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#include <osdep_service.h> | |
#include <drv_types.h> | |
@@ -32,19 +27,19 @@ void dump_chip_info(struct HAL_VERSION chip_vers) | |
char buf[128]; | |
cnt += sprintf((buf+cnt), "Chip Version Info: CHIP_8188E_"); | |
- cnt += sprintf((buf+cnt), "%s_", IS_NORMAL_CHIP(chip_vers) ? | |
+ cnt += sprintf((buf+cnt), "%s_", chip_vers.ChipType == NORMAL_CHIP ? | |
"Normal_Chip" : "Test_Chip"); | |
- cnt += sprintf((buf+cnt), "%s_", IS_CHIP_VENDOR_TSMC(chip_vers) ? | |
+ cnt += sprintf((buf+cnt), "%s_", chip_vers.VendorType == CHIP_VENDOR_TSMC ? | |
"TSMC" : "UMC"); | |
- if (IS_A_CUT(chip_vers)) | |
+ if (chip_vers.CUTVersion == A_CUT_VERSION) | |
cnt += sprintf((buf+cnt), "A_CUT_"); | |
- else if (IS_B_CUT(chip_vers)) | |
+ else if (chip_vers.CUTVersion == B_CUT_VERSION) | |
cnt += sprintf((buf+cnt), "B_CUT_"); | |
- else if (IS_C_CUT(chip_vers)) | |
+ else if (chip_vers.CUTVersion == C_CUT_VERSION) | |
cnt += sprintf((buf+cnt), "C_CUT_"); | |
- else if (IS_D_CUT(chip_vers)) | |
+ else if (chip_vers.CUTVersion == D_CUT_VERSION) | |
cnt += sprintf((buf+cnt), "D_CUT_"); | |
- else if (IS_E_CUT(chip_vers)) | |
+ else if (chip_vers.CUTVersion == E_CUT_VERSION) | |
cnt += sprintf((buf+cnt), "E_CUT_"); | |
else | |
cnt += sprintf((buf+cnt), "UNKNOWN_CUT(%d)_", | |
diff --git b/drivers/staging/rtl8188eu/hal/hal_intf.c a/drivers/staging/rtl8188eu/hal/hal_intf.c | |
index 85c17ef942f3..a11c7b4254f6 100644 | |
--- b/drivers/staging/rtl8188eu/hal/hal_intf.c | |
+++ a/drivers/staging/rtl8188eu/hal/hal_intf.c | |
@@ -11,73 +11,12 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#define _HAL_INTF_C_ | |
#include <osdep_service.h> | |
#include <drv_types.h> | |
#include <hal_intf.h> | |
-#include <usb_hal.h> | |
- | |
-void rtw_hal_chip_configure(struct adapter *adapt) | |
-{ | |
- if (adapt->HalFunc.intf_chip_configure) | |
- adapt->HalFunc.intf_chip_configure(adapt); | |
-} | |
- | |
-void rtw_hal_read_chip_info(struct adapter *adapt) | |
-{ | |
- if (adapt->HalFunc.read_adapter_info) | |
- adapt->HalFunc.read_adapter_info(adapt); | |
-} | |
- | |
-void rtw_hal_read_chip_version(struct adapter *adapt) | |
-{ | |
- if (adapt->HalFunc.read_chip_version) | |
- adapt->HalFunc.read_chip_version(adapt); | |
-} | |
- | |
-void rtw_hal_def_value_init(struct adapter *adapt) | |
-{ | |
- if (adapt->HalFunc.init_default_value) | |
- adapt->HalFunc.init_default_value(adapt); | |
-} | |
- | |
-void rtw_hal_free_data(struct adapter *adapt) | |
-{ | |
- if (adapt->HalFunc.free_hal_data) | |
- adapt->HalFunc.free_hal_data(adapt); | |
-} | |
- | |
-void rtw_hal_dm_init(struct adapter *adapt) | |
-{ | |
- if (adapt->HalFunc.dm_init) | |
- adapt->HalFunc.dm_init(adapt); | |
-} | |
- | |
-void rtw_hal_sw_led_init(struct adapter *adapt) | |
-{ | |
- if (adapt->HalFunc.InitSwLeds) | |
- adapt->HalFunc.InitSwLeds(adapt); | |
-} | |
- | |
-void rtw_hal_sw_led_deinit(struct adapter *adapt) | |
-{ | |
- if (adapt->HalFunc.DeInitSwLeds) | |
- adapt->HalFunc.DeInitSwLeds(adapt); | |
-} | |
- | |
-u32 rtw_hal_power_on(struct adapter *adapt) | |
-{ | |
- if (adapt->HalFunc.hal_power_on) | |
- return adapt->HalFunc.hal_power_on(adapt); | |
- return _FAIL; | |
-} | |
uint rtw_hal_init(struct adapter *adapt) | |
{ | |
@@ -85,15 +24,13 @@ uint rtw_hal_init(struct adapter *adapt) | |
adapt->hw_init_completed = false; | |
- status = adapt->HalFunc.hal_init(adapt); | |
+ status = rtl8188eu_hal_init(adapt); | |
if (status == _SUCCESS) { | |
adapt->hw_init_completed = true; | |
if (adapt->registrypriv.notch_filter == 1) | |
rtw_hal_notch_filter(adapt, 1); | |
- | |
- rtw_hal_reset_security_engine(adapt); | |
} else { | |
adapt->hw_init_completed = false; | |
DBG_88E("rtw_hal_init: hal__init fail\n"); | |
@@ -109,7 +46,7 @@ uint rtw_hal_deinit(struct adapter *adapt) | |
{ | |
uint status = _SUCCESS; | |
- status = adapt->HalFunc.hal_deinit(adapt); | |
+ status = rtl8188eu_hal_deinit(adapt); | |
if (status == _SUCCESS) | |
adapt->hw_init_completed = false; | |
@@ -119,92 +56,6 @@ uint rtw_hal_deinit(struct adapter *adapt) | |
return status; | |
} | |
-void rtw_hal_set_hwreg(struct adapter *adapt, u8 variable, u8 *val) | |
-{ | |
- if (adapt->HalFunc.SetHwRegHandler) | |
- adapt->HalFunc.SetHwRegHandler(adapt, variable, val); | |
-} | |
- | |
-void rtw_hal_get_hwreg(struct adapter *adapt, u8 variable, u8 *val) | |
-{ | |
- if (adapt->HalFunc.GetHwRegHandler) | |
- adapt->HalFunc.GetHwRegHandler(adapt, variable, val); | |
-} | |
- | |
-u8 rtw_hal_get_def_var(struct adapter *adapt, | |
- enum hal_def_variable var, void *val) | |
-{ | |
- if (adapt->HalFunc.GetHalDefVarHandler) | |
- return adapt->HalFunc.GetHalDefVarHandler(adapt, var, val); | |
- return _FAIL; | |
-} | |
- | |
-void rtw_hal_set_odm_var(struct adapter *adapt, | |
- enum hal_odm_variable var, void *val1, | |
- bool set) | |
-{ | |
- if (adapt->HalFunc.SetHalODMVarHandler) | |
- adapt->HalFunc.SetHalODMVarHandler(adapt, var, | |
- val1, set); | |
-} | |
- | |
-u32 rtw_hal_inirp_init(struct adapter *adapt) | |
-{ | |
- u32 rst = _FAIL; | |
- | |
- if (adapt->HalFunc.inirp_init) | |
- rst = adapt->HalFunc.inirp_init(adapt); | |
- else | |
- DBG_88E(" %s HalFunc.inirp_init is NULL!!!\n", __func__); | |
- return rst; | |
-} | |
- | |
-u32 rtw_hal_inirp_deinit(struct adapter *adapt) | |
-{ | |
- if (adapt->HalFunc.inirp_deinit) | |
- return adapt->HalFunc.inirp_deinit(adapt); | |
- | |
- return _FAIL; | |
-} | |
- | |
-s32 rtw_hal_xmit(struct adapter *adapt, struct xmit_frame *pxmitframe) | |
-{ | |
- if (adapt->HalFunc.hal_xmit) | |
- return adapt->HalFunc.hal_xmit(adapt, pxmitframe); | |
- | |
- return false; | |
-} | |
- | |
-s32 rtw_hal_mgnt_xmit(struct adapter *adapt, struct xmit_frame *pmgntframe) | |
-{ | |
- s32 ret = _FAIL; | |
- | |
- if (adapt->HalFunc.mgnt_xmit) | |
- ret = adapt->HalFunc.mgnt_xmit(adapt, pmgntframe); | |
- return ret; | |
-} | |
- | |
-s32 rtw_hal_init_xmit_priv(struct adapter *adapt) | |
-{ | |
- if (adapt->HalFunc.init_xmit_priv != NULL) | |
- return adapt->HalFunc.init_xmit_priv(adapt); | |
- return _FAIL; | |
-} | |
- | |
-s32 rtw_hal_init_recv_priv(struct adapter *adapt) | |
-{ | |
- if (adapt->HalFunc.init_recv_priv) | |
- return adapt->HalFunc.init_recv_priv(adapt); | |
- | |
- return _FAIL; | |
-} | |
- | |
-void rtw_hal_free_recv_priv(struct adapter *adapt) | |
-{ | |
- if (adapt->HalFunc.free_recv_priv) | |
- adapt->HalFunc.free_recv_priv(adapt); | |
-} | |
- | |
void rtw_hal_update_ra_mask(struct adapter *adapt, u32 mac_id, u8 rssi_level) | |
{ | |
struct mlme_priv *pmlmepriv = &(adapt->mlmepriv); | |
@@ -220,86 +71,6 @@ void rtw_hal_update_ra_mask(struct adapter *adapt, u32 mac_id, u8 rssi_level) | |
add_RATid(adapt, psta, 0);/* todo: based on rssi_level*/ | |
#endif | |
} else { | |
- if (adapt->HalFunc.UpdateRAMaskHandler) | |
- adapt->HalFunc.UpdateRAMaskHandler(adapt, mac_id, | |
- rssi_level); | |
+ UpdateHalRAMask8188EUsb(adapt, mac_id, rssi_level); | |
} | |
} | |
- | |
-void rtw_hal_add_ra_tid(struct adapter *adapt, u32 bitmap, u8 arg, | |
- u8 rssi_level) | |
-{ | |
- if (adapt->HalFunc.Add_RateATid) | |
- adapt->HalFunc.Add_RateATid(adapt, bitmap, arg, | |
- rssi_level); | |
-} | |
- | |
-u32 rtw_hal_read_rfreg(struct adapter *adapt, enum rf_radio_path rfpath, | |
- u32 regaddr, u32 bitmask) | |
-{ | |
- u32 data = 0; | |
- | |
- if (adapt->HalFunc.read_rfreg) | |
- data = adapt->HalFunc.read_rfreg(adapt, rfpath, regaddr, | |
- bitmask); | |
- return data; | |
-} | |
- | |
-void rtw_hal_set_bwmode(struct adapter *adapt, | |
- enum ht_channel_width bandwidth, u8 offset) | |
-{ | |
- if (adapt->HalFunc.set_bwmode_handler) | |
- adapt->HalFunc.set_bwmode_handler(adapt, bandwidth, | |
- offset); | |
-} | |
- | |
-void rtw_hal_set_chan(struct adapter *adapt, u8 channel) | |
-{ | |
- if (adapt->HalFunc.set_channel_handler) | |
- adapt->HalFunc.set_channel_handler(adapt, channel); | |
-} | |
- | |
-void rtw_hal_dm_watchdog(struct adapter *adapt) | |
-{ | |
- if (adapt->HalFunc.hal_dm_watchdog) | |
- adapt->HalFunc.hal_dm_watchdog(adapt); | |
-} | |
- | |
-void rtw_hal_bcn_related_reg_setting(struct adapter *adapt) | |
-{ | |
- if (adapt->HalFunc.SetBeaconRelatedRegistersHandler) | |
- adapt->HalFunc.SetBeaconRelatedRegistersHandler(adapt); | |
-} | |
- | |
-u8 rtw_hal_antdiv_before_linked(struct adapter *adapt) | |
-{ | |
- if (adapt->HalFunc.AntDivBeforeLinkHandler) | |
- return adapt->HalFunc.AntDivBeforeLinkHandler(adapt); | |
- return false; | |
-} | |
- | |
-void rtw_hal_antdiv_rssi_compared(struct adapter *adapt, | |
- struct wlan_bssid_ex *dst, | |
- struct wlan_bssid_ex *src) | |
-{ | |
- if (adapt->HalFunc.AntDivCompareHandler) | |
- adapt->HalFunc.AntDivCompareHandler(adapt, dst, src); | |
-} | |
- | |
-void rtw_hal_sreset_init(struct adapter *adapt) | |
-{ | |
- if (adapt->HalFunc.sreset_init_value) | |
- adapt->HalFunc.sreset_init_value(adapt); | |
-} | |
- | |
-void rtw_hal_notch_filter(struct adapter *adapter, bool enable) | |
-{ | |
- if (adapter->HalFunc.hal_notch_filter) | |
- adapter->HalFunc.hal_notch_filter(adapter, enable); | |
-} | |
- | |
-void rtw_hal_reset_security_engine(struct adapter *adapter) | |
-{ | |
- if (adapter->HalFunc.hal_reset_security_engine) | |
- adapter->HalFunc.hal_reset_security_engine(adapter); | |
-} | |
diff --git b/drivers/staging/rtl8188eu/hal/mac_cfg.c a/drivers/staging/rtl8188eu/hal/mac_cfg.c | |
index 0bc1b215219a..6ed5e15ce661 100644 | |
--- b/drivers/staging/rtl8188eu/hal/mac_cfg.c | |
+++ a/drivers/staging/rtl8188eu/hal/mac_cfg.c | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
-* You should have received a copy of the GNU General Public License along with | |
-* this program; if not, write to the Free Software Foundation, Inc., | |
-* 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
-* | |
-* | |
******************************************************************************/ | |
#include "odm_precomp.h" | |
diff --git b/drivers/staging/rtl8188eu/hal/odm.c a/drivers/staging/rtl8188eu/hal/odm.c | |
index 2c25d3b02036..ec8aae76bf40 100644 | |
--- b/drivers/staging/rtl8188eu/hal/odm.c | |
+++ a/drivers/staging/rtl8188eu/hal/odm.c | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
/* include files */ | |
@@ -231,153 +226,6 @@ void ODM_DMWatchdog(struct odm_dm_struct *pDM_Odm) | |
odm_EdcaTurboCheck(pDM_Odm); | |
} | |
-/* Init /.. Fixed HW value. Only init time. */ | |
-void ODM_CmnInfoInit(struct odm_dm_struct *pDM_Odm, enum odm_common_info_def CmnInfo, u32 Value) | |
-{ | |
- /* This section is used for init value */ | |
- switch (CmnInfo) { | |
- /* Fixed ODM value. */ | |
- case ODM_CMNINFO_ABILITY: | |
- pDM_Odm->SupportAbility = (u32)Value; | |
- break; | |
- case ODM_CMNINFO_PLATFORM: | |
- pDM_Odm->SupportPlatform = (u8)Value; | |
- break; | |
- case ODM_CMNINFO_INTERFACE: | |
- pDM_Odm->SupportInterface = (u8)Value; | |
- break; | |
- case ODM_CMNINFO_MP_TEST_CHIP: | |
- pDM_Odm->bIsMPChip = (u8)Value; | |
- break; | |
- case ODM_CMNINFO_IC_TYPE: | |
- pDM_Odm->SupportICType = Value; | |
- break; | |
- case ODM_CMNINFO_CUT_VER: | |
- pDM_Odm->CutVersion = (u8)Value; | |
- break; | |
- case ODM_CMNINFO_FAB_VER: | |
- pDM_Odm->FabVersion = (u8)Value; | |
- break; | |
- case ODM_CMNINFO_RF_TYPE: | |
- pDM_Odm->RFType = (u8)Value; | |
- break; | |
- case ODM_CMNINFO_RF_ANTENNA_TYPE: | |
- pDM_Odm->AntDivType = (u8)Value; | |
- break; | |
- case ODM_CMNINFO_BOARD_TYPE: | |
- pDM_Odm->BoardType = (u8)Value; | |
- break; | |
- case ODM_CMNINFO_EXT_LNA: | |
- pDM_Odm->ExtLNA = (u8)Value; | |
- break; | |
- case ODM_CMNINFO_EXT_PA: | |
- pDM_Odm->ExtPA = (u8)Value; | |
- break; | |
- case ODM_CMNINFO_EXT_TRSW: | |
- pDM_Odm->ExtTRSW = (u8)Value; | |
- break; | |
- case ODM_CMNINFO_PATCH_ID: | |
- pDM_Odm->PatchID = (u8)Value; | |
- break; | |
- case ODM_CMNINFO_BINHCT_TEST: | |
- pDM_Odm->bInHctTest = (bool)Value; | |
- break; | |
- case ODM_CMNINFO_BWIFI_TEST: | |
- pDM_Odm->bWIFITest = (bool)Value; | |
- break; | |
- case ODM_CMNINFO_SMART_CONCURRENT: | |
- pDM_Odm->bDualMacSmartConcurrent = (bool)Value; | |
- break; | |
- /* To remove the compiler warning, must add an empty default statement to handle the other values. */ | |
- default: | |
- /* do nothing */ | |
- break; | |
- } | |
- | |
- /* Tx power tracking BB swing table. */ | |
- /* The base index = 12. +((12-n)/2)dB 13~?? = decrease tx pwr by -((n-12)/2)dB */ | |
- pDM_Odm->BbSwingIdxOfdm = 12; /* Set defalut value as index 12. */ | |
- pDM_Odm->BbSwingIdxOfdmCurrent = 12; | |
- pDM_Odm->BbSwingFlagOfdm = false; | |
-} | |
- | |
-void ODM_CmnInfoHook(struct odm_dm_struct *pDM_Odm, enum odm_common_info_def CmnInfo, void *pValue) | |
-{ | |
- /* */ | |
- /* Hook call by reference pointer. */ | |
- /* */ | |
- switch (CmnInfo) { | |
- /* Dynamic call by reference pointer. */ | |
- case ODM_CMNINFO_MAC_PHY_MODE: | |
- pDM_Odm->pMacPhyMode = (u8 *)pValue; | |
- break; | |
- case ODM_CMNINFO_TX_UNI: | |
- pDM_Odm->pNumTxBytesUnicast = (u64 *)pValue; | |
- break; | |
- case ODM_CMNINFO_RX_UNI: | |
- pDM_Odm->pNumRxBytesUnicast = (u64 *)pValue; | |
- break; | |
- case ODM_CMNINFO_WM_MODE: | |
- pDM_Odm->pWirelessMode = (u8 *)pValue; | |
- break; | |
- case ODM_CMNINFO_BAND: | |
- pDM_Odm->pBandType = (u8 *)pValue; | |
- break; | |
- case ODM_CMNINFO_SEC_CHNL_OFFSET: | |
- pDM_Odm->pSecChOffset = (u8 *)pValue; | |
- break; | |
- case ODM_CMNINFO_SEC_MODE: | |
- pDM_Odm->pSecurity = (u8 *)pValue; | |
- break; | |
- case ODM_CMNINFO_BW: | |
- pDM_Odm->pBandWidth = (u8 *)pValue; | |
- break; | |
- case ODM_CMNINFO_CHNL: | |
- pDM_Odm->pChannel = (u8 *)pValue; | |
- break; | |
- case ODM_CMNINFO_DMSP_GET_VALUE: | |
- pDM_Odm->pbGetValueFromOtherMac = (bool *)pValue; | |
- break; | |
- case ODM_CMNINFO_BUDDY_ADAPTOR: | |
- pDM_Odm->pBuddyAdapter = (struct adapter **)pValue; | |
- break; | |
- case ODM_CMNINFO_DMSP_IS_MASTER: | |
- pDM_Odm->pbMasterOfDMSP = (bool *)pValue; | |
- break; | |
- case ODM_CMNINFO_SCAN: | |
- pDM_Odm->pbScanInProcess = (bool *)pValue; | |
- break; | |
- case ODM_CMNINFO_POWER_SAVING: | |
- pDM_Odm->pbPowerSaving = (bool *)pValue; | |
- break; | |
- case ODM_CMNINFO_ONE_PATH_CCA: | |
- pDM_Odm->pOnePathCCA = (u8 *)pValue; | |
- break; | |
- case ODM_CMNINFO_DRV_STOP: | |
- pDM_Odm->pbDriverStopped = (bool *)pValue; | |
- break; | |
- case ODM_CMNINFO_PNP_IN: | |
- pDM_Odm->pbDriverIsGoingToPnpSetPowerSleep = (bool *)pValue; | |
- break; | |
- case ODM_CMNINFO_INIT_ON: | |
- pDM_Odm->pinit_adpt_in_progress = (bool *)pValue; | |
- break; | |
- case ODM_CMNINFO_ANT_TEST: | |
- pDM_Odm->pAntennaTest = (u8 *)pValue; | |
- break; | |
- case ODM_CMNINFO_NET_CLOSED: | |
- pDM_Odm->pbNet_closed = (bool *)pValue; | |
- break; | |
- case ODM_CMNINFO_MP_MODE: | |
- pDM_Odm->mp_mode = (u8 *)pValue; | |
- break; | |
- /* To remove the compiler warning, must add an empty default statement to handle the other values. */ | |
- default: | |
- /* do nothing */ | |
- break; | |
- } | |
-} | |
- | |
void ODM_CmnInfoPtrArrayHook(struct odm_dm_struct *pDM_Odm, enum odm_common_info_def CmnInfo, u16 Index, void *pValue) | |
{ | |
/* Hook call by reference pointer. */ | |
@@ -393,46 +241,6 @@ void ODM_CmnInfoPtrArrayHook(struct odm_dm_struct *pDM_Odm, enum odm_common_info | |
} | |
} | |
-/* Update Band/CHannel/.. The values are dynamic but non-per-packet. */ | |
-void ODM_CmnInfoUpdate(struct odm_dm_struct *pDM_Odm, u32 CmnInfo, u64 Value) | |
-{ | |
- /* */ | |
- /* This init variable may be changed in run time. */ | |
- /* */ | |
- switch (CmnInfo) { | |
- case ODM_CMNINFO_ABILITY: | |
- pDM_Odm->SupportAbility = (u32)Value; | |
- break; | |
- case ODM_CMNINFO_RF_TYPE: | |
- pDM_Odm->RFType = (u8)Value; | |
- break; | |
- case ODM_CMNINFO_WIFI_DIRECT: | |
- pDM_Odm->bWIFI_Direct = (bool)Value; | |
- break; | |
- case ODM_CMNINFO_WIFI_DISPLAY: | |
- pDM_Odm->bWIFI_Display = (bool)Value; | |
- break; | |
- case ODM_CMNINFO_LINK: | |
- pDM_Odm->bLinked = (bool)Value; | |
- break; | |
- case ODM_CMNINFO_RSSI_MIN: | |
- pDM_Odm->RSSI_Min = (u8)Value; | |
- break; | |
- case ODM_CMNINFO_DBG_COMP: | |
- pDM_Odm->DebugComponents = Value; | |
- break; | |
- case ODM_CMNINFO_DBG_LEVEL: | |
- pDM_Odm->DebugLevel = (u32)Value; | |
- break; | |
- case ODM_CMNINFO_RA_THRESHOLD_HIGH: | |
- pDM_Odm->RateAdaptive.HighRSSIThresh = (u8)Value; | |
- break; | |
- case ODM_CMNINFO_RA_THRESHOLD_LOW: | |
- pDM_Odm->RateAdaptive.LowRSSIThresh = (u8)Value; | |
- break; | |
- } | |
-} | |
- | |
void odm_CommonInfoSelfInit(struct odm_dm_struct *pDM_Odm) | |
{ | |
struct adapter *adapter = pDM_Odm->Adapter; | |
@@ -477,8 +285,6 @@ void odm_CmnInfoInit_Debug(struct odm_dm_struct *pDM_Odm) | |
ODM_RT_TRACE(pDM_Odm, ODM_COMP_COMMON, ODM_DBG_LOUD, ("SupportInterface=%d\n", pDM_Odm->SupportInterface)); | |
ODM_RT_TRACE(pDM_Odm, ODM_COMP_COMMON, ODM_DBG_LOUD, ("SupportICType=0x%x\n", pDM_Odm->SupportICType)); | |
ODM_RT_TRACE(pDM_Odm, ODM_COMP_COMMON, ODM_DBG_LOUD, ("CutVersion=%d\n", pDM_Odm->CutVersion)); | |
- ODM_RT_TRACE(pDM_Odm, ODM_COMP_COMMON, ODM_DBG_LOUD, ("FabVersion=%d\n", pDM_Odm->FabVersion)); | |
- ODM_RT_TRACE(pDM_Odm, ODM_COMP_COMMON, ODM_DBG_LOUD, ("RFType=%d\n", pDM_Odm->RFType)); | |
ODM_RT_TRACE(pDM_Odm, ODM_COMP_COMMON, ODM_DBG_LOUD, ("BoardType=%d\n", pDM_Odm->BoardType)); | |
ODM_RT_TRACE(pDM_Odm, ODM_COMP_COMMON, ODM_DBG_LOUD, ("ExtLNA=%d\n", pDM_Odm->ExtLNA)); | |
ODM_RT_TRACE(pDM_Odm, ODM_COMP_COMMON, ODM_DBG_LOUD, ("ExtPA=%d\n", pDM_Odm->ExtPA)); | |
@@ -956,7 +762,6 @@ u32 ODM_Get_Rate_Bitmap(struct odm_dm_struct *pDM_Odm, u32 macid, u32 ra_mask, u | |
break; | |
case (ODM_WM_B|ODM_WM_G|ODM_WM_N24G): | |
case (ODM_WM_A|ODM_WM_B|ODM_WM_G|ODM_WM_N24G): | |
- if (pDM_Odm->RFType == ODM_1T2R || pDM_Odm->RFType == ODM_1T1R) { | |
if (rssi_level == DM_RATR_STA_HIGH) { | |
rate_bitmap = 0x000f0000; | |
} else if (rssi_level == DM_RATR_STA_MIDDLE) { | |
@@ -967,25 +772,10 @@ u32 ODM_Get_Rate_Bitmap(struct odm_dm_struct *pDM_Odm, u32 macid, u32 ra_mask, u | |
else | |
rate_bitmap = 0x000ff005; | |
} | |
- } else { | |
- if (rssi_level == DM_RATR_STA_HIGH) { | |
- rate_bitmap = 0x0f8f0000; | |
- } else if (rssi_level == DM_RATR_STA_MIDDLE) { | |
- rate_bitmap = 0x0f8ff000; | |
- } else { | |
- if (*(pDM_Odm->pBandWidth) == ODM_BW40M) | |
- rate_bitmap = 0x0f8ff015; | |
- else | |
- rate_bitmap = 0x0f8ff005; | |
- } | |
- } | |
break; | |
default: | |
/* case WIRELESS_11_24N: */ | |
/* case WIRELESS_11_5N: */ | |
- if (pDM_Odm->RFType == RF_1T2R) | |
- rate_bitmap = 0x000fffff; | |
- else | |
rate_bitmap = 0x0fffffff; | |
break; | |
} | |
@@ -1042,6 +832,7 @@ void odm_RefreshRateAdaptiveMaskCE(struct odm_dm_struct *pDM_Odm) | |
for (i = 0; i < ODM_ASSOCIATE_ENTRY_NUM; i++) { | |
struct sta_info *pstat = pDM_Odm->pODM_StaInfo[i]; | |
+ | |
if (IS_STA_VALID(pstat)) { | |
if (ODM_RAStateCheck(pDM_Odm, pstat->rssi_stat.UndecoratedSmoothedPWDB, false, &pstat->rssi_level)) { | |
ODM_RT_TRACE(pDM_Odm, ODM_COMP_RA_MASK, ODM_DBG_LOUD, | |
@@ -1105,8 +896,8 @@ bool ODM_RAStateCheck(struct odm_dm_struct *pDM_Odm, s32 RSSI, bool bForceUpdate | |
void odm_DynamicTxPowerInit(struct odm_dm_struct *pDM_Odm) | |
{ | |
struct adapter *Adapter = pDM_Odm->Adapter; | |
- struct hal_data_8188e *pHalData = GET_HAL_DATA(Adapter); | |
- struct dm_priv *pdmpriv = &pHalData->dmpriv; | |
+ struct dm_priv *pdmpriv = &Adapter->HalData->dmpriv; | |
+ | |
pdmpriv->bDynamicTxPowerEnable = false; | |
pdmpriv->LastDTPLvl = TxHighPwrLevel_Normal; | |
pdmpriv->DynamicTxHighPowerLvl = TxHighPwrLevel_Normal; | |
@@ -1131,8 +922,7 @@ void odm_RSSIMonitorCheck(struct odm_dm_struct *pDM_Odm) | |
static void FindMinimumRSSI(struct adapter *pAdapter) | |
{ | |
- struct hal_data_8188e *pHalData = GET_HAL_DATA(pAdapter); | |
- struct dm_priv *pdmpriv = &pHalData->dmpriv; | |
+ struct dm_priv *pdmpriv = &pAdapter->HalData->dmpriv; | |
/* 1 1.Unconditionally set RSSI */ | |
pdmpriv->MinUndecoratedPWDBForDM = pdmpriv->EntryMinUndecoratedSmoothedPWDB; | |
@@ -1141,8 +931,7 @@ static void FindMinimumRSSI(struct adapter *pAdapter) | |
void odm_RSSIMonitorCheckCE(struct odm_dm_struct *pDM_Odm) | |
{ | |
struct adapter *Adapter = pDM_Odm->Adapter; | |
- struct hal_data_8188e *pHalData = GET_HAL_DATA(Adapter); | |
- struct dm_priv *pdmpriv = &pHalData->dmpriv; | |
+ struct dm_priv *pdmpriv = &Adapter->HalData->dmpriv; | |
int i; | |
int tmpEntryMaxPWDB = 0, tmpEntryMinPWDB = 0xff; | |
u8 sta_cnt = 0; | |
@@ -1171,7 +960,7 @@ void odm_RSSIMonitorCheckCE(struct odm_dm_struct *pDM_Odm) | |
for (i = 0; i < sta_cnt; i++) { | |
if (PWDB_rssi[i] != 0) { | |
- ODM_RA_SetRSSI_8188E(&pHalData->odmpriv, | |
+ ODM_RA_SetRSSI_8188E(&Adapter->HalData->odmpriv, | |
PWDB_rssi[i] & 0xFF, | |
(PWDB_rssi[i] >> 16) & 0xFF); | |
} | |
@@ -1188,8 +977,7 @@ void odm_RSSIMonitorCheckCE(struct odm_dm_struct *pDM_Odm) | |
pdmpriv->EntryMinUndecoratedSmoothedPWDB = 0; | |
FindMinimumRSSI(Adapter); | |
- ODM_CmnInfoUpdate(&pHalData->odmpriv, ODM_CMNINFO_RSSI_MIN, | |
- pdmpriv->MinUndecoratedPWDBForDM); | |
+ Adapter->HalData->odmpriv.RSSI_Min = pdmpriv->MinUndecoratedPWDBForDM; | |
} | |
/* 3============================================================ */ | |
@@ -1205,7 +993,6 @@ void odm_TXPowerTrackingThermalMeterInit(struct odm_dm_struct *pDM_Odm) | |
{ | |
pDM_Odm->RFCalibrateInfo.bTXPowerTracking = true; | |
pDM_Odm->RFCalibrateInfo.TXPowercount = 0; | |
- pDM_Odm->RFCalibrateInfo.bTXPowerTrackingInit = false; | |
if (*(pDM_Odm->mp_mode) != 1) | |
pDM_Odm->RFCalibrateInfo.TxPowerTrackControl = true; | |
MSG_88E("pDM_Odm TxPowerTrackControl = %d\n", pDM_Odm->RFCalibrateInfo.TxPowerTrackControl); | |
@@ -1267,6 +1054,7 @@ void odm_HwAntDiv(struct odm_dm_struct *pDM_Odm) | |
void ODM_EdcaTurboInit(struct odm_dm_struct *pDM_Odm) | |
{ | |
struct adapter *Adapter = pDM_Odm->Adapter; | |
+ | |
pDM_Odm->DM_EDCA_Table.bCurrentTurboEDCA = false; | |
pDM_Odm->DM_EDCA_Table.bIsCurRDLState = false; | |
Adapter->recvpriv.bIsAnyNonBEPkts = false; | |
@@ -1299,7 +1087,6 @@ void odm_EdcaTurboCheckCE(struct odm_dm_struct *pDM_Odm) | |
u64 cur_tx_bytes = 0; | |
u64 cur_rx_bytes = 0; | |
u8 bbtchange = false; | |
- struct hal_data_8188e *pHalData = GET_HAL_DATA(Adapter); | |
struct xmit_priv *pxmitpriv = &(Adapter->xmitpriv); | |
struct recv_priv *precvpriv = &(Adapter->recvpriv); | |
struct registry_priv *pregpriv = &Adapter->registrypriv; | |
@@ -1353,7 +1140,8 @@ void odm_EdcaTurboCheckCE(struct odm_dm_struct *pDM_Odm) | |
/* Turn Off EDCA turbo here. */ | |
/* Restore original EDCA according to the declaration of AP. */ | |
if (pDM_Odm->DM_EDCA_Table.bCurrentTurboEDCA) { | |
- usb_write32(Adapter, REG_EDCA_BE_PARAM, pHalData->AcParam_BE); | |
+ usb_write32(Adapter, REG_EDCA_BE_PARAM, | |
+ Adapter->HalData->AcParam_BE); | |
pDM_Odm->DM_EDCA_Table.bCurrentTurboEDCA = false; | |
} | |
} | |
diff --git b/drivers/staging/rtl8188eu/hal/odm_HWConfig.c a/drivers/staging/rtl8188eu/hal/odm_HWConfig.c | |
index 28b9f7f591c0..0555e42a3787 100644 | |
--- b/drivers/staging/rtl8188eu/hal/odm_HWConfig.c | |
+++ a/drivers/staging/rtl8188eu/hal/odm_HWConfig.c | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
/* include files */ | |
diff --git b/drivers/staging/rtl8188eu/hal/odm_RTL8188E.c a/drivers/staging/rtl8188eu/hal/odm_RTL8188E.c | |
index c0242a095c19..91e0f6cee8f4 100644 | |
--- b/drivers/staging/rtl8188eu/hal/odm_RTL8188E.c | |
+++ a/drivers/staging/rtl8188eu/hal/odm_RTL8188E.c | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#include "odm_precomp.h" | |
@@ -86,9 +81,9 @@ static void dm_trx_hw_antenna_div_init(struct odm_dm_struct *dm_odm) | |
/* antenna mapping table */ | |
if (!dm_odm->bIsMPChip) { /* testchip */ | |
- phy_set_bb_reg(adapter, ODM_REG_RX_DEFUALT_A_11N, | |
+ phy_set_bb_reg(adapter, ODM_REG_RX_DEFAULT_A_11N, | |
BIT(10) | BIT(9) | BIT(8), 1); | |
- phy_set_bb_reg(adapter, ODM_REG_RX_DEFUALT_A_11N, | |
+ phy_set_bb_reg(adapter, ODM_REG_RX_DEFAULT_A_11N, | |
BIT(13) | BIT(12) | BIT(11), 2); | |
} else { /* MPchip */ | |
phy_set_bb_reg(adapter, ODM_REG_ANT_MAPPING1_11N, bMaskDWord, | |
@@ -253,6 +248,7 @@ void rtl88eu_dm_ant_sel_statistics(struct odm_dm_struct *dm_odm, | |
u8 antsel_tr_mux, u32 mac_id, u8 rx_pwdb_all) | |
{ | |
struct fast_ant_train *dm_fat_tbl = &dm_odm->DM_FatTable; | |
+ | |
if (dm_odm->AntDivType == CG_TRX_HW_ANTDIV) { | |
if (antsel_tr_mux == MAIN_ANT_CG_TRX) { | |
dm_fat_tbl->MainAnt_Sum[mac_id] += rx_pwdb_all; | |
diff --git b/drivers/staging/rtl8188eu/hal/phy.c a/drivers/staging/rtl8188eu/hal/phy.c | |
index d3e8a8ea1829..3039bbe44a25 100644 | |
--- b/drivers/staging/rtl8188eu/hal/phy.c | |
+++ a/drivers/staging/rtl8188eu/hal/phy.c | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#define _RTL8188E_PHYCFG_C_ | |
@@ -45,12 +40,11 @@ static u32 cal_bit_shift(u32 bitmask) | |
u32 phy_query_bb_reg(struct adapter *adapt, u32 regaddr, u32 bitmask) | |
{ | |
- u32 return_value = 0, original_value, bit_shift; | |
+ u32 original_value, bit_shift; | |
original_value = usb_read32(adapt, regaddr); | |
bit_shift = cal_bit_shift(bitmask); | |
- return_value = (original_value & bitmask) >> bit_shift; | |
- return return_value; | |
+ return (original_value & bitmask) >> bit_shift; | |
} | |
void phy_set_bb_reg(struct adapter *adapt, u32 regaddr, u32 bitmask, u32 data) | |
@@ -70,8 +64,7 @@ static u32 rf_serial_read(struct adapter *adapt, | |
enum rf_radio_path rfpath, u32 offset) | |
{ | |
u32 ret = 0; | |
- struct hal_data_8188e *hal_data = GET_HAL_DATA(adapt); | |
- struct bb_reg_def *phyreg = &hal_data->PHYRegDef[rfpath]; | |
+ struct bb_reg_def *phyreg = &adapt->HalData->PHYRegDef[rfpath]; | |
u32 tmplong, tmplong2; | |
u8 rfpi_enable = 0; | |
@@ -115,23 +108,21 @@ static void rf_serial_write(struct adapter *adapt, | |
u32 data) | |
{ | |
u32 data_and_addr = 0; | |
- struct hal_data_8188e *hal_data = GET_HAL_DATA(adapt); | |
- struct bb_reg_def *phyreg = &hal_data->PHYRegDef[rfpath]; | |
+ struct bb_reg_def *phyreg = &adapt->HalData->PHYRegDef[rfpath]; | |
offset &= 0xff; | |
data_and_addr = ((offset<<20) | (data&0x000fffff)) & 0x0fffffff; | |
phy_set_bb_reg(adapt, phyreg->rf3wireOffset, bMaskDWord, data_and_addr); | |
} | |
-u32 phy_query_rf_reg(struct adapter *adapt, enum rf_radio_path rf_path, | |
+u32 rtw_hal_read_rfreg(struct adapter *adapt, enum rf_radio_path rf_path, | |
u32 reg_addr, u32 bit_mask) | |
{ | |
- u32 original_value, readback_value, bit_shift; | |
+ u32 original_value, bit_shift; | |
original_value = rf_serial_read(adapt, rf_path, reg_addr); | |
bit_shift = cal_bit_shift(bit_mask); | |
- readback_value = (original_value & bit_mask) >> bit_shift; | |
- return readback_value; | |
+ return (original_value & bit_mask) >> bit_shift; | |
} | |
void phy_set_rf_reg(struct adapter *adapt, enum rf_radio_path rf_path, | |
@@ -152,14 +143,11 @@ void phy_set_rf_reg(struct adapter *adapt, enum rf_radio_path rf_path, | |
static void get_tx_power_index(struct adapter *adapt, u8 channel, u8 *cck_pwr, | |
u8 *ofdm_pwr, u8 *bw20_pwr, u8 *bw40_pwr) | |
{ | |
- struct hal_data_8188e *hal_data = GET_HAL_DATA(adapt); | |
+ struct hal_data_8188e *hal_data = adapt->HalData; | |
u8 index = (channel - 1); | |
u8 TxCount = 0, path_nums; | |
- if ((RF_1T2R == hal_data->rf_type) || (RF_1T1R == hal_data->rf_type)) | |
path_nums = 1; | |
- else | |
- path_nums = 2; | |
for (TxCount = 0; TxCount < path_nums; TxCount++) { | |
if (TxCount == RF_PATH_A) { | |
@@ -180,32 +168,6 @@ static void get_tx_power_index(struct adapter *adapt, u8 channel, u8 *cck_pwr, | |
hal_data->BW20_24G_Diff[TxCount][RF_PATH_A]+ | |
hal_data->BW20_24G_Diff[TxCount][index]; | |
bw40_pwr[TxCount] = hal_data->Index24G_BW40_Base[TxCount][index]; | |
- } else if (TxCount == RF_PATH_C) { | |
- cck_pwr[TxCount] = hal_data->Index24G_CCK_Base[TxCount][index]; | |
- ofdm_pwr[TxCount] = hal_data->Index24G_BW40_Base[RF_PATH_A][index]+ | |
- hal_data->BW20_24G_Diff[RF_PATH_A][index]+ | |
- hal_data->BW20_24G_Diff[RF_PATH_B][index]+ | |
- hal_data->BW20_24G_Diff[TxCount][index]; | |
- | |
- bw20_pwr[TxCount] = hal_data->Index24G_BW40_Base[RF_PATH_A][index]+ | |
- hal_data->BW20_24G_Diff[RF_PATH_A][index]+ | |
- hal_data->BW20_24G_Diff[RF_PATH_B][index]+ | |
- hal_data->BW20_24G_Diff[TxCount][index]; | |
- bw40_pwr[TxCount] = hal_data->Index24G_BW40_Base[TxCount][index]; | |
- } else if (TxCount == RF_PATH_D) { | |
- cck_pwr[TxCount] = hal_data->Index24G_CCK_Base[TxCount][index]; | |
- ofdm_pwr[TxCount] = hal_data->Index24G_BW40_Base[RF_PATH_A][index]+ | |
- hal_data->BW20_24G_Diff[RF_PATH_A][index]+ | |
- hal_data->BW20_24G_Diff[RF_PATH_B][index]+ | |
- hal_data->BW20_24G_Diff[RF_PATH_C][index]+ | |
- hal_data->BW20_24G_Diff[TxCount][index]; | |
- | |
- bw20_pwr[TxCount] = hal_data->Index24G_BW40_Base[RF_PATH_A][index]+ | |
- hal_data->BW20_24G_Diff[RF_PATH_A][index]+ | |
- hal_data->BW20_24G_Diff[RF_PATH_B][index]+ | |
- hal_data->BW20_24G_Diff[RF_PATH_C][index]+ | |
- hal_data->BW20_24G_Diff[TxCount][index]; | |
- bw40_pwr[TxCount] = hal_data->Index24G_BW40_Base[TxCount][index]; | |
} | |
} | |
} | |
@@ -214,7 +176,7 @@ static void phy_power_index_check(struct adapter *adapt, u8 channel, | |
u8 *cck_pwr, u8 *ofdm_pwr, u8 *bw20_pwr, | |
u8 *bw40_pwr) | |
{ | |
- struct hal_data_8188e *hal_data = GET_HAL_DATA(adapt); | |
+ struct hal_data_8188e *hal_data = adapt->HalData; | |
hal_data->CurrentCckTxPwrIdx = cck_pwr[0]; | |
hal_data->CurrentOfdm24GTxPwrIdx = ofdm_pwr[0]; | |
@@ -242,17 +204,10 @@ void phy_set_tx_power_level(struct adapter *adapt, u8 channel) | |
static void phy_set_bw_mode_callback(struct adapter *adapt) | |
{ | |
- struct hal_data_8188e *hal_data = GET_HAL_DATA(adapt); | |
+ struct hal_data_8188e *hal_data = adapt->HalData; | |
u8 reg_bw_opmode; | |
u8 reg_prsr_rsc; | |
- if (hal_data->rf_chip == RF_PSEUDO_11N) | |
- return; | |
- | |
- /* There is no 40MHz mode in RF_8225. */ | |
- if (hal_data->rf_chip == RF_8225) | |
- return; | |
- | |
if (adapt->bDriverStopped) | |
return; | |
@@ -301,14 +256,13 @@ static void phy_set_bw_mode_callback(struct adapter *adapt) | |
} | |
/* Set RF related register */ | |
- if (hal_data->rf_chip == RF_6052) | |
rtl88eu_phy_rf6052_set_bandwidth(adapt, hal_data->CurrentChannelBW); | |
} | |
-void phy_set_bw_mode(struct adapter *adapt, enum ht_channel_width bandwidth, | |
+void rtw_hal_set_bwmode(struct adapter *adapt, enum ht_channel_width bandwidth, | |
unsigned char offset) | |
{ | |
- struct hal_data_8188e *hal_data = GET_HAL_DATA(adapt); | |
+ struct hal_data_8188e *hal_data = adapt->HalData; | |
enum ht_channel_width tmp_bw = hal_data->CurrentChannelBW; | |
hal_data->CurrentChannelBW = bandwidth; | |
@@ -322,33 +276,24 @@ void phy_set_bw_mode(struct adapter *adapt, enum ht_channel_width bandwidth, | |
static void phy_sw_chnl_callback(struct adapter *adapt, u8 channel) | |
{ | |
- u8 rf_path; | |
u32 param1, param2; | |
- struct hal_data_8188e *hal_data = GET_HAL_DATA(adapt); | |
- | |
- if (adapt->bNotifyChannelChange) | |
- DBG_88E("[%s] ch = %d\n", __func__, channel); | |
+ struct hal_data_8188e *hal_data = adapt->HalData; | |
phy_set_tx_power_level(adapt, channel); | |
param1 = RF_CHNLBW; | |
param2 = channel; | |
- for (rf_path = 0; rf_path < hal_data->NumTotalRFPath; rf_path++) { | |
- hal_data->RfRegChnlVal[rf_path] = (hal_data->RfRegChnlVal[rf_path] & | |
+ hal_data->RfRegChnlVal[0] = (hal_data->RfRegChnlVal[0] & | |
0xfffffc00) | param2; | |
- phy_set_rf_reg(adapt, (enum rf_radio_path)rf_path, param1, | |
- bRFRegOffsetMask, hal_data->RfRegChnlVal[rf_path]); | |
- } | |
+ phy_set_rf_reg(adapt, 0, param1, | |
+ bRFRegOffsetMask, hal_data->RfRegChnlVal[0]); | |
} | |
-void phy_sw_chnl(struct adapter *adapt, u8 channel) | |
+void rtw_hal_set_chan(struct adapter *adapt, u8 channel) | |
{ | |
- struct hal_data_8188e *hal_data = GET_HAL_DATA(adapt); | |
+ struct hal_data_8188e *hal_data = adapt->HalData; | |
u8 tmpchannel = hal_data->CurrentChannel; | |
- if (hal_data->rf_chip == RF_PSEUDO_11N) | |
- return; | |
- | |
if (channel == 0) | |
channel = 1; | |
@@ -438,7 +383,7 @@ static void dm_txpwr_track_setpwr(struct odm_dm_struct *dm_odm) | |
void rtl88eu_dm_txpower_tracking_callback_thermalmeter(struct adapter *adapt) | |
{ | |
- struct hal_data_8188e *hal_data = GET_HAL_DATA(adapt); | |
+ struct hal_data_8188e *hal_data = adapt->HalData; | |
u8 thermal_val = 0, delta, delta_lck, delta_iqk, offset; | |
u8 thermal_avg_count = 0; | |
u32 thermal_avg = 0; | |
@@ -446,9 +391,8 @@ void rtl88eu_dm_txpower_tracking_callback_thermalmeter(struct adapter *adapt) | |
s8 ofdm_index[2], cck_index = 0; | |
s8 ofdm_index_old[2] = {0, 0}, cck_index_old = 0; | |
u32 i = 0, j = 0; | |
- bool is2t = false; | |
- u8 ofdm_min_index = 6, rf; /* OFDM BB Swing should be less than +3.0dB */ | |
+ u8 ofdm_min_index = 6; /* OFDM BB Swing should be less than +3.0dB */ | |
s8 ofdm_index_mapping[2][index_mapping_NUM_88E] = { | |
/* 2.4G, decrease power */ | |
{0, 0, 2, 3, 4, 4, 5, 6, 7, 7, 8, 9, 10, 10, 11}, | |
@@ -466,18 +410,12 @@ void rtl88eu_dm_txpower_tracking_callback_thermalmeter(struct adapter *adapt) | |
dm_txpwr_track_setpwr(dm_odm); | |
dm_odm->RFCalibrateInfo.TXPowerTrackingCallbackCnt++; | |
- dm_odm->RFCalibrateInfo.bTXPowerTrackingInit = true; | |
dm_odm->RFCalibrateInfo.RegA24 = 0x090e1317; | |
- thermal_val = (u8)phy_query_rf_reg(adapt, RF_PATH_A, | |
+ thermal_val = (u8)rtw_hal_read_rfreg(adapt, RF_PATH_A, | |
RF_T_METER_88E, 0xfc00); | |
- if (is2t) | |
- rf = 2; | |
- else | |
- rf = 1; | |
- | |
if (thermal_val) { | |
/* Query OFDM path A default setting */ | |
ele_d = phy_query_bb_reg(adapt, rOFDM0_XATxIQImbalance, bMaskDWord)&bMaskOFDM_D; | |
@@ -489,17 +427,6 @@ void rtl88eu_dm_txpower_tracking_callback_thermalmeter(struct adapter *adapt) | |
} | |
} | |
- /* Query OFDM path B default setting */ | |
- if (is2t) { | |
- ele_d = phy_query_bb_reg(adapt, rOFDM0_XBTxIQImbalance, bMaskDWord)&bMaskOFDM_D; | |
- for (i = 0; i < OFDM_TABLE_SIZE_92D; i++) { | |
- if (ele_d == (OFDMSwingTable[i]&bMaskOFDM_D)) { | |
- ofdm_index_old[1] = (u8)i; | |
- break; | |
- } | |
- } | |
- } | |
- | |
/* Query CCK default setting From 0xa24 */ | |
temp_cck = dm_odm->RFCalibrateInfo.RegA24; | |
@@ -518,8 +445,7 @@ void rtl88eu_dm_txpower_tracking_callback_thermalmeter(struct adapter *adapt) | |
dm_odm->RFCalibrateInfo.ThermalValue_LCK = thermal_val; | |
dm_odm->RFCalibrateInfo.ThermalValue_IQK = thermal_val; | |
- for (i = 0; i < rf; i++) | |
- dm_odm->RFCalibrateInfo.OFDM_index[i] = ofdm_index_old[i]; | |
+ dm_odm->RFCalibrateInfo.OFDM_index[0] = ofdm_index_old[0]; | |
dm_odm->RFCalibrateInfo.CCK_index = cck_index_old; | |
} | |
@@ -578,13 +504,11 @@ void rtl88eu_dm_txpower_tracking_callback_thermalmeter(struct adapter *adapt) | |
offset = index_mapping_NUM_88E-1; | |
/* Updating ofdm_index values with new OFDM / CCK offset */ | |
- for (i = 0; i < rf; i++) { | |
- ofdm_index[i] = dm_odm->RFCalibrateInfo.OFDM_index[i] + ofdm_index_mapping[j][offset]; | |
- if (ofdm_index[i] > OFDM_TABLE_SIZE_92D-1) | |
- ofdm_index[i] = OFDM_TABLE_SIZE_92D-1; | |
- else if (ofdm_index[i] < ofdm_min_index) | |
- ofdm_index[i] = ofdm_min_index; | |
- } | |
+ ofdm_index[0] = dm_odm->RFCalibrateInfo.OFDM_index[0] + ofdm_index_mapping[j][offset]; | |
+ if (ofdm_index[0] > OFDM_TABLE_SIZE_92D-1) | |
+ ofdm_index[0] = OFDM_TABLE_SIZE_92D-1; | |
+ else if (ofdm_index[0] < ofdm_min_index) | |
+ ofdm_index[0] = ofdm_min_index; | |
cck_index = dm_odm->RFCalibrateInfo.CCK_index + ofdm_index_mapping[j][offset]; | |
if (cck_index > CCK_TABLE_SIZE-1) | |
@@ -663,8 +587,7 @@ static u8 phy_path_a_rx_iqk(struct adapter *adapt, bool configPathB) | |
{ | |
u32 reg_eac, reg_e94, reg_e9c, reg_ea4, u4tmp; | |
u8 result = 0x00; | |
- struct hal_data_8188e *hal_data = GET_HAL_DATA(adapt); | |
- struct odm_dm_struct *dm_odm = &hal_data->odmpriv; | |
+ struct odm_dm_struct *dm_odm = &adapt->HalData->odmpriv; | |
/* 1 Get TXIMR setting */ | |
/* modify RXIQK mode table */ | |
@@ -768,8 +691,7 @@ static u8 phy_path_b_iqk(struct adapter *adapt) | |
{ | |
u32 regeac, regeb4, regebc, regec4, regecc; | |
u8 result = 0x00; | |
- struct hal_data_8188e *hal_data = GET_HAL_DATA(adapt); | |
- struct odm_dm_struct *dm_odm = &hal_data->odmpriv; | |
+ struct odm_dm_struct *dm_odm = &adapt->HalData->odmpriv; | |
/* One shot, path B LOK & IQK */ | |
phy_set_bb_reg(adapt, rIQK_AGC_Cont, bMaskDWord, 0x00000002); | |
@@ -985,16 +907,10 @@ static bool simularity_compare(struct adapter *adapt, s32 resulta[][8], | |
u8 c1, u8 c2) | |
{ | |
u32 i, j, diff, sim_bitmap = 0, bound; | |
- struct hal_data_8188e *hal_data = GET_HAL_DATA(adapt); | |
- struct odm_dm_struct *dm_odm = &hal_data->odmpriv; | |
u8 final_candidate[2] = {0xFF, 0xFF}; /* for path A and path B */ | |
bool result = true; | |
s32 tmp1 = 0, tmp2 = 0; | |
- if ((dm_odm->RFType == ODM_2T2R) || (dm_odm->RFType == ODM_2T3R) || | |
- (dm_odm->RFType == ODM_2T4R)) | |
- bound = 8; | |
- else | |
bound = 4; | |
for (i = 0; i < bound; i++) { | |
@@ -1064,8 +980,7 @@ static bool simularity_compare(struct adapter *adapt, s32 resulta[][8], | |
static void phy_iq_calibrate(struct adapter *adapt, s32 result[][8], | |
u8 t, bool is2t) | |
{ | |
- struct hal_data_8188e *hal_data = GET_HAL_DATA(adapt); | |
- struct odm_dm_struct *dm_odm = &hal_data->odmpriv; | |
+ struct odm_dm_struct *dm_odm = &adapt->HalData->odmpriv; | |
u32 i; | |
u8 path_a_ok, path_b_ok; | |
u32 adda_reg[IQK_ADDA_REG_NUM] = { | |
@@ -1090,6 +1005,7 @@ static void phy_iq_calibrate(struct adapter *adapt, s32 result[][8], | |
rFPGA0_XB_RFInterfaceOE, rFPGA0_RFMOD}; | |
u32 retry_count = 9; | |
+ | |
if (*(dm_odm->mp_mode) == 1) | |
retry_count = 9; | |
else | |
@@ -1175,7 +1091,7 @@ static void phy_iq_calibrate(struct adapter *adapt, s32 result[][8], | |
} | |
} | |
- if (0x00 == path_a_ok) { | |
+ if (path_a_ok == 0x00) { | |
ODM_RT_TRACE(dm_odm, ODM_COMP_CALIBRATION, ODM_DBG_LOUD, | |
("Path A IQK failed!!\n")); | |
} | |
@@ -1206,7 +1122,7 @@ static void phy_iq_calibrate(struct adapter *adapt, s32 result[][8], | |
} | |
} | |
- if (0x00 == path_b_ok) { | |
+ if (path_b_ok == 0x00) { | |
ODM_RT_TRACE(dm_odm, ODM_COMP_CALIBRATION, ODM_DBG_LOUD, | |
("Path B IQK failed!!\n")); | |
} | |
@@ -1263,12 +1179,12 @@ static void phy_lc_calibrate(struct adapter *adapt, bool is2t) | |
if ((tmpreg&0x70) != 0) { | |
/* 1. Read original RF mode */ | |
/* Path-A */ | |
- rf_a_mode = phy_query_rf_reg(adapt, RF_PATH_A, RF_AC, | |
+ rf_a_mode = rtw_hal_read_rfreg(adapt, RF_PATH_A, RF_AC, | |
bMask12Bits); | |
/* Path-B */ | |
if (is2t) | |
- rf_b_mode = phy_query_rf_reg(adapt, RF_PATH_B, RF_AC, | |
+ rf_b_mode = rtw_hal_read_rfreg(adapt, RF_PATH_B, RF_AC, | |
bMask12Bits); | |
/* 2. Set RF mode = standby mode */ | |
@@ -1283,7 +1199,7 @@ static void phy_lc_calibrate(struct adapter *adapt, bool is2t) | |
} | |
/* 3. Read RF reg18 */ | |
- lc_cal = phy_query_rf_reg(adapt, RF_PATH_A, RF_CHNLBW, bMask12Bits); | |
+ lc_cal = rtw_hal_read_rfreg(adapt, RF_PATH_A, RF_CHNLBW, bMask12Bits); | |
/* 4. Set LC calibration begin bit15 */ | |
phy_set_rf_reg(adapt, RF_PATH_A, RF_CHNLBW, bMask12Bits, | |
@@ -1310,8 +1226,7 @@ static void phy_lc_calibrate(struct adapter *adapt, bool is2t) | |
void rtl88eu_phy_iq_calibrate(struct adapter *adapt, bool recovery) | |
{ | |
- struct hal_data_8188e *hal_data = GET_HAL_DATA(adapt); | |
- struct odm_dm_struct *dm_odm = &hal_data->odmpriv; | |
+ struct odm_dm_struct *dm_odm = &adapt->HalData->odmpriv; | |
s32 result[4][8]; | |
u8 i, final, chn_index; | |
bool pathaok, pathbok; | |
@@ -1326,7 +1241,7 @@ void rtl88eu_phy_iq_calibrate(struct adapter *adapt, bool recovery) | |
rOFDM0_RxIQExtAnta}; | |
bool is2t; | |
- is2t = (dm_odm->RFType == ODM_2T2R) ? true : false; | |
+ is2t = false; | |
if (!(dm_odm->SupportAbility & ODM_RF_CALIBRATION)) | |
return; | |
@@ -1422,7 +1337,7 @@ void rtl88eu_phy_iq_calibrate(struct adapter *adapt, bool recovery) | |
(reg_ec4 == 0)); | |
} | |
- chn_index = get_right_chnl_for_iqk(hal_data->CurrentChannel); | |
+ chn_index = get_right_chnl_for_iqk(adapt->HalData->CurrentChannel); | |
if (final < 4) { | |
for (i = 0; i < IQK_Matrix_REG_NUM; i++) | |
@@ -1438,8 +1353,7 @@ void rtl88eu_phy_lc_calibrate(struct adapter *adapt) | |
{ | |
bool singletone = false, carrier_sup = false; | |
u32 timeout = 2000, timecount = 0; | |
- struct hal_data_8188e *hal_data = GET_HAL_DATA(adapt); | |
- struct odm_dm_struct *dm_odm = &hal_data->odmpriv; | |
+ struct odm_dm_struct *dm_odm = &adapt->HalData->odmpriv; | |
if (!(dm_odm->SupportAbility & ODM_RF_CALIBRATION)) | |
return; | |
@@ -1453,12 +1367,7 @@ void rtl88eu_phy_lc_calibrate(struct adapter *adapt) | |
dm_odm->RFCalibrateInfo.bLCKInProgress = true; | |
- if (dm_odm->RFType == ODM_2T2R) { | |
- phy_lc_calibrate(adapt, true); | |
- } else { | |
- /* For 88C 1T1R */ | |
phy_lc_calibrate(adapt, false); | |
- } | |
dm_odm->RFCalibrateInfo.bLCKInProgress = false; | |
} | |
diff --git b/drivers/staging/rtl8188eu/hal/pwrseq.c a/drivers/staging/rtl8188eu/hal/pwrseq.c | |
index 20dce42cee1d..d92a34ea8d60 100644 | |
--- b/drivers/staging/rtl8188eu/hal/pwrseq.c | |
+++ a/drivers/staging/rtl8188eu/hal/pwrseq.c | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#include "pwrseq.h" | |
diff --git b/drivers/staging/rtl8188eu/hal/pwrseqcmd.c a/drivers/staging/rtl8188eu/hal/pwrseqcmd.c | |
index 3e60b23819ae..2867864bbfbe 100644 | |
--- b/drivers/staging/rtl8188eu/hal/pwrseqcmd.c | |
+++ a/drivers/staging/rtl8188eu/hal/pwrseqcmd.c | |
@@ -11,10 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
******************************************************************************/ | |
#include <pwrseqcmd.h> | |
@@ -23,8 +19,8 @@ | |
/* This routine deals with the Power Configuration CMDs parsing | |
* for RTL8723/RTL8188E Series IC. | |
*/ | |
-u8 rtl88eu_pwrseqcmdparsing(struct adapter *padapter, u8 cut_vers, u8 fab_vers, | |
- u8 ifacetype, struct wl_pwr_cfg pwrseqcmd[]) | |
+u8 rtl88eu_pwrseqcmdparsing(struct adapter *padapter, u8 cut_vers, | |
+ struct wl_pwr_cfg pwrseqcmd[]) | |
{ | |
struct wl_pwr_cfg pwrcfgcmd = {0}; | |
u8 poll_bit = false; | |
@@ -39,21 +35,16 @@ u8 rtl88eu_pwrseqcmdparsing(struct adapter *padapter, u8 cut_vers, u8 fab_vers, | |
RT_TRACE(_module_hal_init_c_, _drv_info_, | |
("rtl88eu_pwrseqcmdparsing: offset(%#x) cut_msk(%#x)" | |
- "fab_msk(%#x) interface_msk(%#x) base(%#x) cmd(%#x)" | |
+ " cmd(%#x)" | |
"msk(%#x) value(%#x)\n", | |
GET_PWR_CFG_OFFSET(pwrcfgcmd), | |
GET_PWR_CFG_CUT_MASK(pwrcfgcmd), | |
- GET_PWR_CFG_FAB_MASK(pwrcfgcmd), | |
- GET_PWR_CFG_INTF_MASK(pwrcfgcmd), | |
- GET_PWR_CFG_BASE(pwrcfgcmd), | |
GET_PWR_CFG_CMD(pwrcfgcmd), | |
GET_PWR_CFG_MASK(pwrcfgcmd), | |
GET_PWR_CFG_VALUE(pwrcfgcmd))); | |
- /* Only Handle the command whose FAB, CUT, and Interface are matched */ | |
- if ((GET_PWR_CFG_FAB_MASK(pwrcfgcmd) & fab_vers) && | |
- (GET_PWR_CFG_CUT_MASK(pwrcfgcmd) & cut_vers) && | |
- (GET_PWR_CFG_INTF_MASK(pwrcfgcmd) & ifacetype)) { | |
+ /* Only Handle the command whose CUT is matched */ | |
+ if (GET_PWR_CFG_CUT_MASK(pwrcfgcmd) & cut_vers) { | |
switch (GET_PWR_CFG_CMD(pwrcfgcmd)) { | |
case PWR_CMD_READ: | |
RT_TRACE(_module_hal_init_c_, _drv_info_, | |
diff --git b/drivers/staging/rtl8188eu/hal/rf.c a/drivers/staging/rtl8188eu/hal/rf.c | |
index 38845d17d593..8f8c9de6a9bc 100644 | |
--- b/drivers/staging/rtl8188eu/hal/rf.c | |
+++ a/drivers/staging/rtl8188eu/hal/rf.c | |
@@ -11,10 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
******************************************************************************/ | |
#include <osdep_service.h> | |
@@ -26,7 +22,7 @@ | |
void rtl88eu_phy_rf6052_set_bandwidth(struct adapter *adapt, | |
enum ht_channel_width bandwidth) | |
{ | |
- struct hal_data_8188e *hal_data = GET_HAL_DATA(adapt); | |
+ struct hal_data_8188e *hal_data = adapt->HalData; | |
switch (bandwidth) { | |
case HT_CHANNEL_WIDTH_20: | |
@@ -48,7 +44,7 @@ void rtl88eu_phy_rf6052_set_bandwidth(struct adapter *adapt, | |
void rtl88eu_phy_rf6052_set_cck_txpower(struct adapter *adapt, u8 *powerlevel) | |
{ | |
- struct hal_data_8188e *hal_data = GET_HAL_DATA(adapt); | |
+ struct hal_data_8188e *hal_data = adapt->HalData; | |
struct dm_priv *pdmpriv = &hal_data->dmpriv; | |
struct mlme_ext_priv *pmlmeext = &adapt->mlmeextpriv; | |
u32 tx_agc[2] = {0, 0}, tmpval = 0, pwrtrac_value; | |
@@ -65,8 +61,6 @@ void rtl88eu_phy_rf6052_set_cck_txpower(struct adapter *adapt, u8 *powerlevel) | |
(powerlevel[idx1]<<8) | | |
(powerlevel[idx1]<<16) | | |
(powerlevel[idx1]<<24); | |
- if (tx_agc[idx1] > 0x20 && hal_data->ExternalPA) | |
- tx_agc[idx1] = 0x20; | |
} | |
} else { | |
if (pdmpriv->DynamicTxHighPowerLvl == TxHighPwrLevel_Level1) { | |
@@ -133,7 +127,6 @@ static void getpowerbase88e(struct adapter *adapt, u8 *pwr_level_ofdm, | |
u8 *pwr_level_bw20, u8 *pwr_level_bw40, | |
u8 channel, u32 *ofdmbase, u32 *mcs_base) | |
{ | |
- struct hal_data_8188e *hal_data = GET_HAL_DATA(adapt); | |
u32 powerbase0, powerbase1; | |
u8 i, powerlevel[2]; | |
@@ -144,23 +137,21 @@ static void getpowerbase88e(struct adapter *adapt, u8 *pwr_level_ofdm, | |
(powerbase0<<8) | powerbase0; | |
*(ofdmbase+i) = powerbase0; | |
} | |
- for (i = 0; i < hal_data->NumTotalRFPath; i++) { | |
/* Check HT20 to HT40 diff */ | |
- if (hal_data->CurrentChannelBW == HT_CHANNEL_WIDTH_20) | |
- powerlevel[i] = pwr_level_bw20[i]; | |
+ if (adapt->HalData->CurrentChannelBW == HT_CHANNEL_WIDTH_20) | |
+ powerlevel[0] = pwr_level_bw20[0]; | |
else | |
- powerlevel[i] = pwr_level_bw40[i]; | |
- powerbase1 = powerlevel[i]; | |
+ powerlevel[0] = pwr_level_bw40[0]; | |
+ powerbase1 = powerlevel[0]; | |
powerbase1 = (powerbase1<<24) | (powerbase1<<16) | | |
(powerbase1<<8) | powerbase1; | |
- *(mcs_base+i) = powerbase1; | |
- } | |
+ *mcs_base = powerbase1; | |
} | |
static void get_rx_power_val_by_reg(struct adapter *adapt, u8 channel, | |
u8 index, u32 *powerbase0, u32 *powerbase1, | |
u32 *out_val) | |
{ | |
- struct hal_data_8188e *hal_data = GET_HAL_DATA(adapt); | |
+ struct hal_data_8188e *hal_data = adapt->HalData; | |
struct dm_priv *pdmpriv = &hal_data->dmpriv; | |
u8 i, chnlGroup = 0, pwr_diff_limit[4], customer_pwr_limit; | |
s8 pwr_diff = 0; | |
@@ -290,7 +281,6 @@ void rtl88eu_phy_rf6052_set_ofdm_txpower(struct adapter *adapt, | |
u8 *pwr_level_bw20, | |
u8 *pwr_level_bw40, u8 channel) | |
{ | |
- struct hal_data_8188e *hal_data = GET_HAL_DATA(adapt); | |
u32 write_val[2], powerbase0[2], powerbase1[2], pwrtrac_value; | |
u8 direction; | |
u8 index = 0; | |
@@ -298,8 +288,8 @@ void rtl88eu_phy_rf6052_set_ofdm_txpower(struct adapter *adapt, | |
getpowerbase88e(adapt, pwr_level_ofdm, pwr_level_bw20, pwr_level_bw40, | |
channel, &powerbase0[0], &powerbase1[0]); | |
- rtl88eu_dm_txpower_track_adjust(&hal_data->odmpriv, 0, &direction, | |
- &pwrtrac_value); | |
+ rtl88eu_dm_txpower_track_adjust(&adapt->HalData->odmpriv, 0, | |
+ &direction, &pwrtrac_value); | |
for (index = 0; index < 6; index++) { | |
get_rx_power_val_by_reg(adapt, channel, index, | |
diff --git b/drivers/staging/rtl8188eu/hal/rf_cfg.c a/drivers/staging/rtl8188eu/hal/rf_cfg.c | |
index 44945427cc34..9712d7b74345 100644 | |
--- b/drivers/staging/rtl8188eu/hal/rf_cfg.c | |
+++ a/drivers/staging/rtl8188eu/hal/rf_cfg.c | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
-* You should have received a copy of the GNU General Public License along with | |
-* this program; if not, write to the Free Software Foundation, Inc., | |
-* 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
-* | |
-* | |
******************************************************************************/ | |
#include "odm_precomp.h" | |
@@ -24,7 +19,7 @@ | |
static bool check_condition(struct adapter *adapt, const u32 condition) | |
{ | |
- struct odm_dm_struct *odm = &GET_HAL_DATA(adapt)->odmpriv; | |
+ struct odm_dm_struct *odm = &adapt->HalData->odmpriv; | |
u32 _board = odm->BoardType; | |
u32 _platform = odm->SupportPlatform; | |
u32 _interface = odm->SupportInterface; | |
@@ -233,27 +228,13 @@ static bool rtl88e_phy_config_rf_with_headerfile(struct adapter *adapt) | |
static bool rf6052_conf_para(struct adapter *adapt) | |
{ | |
- struct hal_data_8188e *hal_data = GET_HAL_DATA(adapt); | |
+ struct hal_data_8188e *hal_data = adapt->HalData; | |
u32 u4val = 0; | |
- u8 rfpath; | |
bool rtstatus = true; | |
struct bb_reg_def *pphyreg; | |
- for (rfpath = 0; rfpath < hal_data->NumTotalRFPath; rfpath++) { | |
- pphyreg = &hal_data->PHYRegDef[rfpath]; | |
- | |
- switch (rfpath) { | |
- case RF90_PATH_A: | |
- case RF90_PATH_C: | |
- u4val = phy_query_bb_reg(adapt, pphyreg->rfintfs, | |
- BRFSI_RFENV); | |
- break; | |
- case RF90_PATH_B: | |
- case RF90_PATH_D: | |
- u4val = phy_query_bb_reg(adapt, pphyreg->rfintfs, | |
- BRFSI_RFENV << 16); | |
- break; | |
- } | |
+ pphyreg = &hal_data->PHYRegDef[RF90_PATH_A]; | |
+ u4val = phy_query_bb_reg(adapt, pphyreg->rfintfs, BRFSI_RFENV); | |
phy_set_bb_reg(adapt, pphyreg->rfintfe, BRFSI_RFENV << 16, 0x1); | |
udelay(1); | |
@@ -261,56 +242,21 @@ static bool rf6052_conf_para(struct adapter *adapt) | |
phy_set_bb_reg(adapt, pphyreg->rfintfo, BRFSI_RFENV, 0x1); | |
udelay(1); | |
- phy_set_bb_reg(adapt, pphyreg->rfHSSIPara2, | |
- B3WIREADDREAALENGTH, 0x0); | |
+ phy_set_bb_reg(adapt, pphyreg->rfHSSIPara2, B3WIREADDREAALENGTH, 0x0); | |
udelay(1); | |
- phy_set_bb_reg(adapt, pphyreg->rfHSSIPara2, | |
- B3WIREDATALENGTH, 0x0); | |
+ phy_set_bb_reg(adapt, pphyreg->rfHSSIPara2, B3WIREDATALENGTH, 0x0); | |
udelay(1); | |
- switch (rfpath) { | |
- case RF90_PATH_A: | |
- rtstatus = rtl88e_phy_config_rf_with_headerfile(adapt); | |
- break; | |
- case RF90_PATH_B: | |
rtstatus = rtl88e_phy_config_rf_with_headerfile(adapt); | |
- break; | |
- case RF90_PATH_C: | |
- break; | |
- case RF90_PATH_D: | |
- break; | |
- } | |
- switch (rfpath) { | |
- case RF90_PATH_A: | |
- case RF90_PATH_C: | |
- phy_set_bb_reg(adapt, pphyreg->rfintfs, | |
- BRFSI_RFENV, u4val); | |
- break; | |
- case RF90_PATH_B: | |
- case RF90_PATH_D: | |
- phy_set_bb_reg(adapt, pphyreg->rfintfs, | |
- BRFSI_RFENV << 16, u4val); | |
- break; | |
- } | |
- | |
- if (!rtstatus) | |
- return false; | |
- } | |
+ phy_set_bb_reg(adapt, pphyreg->rfintfs, BRFSI_RFENV, u4val); | |
return rtstatus; | |
} | |
static bool rtl88e_phy_rf6052_config(struct adapter *adapt) | |
{ | |
- struct hal_data_8188e *hal_data = GET_HAL_DATA(adapt); | |
- | |
- if (hal_data->rf_type == RF_1T1R) | |
- hal_data->NumTotalRFPath = 1; | |
- else | |
- hal_data->NumTotalRFPath = 2; | |
- | |
return rf6052_conf_para(adapt); | |
} | |
diff --git b/drivers/staging/rtl8188eu/hal/rtl8188e_cmd.c a/drivers/staging/rtl8188eu/hal/rtl8188e_cmd.c | |
index 580876313e98..9b7ba9bffb0d 100644 | |
--- b/drivers/staging/rtl8188eu/hal/rtl8188e_cmd.c | |
+++ a/drivers/staging/rtl8188eu/hal/rtl8188e_cmd.c | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#define _RTL8188E_CMD_C_ | |
@@ -65,7 +60,6 @@ static s32 FillH2CCmd_88E(struct adapter *adapt, u8 ElementID, u32 CmdLen, u8 *p | |
u8 h2c_box_num; | |
u32 msgbox_addr; | |
u32 msgbox_ex_addr; | |
- struct hal_data_8188e *haldata = GET_HAL_DATA(adapt); | |
u8 cmd_idx, ext_cmd_len; | |
u32 h2c_cmd = 0; | |
u32 h2c_cmd_ex = 0; | |
@@ -86,7 +80,7 @@ static s32 FillH2CCmd_88E(struct adapter *adapt, u8 ElementID, u32 CmdLen, u8 *p | |
/* pay attention to if race condition happened in H2C cmd setting. */ | |
do { | |
- h2c_box_num = haldata->LastHMEBoxNum; | |
+ h2c_box_num = adapt->HalData->LastHMEBoxNum; | |
if (!_is_fw_read_cmd_down(adapt, h2c_box_num)) { | |
DBG_88E(" fw read cmd failed...\n"); | |
@@ -115,7 +109,8 @@ static s32 FillH2CCmd_88E(struct adapter *adapt, u8 ElementID, u32 CmdLen, u8 *p | |
} | |
bcmd_down = true; | |
- haldata->LastHMEBoxNum = (h2c_box_num+1) % RTL88E_MAX_H2C_BOX_NUMS; | |
+ adapt->HalData->LastHMEBoxNum = | |
+ (h2c_box_num+1) % RTL88E_MAX_H2C_BOX_NUMS; | |
} while ((!bcmd_down) && (retry_cnts--)); | |
@@ -131,9 +126,9 @@ static s32 FillH2CCmd_88E(struct adapter *adapt, u8 ElementID, u32 CmdLen, u8 *p | |
/* bitmap[28:31]= Rate Adaptive id */ | |
/* arg[0:4] = macid */ | |
/* arg[5] = Short GI */ | |
-void rtl8188e_Add_RateATid(struct adapter *pAdapter, u32 bitmap, u8 arg, u8 rssi_level) | |
+void rtw_hal_add_ra_tid(struct adapter *pAdapter, u32 bitmap, u8 arg, u8 rssi_level) | |
{ | |
- struct hal_data_8188e *haldata = GET_HAL_DATA(pAdapter); | |
+ struct odm_dm_struct *odmpriv = &pAdapter->HalData->odmpriv; | |
u8 macid, init_rate, raid, shortGIrate = false; | |
@@ -143,7 +138,7 @@ void rtl8188e_Add_RateATid(struct adapter *pAdapter, u32 bitmap, u8 arg, u8 rssi | |
bitmap &= 0x0fffffff; | |
if (rssi_level != DM_RATR_STA_INIT) | |
- bitmap = ODM_Get_Rate_Bitmap(&haldata->odmpriv, macid, bitmap, rssi_level); | |
+ bitmap = ODM_Get_Rate_Bitmap(odmpriv, macid, bitmap, rssi_level); | |
bitmap |= ((raid<<28)&0xf0000000); | |
@@ -161,7 +156,7 @@ void rtl8188e_Add_RateATid(struct adapter *pAdapter, u32 bitmap, u8 arg, u8 rssi | |
DBG_88E("%s=> mac_id:%d, raid:%d, ra_bitmap=0x%x, shortGIrate=0x%02x\n", | |
__func__, macid, raid, bitmap, shortGIrate); | |
- ODM_RA_UpdateRateInfo_8188E(&(haldata->odmpriv), macid, raid, bitmap, shortGIrate); | |
+ ODM_RA_UpdateRateInfo_8188E(odmpriv, macid, raid, bitmap, shortGIrate); | |
} | |
void rtl8188e_set_FwPwrMode_cmd(struct adapter *adapt, u8 Mode) | |
@@ -215,6 +210,7 @@ void rtl8188e_set_FwMediaStatus_cmd(struct adapter *adapt, __le16 mstatus_rpt) | |
{ | |
u8 opmode, macid; | |
u16 mst_rpt = le16_to_cpu(mstatus_rpt); | |
+ | |
opmode = (u8)mst_rpt; | |
macid = (u8)(mst_rpt >> 8); | |
@@ -224,7 +220,7 @@ void rtl8188e_set_FwMediaStatus_cmd(struct adapter *adapt, __le16 mstatus_rpt) | |
static void ConstructBeacon(struct adapter *adapt, u8 *pframe, u32 *pLength) | |
{ | |
- struct rtw_ieee80211_hdr *pwlanhdr; | |
+ struct ieee80211_hdr *pwlanhdr; | |
__le16 *fctrl; | |
u32 rate_len, pktlen; | |
struct mlme_ext_priv *pmlmeext = &(adapt->mlmeextpriv); | |
@@ -232,20 +228,20 @@ static void ConstructBeacon(struct adapter *adapt, u8 *pframe, u32 *pLength) | |
struct wlan_bssid_ex *cur_network = &(pmlmeinfo->network); | |
u8 bc_addr[] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; | |
- pwlanhdr = (struct rtw_ieee80211_hdr *)pframe; | |
+ pwlanhdr = (struct ieee80211_hdr *)pframe; | |
- fctrl = &(pwlanhdr->frame_ctl); | |
+ fctrl = &pwlanhdr->frame_control; | |
*(fctrl) = 0; | |
- memcpy(pwlanhdr->addr1, bc_addr, ETH_ALEN); | |
- memcpy(pwlanhdr->addr2, myid(&(adapt->eeprompriv)), ETH_ALEN); | |
- memcpy(pwlanhdr->addr3, cur_network->MacAddress, ETH_ALEN); | |
+ ether_addr_copy(pwlanhdr->addr1, bc_addr); | |
+ ether_addr_copy(pwlanhdr->addr2, myid(&(adapt->eeprompriv))); | |
+ ether_addr_copy(pwlanhdr->addr3, cur_network->MacAddress); | |
SetSeqNum(pwlanhdr, 0/*pmlmeext->mgnt_seq*/); | |
SetFrameSubType(pframe, WIFI_BEACON); | |
- pframe += sizeof(struct rtw_ieee80211_hdr_3addr); | |
- pktlen = sizeof(struct rtw_ieee80211_hdr_3addr); | |
+ pframe += sizeof(struct ieee80211_hdr_3addr); | |
+ pktlen = sizeof(struct ieee80211_hdr_3addr); | |
/* timestamp will be inserted by hardware */ | |
pframe += 8; | |
@@ -309,16 +305,16 @@ static void ConstructBeacon(struct adapter *adapt, u8 *pframe, u32 *pLength) | |
static void ConstructPSPoll(struct adapter *adapt, u8 *pframe, u32 *pLength) | |
{ | |
- struct rtw_ieee80211_hdr *pwlanhdr; | |
+ struct ieee80211_hdr *pwlanhdr; | |
struct mlme_ext_priv *pmlmeext = &(adapt->mlmeextpriv); | |
struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); | |
__le16 *fctrl; | |
struct wlan_bssid_ex *pnetwork = &(pmlmeinfo->network); | |
- pwlanhdr = (struct rtw_ieee80211_hdr *)pframe; | |
+ pwlanhdr = (struct ieee80211_hdr *)pframe; | |
/* Frame control. */ | |
- fctrl = &(pwlanhdr->frame_ctl); | |
+ fctrl = &pwlanhdr->frame_control; | |
*(fctrl) = 0; | |
SetPwrMgt(fctrl); | |
SetFrameSubType(pframe, WIFI_PSPOLL); | |
@@ -327,10 +323,10 @@ static void ConstructPSPoll(struct adapter *adapt, u8 *pframe, u32 *pLength) | |
SetDuration(pframe, (pmlmeinfo->aid | 0xc000)); | |
/* BSSID. */ | |
- memcpy(pwlanhdr->addr1, pnetwork->MacAddress, ETH_ALEN); | |
+ ether_addr_copy(pwlanhdr->addr1, pnetwork->MacAddress); | |
/* TA. */ | |
- memcpy(pwlanhdr->addr2, myid(&(adapt->eeprompriv)), ETH_ALEN); | |
+ ether_addr_copy(pwlanhdr->addr2, myid(&(adapt->eeprompriv))); | |
*pLength = 16; | |
} | |
@@ -343,7 +339,7 @@ static void ConstructNullFunctionData(struct adapter *adapt, u8 *pframe, | |
u8 bEosp, | |
u8 bForcePowerSave) | |
{ | |
- struct rtw_ieee80211_hdr *pwlanhdr; | |
+ struct ieee80211_hdr *pwlanhdr; | |
__le16 *fctrl; | |
u32 pktlen; | |
struct mlme_priv *pmlmepriv = &adapt->mlmepriv; | |
@@ -352,9 +348,9 @@ static void ConstructNullFunctionData(struct adapter *adapt, u8 *pframe, | |
struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); | |
struct wlan_bssid_ex *pnetwork = &(pmlmeinfo->network); | |
- pwlanhdr = (struct rtw_ieee80211_hdr *)pframe; | |
+ pwlanhdr = (struct ieee80211_hdr *)pframe; | |
- fctrl = &pwlanhdr->frame_ctl; | |
+ fctrl = &pwlanhdr->frame_control; | |
*(fctrl) = 0; | |
if (bForcePowerSave) | |
SetPwrMgt(fctrl); | |
@@ -362,40 +358,40 @@ static void ConstructNullFunctionData(struct adapter *adapt, u8 *pframe, | |
switch (cur_network->network.InfrastructureMode) { | |
case Ndis802_11Infrastructure: | |
SetToDs(fctrl); | |
- memcpy(pwlanhdr->addr1, pnetwork->MacAddress, ETH_ALEN); | |
- memcpy(pwlanhdr->addr2, myid(&(adapt->eeprompriv)), ETH_ALEN); | |
- memcpy(pwlanhdr->addr3, StaAddr, ETH_ALEN); | |
+ ether_addr_copy(pwlanhdr->addr1, pnetwork->MacAddress); | |
+ ether_addr_copy(pwlanhdr->addr2, myid(&(adapt->eeprompriv))); | |
+ ether_addr_copy(pwlanhdr->addr3, StaAddr); | |
break; | |
case Ndis802_11APMode: | |
SetFrDs(fctrl); | |
- memcpy(pwlanhdr->addr1, StaAddr, ETH_ALEN); | |
- memcpy(pwlanhdr->addr2, pnetwork->MacAddress, ETH_ALEN); | |
- memcpy(pwlanhdr->addr3, myid(&(adapt->eeprompriv)), ETH_ALEN); | |
+ ether_addr_copy(pwlanhdr->addr1, StaAddr); | |
+ ether_addr_copy(pwlanhdr->addr2, pnetwork->MacAddress); | |
+ ether_addr_copy(pwlanhdr->addr3, myid(&(adapt->eeprompriv))); | |
break; | |
case Ndis802_11IBSS: | |
default: | |
- memcpy(pwlanhdr->addr1, StaAddr, ETH_ALEN); | |
- memcpy(pwlanhdr->addr2, myid(&(adapt->eeprompriv)), ETH_ALEN); | |
- memcpy(pwlanhdr->addr3, pnetwork->MacAddress, ETH_ALEN); | |
+ ether_addr_copy(pwlanhdr->addr1, StaAddr); | |
+ ether_addr_copy(pwlanhdr->addr2, myid(&(adapt->eeprompriv))); | |
+ ether_addr_copy(pwlanhdr->addr3, pnetwork->MacAddress); | |
break; | |
} | |
SetSeqNum(pwlanhdr, 0); | |
if (bQoS) { | |
- struct rtw_ieee80211_hdr_3addr_qos *pwlanqoshdr; | |
+ struct ieee80211_qos_hdr *pwlanqoshdr; | |
SetFrameSubType(pframe, WIFI_QOS_DATA_NULL); | |
- pwlanqoshdr = (struct rtw_ieee80211_hdr_3addr_qos *)pframe; | |
- SetPriority(&pwlanqoshdr->qc, AC); | |
- SetEOSP(&pwlanqoshdr->qc, bEosp); | |
+ pwlanqoshdr = (struct ieee80211_qos_hdr *)pframe; | |
+ SetPriority(&pwlanqoshdr->qos_ctrl, AC); | |
+ SetEOSP(&pwlanqoshdr->qos_ctrl, bEosp); | |
- pktlen = sizeof(struct rtw_ieee80211_hdr_3addr_qos); | |
+ pktlen = sizeof(struct ieee80211_qos_hdr); | |
} else { | |
SetFrameSubType(pframe, WIFI_DATA_NULL); | |
- pktlen = sizeof(struct rtw_ieee80211_hdr_3addr); | |
+ pktlen = sizeof(struct ieee80211_hdr_3addr); | |
} | |
*pLength = pktlen; | |
@@ -403,7 +399,7 @@ static void ConstructNullFunctionData(struct adapter *adapt, u8 *pframe, | |
static void ConstructProbeRsp(struct adapter *adapt, u8 *pframe, u32 *pLength, u8 *StaAddr, bool bHideSSID) | |
{ | |
- struct rtw_ieee80211_hdr *pwlanhdr; | |
+ struct ieee80211_hdr *pwlanhdr; | |
__le16 *fctrl; | |
u8 *mac, *bssid; | |
u32 pktlen; | |
@@ -411,21 +407,21 @@ static void ConstructProbeRsp(struct adapter *adapt, u8 *pframe, u32 *pLength, u | |
struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); | |
struct wlan_bssid_ex *cur_network = &(pmlmeinfo->network); | |
- pwlanhdr = (struct rtw_ieee80211_hdr *)pframe; | |
+ pwlanhdr = (struct ieee80211_hdr *)pframe; | |
mac = myid(&(adapt->eeprompriv)); | |
bssid = cur_network->MacAddress; | |
- fctrl = &(pwlanhdr->frame_ctl); | |
+ fctrl = &pwlanhdr->frame_control; | |
*(fctrl) = 0; | |
- memcpy(pwlanhdr->addr1, StaAddr, ETH_ALEN); | |
- memcpy(pwlanhdr->addr2, mac, ETH_ALEN); | |
- memcpy(pwlanhdr->addr3, bssid, ETH_ALEN); | |
+ ether_addr_copy(pwlanhdr->addr1, StaAddr); | |
+ ether_addr_copy(pwlanhdr->addr2, mac); | |
+ ether_addr_copy(pwlanhdr->addr3, bssid); | |
SetSeqNum(pwlanhdr, 0); | |
SetFrameSubType(fctrl, WIFI_PROBERSP); | |
- pktlen = sizeof(struct rtw_ieee80211_hdr_3addr); | |
+ pktlen = sizeof(struct ieee80211_hdr_3addr); | |
pframe += pktlen; | |
if (cur_network->IELength > MAX_IE_SZ) | |
@@ -450,7 +446,6 @@ static void ConstructProbeRsp(struct adapter *adapt, u8 *pframe, u32 *pLength, u | |
/* 2009.10.15 by tynli. */ | |
static void SetFwRsvdPagePkt(struct adapter *adapt, bool bDLFinished) | |
{ | |
- struct hal_data_8188e *haldata; | |
struct xmit_frame *pmgntframe; | |
struct pkt_attrib *pattrib; | |
struct xmit_priv *pxmitpriv; | |
@@ -472,7 +467,6 @@ static void SetFwRsvdPagePkt(struct adapter *adapt, bool bDLFinished) | |
return; | |
} | |
- haldata = GET_HAL_DATA(adapt); | |
pxmitpriv = &adapt->xmitpriv; | |
pmlmeext = &adapt->mlmeextpriv; | |
pmlmeinfo = &pmlmeext->mlmext_info; | |
@@ -492,7 +486,7 @@ static void SetFwRsvdPagePkt(struct adapter *adapt, bool bDLFinished) | |
if (PageNeed == 1) | |
PageNeed += 1; | |
PageNum += PageNeed; | |
- haldata->FwRsvdPageStartOffset = PageNum; | |
+ adapt->HalData->FwRsvdPageStartOffset = PageNum; | |
BufIndex += PageNeed*128; | |
@@ -559,7 +553,7 @@ static void SetFwRsvdPagePkt(struct adapter *adapt, bool bDLFinished) | |
void rtl8188e_set_FwJoinBssReport_cmd(struct adapter *adapt, u8 mstatus) | |
{ | |
- struct hal_data_8188e *haldata = GET_HAL_DATA(adapt); | |
+ struct hal_data_8188e *haldata = adapt->HalData; | |
struct mlme_ext_priv *pmlmeext = &(adapt->mlmeextpriv); | |
struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); | |
bool bSendBeacon = false; | |
diff --git b/drivers/staging/rtl8188eu/hal/rtl8188e_dm.c a/drivers/staging/rtl8188eu/hal/rtl8188e_dm.c | |
index fca590949409..d04b7fbb71e1 100644 | |
--- b/drivers/staging/rtl8188eu/hal/rtl8188e_dm.c | |
+++ a/drivers/staging/rtl8188eu/hal/rtl8188e_dm.c | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
/* */ | |
/* Description: */ | |
@@ -47,45 +42,33 @@ static void dm_InitGPIOSetting(struct adapter *Adapter) | |
/* */ | |
static void Init_ODM_ComInfo_88E(struct adapter *Adapter) | |
{ | |
- struct hal_data_8188e *hal_data = GET_HAL_DATA(Adapter); | |
+ struct hal_data_8188e *hal_data = Adapter->HalData; | |
struct dm_priv *pdmpriv = &hal_data->dmpriv; | |
struct odm_dm_struct *dm_odm = &(hal_data->odmpriv); | |
- u8 cut_ver, fab_ver; | |
/* Init Value */ | |
memset(dm_odm, 0, sizeof(*dm_odm)); | |
dm_odm->Adapter = Adapter; | |
+ dm_odm->SupportPlatform = ODM_CE; | |
+ dm_odm->SupportICType = ODM_RTL8188E; | |
+ dm_odm->CutVersion = ODM_CUT_A; | |
+ dm_odm->bIsMPChip = hal_data->VersionID.ChipType == NORMAL_CHIP; | |
+ dm_odm->PatchID = hal_data->CustomerID; | |
+ dm_odm->bWIFITest = Adapter->registrypriv.wifi_spec; | |
- ODM_CmnInfoInit(dm_odm, ODM_CMNINFO_PLATFORM, ODM_CE); | |
- | |
- ODM_CmnInfoInit(dm_odm, ODM_CMNINFO_IC_TYPE, ODM_RTL8188E); | |
- | |
- fab_ver = ODM_TSMC; | |
- cut_ver = ODM_CUT_A; | |
- | |
- ODM_CmnInfoInit(dm_odm, ODM_CMNINFO_FAB_VER, fab_ver); | |
- ODM_CmnInfoInit(dm_odm, ODM_CMNINFO_CUT_VER, cut_ver); | |
- | |
- ODM_CmnInfoInit(dm_odm, ODM_CMNINFO_MP_TEST_CHIP, IS_NORMAL_CHIP(hal_data->VersionID)); | |
- | |
- ODM_CmnInfoInit(dm_odm, ODM_CMNINFO_PATCH_ID, hal_data->CustomerID); | |
- ODM_CmnInfoInit(dm_odm, ODM_CMNINFO_BWIFI_TEST, Adapter->registrypriv.wifi_spec); | |
- | |
+ dm_odm->AntDivType = hal_data->TRxAntDivType; | |
- if (hal_data->rf_type == RF_1T1R) | |
- ODM_CmnInfoUpdate(dm_odm, ODM_CMNINFO_RF_TYPE, ODM_1T1R); | |
- else if (hal_data->rf_type == RF_2T2R) | |
- ODM_CmnInfoUpdate(dm_odm, ODM_CMNINFO_RF_TYPE, ODM_2T2R); | |
- else if (hal_data->rf_type == RF_1T2R) | |
- ODM_CmnInfoUpdate(dm_odm, ODM_CMNINFO_RF_TYPE, ODM_1T2R); | |
- | |
- ODM_CmnInfoInit(dm_odm, ODM_CMNINFO_RF_ANTENNA_TYPE, hal_data->TRxAntDivType); | |
+ /* Tx power tracking BB swing table. */ | |
+ /* The base index = 12. +((12-n)/2)dB 13~?? = decrease tx pwr by -((n-12)/2)dB */ | |
+ dm_odm->BbSwingIdxOfdm = 12; /* Set defalut value as index 12. */ | |
+ dm_odm->BbSwingIdxOfdmCurrent = 12; | |
+ dm_odm->BbSwingFlagOfdm = false; | |
pdmpriv->InitODMFlag = ODM_RF_CALIBRATION | | |
ODM_RF_TX_PWR_TRACK; | |
- ODM_CmnInfoUpdate(dm_odm, ODM_CMNINFO_ABILITY, pdmpriv->InitODMFlag); | |
+ dm_odm->SupportAbility = pdmpriv->InitODMFlag; | |
} | |
static void Update_ODM_ComInfo_88E(struct adapter *Adapter) | |
@@ -93,7 +76,7 @@ static void Update_ODM_ComInfo_88E(struct adapter *Adapter) | |
struct mlme_ext_priv *pmlmeext = &Adapter->mlmeextpriv; | |
struct mlme_priv *pmlmepriv = &Adapter->mlmepriv; | |
struct pwrctrl_priv *pwrctrlpriv = &Adapter->pwrctrlpriv; | |
- struct hal_data_8188e *hal_data = GET_HAL_DATA(Adapter); | |
+ struct hal_data_8188e *hal_data = Adapter->HalData; | |
struct odm_dm_struct *dm_odm = &(hal_data->odmpriv); | |
struct dm_priv *pdmpriv = &hal_data->dmpriv; | |
int i; | |
@@ -116,20 +99,26 @@ static void Update_ODM_ComInfo_88E(struct adapter *Adapter) | |
ODM_RF_TX_PWR_TRACK; | |
} | |
- ODM_CmnInfoUpdate(dm_odm, ODM_CMNINFO_ABILITY, pdmpriv->InitODMFlag); | |
- | |
- ODM_CmnInfoHook(dm_odm, ODM_CMNINFO_TX_UNI, &(Adapter->xmitpriv.tx_bytes)); | |
- ODM_CmnInfoHook(dm_odm, ODM_CMNINFO_RX_UNI, &(Adapter->recvpriv.rx_bytes)); | |
- ODM_CmnInfoHook(dm_odm, ODM_CMNINFO_WM_MODE, &(pmlmeext->cur_wireless_mode)); | |
- ODM_CmnInfoHook(dm_odm, ODM_CMNINFO_SEC_CHNL_OFFSET, &(hal_data->nCur40MhzPrimeSC)); | |
- ODM_CmnInfoHook(dm_odm, ODM_CMNINFO_SEC_MODE, &(Adapter->securitypriv.dot11PrivacyAlgrthm)); | |
- ODM_CmnInfoHook(dm_odm, ODM_CMNINFO_BW, &(hal_data->CurrentChannelBW)); | |
- ODM_CmnInfoHook(dm_odm, ODM_CMNINFO_CHNL, &(hal_data->CurrentChannel)); | |
- ODM_CmnInfoHook(dm_odm, ODM_CMNINFO_NET_CLOSED, &(Adapter->net_closed)); | |
- ODM_CmnInfoHook(dm_odm, ODM_CMNINFO_MP_MODE, &(Adapter->registrypriv.mp_mode)); | |
- ODM_CmnInfoHook(dm_odm, ODM_CMNINFO_SCAN, &(pmlmepriv->bScanInProcess)); | |
- ODM_CmnInfoHook(dm_odm, ODM_CMNINFO_POWER_SAVING, &(pwrctrlpriv->bpower_saving)); | |
- ODM_CmnInfoInit(dm_odm, ODM_CMNINFO_RF_ANTENNA_TYPE, hal_data->TRxAntDivType); | |
+ dm_odm->SupportAbility = pdmpriv->InitODMFlag; | |
+ | |
+ dm_odm->pNumTxBytesUnicast = &Adapter->xmitpriv.tx_bytes; | |
+ dm_odm->pNumRxBytesUnicast = &Adapter->recvpriv.rx_bytes; | |
+ dm_odm->pWirelessMode = &pmlmeext->cur_wireless_mode; | |
+ dm_odm->pSecChOffset = &hal_data->nCur40MhzPrimeSC; | |
+ dm_odm->pSecurity = (u8 *)&Adapter->securitypriv.dot11PrivacyAlgrthm; | |
+ dm_odm->pBandWidth = (u8 *)&hal_data->CurrentChannelBW; | |
+ dm_odm->pChannel = &hal_data->CurrentChannel; | |
+ dm_odm->pbNet_closed = (bool *)&Adapter->net_closed; | |
+ dm_odm->mp_mode = &Adapter->registrypriv.mp_mode; | |
+ dm_odm->pbScanInProcess = (bool *)&pmlmepriv->bScanInProcess; | |
+ dm_odm->pbPowerSaving = (bool *)&pwrctrlpriv->bpower_saving; | |
+ dm_odm->AntDivType = hal_data->TRxAntDivType; | |
+ | |
+ /* Tx power tracking BB swing table. */ | |
+ /* The base index = 12. +((12-n)/2)dB 13~?? = decrease tx pwr by -((n-12)/2)dB */ | |
+ dm_odm->BbSwingIdxOfdm = 12; /* Set defalut value as index 12. */ | |
+ dm_odm->BbSwingIdxOfdmCurrent = 12; | |
+ dm_odm->BbSwingFlagOfdm = false; | |
for (i = 0; i < NUM_STA; i++) | |
ODM_CmnInfoPtrArrayHook(dm_odm, ODM_CMNINFO_STA_STATUS, i, NULL); | |
@@ -137,23 +126,19 @@ static void Update_ODM_ComInfo_88E(struct adapter *Adapter) | |
void rtl8188e_InitHalDm(struct adapter *Adapter) | |
{ | |
- struct hal_data_8188e *hal_data = GET_HAL_DATA(Adapter); | |
- struct dm_priv *pdmpriv = &hal_data->dmpriv; | |
- struct odm_dm_struct *dm_odm = &(hal_data->odmpriv); | |
+ struct dm_priv *pdmpriv = &Adapter->HalData->dmpriv; | |
+ struct odm_dm_struct *dm_odm = &(Adapter->HalData->odmpriv); | |
dm_InitGPIOSetting(Adapter); | |
pdmpriv->DM_Type = DM_Type_ByDriver; | |
pdmpriv->DMFlag = DYNAMIC_FUNC_DISABLE; | |
Update_ODM_ComInfo_88E(Adapter); | |
ODM_DMInit(dm_odm); | |
- Adapter->fix_rate = 0xFF; | |
} | |
-void rtl8188e_HalDmWatchDog(struct adapter *Adapter) | |
+void rtw_hal_dm_watchdog(struct adapter *Adapter) | |
{ | |
- bool fw_ps_awake = true; | |
u8 hw_init_completed = false; | |
- struct hal_data_8188e *hal_data = GET_HAL_DATA(Adapter); | |
struct mlme_priv *pmlmepriv = NULL; | |
u8 bLinked = false; | |
@@ -162,13 +147,6 @@ void rtl8188e_HalDmWatchDog(struct adapter *Adapter) | |
if (!hw_init_completed) | |
goto skip_dm; | |
- rtw_hal_get_hwreg(Adapter, HW_VAR_FWLPS_RF_ON, (u8 *)(&fw_ps_awake)); | |
- | |
- /* Fw is under p2p powersaving mode, driver should stop dynamic mechanism. */ | |
- /* modifed by thomas. 2011.06.11. */ | |
- if (Adapter->wdinfo.p2p_ps_mode) | |
- fw_ps_awake = false; | |
- | |
/* ODM */ | |
pmlmepriv = &Adapter->mlmepriv; | |
@@ -182,19 +160,18 @@ void rtl8188e_HalDmWatchDog(struct adapter *Adapter) | |
bLinked = true; | |
} | |
- ODM_CmnInfoUpdate(&hal_data->odmpriv, ODM_CMNINFO_LINK, bLinked); | |
- ODM_DMWatchdog(&hal_data->odmpriv); | |
+ Adapter->HalData->odmpriv.bLinked = bLinked; | |
+ ODM_DMWatchdog(&Adapter->HalData->odmpriv); | |
skip_dm: | |
/* Check GPIO to determine current RF on/off and Pbc status. */ | |
/* Check Hardware Radio ON/OFF or not */ | |
return; | |
} | |
-void rtl8188e_init_dm_priv(struct adapter *Adapter) | |
+void rtw_hal_dm_init(struct adapter *Adapter) | |
{ | |
- struct hal_data_8188e *hal_data = GET_HAL_DATA(Adapter); | |
- struct dm_priv *pdmpriv = &hal_data->dmpriv; | |
- struct odm_dm_struct *podmpriv = &hal_data->odmpriv; | |
+ struct dm_priv *pdmpriv = &Adapter->HalData->dmpriv; | |
+ struct odm_dm_struct *podmpriv = &Adapter->HalData->odmpriv; | |
memset(pdmpriv, 0, sizeof(struct dm_priv)); | |
Init_ODM_ComInfo_88E(Adapter); | |
@@ -203,11 +180,9 @@ void rtl8188e_init_dm_priv(struct adapter *Adapter) | |
/* Add new function to reset the state of antenna diversity before link. */ | |
/* Compare RSSI for deciding antenna */ | |
-void AntDivCompare8188E(struct adapter *Adapter, struct wlan_bssid_ex *dst, struct wlan_bssid_ex *src) | |
+void rtw_hal_antdiv_rssi_compared(struct adapter *Adapter, struct wlan_bssid_ex *dst, struct wlan_bssid_ex *src) | |
{ | |
- struct hal_data_8188e *hal_data = GET_HAL_DATA(Adapter); | |
- | |
- if (0 != hal_data->AntDivCfg) { | |
+ if (0 != Adapter->HalData->AntDivCfg) { | |
/* select optimum_antenna for before linked =>For antenna diversity */ | |
if (dst->Rssi >= src->Rssi) {/* keep org parameter */ | |
src->Rssi = dst->Rssi; | |
@@ -217,15 +192,14 @@ void AntDivCompare8188E(struct adapter *Adapter, struct wlan_bssid_ex *dst, stru | |
} | |
/* Add new function to reset the state of antenna diversity before link. */ | |
-u8 AntDivBeforeLink8188E(struct adapter *Adapter) | |
+u8 rtw_hal_antdiv_before_linked(struct adapter *Adapter) | |
{ | |
- struct hal_data_8188e *hal_data = GET_HAL_DATA(Adapter); | |
- struct odm_dm_struct *dm_odm = &hal_data->odmpriv; | |
+ struct odm_dm_struct *dm_odm = &Adapter->HalData->odmpriv; | |
struct sw_ant_switch *dm_swat_tbl = &dm_odm->DM_SWAT_Table; | |
struct mlme_priv *pmlmepriv = &(Adapter->mlmepriv); | |
/* Condition that does not need to use antenna diversity. */ | |
- if (hal_data->AntDivCfg == 0) | |
+ if (Adapter->HalData->AntDivCfg == 0) | |
return false; | |
if (check_fwstate(pmlmepriv, _FW_LINKED)) | |
diff --git b/drivers/staging/rtl8188eu/hal/rtl8188e_hal_init.c a/drivers/staging/rtl8188eu/hal/rtl8188e_hal_init.c | |
index e3e5d6f5d4f9..3673f573ac3d 100644 | |
--- b/drivers/staging/rtl8188eu/hal/rtl8188e_hal_init.c | |
+++ a/drivers/staging/rtl8188eu/hal/rtl8188e_hal_init.c | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#define _HAL_INIT_C_ | |
@@ -53,7 +48,7 @@ s32 iol_execute(struct adapter *padapter, u8 control) | |
{ | |
s32 status = _FAIL; | |
u8 reg_0x88 = 0; | |
- u32 start = 0, passing_time = 0; | |
+ unsigned long start = 0; | |
control = control&0x0f; | |
reg_0x88 = usb_read8(padapter, REG_HMEBOX_E0); | |
@@ -61,8 +56,8 @@ s32 iol_execute(struct adapter *padapter, u8 control) | |
start = jiffies; | |
while ((reg_0x88 = usb_read8(padapter, REG_HMEBOX_E0)) & control && | |
- (passing_time = rtw_get_passing_time_ms(start)) < 1000) { | |
- ; | |
+ jiffies_to_msecs(jiffies - start) < 1000) { | |
+ udelay(5); | |
} | |
reg_0x88 = usb_read8(padapter, REG_HMEBOX_E0); | |
@@ -75,6 +70,7 @@ s32 iol_execute(struct adapter *padapter, u8 control) | |
static s32 iol_InitLLTTable(struct adapter *padapter, u8 txpktbuf_bndy) | |
{ | |
s32 rst = _SUCCESS; | |
+ | |
iol_mode_enable(padapter, 1); | |
usb_write8(padapter, REG_TDECTRL+1, txpktbuf_bndy); | |
rst = iol_execute(padapter, CMD_INIT_LLT); | |
@@ -113,28 +109,24 @@ void _8051Reset88E(struct adapter *padapter) | |
void rtl8188e_InitializeFirmwareVars(struct adapter *padapter) | |
{ | |
- struct hal_data_8188e *pHalData = GET_HAL_DATA(padapter); | |
- | |
/* Init Fw LPS related. */ | |
padapter->pwrctrlpriv.bFwCurrentInPSMode = false; | |
/* Init H2C counter. by tynli. 2009.12.09. */ | |
- pHalData->LastHMEBoxNum = 0; | |
+ padapter->HalData->LastHMEBoxNum = 0; | |
} | |
-static void rtl8188e_free_hal_data(struct adapter *padapter) | |
+void rtw_hal_free_data(struct adapter *padapter) | |
{ | |
kfree(padapter->HalData); | |
padapter->HalData = NULL; | |
} | |
-static void ReadChipVersion8188E(struct adapter *padapter) | |
+void rtw_hal_read_chip_version(struct adapter *padapter) | |
{ | |
u32 value32; | |
struct HAL_VERSION ChipVersion; | |
- struct hal_data_8188e *pHalData; | |
- | |
- pHalData = GET_HAL_DATA(padapter); | |
+ struct hal_data_8188e *pHalData = padapter->HalData; | |
value32 = usb_read32(padapter, REG_SYS_CFG); | |
ChipVersion.ChipType = ((value32 & RTL_ID) ? TEST_CHIP : NORMAL_CHIP); | |
@@ -144,16 +136,12 @@ static void ReadChipVersion8188E(struct adapter *padapter) | |
dump_chip_info(ChipVersion); | |
pHalData->VersionID = ChipVersion; | |
- pHalData->rf_type = RF_1T1R; | |
- pHalData->NumTotalRFPath = 1; | |
- | |
- MSG_88E("RF_Type is %x!!\n", pHalData->rf_type); | |
} | |
-static void rtl8188e_SetHalODMVar(struct adapter *Adapter, enum hal_odm_variable eVariable, void *pValue1, bool bSet) | |
+void rtw_hal_set_odm_var(struct adapter *Adapter, enum hal_odm_variable eVariable, void *pValue1, bool bSet) | |
{ | |
- struct hal_data_8188e *pHalData = GET_HAL_DATA(Adapter); | |
- struct odm_dm_struct *podmpriv = &pHalData->odmpriv; | |
+ struct odm_dm_struct *podmpriv = &Adapter->HalData->odmpriv; | |
+ | |
switch (eVariable) { | |
case HAL_ODM_STA_INFO: | |
{ | |
@@ -170,17 +158,17 @@ static void rtl8188e_SetHalODMVar(struct adapter *Adapter, enum hal_odm_variable | |
} | |
break; | |
case HAL_ODM_P2P_STATE: | |
- ODM_CmnInfoUpdate(podmpriv, ODM_CMNINFO_WIFI_DIRECT, bSet); | |
+ podmpriv->bWIFI_Direct = bSet; | |
break; | |
case HAL_ODM_WIFI_DISPLAY_STATE: | |
- ODM_CmnInfoUpdate(podmpriv, ODM_CMNINFO_WIFI_DISPLAY, bSet); | |
+ podmpriv->bWIFI_Display = bSet; | |
break; | |
default: | |
break; | |
} | |
} | |
-static void hal_notch_filter_8188e(struct adapter *adapter, bool enable) | |
+void rtw_hal_notch_filter(struct adapter *adapter, bool enable) | |
{ | |
if (enable) { | |
DBG_88E("Enable notch filter\n"); | |
@@ -190,32 +178,6 @@ static void hal_notch_filter_8188e(struct adapter *adapter, bool enable) | |
usb_write8(adapter, rOFDM0_RxDSP+1, usb_read8(adapter, rOFDM0_RxDSP+1) & ~BIT(1)); | |
} | |
} | |
-void rtl8188e_set_hal_ops(struct hal_ops *pHalFunc) | |
-{ | |
- pHalFunc->free_hal_data = &rtl8188e_free_hal_data; | |
- | |
- pHalFunc->dm_init = &rtl8188e_init_dm_priv; | |
- | |
- pHalFunc->read_chip_version = &ReadChipVersion8188E; | |
- | |
- pHalFunc->set_bwmode_handler = &phy_set_bw_mode; | |
- pHalFunc->set_channel_handler = &phy_sw_chnl; | |
- | |
- pHalFunc->hal_dm_watchdog = &rtl8188e_HalDmWatchDog; | |
- | |
- pHalFunc->Add_RateATid = &rtl8188e_Add_RateATid; | |
- | |
- pHalFunc->AntDivBeforeLinkHandler = &AntDivBeforeLink8188E; | |
- pHalFunc->AntDivCompareHandler = &AntDivCompare8188E; | |
- pHalFunc->read_rfreg = &phy_query_rf_reg; | |
- | |
- pHalFunc->sreset_init_value = &sreset_init_value; | |
- pHalFunc->sreset_get_wifi_status = &sreset_get_wifi_status; | |
- | |
- pHalFunc->SetHalODMVarHandler = &rtl8188e_SetHalODMVar; | |
- | |
- pHalFunc->hal_notch_filter = &hal_notch_filter_8188e; | |
-} | |
/* */ | |
/* */ | |
@@ -242,6 +204,7 @@ static s32 _LLTWrite(struct adapter *padapter, u32 address, u32 data) | |
status = _FAIL; | |
break; | |
} | |
+ udelay(5); | |
} while (count++); | |
return status; | |
@@ -505,9 +468,9 @@ void Hal_ReadPowerSavingMode88E(struct adapter *padapter, u8 *hwinfo, bool AutoL | |
void Hal_ReadTxPowerInfo88E(struct adapter *padapter, u8 *PROMContent, bool AutoLoadFail) | |
{ | |
- struct hal_data_8188e *pHalData = GET_HAL_DATA(padapter); | |
+ struct hal_data_8188e *pHalData = padapter->HalData; | |
struct txpowerinfo24g pwrInfo24G; | |
- u8 rfPath, ch, group; | |
+ u8 ch, group; | |
u8 bIn24G, TxCount; | |
Hal_ReadPowerValueFromPROM_8188E(&pwrInfo24G, PROMContent, AutoLoadFail); | |
@@ -515,33 +478,31 @@ void Hal_ReadTxPowerInfo88E(struct adapter *padapter, u8 *PROMContent, bool Auto | |
if (!AutoLoadFail) | |
pHalData->bTXPowerDataReadFromEEPORM = true; | |
- for (rfPath = 0; rfPath < pHalData->NumTotalRFPath; rfPath++) { | |
for (ch = 0; ch < CHANNEL_MAX_NUMBER; ch++) { | |
bIn24G = Hal_GetChnlGroup88E(ch, &group); | |
if (bIn24G) { | |
- pHalData->Index24G_CCK_Base[rfPath][ch] = pwrInfo24G.IndexCCK_Base[rfPath][group]; | |
+ pHalData->Index24G_CCK_Base[0][ch] = pwrInfo24G.IndexCCK_Base[0][group]; | |
if (ch == 14) | |
- pHalData->Index24G_BW40_Base[rfPath][ch] = pwrInfo24G.IndexBW40_Base[rfPath][4]; | |
+ pHalData->Index24G_BW40_Base[0][ch] = pwrInfo24G.IndexBW40_Base[0][4]; | |
else | |
- pHalData->Index24G_BW40_Base[rfPath][ch] = pwrInfo24G.IndexBW40_Base[rfPath][group]; | |
+ pHalData->Index24G_BW40_Base[0][ch] = pwrInfo24G.IndexBW40_Base[0][group]; | |
} | |
if (bIn24G) { | |
- DBG_88E("======= Path %d, Channel %d =======\n", rfPath, ch); | |
- DBG_88E("Index24G_CCK_Base[%d][%d] = 0x%x\n", rfPath, ch , pHalData->Index24G_CCK_Base[rfPath][ch]); | |
- DBG_88E("Index24G_BW40_Base[%d][%d] = 0x%x\n", rfPath, ch , pHalData->Index24G_BW40_Base[rfPath][ch]); | |
+ DBG_88E("======= Path %d, Channel %d =======\n", 0, ch); | |
+ DBG_88E("Index24G_CCK_Base[%d][%d] = 0x%x\n", 0, ch, pHalData->Index24G_CCK_Base[0][ch]); | |
+ DBG_88E("Index24G_BW40_Base[%d][%d] = 0x%x\n", 0, ch, pHalData->Index24G_BW40_Base[0][ch]); | |
} | |
} | |
for (TxCount = 0; TxCount < MAX_TX_COUNT; TxCount++) { | |
- pHalData->CCK_24G_Diff[rfPath][TxCount] = pwrInfo24G.CCK_Diff[rfPath][TxCount]; | |
- pHalData->OFDM_24G_Diff[rfPath][TxCount] = pwrInfo24G.OFDM_Diff[rfPath][TxCount]; | |
- pHalData->BW20_24G_Diff[rfPath][TxCount] = pwrInfo24G.BW20_Diff[rfPath][TxCount]; | |
- pHalData->BW40_24G_Diff[rfPath][TxCount] = pwrInfo24G.BW40_Diff[rfPath][TxCount]; | |
+ pHalData->CCK_24G_Diff[0][TxCount] = pwrInfo24G.CCK_Diff[0][TxCount]; | |
+ pHalData->OFDM_24G_Diff[0][TxCount] = pwrInfo24G.OFDM_Diff[0][TxCount]; | |
+ pHalData->BW20_24G_Diff[0][TxCount] = pwrInfo24G.BW20_Diff[0][TxCount]; | |
+ pHalData->BW40_24G_Diff[0][TxCount] = pwrInfo24G.BW40_Diff[0][TxCount]; | |
DBG_88E("======= TxCount %d =======\n", TxCount); | |
- DBG_88E("CCK_24G_Diff[%d][%d] = %d\n", rfPath, TxCount, pHalData->CCK_24G_Diff[rfPath][TxCount]); | |
- DBG_88E("OFDM_24G_Diff[%d][%d] = %d\n", rfPath, TxCount, pHalData->OFDM_24G_Diff[rfPath][TxCount]); | |
- DBG_88E("BW20_24G_Diff[%d][%d] = %d\n", rfPath, TxCount, pHalData->BW20_24G_Diff[rfPath][TxCount]); | |
- DBG_88E("BW40_24G_Diff[%d][%d] = %d\n", rfPath, TxCount, pHalData->BW40_24G_Diff[rfPath][TxCount]); | |
- } | |
+ DBG_88E("CCK_24G_Diff[%d][%d] = %d\n", 0, TxCount, pHalData->CCK_24G_Diff[0][TxCount]); | |
+ DBG_88E("OFDM_24G_Diff[%d][%d] = %d\n", 0, TxCount, pHalData->OFDM_24G_Diff[0][TxCount]); | |
+ DBG_88E("BW20_24G_Diff[%d][%d] = %d\n", 0, TxCount, pHalData->BW20_24G_Diff[0][TxCount]); | |
+ DBG_88E("BW40_24G_Diff[%d][%d] = %d\n", 0, TxCount, pHalData->BW40_24G_Diff[0][TxCount]); | |
} | |
/* 2010/10/19 MH Add Regulator recognize for CU. */ | |
@@ -557,7 +518,7 @@ void Hal_ReadTxPowerInfo88E(struct adapter *padapter, u8 *PROMContent, bool Auto | |
void Hal_EfuseParseXtal_8188E(struct adapter *pAdapter, u8 *hwinfo, bool AutoLoadFail) | |
{ | |
- struct hal_data_8188e *pHalData = GET_HAL_DATA(pAdapter); | |
+ struct hal_data_8188e *pHalData = pAdapter->HalData; | |
if (!AutoLoadFail) { | |
pHalData->CrystalCap = hwinfo[EEPROM_XTAL_88E]; | |
@@ -571,7 +532,7 @@ void Hal_EfuseParseXtal_8188E(struct adapter *pAdapter, u8 *hwinfo, bool AutoLoa | |
void Hal_EfuseParseBoardType88E(struct adapter *pAdapter, u8 *hwinfo, bool AutoLoadFail) | |
{ | |
- struct hal_data_8188e *pHalData = GET_HAL_DATA(pAdapter); | |
+ struct hal_data_8188e *pHalData = pAdapter->HalData; | |
if (!AutoLoadFail) | |
pHalData->BoardType = (hwinfo[EEPROM_RF_BOARD_OPTION_88E] | |
@@ -583,7 +544,7 @@ void Hal_EfuseParseBoardType88E(struct adapter *pAdapter, u8 *hwinfo, bool AutoL | |
void Hal_EfuseParseEEPROMVer88E(struct adapter *padapter, u8 *hwinfo, bool AutoLoadFail) | |
{ | |
- struct hal_data_8188e *pHalData = GET_HAL_DATA(padapter); | |
+ struct hal_data_8188e *pHalData = padapter->HalData; | |
if (!AutoLoadFail) { | |
pHalData->EEPROMVersion = hwinfo[EEPROM_VERSION_88E]; | |
@@ -610,7 +571,7 @@ void rtl8188e_EfuseParseChnlPlan(struct adapter *padapter, u8 *hwinfo, bool Auto | |
void Hal_EfuseParseCustomerID88E(struct adapter *padapter, u8 *hwinfo, bool AutoLoadFail) | |
{ | |
- struct hal_data_8188e *pHalData = GET_HAL_DATA(padapter); | |
+ struct hal_data_8188e *pHalData = padapter->HalData; | |
if (!AutoLoadFail) { | |
pHalData->EEPROMCustomerID = hwinfo[EEPROM_CUSTOMERID_88E]; | |
@@ -623,7 +584,7 @@ void Hal_EfuseParseCustomerID88E(struct adapter *padapter, u8 *hwinfo, bool Auto | |
void Hal_ReadAntennaDiversity88E(struct adapter *pAdapter, u8 *PROMContent, bool AutoLoadFail) | |
{ | |
- struct hal_data_8188e *pHalData = GET_HAL_DATA(pAdapter); | |
+ struct hal_data_8188e *pHalData = pAdapter->HalData; | |
struct registry_priv *registry_par = &pAdapter->registrypriv; | |
if (!AutoLoadFail) { | |
@@ -656,7 +617,7 @@ void Hal_ReadAntennaDiversity88E(struct adapter *pAdapter, u8 *PROMContent, bool | |
void Hal_ReadThermalMeter_88E(struct adapter *Adapter, u8 *PROMContent, bool AutoloadFail) | |
{ | |
- struct hal_data_8188e *pHalData = GET_HAL_DATA(Adapter); | |
+ struct hal_data_8188e *pHalData = Adapter->HalData; | |
/* ThermalMeter from EEPROM */ | |
if (!AutoloadFail) | |
diff --git b/drivers/staging/rtl8188eu/hal/rtl8188e_rxdesc.c a/drivers/staging/rtl8188eu/hal/rtl8188e_rxdesc.c | |
index 53cf3baf46e0..9f51f54f866a 100644 | |
--- b/drivers/staging/rtl8188eu/hal/rtl8188e_rxdesc.c | |
+++ a/drivers/staging/rtl8188eu/hal/rtl8188e_rxdesc.c | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#define _RTL8188E_REDESC_C_ | |
@@ -45,7 +40,7 @@ static void process_link_qual(struct adapter *padapter, | |
struct rx_pkt_attrib *pattrib; | |
struct signal_stat *signal_stat; | |
- if (prframe == NULL || padapter == NULL) | |
+ if (!prframe || !padapter) | |
return; | |
pattrib = &prframe->attrib; | |
@@ -62,10 +57,9 @@ static void process_link_qual(struct adapter *padapter, | |
signal_stat->avg_val = signal_stat->total_val / signal_stat->total_num; | |
} | |
-void rtl8188e_process_phy_info(struct adapter *padapter, void *prframe) | |
+void rtl8188e_process_phy_info(struct adapter *padapter, | |
+ struct recv_frame *precvframe) | |
{ | |
- struct recv_frame *precvframe = (struct recv_frame *)prframe; | |
- | |
/* Check RSSI */ | |
process_rssi(padapter, precvframe); | |
/* Check EVM */ | |
@@ -145,7 +139,6 @@ void update_recvframe_phyinfo_88e(struct recv_frame *precvframe, | |
{ | |
struct adapter *padapter = precvframe->adapter; | |
struct rx_pkt_attrib *pattrib = &precvframe->attrib; | |
- struct hal_data_8188e *pHalData = GET_HAL_DATA(padapter); | |
struct odm_phy_status_info *pPHYInfo = (struct odm_phy_status_info *)(&pattrib->phy_info); | |
u8 *wlanhdr; | |
struct odm_per_pkt_info pkt_info; | |
@@ -157,7 +150,7 @@ void update_recvframe_phyinfo_88e(struct recv_frame *precvframe, | |
pkt_info.bPacketToSelf = false; | |
pkt_info.bPacketBeacon = false; | |
- wlanhdr = precvframe->rx_data; | |
+ wlanhdr = precvframe->pkt->data; | |
pkt_info.bPacketMatchBSSID = ((!IsFrameTypeCtrl(wlanhdr)) && | |
!pattrib->icv_err && !pattrib->crc_err && | |
@@ -186,7 +179,8 @@ void update_recvframe_phyinfo_88e(struct recv_frame *precvframe, | |
pkt_info.StationID = psta->mac_id; | |
pkt_info.Rate = pattrib->mcs_rate; | |
- ODM_PhyStatusQuery(&pHalData->odmpriv, pPHYInfo, (u8 *)pphy_status, &(pkt_info)); | |
+ ODM_PhyStatusQuery(&padapter->HalData->odmpriv, pPHYInfo, | |
+ (u8 *)pphy_status, &(pkt_info)); | |
precvframe->psta = NULL; | |
if (pkt_info.bPacketMatchBSSID && | |
diff --git b/drivers/staging/rtl8188eu/hal/rtl8188e_xmit.c a/drivers/staging/rtl8188eu/hal/rtl8188e_xmit.c | |
index a6ba53b488e3..460a20558bc0 100644 | |
--- b/drivers/staging/rtl8188eu/hal/rtl8188e_xmit.c | |
+++ a/drivers/staging/rtl8188eu/hal/rtl8188e_xmit.c | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#define _RTL8188E_XMIT_C_ | |
diff --git b/drivers/staging/rtl8188eu/hal/rtl8188eu_led.c a/drivers/staging/rtl8188eu/hal/rtl8188eu_led.c | |
index 564cf53bff1b..12879afb992e 100644 | |
--- b/drivers/staging/rtl8188eu/hal/rtl8188eu_led.c | |
+++ a/drivers/staging/rtl8188eu/hal/rtl8188eu_led.c | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#include <osdep_service.h> | |
@@ -45,23 +40,18 @@ void SwLedOn(struct adapter *padapter, struct LED_871x *pLed) | |
void SwLedOff(struct adapter *padapter, struct LED_871x *pLed) | |
{ | |
u8 LedCfg; | |
- struct hal_data_8188e *pHalData = GET_HAL_DATA(padapter); | |
if (padapter->bSurpriseRemoved || padapter->bDriverStopped) | |
goto exit; | |
LedCfg = usb_read8(padapter, REG_LEDCFG2);/* 0x4E */ | |
- if (pHalData->bLedOpenDrain) { | |
/* Open-drain arrangement for controlling the LED) */ | |
LedCfg &= 0x90; /* Set to software control. */ | |
usb_write8(padapter, REG_LEDCFG2, (LedCfg | BIT(3))); | |
LedCfg = usb_read8(padapter, REG_MAC_PINMUX_CFG); | |
LedCfg &= 0xFE; | |
usb_write8(padapter, REG_MAC_PINMUX_CFG, LedCfg); | |
- } else { | |
- usb_write8(padapter, REG_LEDCFG2, (LedCfg | BIT(3) | BIT(5) | BIT(6))); | |
- } | |
exit: | |
pLed->bLedOn = false; | |
} | |
@@ -71,21 +61,16 @@ void SwLedOff(struct adapter *padapter, struct LED_871x *pLed) | |
/* Description: */ | |
/* Initialize all LED_871x objects. */ | |
-void rtl8188eu_InitSwLeds(struct adapter *padapter) | |
+void rtw_hal_sw_led_init(struct adapter *padapter) | |
{ | |
struct led_priv *pledpriv = &(padapter->ledpriv); | |
- struct hal_data_8188e *haldata = GET_HAL_DATA(padapter); | |
- | |
- pledpriv->bRegUseLed = true; | |
- pledpriv->LedControlHandler = LedControl8188eu; | |
- haldata->bLedOpenDrain = true; | |
InitLed871x(padapter, &(pledpriv->SwLed0)); | |
} | |
/* Description: */ | |
/* DeInitialize all LED_819xUsb objects. */ | |
-void rtl8188eu_DeInitSwLeds(struct adapter *padapter) | |
+void rtw_hal_sw_led_deinit(struct adapter *padapter) | |
{ | |
struct led_priv *ledpriv = &(padapter->ledpriv); | |
diff --git b/drivers/staging/rtl8188eu/hal/rtl8188eu_recv.c a/drivers/staging/rtl8188eu/hal/rtl8188eu_recv.c | |
index d6d009aafcf0..0fc093eb7a77 100644 | |
--- b/drivers/staging/rtl8188eu/hal/rtl8188eu_recv.c | |
+++ a/drivers/staging/rtl8188eu/hal/rtl8188eu_recv.c | |
@@ -11,13 +11,9 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#define _RTL8188EU_RECV_C_ | |
+#include <linux/kmemleak.h> | |
#include <osdep_service.h> | |
#include <drv_types.h> | |
#include <recv_osdep.h> | |
@@ -28,7 +24,7 @@ | |
#include <rtl8188e_hal.h> | |
-int rtl8188eu_init_recv_priv(struct adapter *padapter) | |
+int rtw_hal_init_recv_priv(struct adapter *padapter) | |
{ | |
struct recv_priv *precvpriv = &padapter->recvpriv; | |
int i, res = _SUCCESS; | |
@@ -41,19 +37,15 @@ int rtl8188eu_init_recv_priv(struct adapter *padapter) | |
/* init recv_buf */ | |
_rtw_init_queue(&precvpriv->free_recv_buf_queue); | |
- precvpriv->pallocated_recv_buf = | |
+ precvpriv->precv_buf = | |
kcalloc(NR_RECVBUFF, sizeof(struct recv_buf), GFP_KERNEL); | |
- if (!precvpriv->pallocated_recv_buf) { | |
+ if (!precvpriv->precv_buf) { | |
res = _FAIL; | |
RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, | |
("alloc recv_buf fail!\n")); | |
goto exit; | |
} | |
- | |
- precvpriv->precv_buf = precvpriv->pallocated_recv_buf; | |
- | |
- | |
- precvbuf = (struct recv_buf *)precvpriv->precv_buf; | |
+ precvbuf = precvpriv->precv_buf; | |
for (i = 0; i < NR_RECVBUFF; i++) { | |
res = rtw_os_recvbuf_resource_alloc(padapter, precvbuf); | |
@@ -62,26 +54,18 @@ int rtl8188eu_init_recv_priv(struct adapter *padapter) | |
precvbuf->adapter = padapter; | |
precvbuf++; | |
} | |
- precvpriv->free_recv_buf_queue_cnt = NR_RECVBUFF; | |
skb_queue_head_init(&precvpriv->rx_skb_queue); | |
{ | |
int i; | |
- size_t tmpaddr = 0; | |
- size_t alignm = 0; | |
struct sk_buff *pskb = NULL; | |
skb_queue_head_init(&precvpriv->free_recv_skb_queue); | |
for (i = 0; i < NR_PREALLOC_RECV_SKB; i++) { | |
pskb = __netdev_alloc_skb(padapter->pnetdev, | |
- MAX_RECVBUF_SZ + RECVBUFF_ALIGN_SZ, | |
- GFP_KERNEL); | |
+ MAX_RECVBUF_SZ, GFP_KERNEL); | |
if (pskb) { | |
- pskb->dev = padapter->pnetdev; | |
- tmpaddr = (size_t)pskb->data; | |
- alignm = tmpaddr & (RECVBUFF_ALIGN_SZ-1); | |
- skb_reserve(pskb, (RECVBUFF_ALIGN_SZ - alignm)); | |
- | |
+ kmemleak_not_leak(pskb); | |
skb_queue_tail(&precvpriv->free_recv_skb_queue, | |
pskb); | |
} | |
@@ -92,20 +76,20 @@ int rtl8188eu_init_recv_priv(struct adapter *padapter) | |
return res; | |
} | |
-void rtl8188eu_free_recv_priv(struct adapter *padapter) | |
+void rtw_hal_free_recv_priv(struct adapter *padapter) | |
{ | |
int i; | |
struct recv_buf *precvbuf; | |
struct recv_priv *precvpriv = &padapter->recvpriv; | |
- precvbuf = (struct recv_buf *)precvpriv->precv_buf; | |
+ precvbuf = precvpriv->precv_buf; | |
for (i = 0; i < NR_RECVBUFF; i++) { | |
usb_free_urb(precvbuf->purb); | |
precvbuf++; | |
} | |
- kfree(precvpriv->pallocated_recv_buf); | |
+ kfree(precvpriv->precv_buf); | |
if (skb_queue_len(&precvpriv->rx_skb_queue)) | |
DBG_88E(KERN_WARNING "rx_skb_queue not empty\n"); | |
diff --git b/drivers/staging/rtl8188eu/hal/rtl8188eu_xmit.c a/drivers/staging/rtl8188eu/hal/rtl8188eu_xmit.c | |
index 7c5086ecff17..a9912b60eb59 100644 | |
--- b/drivers/staging/rtl8188eu/hal/rtl8188eu_xmit.c | |
+++ a/drivers/staging/rtl8188eu/hal/rtl8188eu_xmit.c | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#define _RTL8188E_XMIT_C_ | |
#include <osdep_service.h> | |
@@ -26,7 +21,7 @@ | |
#include <usb_ops_linux.h> | |
#include <rtl8188e_hal.h> | |
-s32 rtl8188eu_init_xmit_priv(struct adapter *adapt) | |
+s32 rtw_hal_init_xmit_priv(struct adapter *adapt) | |
{ | |
struct xmit_priv *pxmitpriv = &adapt->xmitpriv; | |
@@ -38,11 +33,7 @@ s32 rtl8188eu_init_xmit_priv(struct adapter *adapt) | |
static u8 urb_zero_packet_chk(struct adapter *adapt, int sz) | |
{ | |
- u8 set_tx_desc_offset; | |
- struct hal_data_8188e *haldata = GET_HAL_DATA(adapt); | |
- set_tx_desc_offset = (((sz + TXDESC_SIZE) % haldata->UsbBulkOutSize) == 0) ? 1 : 0; | |
- | |
- return set_tx_desc_offset; | |
+ return !((sz + TXDESC_SIZE) % adapt->HalData->UsbBulkOutSize); | |
} | |
static void rtl8188eu_cal_txdesc_chksum(struct tx_desc *ptxdesc) | |
@@ -180,7 +171,7 @@ static s32 update_txdesc(struct xmit_frame *pxmitframe, u8 *pmem, s32 sz, u8 bag | |
u8 data_rate, pwr_status, offset; | |
struct adapter *adapt = pxmitframe->padapter; | |
struct pkt_attrib *pattrib = &pxmitframe->attrib; | |
- struct hal_data_8188e *haldata = GET_HAL_DATA(adapt); | |
+ struct odm_dm_struct *odmpriv = &adapt->HalData->odmpriv; | |
struct tx_desc *ptxdesc = (struct tx_desc *)pmem; | |
struct mlme_ext_priv *pmlmeext = &adapt->mlmeextpriv; | |
struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); | |
@@ -264,12 +255,12 @@ static s32 update_txdesc(struct xmit_frame *pxmitframe, u8 *pmem, s32 sz, u8 bag | |
ptxdesc->txdw5 |= cpu_to_le32(0x0001ff00);/* DATA/RTS Rate FB LMT */ | |
if (pattrib->ht_en) { | |
- if (ODM_RA_GetShortGI_8188E(&haldata->odmpriv, pattrib->mac_id)) | |
+ if (ODM_RA_GetShortGI_8188E(odmpriv, pattrib->mac_id)) | |
ptxdesc->txdw5 |= cpu_to_le32(SGI);/* SGI */ | |
} | |
- data_rate = ODM_RA_GetDecisionRate_8188E(&haldata->odmpriv, pattrib->mac_id); | |
+ data_rate = ODM_RA_GetDecisionRate_8188E(odmpriv, pattrib->mac_id); | |
ptxdesc->txdw5 |= cpu_to_le32(data_rate & 0x3F); | |
- pwr_status = ODM_RA_GetHwPwrStatus_8188E(&haldata->odmpriv, pattrib->mac_id); | |
+ pwr_status = ODM_RA_GetHwPwrStatus_8188E(odmpriv, pattrib->mac_id); | |
ptxdesc->txdw4 |= cpu_to_le32((pwr_status & 0x7) << PWR_STATUS_SHT); | |
} else { | |
/* EAP data packet and ARP packet and DHCP. */ | |
@@ -337,8 +328,7 @@ static s32 update_txdesc(struct xmit_frame *pxmitframe, u8 *pmem, s32 sz, u8 bag | |
ptxdesc->txdw4 |= cpu_to_le32(HW_SSN); /* Hw set sequence number */ | |
} | |
- rtl88eu_dm_set_tx_ant_by_tx_info(&haldata->odmpriv, pmem, | |
- pattrib->mac_id); | |
+ rtl88eu_dm_set_tx_ant_by_tx_info(odmpriv, pmem, pattrib->mac_id); | |
rtl8188eu_cal_txdesc_chksum(ptxdesc); | |
_dbg_dump_tx_info(adapt, pxmitframe->frame_tag, ptxdesc); | |
@@ -356,7 +346,7 @@ static s32 rtw_dump_xframe(struct adapter *adapt, struct xmit_frame *pxmitframe) | |
struct xmit_buf *pxmitbuf = pxmitframe->pxmitbuf; | |
struct pkt_attrib *pattrib = &pxmitframe->attrib; | |
struct xmit_priv *pxmitpriv = &adapt->xmitpriv; | |
- struct security_priv *psecuritypriv = &adapt->securitypriv; | |
+ | |
if ((pxmitframe->frame_tag == DATA_FRAMETAG) && | |
(pxmitframe->attrib.ether_type != 0x0806) && | |
(pxmitframe->attrib.ether_type != 0x888e) && | |
@@ -375,7 +365,7 @@ static s32 rtw_dump_xframe(struct adapter *adapt, struct xmit_frame *pxmitframe) | |
RT_TRACE(_module_rtl871x_xmit_c_, _drv_err_, ("pattrib->nr_frags=%d\n", pattrib->nr_frags)); | |
sz = pxmitpriv->frag_len; | |
- sz = sz - 4 - (psecuritypriv->sw_encrypt ? 0 : pattrib->icv_len); | |
+ sz = sz - 4 - pattrib->icv_len; | |
} else { | |
/* no frag */ | |
sz = pattrib->last_txcmdsz; | |
@@ -392,7 +382,7 @@ static s32 rtw_dump_xframe(struct adapter *adapt, struct xmit_frame *pxmitframe) | |
} | |
ff_hwaddr = rtw_get_ff_hwaddr(pxmitframe); | |
- inner_ret = usb_write_port(adapt, ff_hwaddr, w_sz, (unsigned char *)pxmitbuf); | |
+ inner_ret = usb_write_port(adapt, ff_hwaddr, w_sz, pxmitbuf); | |
rtw_count_tx_stats(adapt, pxmitframe, sz); | |
@@ -415,7 +405,7 @@ static u32 xmitframe_need_length(struct xmit_frame *pxmitframe) | |
{ | |
struct pkt_attrib *pattrib = &pxmitframe->attrib; | |
- u32 len = 0; | |
+ u32 len; | |
/* no consider fragement */ | |
len = pattrib->hdrlen + pattrib->iv_len + | |
@@ -429,11 +419,11 @@ static u32 xmitframe_need_length(struct xmit_frame *pxmitframe) | |
return len; | |
} | |
-s32 rtl8188eu_xmitframe_complete(struct adapter *adapt, struct xmit_priv *pxmitpriv, struct xmit_buf *pxmitbuf) | |
+s32 rtl8188eu_xmitframe_complete(struct adapter *adapt, struct xmit_priv *pxmitpriv) | |
{ | |
- struct hal_data_8188e *haldata = GET_HAL_DATA(adapt); | |
struct xmit_frame *pxmitframe = NULL; | |
struct xmit_frame *pfirstframe = NULL; | |
+ struct xmit_buf *pxmitbuf; | |
/* aggregate variable */ | |
struct hw_xmit *phwxmit; | |
@@ -446,7 +436,7 @@ s32 rtl8188eu_xmitframe_complete(struct adapter *adapt, struct xmit_priv *pxmitp | |
u32 pbuf_tail; /* last pkt tail */ | |
u32 len; /* packet length, except TXDESC_SIZE and PKT_OFFSET */ | |
- u32 bulksize = haldata->UsbBulkOutSize; | |
+ u32 bulksize = adapt->HalData->UsbBulkOutSize; | |
u8 desc_cnt; | |
u32 bulkptr; | |
@@ -455,15 +445,11 @@ s32 rtl8188eu_xmitframe_complete(struct adapter *adapt, struct xmit_priv *pxmitp | |
RT_TRACE(_module_rtl8192c_xmit_c_, _drv_info_, ("+xmitframe_complete\n")); | |
- /* check xmitbuffer is ok */ | |
- if (pxmitbuf == NULL) { | |
pxmitbuf = rtw_alloc_xmitbuf(pxmitpriv); | |
if (pxmitbuf == NULL) | |
return false; | |
- } | |
/* 3 1. pick up first frame */ | |
- do { | |
rtw_free_xmitframe(pxmitpriv, pxmitframe); | |
pxmitframe = rtw_dequeue_xframe(pxmitpriv, pxmitpriv->hwxmits, pxmitpriv->hwxmit_entry); | |
@@ -485,9 +471,6 @@ s32 rtl8188eu_xmitframe_complete(struct adapter *adapt, struct xmit_priv *pxmitp | |
/* always return ndis_packet after rtw_xmitframe_coalesce */ | |
rtw_os_xmit_complete(adapt, pxmitframe); | |
- break; | |
- } while (1); | |
- | |
/* 3 2. aggregate same priority and same DA(AP or STA) frames */ | |
pfirstframe = pxmitframe; | |
len = xmitframe_need_length(pfirstframe) + TXDESC_SIZE + (pfirstframe->pkt_offset*PACKET_OFFSET_SZ); | |
@@ -574,7 +557,7 @@ s32 rtl8188eu_xmitframe_complete(struct adapter *adapt, struct xmit_priv *pxmitp | |
if (pbuf < bulkptr) { | |
desc_cnt++; | |
- if (desc_cnt == haldata->UsbTxAggDescNum) | |
+ if (desc_cnt == adapt->HalData->UsbTxAggDescNum) | |
break; | |
} else { | |
desc_cnt = 0; | |
@@ -603,7 +586,7 @@ s32 rtl8188eu_xmitframe_complete(struct adapter *adapt, struct xmit_priv *pxmitp | |
/* 3 4. write xmit buffer to USB FIFO */ | |
ff_hwaddr = rtw_get_ff_hwaddr(pfirstframe); | |
- usb_write_port(adapt, ff_hwaddr, pbuf_tail, (u8 *)pxmitbuf); | |
+ usb_write_port(adapt, ff_hwaddr, pbuf_tail, pxmitbuf); | |
/* 3 5. update statisitc */ | |
pbuf_tail -= (pfirstframe->agg_num * TXDESC_SIZE); | |
@@ -616,24 +599,12 @@ s32 rtl8188eu_xmitframe_complete(struct adapter *adapt, struct xmit_priv *pxmitp | |
return true; | |
} | |
-static s32 xmitframe_direct(struct adapter *adapt, struct xmit_frame *pxmitframe) | |
-{ | |
- s32 res = _SUCCESS; | |
- | |
- res = rtw_xmitframe_coalesce(adapt, pxmitframe->pkt, pxmitframe); | |
- if (res == _SUCCESS) | |
- rtw_dump_xframe(adapt, pxmitframe); | |
- else | |
- DBG_88E("==> %s xmitframe_coalsece failed\n", __func__); | |
- return res; | |
-} | |
- | |
/* | |
* Return | |
* true dump packet directly | |
* false enqueue packet | |
*/ | |
-static s32 pre_xmitframe(struct adapter *adapt, struct xmit_frame *pxmitframe) | |
+s32 rtw_hal_xmit(struct adapter *adapt, struct xmit_frame *pxmitframe) | |
{ | |
s32 res; | |
struct xmit_buf *pxmitbuf = NULL; | |
@@ -659,7 +630,12 @@ static s32 pre_xmitframe(struct adapter *adapt, struct xmit_frame *pxmitframe) | |
pxmitframe->buf_addr = pxmitbuf->pbuf; | |
pxmitbuf->priv_data = pxmitframe; | |
- if (xmitframe_direct(adapt, pxmitframe) != _SUCCESS) { | |
+ res = rtw_xmitframe_coalesce(adapt, pxmitframe->pkt, pxmitframe); | |
+ | |
+ if (res == _SUCCESS) { | |
+ rtw_dump_xframe(adapt, pxmitframe); | |
+ } else { | |
+ DBG_88E("==> %s xmitframe_coalesce failed\n", __func__); | |
rtw_free_xmitbuf(pxmitpriv, pxmitbuf); | |
rtw_free_xmitframe(pxmitpriv, pxmitframe); | |
} | |
@@ -683,20 +659,10 @@ static s32 pre_xmitframe(struct adapter *adapt, struct xmit_frame *pxmitframe) | |
return false; | |
} | |
-s32 rtl8188eu_mgnt_xmit(struct adapter *adapt, struct xmit_frame *pmgntframe) | |
+s32 rtw_hal_mgnt_xmit(struct adapter *adapt, struct xmit_frame *pmgntframe) | |
{ | |
struct xmit_priv *xmitpriv = &adapt->xmitpriv; | |
rtl88eu_mon_xmit_hook(adapt->pmondev, pmgntframe, xmitpriv->frag_len); | |
return rtw_dump_xframe(adapt, pmgntframe); | |
} | |
- | |
-/* | |
- * Return | |
- * true dump packet directly ok | |
- * false temporary can't transmit packets to hardware | |
- */ | |
-s32 rtl8188eu_hal_xmit(struct adapter *adapt, struct xmit_frame *pxmitframe) | |
-{ | |
- return pre_xmitframe(adapt, pxmitframe); | |
-} | |
diff --git b/drivers/staging/rtl8188eu/hal/usb_halinit.c a/drivers/staging/rtl8188eu/hal/usb_halinit.c | |
index 7e72259f0e40..674ac5396d00 100644 | |
--- b/drivers/staging/rtl8188eu/hal/usb_halinit.c | |
+++ a/drivers/staging/rtl8188eu/hal/usb_halinit.c | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#define _HCI_HAL_INIT_C_ | |
@@ -26,14 +21,13 @@ | |
#include <rtl8188e_hal.h> | |
#include <rtl8188e_led.h> | |
#include <rtw_iol.h> | |
-#include <usb_hal.h> | |
#include <phy.h> | |
#define HAL_BB_ENABLE 1 | |
static void _ConfigNormalChipOutEP_8188E(struct adapter *adapt, u8 NumOutPipe) | |
{ | |
- struct hal_data_8188e *haldata = GET_HAL_DATA(adapt); | |
+ struct hal_data_8188e *haldata = adapt->HalData; | |
switch (NumOutPipe) { | |
case 3: | |
@@ -56,14 +50,13 @@ static void _ConfigNormalChipOutEP_8188E(struct adapter *adapt, u8 NumOutPipe) | |
static bool HalUsbSetQueuePipeMapping8188EUsb(struct adapter *adapt, u8 NumInPipe, u8 NumOutPipe) | |
{ | |
- struct hal_data_8188e *haldata = GET_HAL_DATA(adapt); | |
bool result = false; | |
_ConfigNormalChipOutEP_8188E(adapt, NumOutPipe); | |
/* Normal chip with one IN and one OUT doesn't have interrupt IN EP. */ | |
- if (1 == haldata->OutEpNumber) { | |
- if (1 != NumInPipe) | |
+ if (adapt->HalData->OutEpNumber == 1) { | |
+ if (NumInPipe != 1) | |
return result; | |
} | |
@@ -74,9 +67,9 @@ static bool HalUsbSetQueuePipeMapping8188EUsb(struct adapter *adapt, u8 NumInPip | |
return result; | |
} | |
-static void rtl8188eu_interface_configure(struct adapter *adapt) | |
+void rtw_hal_chip_configure(struct adapter *adapt) | |
{ | |
- struct hal_data_8188e *haldata = GET_HAL_DATA(adapt); | |
+ struct hal_data_8188e *haldata = adapt->HalData; | |
struct dvobj_priv *pdvobjpriv = adapter_to_dvobj(adapt); | |
if (pdvobjpriv->ishighspeed) | |
@@ -99,16 +92,14 @@ static void rtl8188eu_interface_configure(struct adapter *adapt) | |
pdvobjpriv->RtNumInPipes, pdvobjpriv->RtNumOutPipes); | |
} | |
-static u32 rtl8188eu_InitPowerOn(struct adapter *adapt) | |
+u32 rtw_hal_power_on(struct adapter *adapt) | |
{ | |
u16 value16; | |
/* HW Power on sequence */ | |
- struct hal_data_8188e *haldata = GET_HAL_DATA(adapt); | |
- if (haldata->bMacPwrCtrlOn) | |
+ if (adapt->HalData->bMacPwrCtrlOn) | |
return _SUCCESS; | |
if (!rtl88eu_pwrseqcmdparsing(adapt, PWR_CUT_ALL_MSK, | |
- PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK, | |
Rtl8188E_NIC_PWR_ON_FLOW)) { | |
DBG_88E(KERN_ERR "%s: run power on flow fail\n", __func__); | |
return _FAIL; | |
@@ -125,7 +116,7 @@ static u32 rtl8188eu_InitPowerOn(struct adapter *adapt) | |
/* for SDIO - Set CR bit10 to enable 32k calibration. Suggested by SD1 Gimmy. Added by tynli. 2011.08.31. */ | |
usb_write16(adapt, REG_CR, value16); | |
- haldata->bMacPwrCtrlOn = true; | |
+ adapt->HalData->bMacPwrCtrlOn = true; | |
return _SUCCESS; | |
} | |
@@ -135,18 +126,17 @@ static void _InitInterrupt(struct adapter *Adapter) | |
{ | |
u32 imr, imr_ex; | |
u8 usb_opt; | |
- struct hal_data_8188e *haldata = GET_HAL_DATA(Adapter); | |
/* HISR write one to clear */ | |
usb_write32(Adapter, REG_HISR_88E, 0xFFFFFFFF); | |
/* HIMR - */ | |
imr = IMR_PSTIMEOUT_88E | IMR_TBDER_88E | IMR_CPWM_88E | IMR_CPWM2_88E; | |
usb_write32(Adapter, REG_HIMR_88E, imr); | |
- haldata->IntrMask[0] = imr; | |
+ Adapter->HalData->IntrMask[0] = imr; | |
imr_ex = IMR_TXERR_88E | IMR_RXERR_88E | IMR_TXFOVW_88E | IMR_RXFOVW_88E; | |
usb_write32(Adapter, REG_HIMRE_88E, imr_ex); | |
- haldata->IntrMask[1] = imr_ex; | |
+ Adapter->HalData->IntrMask[1] = imr_ex; | |
/* REG_USB_SPECIAL_OPTION - BIT(4) */ | |
/* 0; Use interrupt endpoint to upload interrupt pkt */ | |
@@ -163,7 +153,6 @@ static void _InitInterrupt(struct adapter *Adapter) | |
static void _InitQueueReservedPage(struct adapter *Adapter) | |
{ | |
- struct hal_data_8188e *haldata = GET_HAL_DATA(Adapter); | |
struct registry_priv *pregistrypriv = &Adapter->registrypriv; | |
u32 numHQ = 0; | |
u32 numLQ = 0; | |
@@ -174,14 +163,14 @@ static void _InitQueueReservedPage(struct adapter *Adapter) | |
bool bWiFiConfig = pregistrypriv->wifi_spec; | |
if (bWiFiConfig) { | |
- if (haldata->OutEpQueueSel & TX_SELE_HQ) | |
+ if (Adapter->HalData->OutEpQueueSel & TX_SELE_HQ) | |
numHQ = 0x29; | |
- if (haldata->OutEpQueueSel & TX_SELE_LQ) | |
+ if (Adapter->HalData->OutEpQueueSel & TX_SELE_LQ) | |
numLQ = 0x1C; | |
- /* NOTE: This step shall be proceed before writting REG_RQPN. */ | |
- if (haldata->OutEpQueueSel & TX_SELE_NQ) | |
+ /* NOTE: This step shall be proceed before writing REG_RQPN. */ | |
+ if (Adapter->HalData->OutEpQueueSel & TX_SELE_NQ) | |
numNQ = 0x1C; | |
value8 = (u8)_NPQ(numNQ); | |
usb_write8(Adapter, REG_RQPN_NPQ, value8); | |
@@ -231,10 +220,9 @@ static void _InitNormalChipRegPriority(struct adapter *Adapter, u16 beQ, | |
static void _InitNormalChipOneOutEpPriority(struct adapter *Adapter) | |
{ | |
- struct hal_data_8188e *haldata = GET_HAL_DATA(Adapter); | |
- | |
u16 value = 0; | |
- switch (haldata->OutEpQueueSel) { | |
+ | |
+ switch (Adapter->HalData->OutEpQueueSel) { | |
case TX_SELE_HQ: | |
value = QUEUE_HIGH; | |
break; | |
@@ -253,13 +241,12 @@ static void _InitNormalChipOneOutEpPriority(struct adapter *Adapter) | |
static void _InitNormalChipTwoOutEpPriority(struct adapter *Adapter) | |
{ | |
- struct hal_data_8188e *haldata = GET_HAL_DATA(Adapter); | |
struct registry_priv *pregistrypriv = &Adapter->registrypriv; | |
u16 beQ, bkQ, viQ, voQ, mgtQ, hiQ; | |
u16 valueHi = 0; | |
u16 valueLow = 0; | |
- switch (haldata->OutEpQueueSel) { | |
+ switch (Adapter->HalData->OutEpQueueSel) { | |
case (TX_SELE_HQ | TX_SELE_LQ): | |
valueHi = QUEUE_HIGH; | |
valueLow = QUEUE_LOW; | |
@@ -319,9 +306,7 @@ static void _InitNormalChipThreeOutEpPriority(struct adapter *Adapter) | |
static void _InitQueuePriority(struct adapter *Adapter) | |
{ | |
- struct hal_data_8188e *haldata = GET_HAL_DATA(Adapter); | |
- | |
- switch (haldata->OutEpNumber) { | |
+ switch (Adapter->HalData->OutEpNumber) { | |
case 1: | |
_InitNormalChipOneOutEpPriority(Adapter); | |
break; | |
@@ -352,6 +337,7 @@ static void _InitTransferPageSize(struct adapter *Adapter) | |
/* Tx page size is always 128. */ | |
u8 value8; | |
+ | |
value8 = _PSRX(PBP_128) | _PSTX(PBP_128); | |
usb_write8(Adapter, REG_PBP, value8); | |
} | |
@@ -363,7 +349,7 @@ static void _InitDriverInfoSize(struct adapter *Adapter, u8 drvInfoSize) | |
static void _InitWMACSetting(struct adapter *Adapter) | |
{ | |
- struct hal_data_8188e *haldata = GET_HAL_DATA(Adapter); | |
+ struct hal_data_8188e *haldata = Adapter->HalData; | |
haldata->ReceiveConfig = RCR_AAP | RCR_APM | RCR_AM | RCR_AB | | |
RCR_CBSSID_DATA | RCR_CBSSID_BCN | | |
@@ -458,10 +444,11 @@ static void _InitRetryFunction(struct adapter *Adapter) | |
* When Who Remark | |
* 12/10/2010 MHC Separate to smaller function. | |
* | |
- *---------------------------------------------------------------------------*/ | |
+ *--------------------------------------------------------------------------- | |
+ */ | |
static void usb_AggSettingTxUpdate(struct adapter *Adapter) | |
{ | |
- struct hal_data_8188e *haldata = GET_HAL_DATA(Adapter); | |
+ struct hal_data_8188e *haldata = Adapter->HalData; | |
u32 value32; | |
if (Adapter->registrypriv.wifi_spec) | |
@@ -490,13 +477,14 @@ static void usb_AggSettingTxUpdate(struct adapter *Adapter) | |
* When Who Remark | |
* 12/10/2010 MHC Separate to smaller function. | |
* | |
- *---------------------------------------------------------------------------*/ | |
+ *--------------------------------------------------------------------------- | |
+ */ | |
static void | |
usb_AggSettingRxUpdate( | |
struct adapter *Adapter | |
) | |
{ | |
- struct hal_data_8188e *haldata = GET_HAL_DATA(Adapter); | |
+ struct hal_data_8188e *haldata = Adapter->HalData; | |
u8 valueDMA; | |
u8 valueUSB; | |
@@ -570,21 +558,16 @@ usb_AggSettingRxUpdate( | |
static void InitUsbAggregationSetting(struct adapter *Adapter) | |
{ | |
- struct hal_data_8188e *haldata = GET_HAL_DATA(Adapter); | |
- | |
/* Tx aggregation setting */ | |
usb_AggSettingTxUpdate(Adapter); | |
/* Rx aggregation setting */ | |
usb_AggSettingRxUpdate(Adapter); | |
- | |
- /* 201/12/10 MH Add for USB agg mode dynamic switch. */ | |
- haldata->UsbRxHighSpeedMode = false; | |
} | |
static void _InitBeaconParameters(struct adapter *Adapter) | |
{ | |
- struct hal_data_8188e *haldata = GET_HAL_DATA(Adapter); | |
+ struct hal_data_8188e *haldata = Adapter->HalData; | |
usb_write16(Adapter, REG_BCN_CTRL, 0x1010); | |
@@ -619,14 +602,9 @@ static void _BBTurnOnBlock(struct adapter *Adapter) | |
phy_set_bb_reg(Adapter, rFPGA0_RFMOD, bOFDMEn, 0x1); | |
} | |
-enum { | |
- Antenna_Lfet = 1, | |
- Antenna_Right = 2, | |
-}; | |
- | |
static void _InitAntenna_Selection(struct adapter *Adapter) | |
{ | |
- struct hal_data_8188e *haldata = GET_HAL_DATA(Adapter); | |
+ struct hal_data_8188e *haldata = Adapter->HalData; | |
if (haldata->AntDivCfg == 0) | |
return; | |
@@ -656,7 +634,8 @@ static void _InitAntenna_Selection(struct adapter *Adapter) | |
* Revised History: | |
* When Who Remark | |
* 08/23/2010 MHC HW suspend mode switch test.. | |
- *---------------------------------------------------------------------------*/ | |
+ *--------------------------------------------------------------------------- | |
+ */ | |
enum rt_rf_power_state RfOnOffDetect(struct adapter *adapt) | |
{ | |
u8 val8; | |
@@ -675,24 +654,22 @@ enum rt_rf_power_state RfOnOffDetect(struct adapter *adapt) | |
return rfpowerstate; | |
} /* HalDetectPwrDownMode */ | |
-static u32 rtl8188eu_hal_init(struct adapter *Adapter) | |
+u32 rtl8188eu_hal_init(struct adapter *Adapter) | |
{ | |
u8 value8 = 0; | |
u16 value16; | |
u8 txpktbuf_bndy; | |
u32 status = _SUCCESS; | |
- struct hal_data_8188e *haldata = GET_HAL_DATA(Adapter); | |
+ struct hal_data_8188e *haldata = Adapter->HalData; | |
struct pwrctrl_priv *pwrctrlpriv = &Adapter->pwrctrlpriv; | |
struct registry_priv *pregistrypriv = &Adapter->registrypriv; | |
- u32 init_start_time = jiffies; | |
+ unsigned long init_start_time = jiffies; | |
#define HAL_INIT_PROFILE_TAG(stage) do {} while (0) | |
- | |
HAL_INIT_PROFILE_TAG(HAL_INIT_STAGES_BEGIN); | |
if (Adapter->pwrctrlpriv.bkeepfwalive) { | |
- | |
if (haldata->odmpriv.RFCalibrateInfo.bIQKInitialized) { | |
rtl88eu_phy_iq_calibrate(Adapter, true); | |
} else { | |
@@ -707,7 +684,7 @@ static u32 rtl8188eu_hal_init(struct adapter *Adapter) | |
} | |
HAL_INIT_PROFILE_TAG(HAL_INIT_STAGES_INIT_PW_ON); | |
- status = rtl8188eu_InitPowerOn(Adapter); | |
+ status = rtw_hal_power_on(Adapter); | |
if (status == _FAIL) { | |
RT_TRACE(_module_hci_hal_init_c_, _drv_err_, ("Failed to init power on!\n")); | |
goto exit; | |
@@ -716,9 +693,8 @@ static u32 rtl8188eu_hal_init(struct adapter *Adapter) | |
/* Save target channel */ | |
haldata->CurrentChannel = 6;/* default set to 6 */ | |
- if (pwrctrlpriv->reg_rfoff) { | |
+ if (pwrctrlpriv->reg_rfoff) | |
pwrctrlpriv->rf_pwrstate = rf_off; | |
- } | |
/* 2010/08/09 MH We need to check if we need to turnon or off RF after detecting */ | |
/* HW GPIO pin. Before PHY_RFConfig8192C. */ | |
@@ -750,11 +726,10 @@ static u32 rtl8188eu_hal_init(struct adapter *Adapter) | |
DBG_88E("%s: Download Firmware failed!!\n", __func__); | |
Adapter->bFWReady = false; | |
return status; | |
- } else { | |
+ } | |
RT_TRACE(_module_hci_hal_init_c_, _drv_info_, ("Initializeadapt8192CSdio(): Download Firmware Success!!\n")); | |
Adapter->bFWReady = true; | |
} | |
- } | |
rtl8188e_InitializeFirmwareVars(Adapter); | |
rtl88eu_phy_mac_config(Adapter); | |
@@ -817,8 +792,8 @@ static u32 rtl8188eu_hal_init(struct adapter *Adapter) | |
usb_write16(Adapter, REG_PKT_BE_BK_LIFE_TIME, 0x0400); /* unit: 256us. 256ms */ | |
/* Keep RfRegChnlVal for later use. */ | |
- haldata->RfRegChnlVal[0] = phy_query_rf_reg(Adapter, (enum rf_radio_path)0, RF_CHNLBW, bRFRegOffsetMask); | |
- haldata->RfRegChnlVal[1] = phy_query_rf_reg(Adapter, (enum rf_radio_path)1, RF_CHNLBW, bRFRegOffsetMask); | |
+ haldata->RfRegChnlVal[0] = rtw_hal_read_rfreg(Adapter, (enum rf_radio_path)0, RF_CHNLBW, bRFRegOffsetMask); | |
+ haldata->RfRegChnlVal[1] = rtw_hal_read_rfreg(Adapter, (enum rf_radio_path)1, RF_CHNLBW, bRFRegOffsetMask); | |
HAL_INIT_PROFILE_TAG(HAL_INIT_STAGES_TURN_ON_BLOCK); | |
_BBTurnOnBlock(Adapter); | |
@@ -903,8 +878,8 @@ HAL_INIT_PROFILE_TAG(HAL_INIT_STAGES_LCK); | |
exit: | |
HAL_INIT_PROFILE_TAG(HAL_INIT_STAGES_END); | |
- DBG_88E("%s in %dms\n", __func__, rtw_get_passing_time_ms(init_start_time)); | |
- | |
+ DBG_88E("%s in %dms\n", __func__, | |
+ jiffies_to_msecs(jiffies - init_start_time)); | |
return status; | |
} | |
@@ -912,7 +887,6 @@ HAL_INIT_PROFILE_TAG(HAL_INIT_STAGES_END); | |
static void CardDisableRTL8188EU(struct adapter *Adapter) | |
{ | |
u8 val8; | |
- struct hal_data_8188e *haldata = GET_HAL_DATA(Adapter); | |
RT_TRACE(_module_hci_hal_init_c_, _drv_info_, ("CardDisableRTL8188EU\n")); | |
@@ -925,7 +899,6 @@ static void CardDisableRTL8188EU(struct adapter *Adapter) | |
/* Run LPS WL RFOFF flow */ | |
rtl88eu_pwrseqcmdparsing(Adapter, PWR_CUT_ALL_MSK, | |
- PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK, | |
Rtl8188E_NIC_LPS_ENTER_FLOW); | |
/* 2. 0x1F[7:0] = 0 turn off RF */ | |
@@ -948,7 +921,6 @@ static void CardDisableRTL8188EU(struct adapter *Adapter) | |
/* Card disable power action flow */ | |
rtl88eu_pwrseqcmdparsing(Adapter, PWR_CUT_ALL_MSK, | |
- PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK, | |
Rtl8188E_NIC_DISABLE_FLOW); | |
/* Reset MCU IO Wrapper */ | |
@@ -967,9 +939,10 @@ static void CardDisableRTL8188EU(struct adapter *Adapter) | |
val8 = usb_read8(Adapter, REG_GPIO_IO_SEL+1); | |
usb_write8(Adapter, REG_GPIO_IO_SEL+1, val8|0x0F);/* Reg0x43 */ | |
usb_write32(Adapter, REG_BB_PAD_CTRL, 0x00080808);/* set LNA ,TRSW,EX_PA Pin to output mode */ | |
- haldata->bMacPwrCtrlOn = false; | |
+ Adapter->HalData->bMacPwrCtrlOn = false; | |
Adapter->bFWReady = false; | |
} | |
+ | |
static void rtl8192cu_hw_power_down(struct adapter *adapt) | |
{ | |
/* 2010/-8/09 MH For power down module, we need to enable register block contrl reg at 0x1c. */ | |
@@ -980,9 +953,8 @@ static void rtl8192cu_hw_power_down(struct adapter *adapt) | |
usb_write16(adapt, REG_APS_FSMCO, 0x8812); | |
} | |
-static u32 rtl8188eu_hal_deinit(struct adapter *Adapter) | |
+u32 rtl8188eu_hal_deinit(struct adapter *Adapter) | |
{ | |
- | |
DBG_88E("==> %s\n", __func__); | |
usb_write32(Adapter, REG_HIMR_88E, IMR_DISABLED_88E); | |
@@ -1003,31 +975,28 @@ static u32 rtl8188eu_hal_deinit(struct adapter *Adapter) | |
return _SUCCESS; | |
} | |
-static unsigned int rtl8188eu_inirp_init(struct adapter *Adapter) | |
+u32 rtw_hal_inirp_init(struct adapter *Adapter) | |
{ | |
u8 i; | |
struct recv_buf *precvbuf; | |
uint status; | |
- struct recv_priv *precvpriv = &(Adapter->recvpriv); | |
+ struct recv_priv *precvpriv = &Adapter->recvpriv; | |
status = _SUCCESS; | |
RT_TRACE(_module_hci_hal_init_c_, _drv_info_, | |
("===> usb_inirp_init\n")); | |
- precvpriv->ff_hwaddr = RECV_BULK_IN_ADDR; | |
- | |
/* issue Rx irp to receive data */ | |
- precvbuf = (struct recv_buf *)precvpriv->precv_buf; | |
+ precvbuf = precvpriv->precv_buf; | |
for (i = 0; i < NR_RECVBUFF; i++) { | |
- if (usb_read_port(Adapter, precvpriv->ff_hwaddr, 0, (unsigned char *)precvbuf) == false) { | |
+ if (usb_read_port(Adapter, RECV_BULK_IN_ADDR, precvbuf) == false) { | |
RT_TRACE(_module_hci_hal_init_c_, _drv_err_, ("usb_rx_init: usb_read_port error\n")); | |
status = _FAIL; | |
goto exit; | |
} | |
precvbuf++; | |
- precvpriv->free_recv_buf_queue_cnt--; | |
} | |
exit: | |
@@ -1038,17 +1007,6 @@ static unsigned int rtl8188eu_inirp_init(struct adapter *Adapter) | |
return status; | |
} | |
-static unsigned int rtl8188eu_inirp_deinit(struct adapter *Adapter) | |
-{ | |
- RT_TRACE(_module_hci_hal_init_c_, _drv_info_, ("\n ===> usb_rx_deinit\n")); | |
- | |
- usb_read_port_cancel(Adapter); | |
- | |
- RT_TRACE(_module_hci_hal_init_c_, _drv_info_, ("\n <=== usb_rx_deinit\n")); | |
- | |
- return _SUCCESS; | |
-} | |
- | |
/* */ | |
/* */ | |
/* EEPROM/EFUSE Content Parsing */ | |
@@ -1056,7 +1014,7 @@ static unsigned int rtl8188eu_inirp_deinit(struct adapter *Adapter) | |
/* */ | |
static void Hal_EfuseParsePIDVID_8188EU(struct adapter *adapt, u8 *hwinfo, bool AutoLoadFail) | |
{ | |
- struct hal_data_8188e *haldata = GET_HAL_DATA(adapt); | |
+ struct hal_data_8188e *haldata = adapt->HalData; | |
if (!AutoLoadFail) { | |
/* VID, PID */ | |
@@ -1118,7 +1076,6 @@ readAdapterInfo_8188EU( | |
Hal_ReadAntennaDiversity88E(adapt, eeprom->efuse_eeprom_data, eeprom->bautoload_fail_flag); | |
Hal_EfuseParseBoardType88E(adapt, eeprom->efuse_eeprom_data, eeprom->bautoload_fail_flag); | |
Hal_ReadThermalMeter_88E(adapt, eeprom->efuse_eeprom_data, eeprom->bautoload_fail_flag); | |
- | |
} | |
static void _ReadPROMContent( | |
@@ -1140,23 +1097,16 @@ static void _ReadPROMContent( | |
readAdapterInfo_8188EU(Adapter); | |
} | |
-static void _ReadRFType(struct adapter *Adapter) | |
+void rtw_hal_read_chip_info(struct adapter *Adapter) | |
{ | |
- struct hal_data_8188e *haldata = GET_HAL_DATA(Adapter); | |
- | |
- haldata->rf_chip = RF_6052; | |
-} | |
- | |
-static void _ReadAdapterInfo8188EU(struct adapter *Adapter) | |
-{ | |
- u32 start = jiffies; | |
+ unsigned long start = jiffies; | |
MSG_88E("====> %s\n", __func__); | |
- _ReadRFType(Adapter);/* rf_chip -> _InitRFType() */ | |
_ReadPROMContent(Adapter); | |
- MSG_88E("<==== %s in %d ms\n", __func__, rtw_get_passing_time_ms(start)); | |
+ MSG_88E("<==== %s in %d ms\n", __func__, | |
+ jiffies_to_msecs(jiffies - start)); | |
} | |
#define GPIO_DEBUG_PORT_NUM 0 | |
@@ -1166,7 +1116,7 @@ static void rtl8192cu_trigger_gpio_0(struct adapter *adapt) | |
static void ResumeTxBeacon(struct adapter *adapt) | |
{ | |
- struct hal_data_8188e *haldata = GET_HAL_DATA(adapt); | |
+ struct hal_data_8188e *haldata = adapt->HalData; | |
/* 2010.03.01. Marked by tynli. No need to call workitem beacause we record the value */ | |
/* which should be read from register to a global variable. */ | |
@@ -1180,7 +1130,7 @@ static void ResumeTxBeacon(struct adapter *adapt) | |
static void StopTxBeacon(struct adapter *adapt) | |
{ | |
- struct hal_data_8188e *haldata = GET_HAL_DATA(adapt); | |
+ struct hal_data_8188e *haldata = adapt->HalData; | |
/* 2010.03.01. Marked by tynli. No need to call workitem beacause we record the value */ | |
/* which should be read from register to a global variable. */ | |
@@ -1213,7 +1163,7 @@ static void hw_var_set_opmode(struct adapter *Adapter, u8 variable, u8 *val) | |
StopTxBeacon(Adapter); | |
usb_write8(Adapter, REG_BCN_CTRL, 0x19);/* disable atim wnd */ | |
- } else if ((mode == _HW_STATE_ADHOC_)) { | |
+ } else if (mode == _HW_STATE_ADHOC_) { | |
ResumeTxBeacon(Adapter); | |
usb_write8(Adapter, REG_BCN_CTRL, 0x1a); | |
} else if (mode == _HW_STATE_AP_) { | |
@@ -1285,9 +1235,9 @@ static void hw_var_set_bcn_func(struct adapter *Adapter, u8 variable, u8 *val) | |
usb_write8(Adapter, bcn_ctrl_reg, usb_read8(Adapter, bcn_ctrl_reg)&(~(EN_BCN_FUNCTION | EN_TXBCN_RPT))); | |
} | |
-static void SetHwReg8188EU(struct adapter *Adapter, u8 variable, u8 *val) | |
+void rtw_hal_set_hwreg(struct adapter *Adapter, u8 variable, u8 *val) | |
{ | |
- struct hal_data_8188e *haldata = GET_HAL_DATA(Adapter); | |
+ struct hal_data_8188e *haldata = Adapter->HalData; | |
struct dm_priv *pdmpriv = &haldata->dmpriv; | |
struct odm_dm_struct *podmpriv = &haldata->odmpriv; | |
@@ -1364,7 +1314,7 @@ static void SetHwReg8188EU(struct adapter *Adapter, u8 variable, u8 *val) | |
{ | |
u64 tsf; | |
struct mlme_ext_priv *pmlmeext = &Adapter->mlmeextpriv; | |
- struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); | |
+ struct mlme_ext_info *pmlmeinfo = &pmlmeext->mlmext_info; | |
tsf = pmlmeext->TSFValue - rtw_modular64(pmlmeext->TSFValue, (pmlmeinfo->bcn_interval*1024)) - 1024; /* us */ | |
@@ -1412,6 +1362,7 @@ static void SetHwReg8188EU(struct adapter *Adapter, u8 variable, u8 *val) | |
if (*((u8 *)val)) { /* under sitesurvey */ | |
/* config RCR to receive different BSSID & not to receive data frame */ | |
u32 v = usb_read32(Adapter, REG_RCR); | |
+ | |
v &= ~(RCR_CBSSID_BCN); | |
usb_write32(Adapter, REG_RCR, v); | |
/* reject all data frame */ | |
@@ -1421,7 +1372,7 @@ static void SetHwReg8188EU(struct adapter *Adapter, u8 variable, u8 *val) | |
usb_write8(Adapter, REG_BCN_CTRL, usb_read8(Adapter, REG_BCN_CTRL) | BIT(4)); | |
} else { /* sitesurvey done */ | |
struct mlme_ext_priv *pmlmeext = &Adapter->mlmeextpriv; | |
- struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); | |
+ struct mlme_ext_info *pmlmeinfo = &pmlmeext->mlmext_info; | |
if ((is_client_associated_to_ap(Adapter)) || | |
((pmlmeinfo->state&0x03) == WIFI_FW_ADHOC_STATE)) { | |
@@ -1435,18 +1386,9 @@ static void SetHwReg8188EU(struct adapter *Adapter, u8 variable, u8 *val) | |
/* enable update TSF */ | |
usb_write8(Adapter, REG_BCN_CTRL, usb_read8(Adapter, REG_BCN_CTRL)&(~BIT(4))); | |
} | |
- if ((pmlmeinfo->state&0x03) == WIFI_FW_AP_STATE) { | |
- usb_write32(Adapter, REG_RCR, usb_read32(Adapter, REG_RCR)|RCR_CBSSID_BCN); | |
- } else { | |
- if (Adapter->in_cta_test) { | |
- u32 v = usb_read32(Adapter, REG_RCR); | |
- v &= ~(RCR_CBSSID_DATA | RCR_CBSSID_BCN);/* RCR_ADF */ | |
- usb_write32(Adapter, REG_RCR, v); | |
- } else { | |
+ | |
usb_write32(Adapter, REG_RCR, usb_read32(Adapter, REG_RCR)|RCR_CBSSID_BCN); | |
} | |
- } | |
- } | |
break; | |
case HW_VAR_MLME_JOIN: | |
{ | |
@@ -1458,13 +1400,7 @@ static void SetHwReg8188EU(struct adapter *Adapter, u8 variable, u8 *val) | |
/* enable to rx data frame.Accept all data frame */ | |
usb_write16(Adapter, REG_RXFLTMAP2, 0xFFFF); | |
- if (Adapter->in_cta_test) { | |
- u32 v = usb_read32(Adapter, REG_RCR); | |
- v &= ~(RCR_CBSSID_DATA | RCR_CBSSID_BCN);/* RCR_ADF */ | |
- usb_write32(Adapter, REG_RCR, v); | |
- } else { | |
usb_write32(Adapter, REG_RCR, usb_read32(Adapter, REG_RCR)|RCR_CBSSID_DATA|RCR_CBSSID_BCN); | |
- } | |
if (check_fwstate(pmlmepriv, WIFI_STATION_STATE)) | |
RetryLimit = (haldata->CustomerID == RT_CID_CCX) ? 7 : 48; | |
@@ -1491,7 +1427,7 @@ static void SetHwReg8188EU(struct adapter *Adapter, u8 variable, u8 *val) | |
{ | |
u8 u1bAIFS, aSifsTime; | |
struct mlme_ext_priv *pmlmeext = &Adapter->mlmeextpriv; | |
- struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); | |
+ struct mlme_ext_info *pmlmeinfo = &pmlmeext->mlmext_info; | |
usb_write8(Adapter, REG_SLOT, val[0]); | |
@@ -1534,9 +1470,6 @@ static void SetHwReg8188EU(struct adapter *Adapter, u8 variable, u8 *val) | |
case HW_VAR_SEC_CFG: | |
usb_write8(Adapter, REG_SECCFG, *((u8 *)val)); | |
break; | |
- case HW_VAR_DM_FLAG: | |
- podmpriv->SupportAbility = *((u8 *)val); | |
- break; | |
case HW_VAR_DM_FUNC_OP: | |
if (val[0]) | |
podmpriv->BK_SupportAbility = podmpriv->SupportAbility; | |
@@ -1583,6 +1516,7 @@ static void SetHwReg8188EU(struct adapter *Adapter, u8 variable, u8 *val) | |
case HW_VAR_CAM_WRITE: | |
{ | |
u32 cmd; | |
+ | |
u32 *cam_val = (u32 *)val; | |
usb_write32(Adapter, WCAMI, cam_val[0]); | |
@@ -1687,6 +1621,7 @@ static void SetHwReg8188EU(struct adapter *Adapter, u8 variable, u8 *val) | |
case HW_VAR_RXDMA_AGG_PG_TH: | |
{ | |
u8 threshold = *((u8 *)val); | |
+ | |
if (threshold == 0) | |
threshold = haldata->UsbRxAggPageCount; | |
usb_write8(Adapter, REG_RXDMA_AGG_PG_TH, threshold); | |
@@ -1708,6 +1643,7 @@ static void SetHwReg8188EU(struct adapter *Adapter, u8 variable, u8 *val) | |
case HW_VAR_H2C_FW_JOINBSSRPT: | |
{ | |
u8 mstatus = (*(u8 *)val); | |
+ | |
rtl8188e_set_FwJoinBssReport_cmd(Adapter, mstatus); | |
} | |
break; | |
@@ -1730,6 +1666,7 @@ static void SetHwReg8188EU(struct adapter *Adapter, u8 variable, u8 *val) | |
case HW_VAR_RPT_TIMER_SETTING: | |
{ | |
u16 min_rpt_time = (*(u16 *)val); | |
+ | |
ODM_RA_Set_TxRPT_Time(podmpriv, min_rpt_time); | |
} | |
break; | |
@@ -1786,6 +1723,7 @@ static void SetHwReg8188EU(struct adapter *Adapter, u8 variable, u8 *val) | |
case HW_VAR_TX_RPT_MAX_MACID: | |
{ | |
u8 maxMacid = *val; | |
+ | |
DBG_88E("### MacID(%d),Set Max Tx RPT MID(%d)\n", maxMacid, maxMacid+1); | |
usb_write8(Adapter, REG_TX_RPT_CTRL+1, maxMacid+1); | |
} | |
@@ -1802,14 +1740,11 @@ static void SetHwReg8188EU(struct adapter *Adapter, u8 variable, u8 *val) | |
} | |
} | |
-static void GetHwReg8188EU(struct adapter *Adapter, u8 variable, u8 *val) | |
+void rtw_hal_get_hwreg(struct adapter *Adapter, u8 variable, u8 *val) | |
{ | |
- struct hal_data_8188e *haldata = GET_HAL_DATA(Adapter); | |
- struct odm_dm_struct *podmpriv = &haldata->odmpriv; | |
- | |
switch (variable) { | |
case HW_VAR_BASIC_RATE: | |
- *((u16 *)(val)) = haldata->BasicRateSet; | |
+ *((u16 *)(val)) = Adapter->HalData->BasicRateSet; | |
case HW_VAR_TXPAUSE: | |
val[0] = usb_read8(Adapter, REG_TXPAUSE); | |
break; | |
@@ -1817,12 +1752,6 @@ static void GetHwReg8188EU(struct adapter *Adapter, u8 variable, u8 *val) | |
/* BCN_VALID, BIT16 of REG_TDECTRL = BIT0 of REG_TDECTRL+2 */ | |
val[0] = (BIT(0) & usb_read8(Adapter, REG_TDECTRL+2)) ? true : false; | |
break; | |
- case HW_VAR_DM_FLAG: | |
- val[0] = podmpriv->SupportAbility; | |
- break; | |
- case HW_VAR_RF_TYPE: | |
- val[0] = haldata->rf_type; | |
- break; | |
case HW_VAR_FWLPS_RF_ON: | |
{ | |
/* When we halt NIC, we should check if FW LPS is leave. */ | |
@@ -1832,6 +1761,7 @@ static void GetHwReg8188EU(struct adapter *Adapter, u8 variable, u8 *val) | |
val[0] = true; | |
} else { | |
u32 valRCR; | |
+ | |
valRCR = usb_read32(Adapter, REG_RCR); | |
valRCR &= 0x00070000; | |
if (valRCR) | |
@@ -1842,13 +1772,13 @@ static void GetHwReg8188EU(struct adapter *Adapter, u8 variable, u8 *val) | |
} | |
break; | |
case HW_VAR_CURRENT_ANTENNA: | |
- val[0] = haldata->CurAntenna; | |
+ val[0] = Adapter->HalData->CurAntenna; | |
break; | |
case HW_VAR_EFUSE_BYTES: /* To get EFUE total used bytes, added by Roger, 2008.12.22. */ | |
- *((u16 *)(val)) = haldata->EfuseUsedBytes; | |
+ *((u16 *)(val)) = Adapter->HalData->EfuseUsedBytes; | |
break; | |
case HW_VAR_APFM_ON_MAC: | |
- *val = haldata->bMacPwrCtrlOn; | |
+ *val = Adapter->HalData->bMacPwrCtrlOn; | |
break; | |
case HW_VAR_CHK_HI_QUEUE_EMPTY: | |
*val = ((usb_read32(Adapter, REG_HGQ_INFORMATION)&0x0000ff00) == 0) ? true : false; | |
@@ -1856,21 +1786,19 @@ static void GetHwReg8188EU(struct adapter *Adapter, u8 variable, u8 *val) | |
default: | |
break; | |
} | |
- | |
} | |
/* */ | |
/* Description: */ | |
/* Query setting of specified variable. */ | |
/* */ | |
-static u8 | |
-GetHalDefVar8188EUsb( | |
+u8 rtw_hal_get_def_var( | |
struct adapter *Adapter, | |
enum hal_def_variable eVariable, | |
void *pValue | |
) | |
{ | |
- struct hal_data_8188e *haldata = GET_HAL_DATA(Adapter); | |
+ struct hal_data_8188e *haldata = Adapter->HalData; | |
u8 bResult = _SUCCESS; | |
switch (eVariable) { | |
@@ -1879,6 +1807,7 @@ GetHalDefVar8188EUsb( | |
struct mlme_priv *pmlmepriv = &Adapter->mlmepriv; | |
struct sta_priv *pstapriv = &Adapter->stapriv; | |
struct sta_info *psta; | |
+ | |
psta = rtw_get_stainfo(pstapriv, pmlmepriv->cur_network.network.MacAddress); | |
if (psta) | |
*((int *)pValue) = psta->rssi_stat.UndecoratedSmoothedPWDB; | |
@@ -1905,19 +1834,22 @@ GetHalDefVar8188EUsb( | |
case HAL_DEF_RA_DECISION_RATE: | |
{ | |
u8 MacID = *((u8 *)pValue); | |
- *((u8 *)pValue) = ODM_RA_GetDecisionRate_8188E(&(haldata->odmpriv), MacID); | |
+ | |
+ *((u8 *)pValue) = ODM_RA_GetDecisionRate_8188E(&haldata->odmpriv, MacID); | |
} | |
break; | |
case HAL_DEF_RA_SGI: | |
{ | |
u8 MacID = *((u8 *)pValue); | |
- *((u8 *)pValue) = ODM_RA_GetShortGI_8188E(&(haldata->odmpriv), MacID); | |
+ | |
+ *((u8 *)pValue) = ODM_RA_GetShortGI_8188E(&haldata->odmpriv, MacID); | |
} | |
break; | |
case HAL_DEF_PT_PWR_STATUS: | |
{ | |
u8 MacID = *((u8 *)pValue); | |
- *((u8 *)pValue) = ODM_RA_GetHwPwrStatus_8188E(&(haldata->odmpriv), MacID); | |
+ | |
+ *((u8 *)pValue) = ODM_RA_GetHwPwrStatus_8188E(&haldata->odmpriv, MacID); | |
} | |
break; | |
case HW_VAR_MAX_RX_AMPDU_FACTOR: | |
@@ -1926,6 +1858,7 @@ GetHalDefVar8188EUsb( | |
case HW_DEF_RA_INFO_DUMP: | |
{ | |
u8 entry_id = *((u8 *)pValue); | |
+ | |
if (check_fwstate(&Adapter->mlmepriv, _FW_LINKED)) { | |
DBG_88E("============ RA status check ===================\n"); | |
DBG_88E("Mac_id:%d , RateID = %d, RAUseRate = 0x%08x, RateSGI = %d, DecisionRate = 0x%02x ,PTStage = %d\n", | |
@@ -1940,7 +1873,8 @@ GetHalDefVar8188EUsb( | |
break; | |
case HW_DEF_ODM_DBG_FLAG: | |
{ | |
- struct odm_dm_struct *dm_ocm = &(haldata->odmpriv); | |
+ struct odm_dm_struct *dm_ocm = &haldata->odmpriv; | |
+ | |
pr_info("dm_ocm->DebugComponents = 0x%llx\n", dm_ocm->DebugComponents); | |
} | |
break; | |
@@ -1958,7 +1892,7 @@ GetHalDefVar8188EUsb( | |
return bResult; | |
} | |
-static void UpdateHalRAMask8188EUsb(struct adapter *adapt, u32 mac_id, u8 rssi_level) | |
+void UpdateHalRAMask8188EUsb(struct adapter *adapt, u32 mac_id, u8 rssi_level) | |
{ | |
u8 init_rate = 0; | |
u8 networkType, raid; | |
@@ -1966,10 +1900,10 @@ static void UpdateHalRAMask8188EUsb(struct adapter *adapt, u32 mac_id, u8 rssi_l | |
u8 shortGIrate = false; | |
int supportRateNum = 0; | |
struct sta_info *psta; | |
- struct hal_data_8188e *haldata = GET_HAL_DATA(adapt); | |
+ struct odm_dm_struct *odmpriv = &adapt->HalData->odmpriv; | |
struct mlme_ext_priv *pmlmeext = &adapt->mlmeextpriv; | |
- struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); | |
- struct wlan_bssid_ex *cur_network = &(pmlmeinfo->network); | |
+ struct mlme_ext_info *pmlmeinfo = &pmlmeext->mlmext_info; | |
+ struct wlan_bssid_ex *cur_network = &pmlmeinfo->network; | |
if (mac_id >= NUM_STA) /* CAM_SIZE */ | |
return; | |
@@ -1982,8 +1916,8 @@ static void UpdateHalRAMask8188EUsb(struct adapter *adapt, u32 mac_id, u8 rssi_l | |
networkType = judge_network_type(adapt, cur_network->SupportedRates, supportRateNum) & 0xf; | |
raid = networktype_to_raid(networkType); | |
mask = update_supported_rate(cur_network->SupportedRates, supportRateNum); | |
- mask |= (pmlmeinfo->HT_enable) ? update_MSC_rate(&(pmlmeinfo->HT_caps)) : 0; | |
- if (support_short_GI(adapt, &(pmlmeinfo->HT_caps))) | |
+ mask |= (pmlmeinfo->HT_enable) ? update_MSC_rate(&pmlmeinfo->HT_caps) : 0; | |
+ if (support_short_GI(adapt, &pmlmeinfo->HT_caps)) | |
shortGIrate = true; | |
break; | |
case 1:/* for broadcast/multicast */ | |
@@ -2005,7 +1939,7 @@ static void UpdateHalRAMask8188EUsb(struct adapter *adapt, u32 mac_id, u8 rssi_l | |
break; | |
} | |
- rate_bitmap = ODM_Get_Rate_Bitmap(&haldata->odmpriv, mac_id, mask, rssi_level); | |
+ rate_bitmap = ODM_Get_Rate_Bitmap(odmpriv, mac_id, mask, rssi_level); | |
DBG_88E("%s => mac_id:%d, networkType:0x%02x, mask:0x%08x\n\t ==> rssi_level:%d, rate_bitmap:0x%08x\n", | |
__func__, mac_id, networkType, mask, rssi_level, rate_bitmap); | |
@@ -2013,19 +1947,18 @@ static void UpdateHalRAMask8188EUsb(struct adapter *adapt, u32 mac_id, u8 rssi_l | |
init_rate = get_highest_rate_idx(mask)&0x3f; | |
- ODM_RA_UpdateRateInfo_8188E(&haldata->odmpriv, mac_id, | |
- raid, mask, shortGIrate); | |
+ ODM_RA_UpdateRateInfo_8188E(odmpriv, mac_id, raid, mask, shortGIrate); | |
/* set ra_id */ | |
psta->raid = raid; | |
psta->init_rate = init_rate; | |
} | |
-static void SetBeaconRelatedRegisters8188EUsb(struct adapter *adapt) | |
+void rtw_hal_bcn_related_reg_setting(struct adapter *adapt) | |
{ | |
u32 value32; | |
- struct mlme_ext_priv *pmlmeext = &(adapt->mlmeextpriv); | |
- struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); | |
+ struct mlme_ext_priv *pmlmeext = &adapt->mlmeextpriv; | |
+ struct mlme_ext_info *pmlmeinfo = &pmlmeext->mlmext_info; | |
u32 bcn_ctrl_reg = REG_BCN_CTRL; | |
/* reset TSF, enable update TSF, correcting TSF On Beacon */ | |
@@ -2055,13 +1988,12 @@ static void SetBeaconRelatedRegisters8188EUsb(struct adapter *adapt) | |
usb_write8(adapt, bcn_ctrl_reg, usb_read8(adapt, bcn_ctrl_reg) | BIT(1)); | |
} | |
-static void rtl8188eu_init_default_value(struct adapter *adapt) | |
+void rtw_hal_def_value_init(struct adapter *adapt) | |
{ | |
- struct hal_data_8188e *haldata; | |
+ struct hal_data_8188e *haldata = adapt->HalData; | |
struct pwrctrl_priv *pwrctrlpriv; | |
u8 i; | |
- haldata = GET_HAL_DATA(adapt); | |
pwrctrlpriv = &adapt->pwrctrlpriv; | |
/* init default value */ | |
@@ -2077,43 +2009,3 @@ static void rtl8188eu_init_default_value(struct adapter *adapt) | |
for (i = 0; i < HP_THERMAL_NUM; i++) | |
haldata->odmpriv.RFCalibrateInfo.ThermalValue_HP[i] = 0; | |
} | |
- | |
-void rtl8188eu_set_hal_ops(struct adapter *adapt) | |
-{ | |
- struct hal_ops *halfunc = &adapt->HalFunc; | |
- | |
- | |
- adapt->HalData = kzalloc(sizeof(struct hal_data_8188e), GFP_KERNEL); | |
- if (adapt->HalData == NULL) | |
- DBG_88E("cant not alloc memory for HAL DATA\n"); | |
- | |
- halfunc->hal_power_on = rtl8188eu_InitPowerOn; | |
- halfunc->hal_init = &rtl8188eu_hal_init; | |
- halfunc->hal_deinit = &rtl8188eu_hal_deinit; | |
- | |
- halfunc->inirp_init = &rtl8188eu_inirp_init; | |
- halfunc->inirp_deinit = &rtl8188eu_inirp_deinit; | |
- | |
- halfunc->init_xmit_priv = &rtl8188eu_init_xmit_priv; | |
- | |
- halfunc->init_recv_priv = &rtl8188eu_init_recv_priv; | |
- halfunc->free_recv_priv = &rtl8188eu_free_recv_priv; | |
- halfunc->InitSwLeds = &rtl8188eu_InitSwLeds; | |
- halfunc->DeInitSwLeds = &rtl8188eu_DeInitSwLeds; | |
- | |
- halfunc->init_default_value = &rtl8188eu_init_default_value; | |
- halfunc->intf_chip_configure = &rtl8188eu_interface_configure; | |
- halfunc->read_adapter_info = &_ReadAdapterInfo8188EU; | |
- | |
- halfunc->SetHwRegHandler = &SetHwReg8188EU; | |
- halfunc->GetHwRegHandler = &GetHwReg8188EU; | |
- halfunc->GetHalDefVarHandler = &GetHalDefVar8188EUsb; | |
- | |
- halfunc->UpdateRAMaskHandler = &UpdateHalRAMask8188EUsb; | |
- halfunc->SetBeaconRelatedRegistersHandler = &SetBeaconRelatedRegisters8188EUsb; | |
- | |
- halfunc->hal_xmit = &rtl8188eu_hal_xmit; | |
- halfunc->mgnt_xmit = &rtl8188eu_mgnt_xmit; | |
- | |
- rtl8188e_set_hal_ops(halfunc); | |
-} | |
diff --git b/drivers/staging/rtl8188eu/include/Hal8188EPhyCfg.h a/drivers/staging/rtl8188eu/include/Hal8188EPhyCfg.h | |
index e058162fe2ba..550ad62e7064 100644 | |
--- b/drivers/staging/rtl8188eu/include/Hal8188EPhyCfg.h | |
+++ a/drivers/staging/rtl8188eu/include/Hal8188EPhyCfg.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#ifndef __INC_HAL8188EPHYCFG_H__ | |
#define __INC_HAL8188EPHYCFG_H__ | |
@@ -69,13 +64,11 @@ enum hw90_block { | |
enum rf_radio_path { | |
RF_PATH_A = 0, /* Radio Path A */ | |
RF_PATH_B = 1, /* Radio Path B */ | |
- RF_PATH_C = 2, /* Radio Path C */ | |
- RF_PATH_D = 3, /* Radio Path D */ | |
}; | |
#define MAX_PG_GROUP 13 | |
-#define RF_PATH_MAX 3 | |
+#define RF_PATH_MAX 2 | |
#define MAX_RF_PATH RF_PATH_MAX | |
#define MAX_TX_COUNT 4 /* path numbers */ | |
@@ -106,17 +99,6 @@ enum phy_rate_tx_offset_area { | |
RA_OFFSET_HT_CCK, | |
}; | |
-/* BB/RF related */ | |
-enum RF_TYPE_8190P { | |
- RF_TYPE_MIN, /* 0 */ | |
- RF_8225 = 1, /* 1 11b/g RF for verification only */ | |
- RF_8256 = 2, /* 2 11b/g/n */ | |
- RF_8258 = 3, /* 3 11a/b/g/n RF */ | |
- RF_6052 = 4, /* 4 11b/g/n RF */ | |
- /* TODO: We should remove this psudo PHY RF after we get new RF. */ | |
- RF_PSEUDO_11N = 5, /* 5, It is a temporality RF. */ | |
-}; | |
- | |
struct bb_reg_def { | |
u32 rfintfs; /* set software control: */ | |
/* 0x870~0x877[8 bytes] */ | |
@@ -165,24 +147,6 @@ struct bb_reg_def { | |
* Path A and B */ | |
}; | |
-struct ant_sel_ofdm { | |
- u32 r_tx_antenna:4; | |
- u32 r_ant_l:4; | |
- u32 r_ant_non_ht:4; | |
- u32 r_ant_ht1:4; | |
- u32 r_ant_ht2:4; | |
- u32 r_ant_ht_s1:4; | |
- u32 r_ant_non_ht_s1:4; | |
- u32 OFDM_TXSC:2; | |
- u32 reserved:2; | |
-}; | |
- | |
-struct ant_sel_cck { | |
- u8 r_cckrx_enable_2:2; | |
- u8 r_cckrx_enable:2; | |
- u8 r_ccktx_enable:4; | |
-}; | |
- | |
/*------------------------------Define structure----------------------------*/ | |
diff --git b/drivers/staging/rtl8188eu/include/Hal8188EPhyReg.h a/drivers/staging/rtl8188eu/include/Hal8188EPhyReg.h | |
index 9f2969bf8355..04159a9f90d3 100644 | |
--- b/drivers/staging/rtl8188eu/include/Hal8188EPhyReg.h | |
+++ a/drivers/staging/rtl8188eu/include/Hal8188EPhyReg.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#ifndef __INC_HAL8188EPHYREG_H__ | |
#define __INC_HAL8188EPHYREG_H__ | |
@@ -184,7 +179,7 @@ | |
/* RxIQ DC offset, Rx digital filter, DC notch filter */ | |
#define rOFDM0_XARxAFE 0xc10 | |
-#define rOFDM0_XARxIQImbalance 0xc14 /* RxIQ imblance matrix */ | |
+#define rOFDM0_XARxIQImbalance 0xc14 /* RxIQ imbalance matrix */ | |
#define rOFDM0_XBRxAFE 0xc18 | |
#define rOFDM0_XBRxIQImbalance 0xc1c | |
#define rOFDM0_XCRxAFE 0xc20 | |
diff --git b/drivers/staging/rtl8188eu/include/Hal8188ERateAdaptive.h a/drivers/staging/rtl8188eu/include/Hal8188ERateAdaptive.h | |
index 21996a1173ef..6722010ba1ec 100644 | |
--- b/drivers/staging/rtl8188eu/include/Hal8188ERateAdaptive.h | |
+++ a/drivers/staging/rtl8188eu/include/Hal8188ERateAdaptive.h | |
@@ -1,3 +1,4 @@ | |
+/* SPDX-License-Identifier: GPL-2.0 */ | |
#ifndef __INC_RA_H | |
#define __INC_RA_H | |
/*++ | |
diff --git b/drivers/staging/rtl8188eu/include/HalHWImg8188E_FW.h a/drivers/staging/rtl8188eu/include/HalHWImg8188E_FW.h | |
deleted file mode 100644 | |
index 1bf9bc70a696..000000000000 | |
--- b/drivers/staging/rtl8188eu/include/HalHWImg8188E_FW.h | |
+++ /dev/null | |
@@ -1,34 +0,0 @@ | |
-/****************************************************************************** | |
-* | |
-* Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved. | |
-* | |
-* This program is free software; you can redistribute it and/or modify it | |
-* under the terms of version 2 of the GNU General Public License as | |
-* published by the Free Software Foundation. | |
-* | |
-* This program is distributed in the hope that it will be useful, but WITHOUT | |
-* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
-* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
-* more details. | |
-* | |
-* You should have received a copy of the GNU General Public License along with | |
-* this program; if not, write to the Free Software Foundation, Inc., | |
-* 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
-* | |
-* | |
-******************************************************************************/ | |
- | |
-#ifndef __INC_FW_8188E_HW_IMG_H | |
-#define __INC_FW_8188E_HW_IMG_H | |
- | |
- | |
-/****************************************************************************** | |
-* FW_AP.TXT | |
-******************************************************************************/ | |
-/****************************************************************************** | |
-* FW_WoWLAN.TXT | |
-******************************************************************************/ | |
-#define ArrayLength_8188E_FW_WoWLAN 15764 | |
-extern const u8 Array_8188E_FW_WoWLAN[ArrayLength_8188E_FW_WoWLAN]; | |
- | |
-#endif | |
diff --git b/drivers/staging/rtl8188eu/include/HalVerDef.h a/drivers/staging/rtl8188eu/include/HalVerDef.h | |
index 56b4ff08e509..d244efff3593 100644 | |
--- b/drivers/staging/rtl8188eu/include/HalVerDef.h | |
+++ a/drivers/staging/rtl8188eu/include/HalVerDef.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#ifndef __HAL_VERSION_DEF_H__ | |
#define __HAL_VERSION_DEF_H__ | |
@@ -47,37 +42,4 @@ struct HAL_VERSION { | |
enum HAL_VENDOR VendorType; | |
}; | |
-/* Get element */ | |
-#define GET_CVID_CHIP_TYPE(version) (((version).ChipType)) | |
-#define GET_CVID_MANUFACTUER(version) (((version).VendorType)) | |
-#define GET_CVID_CUT_VERSION(version) (((version).CUTVersion)) | |
- | |
-/* Common Macro. -- */ | |
-/* HAL_VERSION VersionID */ | |
- | |
-/* HAL_CHIP_TYPE_E */ | |
-#define IS_TEST_CHIP(version) \ | |
- ((GET_CVID_CHIP_TYPE(version) == TEST_CHIP) ? true : false) | |
-#define IS_NORMAL_CHIP(version) \ | |
- ((GET_CVID_CHIP_TYPE(version) == NORMAL_CHIP) ? true : false) | |
- | |
-/* HAL_CUT_VERSION_E */ | |
-#define IS_A_CUT(version) \ | |
- ((GET_CVID_CUT_VERSION(version) == A_CUT_VERSION) ? true : false) | |
-#define IS_B_CUT(version) \ | |
- ((GET_CVID_CUT_VERSION(version) == B_CUT_VERSION) ? true : false) | |
-#define IS_C_CUT(version) \ | |
- ((GET_CVID_CUT_VERSION(version) == C_CUT_VERSION) ? true : false) | |
-#define IS_D_CUT(version) \ | |
- ((GET_CVID_CUT_VERSION(version) == D_CUT_VERSION) ? true : false) | |
-#define IS_E_CUT(version) \ | |
- ((GET_CVID_CUT_VERSION(version) == E_CUT_VERSION) ? true : false) | |
- | |
- | |
-/* HAL_VENDOR_E */ | |
-#define IS_CHIP_VENDOR_TSMC(version) \ | |
- ((GET_CVID_MANUFACTUER(version) == CHIP_VENDOR_TSMC) ? true : false) | |
-#define IS_CHIP_VENDOR_UMC(version) \ | |
- ((GET_CVID_MANUFACTUER(version) == CHIP_VENDOR_UMC) ? true : false) | |
- | |
#endif | |
diff --git b/drivers/staging/rtl8188eu/include/basic_types.h a/drivers/staging/rtl8188eu/include/basic_types.h | |
index 6a2a147e6d15..69c4d49f43ab 100644 | |
--- b/drivers/staging/rtl8188eu/include/basic_types.h | |
+++ a/drivers/staging/rtl8188eu/include/basic_types.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#ifndef __BASIC_TYPES_H__ | |
#define __BASIC_TYPES_H__ | |
@@ -23,10 +18,6 @@ | |
#include <linux/types.h> | |
#define NDIS_OID uint | |
-typedef void (*proc_t)(void *); | |
- | |
-#define FIELD_OFFSET(s, field) ((ssize_t)&((s *)(0))->field) | |
- | |
/* port from fw */ | |
/* TODO: Macros Below are Sync from SD7-Driver. It is necessary | |
* to check correctness */ | |
@@ -46,31 +37,6 @@ typedef void (*proc_t)(void *); | |
#define EF4BYTE(_val) \ | |
(le32_to_cpu(_val)) | |
-/* Read data from memory */ | |
-#define READEF1BYTE(_ptr) \ | |
- EF1BYTE(*((u8 *)(_ptr))) | |
-/* Read le16 data from memory and convert to host ordering */ | |
-#define READEF2BYTE(_ptr) \ | |
- EF2BYTE(*(_ptr)) | |
-#define READEF4BYTE(_ptr) \ | |
- EF4BYTE(*(_ptr)) | |
- | |
-/* Write data to memory */ | |
-#define WRITEEF1BYTE(_ptr, _val) \ | |
- do { \ | |
- (*((u8 *)(_ptr))) = EF1BYTE(_val) \ | |
- } while (0) | |
-/* Write le data to memory in host ordering */ | |
-#define WRITEEF2BYTE(_ptr, _val) \ | |
- do { \ | |
- (*((u16 *)(_ptr))) = EF2BYTE(_val) \ | |
- } while (0) | |
- | |
-#define WRITEEF4BYTE(_ptr, _val) \ | |
- do { \ | |
- (*((u32 *)(_ptr))) = EF2BYTE(_val) \ | |
- } while (0) | |
- | |
/* Create a bit mask | |
* Examples: | |
* BIT_LEN_MASK_32(0) => 0x00000000 | |
@@ -171,8 +137,4 @@ value to host byte ordering.*/ | |
((((u8)__val) & BIT_LEN_MASK_8(__bitlen)) << (__bitoffset)) \ | |
) | |
-/* Get the N-bytes aligment offset from the current length */ | |
-#define N_BYTE_ALIGMENT(__value, __aligment) ((__aligment == 1) ? \ | |
- (__value) : (((__value + __aligment - 1) / __aligment) * __aligment)) | |
- | |
#endif /* __BASIC_TYPES_H__ */ | |
diff --git b/drivers/staging/rtl8188eu/include/drv_types.h a/drivers/staging/rtl8188eu/include/drv_types.h | |
index 0729bd40b02a..c3517c0903ca 100644 | |
--- b/drivers/staging/rtl8188eu/include/drv_types.h | |
+++ a/drivers/staging/rtl8188eu/include/drv_types.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
/*----------------------------------------------------------------------------- | |
@@ -58,42 +53,22 @@ | |
#define SPEC_DEV_ID_ASSIGN_IFNAME BIT(5) | |
struct registry_priv { | |
- u8 chip_version; | |
- u8 rfintfs; | |
- u8 lbkmode; | |
- u8 hci; | |
struct ndis_802_11_ssid ssid; | |
- u8 network_mode; /* infra, ad-hoc, auto */ | |
u8 channel;/* ad-hoc support requirement */ | |
u8 wireless_mode;/* A, B, G, auto */ | |
- u8 scan_mode;/* active, passive */ | |
- u8 radio_enable; | |
u8 preamble;/* long, short, auto */ | |
u8 vrtl_carrier_sense;/* Enable, Disable, Auto */ | |
u8 vcs_type;/* RTS/CTS, CTS-to-self */ | |
u16 rts_thresh; | |
u16 frag_thresh; | |
- u8 adhoc_tx_pwr; | |
- u8 soft_ap; | |
u8 power_mgnt; | |
u8 ips_mode; | |
u8 smart_ps; | |
- u8 long_retry_lmt; | |
- u8 short_retry_lmt; | |
- u16 busy_thresh; | |
- u8 ack_policy; | |
u8 mp_mode; | |
- u8 software_encrypt; | |
- u8 software_decrypt; | |
u8 acm_method; | |
/* UAPSD */ | |
u8 wmm_enable; | |
u8 uapsd_enable; | |
- u8 uapsd_max_sp; | |
- u8 uapsd_acbk_en; | |
- u8 uapsd_acbe_en; | |
- u8 uapsd_acvi_en; | |
- u8 uapsd_acvo_en; | |
struct wlan_bssid_ex dev_network; | |
@@ -102,24 +77,17 @@ struct registry_priv { | |
u8 ampdu_enable;/* for tx */ | |
u8 rx_stbc; | |
u8 ampdu_amsdu;/* A-MPDU Supports A-MSDU is permitted */ | |
- u8 lowrate_two_xmit; | |
- | |
- u8 rf_config; | |
- u8 low_power; | |
u8 wifi_spec;/* !turbo_mode */ | |
u8 channel_plan; | |
- bool bAcceptAddbaReq; | |
+ bool accept_addba_req; /* true = accept AP's Add BA req */ | |
u8 antdiv_cfg; | |
u8 antdiv_type; | |
u8 usbss_enable;/* 0:disable,1:enable */ | |
u8 hwpdn_mode;/* 0:disable,1:enable,2:decide by EFUSE config */ | |
- u8 hwpwrp_detect;/* 0:disable,1:enable */ | |
- | |
- u8 hw_wps_pbc;/* 0:disable,1:enable */ | |
u8 max_roaming_times; /* the max number driver will try */ | |
@@ -134,12 +102,6 @@ struct registry_priv { | |
bool monitor_enable; | |
}; | |
-/* For registry parameters */ | |
-#define RGTRY_OFT(field) ((u32)FIELD_OFFSET(struct registry_priv, field)) | |
-#define RGTRY_SZ(field) sizeof(((struct registry_priv *)0)->field) | |
-#define BSSID_OFT(field) ((u32)FIELD_OFFSET(struct wlan_bssid_ex, field)) | |
-#define BSSID_SZ(field) sizeof(((struct wlan_bssid_ex *)0)->field) | |
- | |
#define MAX_CONTINUAL_URB_ERR 4 | |
struct dvobj_priv { | |
@@ -154,16 +116,11 @@ struct dvobj_priv { | |
u8 Queue2Pipe[HW_QUEUE_ENTRY];/* for out pipe mapping */ | |
/*-------- below is for USB INTERFACE --------*/ | |
- | |
- u8 nr_endpoint; | |
u8 ishighspeed; | |
u8 RtNumInPipes; | |
u8 RtNumOutPipes; | |
- int ep_num[5]; /* endpoint number */ | |
struct mutex usb_vendor_req_mutex; | |
- u8 *usb_vendor_req_buf; | |
- | |
struct usb_interface *pusbintf; | |
struct usb_device *pusbdev; | |
}; | |
@@ -176,8 +133,6 @@ static inline struct device *dvobj_to_dev(struct dvobj_priv *dvobj) | |
}; | |
struct adapter { | |
- u16 chip_type; | |
- | |
struct dvobj_priv *dvobj; | |
struct mlme_priv mlmepriv; | |
struct mlme_ext_priv mlmeextpriv; | |
@@ -191,14 +146,7 @@ struct adapter { | |
struct eeprom_priv eeprompriv; | |
struct led_priv ledpriv; | |
-#ifdef CONFIG_88EU_AP_MODE | |
- struct hostapd_priv *phostapdpriv; | |
-#endif | |
- | |
- struct wifidirect_info wdinfo; | |
- | |
- void *HalData; | |
- struct hal_ops HalFunc; | |
+ struct hal_data_8188e *HalData; | |
s32 bDriverStopped; | |
s32 bSurpriseRemoved; | |
@@ -206,20 +154,9 @@ struct adapter { | |
u8 hw_init_completed; | |
void *cmdThread; | |
- void *evtThread; | |
- void (*intf_start)(struct adapter *adapter); | |
- void (*intf_stop)(struct adapter *adapter); | |
struct net_device *pnetdev; | |
struct net_device *pmondev; | |
- /* used by rtw_rereg_nd_name related function */ | |
- struct rereg_nd_name_data { | |
- struct net_device *old_pnetdev; | |
- char old_ifname[IFNAMSIZ]; | |
- u8 old_ips_mode; | |
- u8 old_bRegUseLed; | |
- } rereg_nd_name_priv; | |
- | |
int bup; | |
struct net_device_stats stats; | |
struct iw_statistics iwstats; | |
@@ -229,24 +166,12 @@ struct adapter { | |
u8 bFWReady; | |
u8 bReadPortCancel; | |
u8 bWritePortCancel; | |
- u8 bRxRSSIDisplay; | |
- /* The driver will show up the desired channel number | |
- * when this flag is 1. */ | |
- u8 bNotifyChannelChange; | |
struct mutex hw_init_mutex; | |
- | |
- spinlock_t br_ext_lock; | |
- | |
- u8 fix_rate; | |
- | |
- unsigned char in_cta_test; | |
}; | |
#define adapter_to_dvobj(adapter) (adapter->dvobj) | |
-int rtw_handle_dualmac(struct adapter *adapter, bool init); | |
- | |
static inline u8 *myid(struct eeprom_priv *peepriv) | |
{ | |
return peepriv->mac_addr; | |
diff --git b/drivers/staging/rtl8188eu/include/fw.h a/drivers/staging/rtl8188eu/include/fw.h | |
index 7884d8f65763..b016f32a8992 100644 | |
--- b/drivers/staging/rtl8188eu/include/fw.h | |
+++ a/drivers/staging/rtl8188eu/include/fw.h | |
@@ -11,10 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
* The full GNU General Public License is included in this distribution in the | |
* file called LICENSE. | |
* | |
diff --git b/drivers/staging/rtl8188eu/include/hal_com.h a/drivers/staging/rtl8188eu/include/hal_com.h | |
index 47715d949d54..aaf444733507 100644 | |
--- b/drivers/staging/rtl8188eu/include/hal_com.h | |
+++ a/drivers/staging/rtl8188eu/include/hal_com.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#ifndef __HAL_COMMON_H__ | |
#define __HAL_COMMON_H__ | |
diff --git b/drivers/staging/rtl8188eu/include/hal_intf.h a/drivers/staging/rtl8188eu/include/hal_intf.h | |
index 1b1c10292456..dfdbd0254886 100644 | |
--- b/drivers/staging/rtl8188eu/include/hal_intf.h | |
+++ a/drivers/staging/rtl8188eu/include/hal_intf.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#ifndef __HAL_INTF_H__ | |
#define __HAL_INTF_H__ | |
@@ -62,8 +57,6 @@ enum hw_variables { | |
HW_VAR_ACK_PREAMBLE, | |
HW_VAR_SEC_CFG, | |
HW_VAR_BCN_VALID, | |
- HW_VAR_RF_TYPE, | |
- HW_VAR_DM_FLAG, | |
HW_VAR_DM_FUNC_OP, | |
HW_VAR_DM_FUNC_SET, | |
HW_VAR_DM_FUNC_CLR, | |
@@ -144,81 +137,6 @@ enum hal_intf_ps_func { | |
HAL_MAX_ID, | |
}; | |
-struct hal_ops { | |
- u32 (*hal_power_on)(struct adapter *padapter); | |
- u32 (*hal_init)(struct adapter *padapter); | |
- u32 (*hal_deinit)(struct adapter *padapter); | |
- | |
- void (*free_hal_data)(struct adapter *padapter); | |
- | |
- u32 (*inirp_init)(struct adapter *padapter); | |
- u32 (*inirp_deinit)(struct adapter *padapter); | |
- | |
- s32 (*init_xmit_priv)(struct adapter *padapter); | |
- | |
- s32 (*init_recv_priv)(struct adapter *padapter); | |
- void (*free_recv_priv)(struct adapter *padapter); | |
- | |
- void (*InitSwLeds)(struct adapter *padapter); | |
- void (*DeInitSwLeds)(struct adapter *padapter); | |
- | |
- void (*dm_init)(struct adapter *padapter); | |
- void (*read_chip_version)(struct adapter *padapter); | |
- | |
- void (*init_default_value)(struct adapter *padapter); | |
- | |
- void (*intf_chip_configure)(struct adapter *padapter); | |
- | |
- void (*read_adapter_info)(struct adapter *padapter); | |
- | |
- s32 (*interrupt_handler)(struct adapter *padapter); | |
- | |
- void (*set_bwmode_handler)(struct adapter *padapter, | |
- enum ht_channel_width Bandwidth, | |
- u8 Offset); | |
- void (*set_channel_handler)(struct adapter *padapter, u8 channel); | |
- | |
- void (*hal_dm_watchdog)(struct adapter *padapter); | |
- | |
- void (*SetHwRegHandler)(struct adapter *padapter, u8 variable, | |
- u8 *val); | |
- void (*GetHwRegHandler)(struct adapter *padapter, u8 variable, | |
- u8 *val); | |
- | |
- u8 (*GetHalDefVarHandler)(struct adapter *padapter, | |
- enum hal_def_variable eVariable, | |
- void *pValue); | |
- | |
- void (*SetHalODMVarHandler)(struct adapter *padapter, | |
- enum hal_odm_variable eVariable, | |
- void *pValue1, bool bSet); | |
- | |
- void (*UpdateRAMaskHandler)(struct adapter *padapter, | |
- u32 mac_id, u8 rssi_level); | |
- void (*SetBeaconRelatedRegistersHandler)(struct adapter *padapter); | |
- | |
- void (*Add_RateATid)(struct adapter *adapter, u32 bitmap, u8 arg, | |
- u8 rssi_level); | |
- | |
- u8 (*AntDivBeforeLinkHandler)(struct adapter *adapter); | |
- void (*AntDivCompareHandler)(struct adapter *adapter, | |
- struct wlan_bssid_ex *dst, | |
- struct wlan_bssid_ex *src); | |
- s32 (*hal_xmit)(struct adapter *padapter, | |
- struct xmit_frame *pxmitframe); | |
- s32 (*mgnt_xmit)(struct adapter *padapter, | |
- struct xmit_frame *pmgntframe); | |
- u32 (*read_rfreg)(struct adapter *padapter, | |
- enum rf_radio_path eRFPath, u32 RegAddr, | |
- u32 BitMask); | |
- | |
- void (*sreset_init_value)(struct adapter *padapter); | |
- u8 (*sreset_get_wifi_status)(struct adapter *padapter); | |
- | |
- void (*hal_notch_filter)(struct adapter *adapter, bool enable); | |
- void (*hal_reset_security_engine)(struct adapter *adapter); | |
-}; | |
- | |
enum rt_eeprom_type { | |
EEPROM_93C46, | |
EEPROM_93C56, | |
@@ -240,6 +158,9 @@ enum hardware_type { | |
#define is_boot_from_eeprom(adapter) (adapter->eeprompriv.EepromOrEfuse) | |
+void UpdateHalRAMask8188EUsb(struct adapter *adapt, u32 mac_id, u8 rssi_level); | |
+u32 rtl8188eu_hal_deinit(struct adapter *Adapter); | |
+u32 rtl8188eu_hal_init(struct adapter *Adapter); | |
void rtw_hal_def_value_init(struct adapter *padapter); | |
void rtw_hal_free_data(struct adapter *padapter); | |
@@ -267,7 +188,8 @@ void rtw_hal_set_odm_var(struct adapter *padapter, | |
bool bSet); | |
u32 rtw_hal_inirp_init(struct adapter *padapter); | |
-u32 rtw_hal_inirp_deinit(struct adapter *padapter); | |
+void rtw_hal_inirp_deinit(struct adapter *padapter); | |
+void usb_intf_stop(struct adapter *padapter); | |
s32 rtw_hal_xmit(struct adapter *padapter, struct xmit_frame *pxmitframe); | |
s32 rtw_hal_mgnt_xmit(struct adapter *padapter, | |
@@ -275,7 +197,7 @@ s32 rtw_hal_mgnt_xmit(struct adapter *padapter, | |
s32 rtw_hal_init_xmit_priv(struct adapter *padapter); | |
-s32 rtw_hal_init_recv_priv(struct adapter *padapter); | |
+int rtw_hal_init_recv_priv(struct adapter *padapter); | |
void rtw_hal_free_recv_priv(struct adapter *padapter); | |
void rtw_hal_update_ra_mask(struct adapter *padapter, u32 mac_id, u8 level); | |
@@ -301,7 +223,6 @@ void rtw_hal_antdiv_rssi_compared(struct adapter *padapter, | |
void rtw_hal_sreset_init(struct adapter *padapter); | |
void rtw_hal_notch_filter(struct adapter *adapter, bool enable); | |
-void rtw_hal_reset_security_engine(struct adapter *adapter); | |
void indicate_wx_scan_complete_event(struct adapter *padapter); | |
u8 rtw_do_join(struct adapter *padapter); | |
diff --git b/drivers/staging/rtl8188eu/include/ieee80211.h a/drivers/staging/rtl8188eu/include/ieee80211.h | |
index f8f5eb6b7976..284db7d00f50 100644 | |
--- b/drivers/staging/rtl8188eu/include/ieee80211.h | |
+++ a/drivers/staging/rtl8188eu/include/ieee80211.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#ifndef __IEEE80211_H | |
#define __IEEE80211_H | |
@@ -244,7 +239,7 @@ struct ieee_param { | |
u16 capability; | |
int flags; | |
u8 tx_supp_rates[16]; | |
- struct rtw_ieee80211_ht_cap ht_cap; | |
+ struct ieee80211_ht_cap ht_cap; | |
} add_sta; | |
struct { | |
u8 reserved[2];/* for set max_num_sta */ | |
@@ -269,7 +264,7 @@ struct sta_data { | |
u32 sta_set; | |
u8 tx_supp_rates[16]; | |
u32 tx_supp_rates_len; | |
- struct rtw_ieee80211_ht_cap ht_cap; | |
+ struct ieee80211_ht_cap ht_cap; | |
u64 rx_pkts; | |
u64 rx_bytes; | |
u64 rx_drops; | |
@@ -296,62 +291,6 @@ struct sta_data { | |
/* this is stolen from ipw2200 driver */ | |
#define IEEE_IBSS_MAC_HASH_SIZE 31 | |
-struct ieee_ibss_seq { | |
- u8 mac[ETH_ALEN]; | |
- u16 seq_num; | |
- u16 frag_num; | |
- unsigned long packet_time; | |
- struct list_head list; | |
-}; | |
- | |
-struct rtw_ieee80211_hdr { | |
- __le16 frame_ctl; | |
- __le16 duration_id; | |
- u8 addr1[ETH_ALEN]; | |
- u8 addr2[ETH_ALEN]; | |
- u8 addr3[ETH_ALEN]; | |
- u16 seq_ctl; | |
- u8 addr4[ETH_ALEN]; | |
-} __packed; | |
- | |
-struct rtw_ieee80211_hdr_3addr { | |
- __le16 frame_ctl; | |
- __le16 duration_id; | |
- u8 addr1[ETH_ALEN]; | |
- u8 addr2[ETH_ALEN]; | |
- u8 addr3[ETH_ALEN]; | |
- u16 seq_ctl; | |
-} __packed; | |
- | |
-struct rtw_ieee80211_hdr_qos { | |
- __le16 frame_ctl; | |
- __le16 duration_id; | |
- u8 addr1[ETH_ALEN]; | |
- u8 addr2[ETH_ALEN]; | |
- u8 addr3[ETH_ALEN]; | |
- u16 seq_ctl; | |
- u8 addr4[ETH_ALEN]; | |
- u16 qc; | |
-} __packed; | |
- | |
-struct rtw_ieee80211_hdr_3addr_qos { | |
- __le16 frame_ctl; | |
- __le16 duration_id; | |
- u8 addr1[ETH_ALEN]; | |
- u8 addr2[ETH_ALEN]; | |
- u8 addr3[ETH_ALEN]; | |
- u16 seq_ctl; | |
- u16 qc; | |
-} __packed; | |
- | |
-struct eapol { | |
- u8 snap[6]; | |
- u16 ethertype; | |
- u8 version; | |
- u8 type; | |
- u16 length; | |
-} __packed; | |
- | |
enum eap_type { | |
EAP_PACKET = 0, | |
EAPOL_START, | |
@@ -367,68 +306,6 @@ enum eap_type { | |
#define MIN_FRAG_THRESHOLD 256U | |
#define MAX_FRAG_THRESHOLD 2346U | |
-/* Frame control field constants */ | |
-#define RTW_IEEE80211_FCTL_VERS 0x0003 | |
-#define RTW_IEEE80211_FCTL_FTYPE 0x000c | |
-#define RTW_IEEE80211_FCTL_STYPE 0x00f0 | |
-#define RTW_IEEE80211_FCTL_TODS 0x0100 | |
-#define RTW_IEEE80211_FCTL_FROMDS 0x0200 | |
-#define RTW_IEEE80211_FCTL_MOREFRAGS 0x0400 | |
-#define RTW_IEEE80211_FCTL_RETRY 0x0800 | |
-#define RTW_IEEE80211_FCTL_PM 0x1000 | |
-#define RTW_IEEE80211_FCTL_MOREDATA 0x2000 | |
-#define RTW_IEEE80211_FCTL_PROTECTED 0x4000 | |
-#define RTW_IEEE80211_FCTL_ORDER 0x8000 | |
-#define RTW_IEEE80211_FCTL_CTL_EXT 0x0f00 | |
- | |
-#define RTW_IEEE80211_FTYPE_MGMT 0x0000 | |
-#define RTW_IEEE80211_FTYPE_CTL 0x0004 | |
-#define RTW_IEEE80211_FTYPE_DATA 0x0008 | |
-#define RTW_IEEE80211_FTYPE_EXT 0x000c | |
- | |
-/* management */ | |
-#define RTW_IEEE80211_STYPE_ASSOC_REQ 0x0000 | |
-#define RTW_IEEE80211_STYPE_ASSOC_RESP 0x0010 | |
-#define RTW_IEEE80211_STYPE_REASSOC_REQ 0x0020 | |
-#define RTW_IEEE80211_STYPE_REASSOC_RESP 0x0030 | |
-#define RTW_IEEE80211_STYPE_PROBE_REQ 0x0040 | |
-#define RTW_IEEE80211_STYPE_PROBE_RESP 0x0050 | |
-#define RTW_IEEE80211_STYPE_BEACON 0x0080 | |
-#define RTW_IEEE80211_STYPE_ATIM 0x0090 | |
-#define RTW_IEEE80211_STYPE_DISASSOC 0x00A0 | |
-#define RTW_IEEE80211_STYPE_AUTH 0x00B0 | |
-#define RTW_IEEE80211_STYPE_DEAUTH 0x00C0 | |
-#define RTW_IEEE80211_STYPE_ACTION 0x00D0 | |
- | |
-/* control */ | |
-#define RTW_IEEE80211_STYPE_CTL_EXT 0x0060 | |
-#define RTW_IEEE80211_STYPE_BACK_REQ 0x0080 | |
-#define RTW_IEEE80211_STYPE_BACK 0x0090 | |
-#define RTW_IEEE80211_STYPE_PSPOLL 0x00A0 | |
-#define RTW_IEEE80211_STYPE_RTS 0x00B0 | |
-#define RTW_IEEE80211_STYPE_CTS 0x00C0 | |
-#define RTW_IEEE80211_STYPE_ACK 0x00D0 | |
-#define RTW_IEEE80211_STYPE_CFEND 0x00E0 | |
-#define RTW_IEEE80211_STYPE_CFENDACK 0x00F0 | |
- | |
-/* data */ | |
-#define RTW_IEEE80211_STYPE_DATA 0x0000 | |
-#define RTW_IEEE80211_STYPE_DATA_CFACK 0x0010 | |
-#define RTW_IEEE80211_STYPE_DATA_CFPOLL 0x0020 | |
-#define RTW_IEEE80211_STYPE_DATA_CFACKPOLL 0x0030 | |
-#define RTW_IEEE80211_STYPE_NULLFUNC 0x0040 | |
-#define RTW_IEEE80211_STYPE_CFACK 0x0050 | |
-#define RTW_IEEE80211_STYPE_CFPOLL 0x0060 | |
-#define RTW_IEEE80211_STYPE_CFACKPOLL 0x0070 | |
-#define RTW_IEEE80211_STYPE_QOS_DATA 0x0080 | |
-#define RTW_IEEE80211_STYPE_QOS_DATA_CFACK 0x0090 | |
-#define RTW_IEEE80211_STYPE_QOS_DATA_CFPOLL 0x00A0 | |
-#define RTW_IEEE80211_STYPE_QOS_DATA_CFACKPOLL 0x00B0 | |
-#define RTW_IEEE80211_STYPE_QOS_NULLFUNC 0x00C0 | |
-#define RTW_IEEE80211_STYPE_QOS_CFACK 0x00D0 | |
-#define RTW_IEEE80211_STYPE_QOS_CFPOLL 0x00E0 | |
-#define RTW_IEEE80211_STYPE_QOS_CFACKPOLL 0x00F0 | |
- | |
/* sequence control field */ | |
#define RTW_IEEE80211_SCTL_FRAG 0x000F | |
#define RTW_IEEE80211_SCTL_SEQ 0xFFF0 | |
@@ -469,9 +346,6 @@ struct ieee80211_snap_hdr { | |
#define SNAP_SIZE sizeof(struct ieee80211_snap_hdr) | |
-#define WLAN_FC_GET_TYPE(fc) ((fc) & RTW_IEEE80211_FCTL_FTYPE) | |
-#define WLAN_FC_GET_STYPE(fc) ((fc) & RTW_IEEE80211_FCTL_STYPE) | |
- | |
#define WLAN_QC_GET_TID(qc) ((qc) & 0x0f) | |
#define WLAN_GET_SEQ_FRAG(seq) ((seq) & RTW_IEEE80211_SCTL_FRAG) | |
@@ -484,14 +358,6 @@ struct ieee80211_snap_hdr { | |
#define IEEE80211_DATA_HDR3_LEN 24 | |
#define IEEE80211_DATA_HDR4_LEN 30 | |
- | |
-#define IEEE80211_STATMASK_SIGNAL (1<<0) | |
-#define IEEE80211_STATMASK_RSSI (1<<1) | |
-#define IEEE80211_STATMASK_NOISE (1<<2) | |
-#define IEEE80211_STATMASK_RATE (1<<3) | |
-#define IEEE80211_STATMASK_WEMASK 0x7 | |
- | |
- | |
#define IEEE80211_CCK_MODULATION (1<<0) | |
#define IEEE80211_OFDM_MODULATION (1<<1) | |
@@ -549,91 +415,17 @@ struct ieee80211_snap_hdr { | |
IEEE80211_OFDM_RATE_36MB_MASK | \ | |
IEEE80211_OFDM_RATE_48MB_MASK | \ | |
IEEE80211_OFDM_RATE_54MB_MASK) | |
-#define IEEE80211_DEFAULT_RATES_MASK \ | |
- (IEEE80211_OFDM_DEFAULT_RATES_MASK | \ | |
- IEEE80211_CCK_DEFAULT_RATES_MASK) | |
#define IEEE80211_NUM_OFDM_RATES 8 | |
#define IEEE80211_NUM_CCK_RATES 4 | |
#define IEEE80211_OFDM_SHIFT_MASK_A 4 | |
-/* NOTE: This data is for statistical purposes; not all hardware provides this | |
- * information for frames received. Not setting these will not cause | |
- * any adverse affects. */ | |
-struct ieee80211_rx_stats { | |
- /* u32 mac_time[2]; */ | |
- s8 rssi; | |
- u8 signal; | |
- u8 noise; | |
- u8 received_channel; | |
- u16 rate; /* in 100 kbps */ | |
- /* u8 control; */ | |
- u8 mask; | |
- u8 freq; | |
- u16 len; | |
-}; | |
- | |
/* IEEE 802.11 requires that STA supports concurrent reception of at least | |
* three fragmented frames. This define can be increased to support more | |
* concurrent frames, but it should be noted that each entry can consume about | |
* 2 kB of RAM and increasing cache size will slow down frame reassembly. */ | |
#define IEEE80211_FRAG_CACHE_LEN 4 | |
-struct ieee80211_frag_entry { | |
- u32 first_frag_time; | |
- uint seq; | |
- uint last_frag; | |
- uint qos; /* jackson */ | |
- uint tid; /* jackson */ | |
- struct sk_buff *skb; | |
- u8 src_addr[ETH_ALEN]; | |
- u8 dst_addr[ETH_ALEN]; | |
-}; | |
- | |
-struct ieee80211_stats { | |
- uint tx_unicast_frames; | |
- uint tx_multicast_frames; | |
- uint tx_fragments; | |
- uint tx_unicast_octets; | |
- uint tx_multicast_octets; | |
- uint tx_deferred_transmissions; | |
- uint tx_single_retry_frames; | |
- uint tx_multiple_retry_frames; | |
- uint tx_retry_limit_exceeded; | |
- uint tx_discards; | |
- uint rx_unicast_frames; | |
- uint rx_multicast_frames; | |
- uint rx_fragments; | |
- uint rx_unicast_octets; | |
- uint rx_multicast_octets; | |
- uint rx_fcs_errors; | |
- uint rx_discards_no_buffer; | |
- uint tx_discards_wrong_sa; | |
- uint rx_discards_undecryptable; | |
- uint rx_message_in_msg_fragments; | |
- uint rx_message_in_bad_msg_fragments; | |
-}; | |
- | |
-struct ieee80211_softmac_stats { | |
- uint rx_ass_ok; | |
- uint rx_ass_err; | |
- uint rx_probe_rq; | |
- uint tx_probe_rs; | |
- uint tx_beacons; | |
- uint rx_auth_rq; | |
- uint rx_auth_rs_ok; | |
- uint rx_auth_rs_err; | |
- uint tx_auth_rq; | |
- uint no_auth_rs; | |
- uint no_ass_rs; | |
- uint tx_ass_rq; | |
- uint rx_ass_rq; | |
- uint tx_probe_rq; | |
- uint reassoc; | |
- uint swtxstop; | |
- uint swtxawake; | |
-}; | |
- | |
#define SEC_KEY_1 (1<<0) | |
#define SEC_KEY_2 (1<<1) | |
#define SEC_KEY_3 (1<<2) | |
@@ -653,133 +445,6 @@ struct ieee80211_softmac_stats { | |
#define WEP_KEYS 4 | |
#define WEP_KEY_LEN 13 | |
-struct ieee80211_security { | |
- u16 active_key:2, | |
- enabled:1, | |
- auth_mode:2, | |
- auth_algo:4, | |
- unicast_uses_group:1; | |
- u8 key_sizes[WEP_KEYS]; | |
- u8 keys[WEP_KEYS][WEP_KEY_LEN]; | |
- u8 level; | |
- u16 flags; | |
-} __packed; | |
- | |
-/* | |
- | |
- 802.11 data frame from AP | |
- | |
- ,-------------------------------------------------------------------. | |
-Bytes | 2 | 2 | 6 | 6 | 6 | 2 | 0..2312 | 4 | | |
- |------|------|---------|---------|---------|------|---------|------| | |
-Desc. | ctrl | dura | DA/RA | TA | SA | Sequ | frame | fcs | | |
- | | tion | (BSSID) | | | ence | data | | | |
- `-------------------------------------------------------------------' | |
- | |
-Total: 28-2340 bytes | |
- | |
-*/ | |
- | |
-struct ieee80211_header_data { | |
- u16 frame_ctl; | |
- u16 duration_id; | |
- u8 addr1[6]; | |
- u8 addr2[6]; | |
- u8 addr3[6]; | |
- u16 seq_ctrl; | |
-}; | |
- | |
-#define BEACON_PROBE_SSID_ID_POSITION 12 | |
- | |
-/* Management Frame Information Element Types */ | |
-#define MFIE_TYPE_SSID 0 | |
-#define MFIE_TYPE_RATES 1 | |
-#define MFIE_TYPE_FH_SET 2 | |
-#define MFIE_TYPE_DS_SET 3 | |
-#define MFIE_TYPE_CF_SET 4 | |
-#define MFIE_TYPE_TIM 5 | |
-#define MFIE_TYPE_IBSS_SET 6 | |
-#define MFIE_TYPE_CHALLENGE 16 | |
-#define MFIE_TYPE_ERP 42 | |
-#define MFIE_TYPE_RSN 48 | |
-#define MFIE_TYPE_RATES_EX 50 | |
-#define MFIE_TYPE_GENERIC 221 | |
- | |
-struct ieee80211_info_element_hdr { | |
- u8 id; | |
- u8 len; | |
-} __packed; | |
- | |
-struct ieee80211_info_element { | |
- u8 id; | |
- u8 len; | |
- u8 data[0]; | |
-} __packed; | |
- | |
-/* | |
- * These are the data types that can make up management packets | |
- * | |
- u16 auth_algorithm; | |
- u16 auth_sequence; | |
- u16 beacon_interval; | |
- u16 capability; | |
- u8 current_ap[ETH_ALEN]; | |
- u16 listen_interval; | |
- struct { | |
- u16 association_id:14, reserved:2; | |
- } __packed; | |
- u32 time_stamp[2]; | |
- u16 reason; | |
- u16 status; | |
-*/ | |
- | |
-#define IEEE80211_DEFAULT_TX_ESSID "Penguin" | |
-#define IEEE80211_DEFAULT_BASIC_RATE 10 | |
- | |
-struct ieee80211_authentication { | |
- struct ieee80211_header_data header; | |
- u16 algorithm; | |
- u16 transaction; | |
- u16 status; | |
- /* struct ieee80211_info_element_hdr info_element; */ | |
-} __packed; | |
- | |
-struct ieee80211_probe_response { | |
- struct ieee80211_header_data header; | |
- u32 time_stamp[2]; | |
- u16 beacon_interval; | |
- u16 capability; | |
- struct ieee80211_info_element info_element; | |
-} __packed; | |
- | |
-struct ieee80211_probe_request { | |
- struct ieee80211_header_data header; | |
-} __packed; | |
- | |
-struct ieee80211_assoc_request_frame { | |
- struct rtw_ieee80211_hdr_3addr header; | |
- u16 capability; | |
- u16 listen_interval; | |
- struct ieee80211_info_element_hdr info_element; | |
-} __packed; | |
- | |
-struct ieee80211_assoc_response_frame { | |
- struct rtw_ieee80211_hdr_3addr header; | |
- u16 capability; | |
- u16 status; | |
- u16 aid; | |
-} __packed; | |
- | |
-struct ieee80211_txb { | |
- u8 nr_frags; | |
- u8 encrypted; | |
- u16 reserved; | |
- u16 frag_size; | |
- u16 payload_size; | |
- struct sk_buff *fragments[0]; | |
-}; | |
- | |
- | |
/* SWEEP TABLE ENTRIES NUMBER*/ | |
#define MAX_SWEEP_TAB_ENTRIES 42 | |
#define MAX_SWEEP_TAB_ENTRIES_PER_PACKET 7 | |
@@ -806,14 +471,6 @@ struct ieee80211_txb { | |
#define NETWORK_HAS_OFDM (1<<1) | |
#define NETWORK_HAS_CCK (1<<2) | |
-#define IEEE80211_DTIM_MBCAST 4 | |
-#define IEEE80211_DTIM_UCAST 2 | |
-#define IEEE80211_DTIM_VALID 1 | |
-#define IEEE80211_DTIM_INVALID 0 | |
- | |
-#define IEEE80211_PS_DISABLED 0 | |
-#define IEEE80211_PS_UNICAST IEEE80211_DTIM_UCAST | |
-#define IEEE80211_PS_MBCAST IEEE80211_DTIM_MBCAST | |
#define IW_ESSID_MAX_SIZE 32 | |
/* | |
join_res: | |
@@ -877,11 +534,6 @@ static inline int is_broadcast_mac_addr(const u8 *addr) | |
#define CFG_IEEE80211_RESERVE_FCS (1<<0) | |
#define CFG_IEEE80211_COMPUTE_FCS (1<<1) | |
-struct tx_pending { | |
- int frag; | |
- struct ieee80211_txb *txb; | |
-}; | |
- | |
#define MAXTID 16 | |
#define IEEE_A (1<<0) | |
@@ -889,10 +541,6 @@ struct tx_pending { | |
#define IEEE_G (1<<2) | |
#define IEEE_MODE_MASK (IEEE_A|IEEE_B|IEEE_G) | |
-/* Baron move to ieee80211.c */ | |
-int ieee80211_is_empty_essid(const char *essid, int essid_len); | |
-int ieee80211_get_hdrlen(u16 fc); | |
- | |
/* Action category code */ | |
enum rtw_ieee80211_category { | |
RTW_WLAN_CATEGORY_SPECTRUM_MGMT = 0, | |
@@ -1101,25 +749,13 @@ enum secondary_ch_offset { | |
SCA = 1, /* secondary channel above */ | |
SCB = 3, /* secondary channel below */ | |
}; | |
-u8 secondary_ch_offset_to_hal_ch_offset(u8 ch_offset); | |
-u8 hal_ch_offset_to_secondary_ch_offset(u8 ch_offset); | |
-u8 *rtw_set_ie_ch_switch(u8 *buf, u32 *buf_len, u8 ch_switch_mode, | |
- u8 new_ch, u8 ch_switch_cnt); | |
-u8 *rtw_set_ie_secondary_ch_offset(u8 *buf, u32 *buf_len, | |
- u8 secondary_ch_offset); | |
-u8 *rtw_set_ie_mesh_ch_switch_parm(u8 *buf, u32 *buf_len, u8 ttl, | |
- u8 flags, u16 reason, u16 precedence); | |
- | |
-u8 *rtw_get_ie(u8 *pbuf, int index, int *len, int limit); | |
-u8 *rtw_get_ie_ex(u8 *in_ie, uint in_len, u8 eid, u8 *oui, | |
- u8 oui_len, u8 *ie, uint *ielen); | |
-int rtw_ies_remove_ie(u8 *ies, uint *ies_len, uint offset, | |
- u8 eid, u8 *oui, u8 oui_len); | |
+ | |
+u8 *rtw_get_ie(u8 *pbuf, int index, uint *len, int limit); | |
void rtw_set_supported_rate(u8 *SupportedRates, uint mode); | |
-unsigned char *rtw_get_wpa_ie(unsigned char *pie, int *wpa_ie_len, int limit); | |
-unsigned char *rtw_get_wpa2_ie(unsigned char *pie, int *rsn_ie_len, int limit); | |
+unsigned char *rtw_get_wpa_ie(unsigned char *pie, uint *wpa_ie_len, int limit); | |
+unsigned char *rtw_get_wpa2_ie(unsigned char *pie, uint *rsn_ie_len, int limit); | |
int rtw_get_wpa_cipher_suite(u8 *s); | |
int rtw_get_wpa2_cipher_suite(u8 *s); | |
int rtw_get_wapi_ie(u8 *in_ie, uint in_len, u8 *wapi_ie, u16 *wapi_len); | |
@@ -1138,19 +774,6 @@ u8 *rtw_get_wps_attr(u8 *wps_ie, uint wps_ielen, u16 target_attr_id, | |
u8 *rtw_get_wps_attr_content(u8 *wps_ie, uint wps_ielen, u16 target_attr_id, | |
u8 *buf_content, uint *len_content); | |
-/** | |
- * for_each_ie - iterate over continuous IEs | |
- * @ie: | |
- * @buf: | |
- * @buf_len: | |
- */ | |
-#define for_each_ie(ie, buf, buf_len) \ | |
- for (ie = (void *)buf; (((u8 *)ie) - ((u8 *)buf) + 1) < buf_len; \ | |
- ie = (void *)(((u8 *)ie) + *(((u8 *)ie)+1) + 2)) | |
- | |
-void dump_ies(u8 *buf, u32 buf_len); | |
-void dump_wps_ie(u8 *ie, u32 ie_len); | |
- | |
uint rtw_get_rateset_len(u8 *rateset); | |
struct registry_priv; | |
@@ -1172,8 +795,4 @@ void rtw_macaddr_cfg(u8 *mac_addr); | |
u16 rtw_mcs_rate(u8 rf_type, u8 bw_40MHz, u8 short_GI_20, u8 short_GI_40, | |
unsigned char *MCS_rate); | |
-int rtw_action_frame_parse(const u8 *frame, u32 frame_len, u8 *category, | |
- u8 *action); | |
-const char *action_public_str(u8 action); | |
- | |
#endif /* IEEE80211_H */ | |
diff --git b/drivers/staging/rtl8188eu/include/ieee80211_ext.h a/drivers/staging/rtl8188eu/include/ieee80211_ext.h | |
deleted file mode 100644 | |
index 15e53d380ad0..000000000000 | |
--- b/drivers/staging/rtl8188eu/include/ieee80211_ext.h | |
+++ /dev/null | |
@@ -1,290 +0,0 @@ | |
-/****************************************************************************** | |
- * | |
- * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved. | |
- * | |
- * This program is free software; you can redistribute it and/or modify it | |
- * under the terms of version 2 of the GNU General Public License as | |
- * published by the Free Software Foundation. | |
- * | |
- * This program is distributed in the hope that it will be useful, but WITHOUT | |
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
- * more details. | |
- * | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
- ******************************************************************************/ | |
-#ifndef __IEEE80211_EXT_H | |
-#define __IEEE80211_EXT_H | |
- | |
-#include <osdep_service.h> | |
-#include <drv_types.h> | |
- | |
-#define WMM_OUI_TYPE 2 | |
-#define WMM_OUI_SUBTYPE_INFORMATION_ELEMENT 0 | |
-#define WMM_OUI_SUBTYPE_PARAMETER_ELEMENT 1 | |
-#define WMM_OUI_SUBTYPE_TSPEC_ELEMENT 2 | |
-#define WMM_VERSION 1 | |
- | |
-#define WPA_PROTO_WPA BIT(0) | |
-#define WPA_PROTO_RSN BIT(1) | |
- | |
-#define WPA_KEY_MGMT_IEEE8021X BIT(0) | |
-#define WPA_KEY_MGMT_PSK BIT(1) | |
-#define WPA_KEY_MGMT_NONE BIT(2) | |
-#define WPA_KEY_MGMT_IEEE8021X_NO_WPA BIT(3) | |
-#define WPA_KEY_MGMT_WPA_NONE BIT(4) | |
- | |
- | |
-#define WPA_CAPABILITY_PREAUTH BIT(0) | |
-#define WPA_CAPABILITY_MGMT_FRAME_PROTECTION BIT(6) | |
-#define WPA_CAPABILITY_PEERKEY_ENABLED BIT(9) | |
- | |
- | |
-#define PMKID_LEN 16 | |
- | |
- | |
-struct wpa_ie_hdr { | |
- u8 elem_id; | |
- u8 len; | |
- u8 oui[4]; /* 24-bit OUI followed by 8-bit OUI type */ | |
- u8 version[2]; /* little endian */ | |
-} __packed; | |
- | |
-struct rsn_ie_hdr { | |
- u8 elem_id; /* WLAN_EID_RSN */ | |
- u8 len; | |
- u8 version[2]; /* little endian */ | |
-} __packed; | |
- | |
-struct wme_ac_parameter { | |
-#if defined(__LITTLE_ENDIAN) | |
- /* byte 1 */ | |
- u8 aifsn:4, | |
- acm:1, | |
- aci:2, | |
- reserved:1; | |
- | |
- /* byte 2 */ | |
- u8 eCWmin:4, | |
- eCWmax:4; | |
-#elif defined(__BIG_ENDIAN) | |
- /* byte 1 */ | |
- u8 reserved:1, | |
- aci:2, | |
- acm:1, | |
- aifsn:4; | |
- | |
- /* byte 2 */ | |
- u8 eCWmax:4, | |
- eCWmin:4; | |
-#else | |
-#error "Please fix <endian.h>" | |
-#endif | |
- | |
- /* bytes 3 & 4 */ | |
- u16 txopLimit; | |
-} __packed; | |
- | |
-struct wme_parameter_element { | |
- /* required fields for WME version 1 */ | |
- u8 oui[3]; | |
- u8 oui_type; | |
- u8 oui_subtype; | |
- u8 version; | |
- u8 acInfo; | |
- u8 reserved; | |
- struct wme_ac_parameter ac[4]; | |
- | |
-} __packed; | |
- | |
-#define WPA_PUT_LE16(a, val) \ | |
- do { \ | |
- (a)[1] = ((u16)(val)) >> 8; \ | |
- (a)[0] = ((u16)(val)) & 0xff; \ | |
- } while (0) | |
- | |
-#define WPA_PUT_BE32(a, val) \ | |
- do { \ | |
- (a)[0] = (u8)((((u32) (val)) >> 24) & 0xff); \ | |
- (a)[1] = (u8)((((u32) (val)) >> 16) & 0xff); \ | |
- (a)[2] = (u8)((((u32) (val)) >> 8) & 0xff); \ | |
- (a)[3] = (u8)(((u32) (val)) & 0xff); \ | |
- } while (0) | |
- | |
-#define WPA_PUT_LE32(a, val) \ | |
- do { \ | |
- (a)[3] = (u8)((((u32) (val)) >> 24) & 0xff); \ | |
- (a)[2] = (u8)((((u32) (val)) >> 16) & 0xff); \ | |
- (a)[1] = (u8)((((u32) (val)) >> 8) & 0xff); \ | |
- (a)[0] = (u8)(((u32) (val)) & 0xff); \ | |
- } while (0) | |
- | |
-#define RSN_SELECTOR_PUT(a, val) WPA_PUT_BE32((u8 *)(a), (val)) | |
- | |
-/* Action category code */ | |
-enum ieee80211_category { | |
- WLAN_CATEGORY_SPECTRUM_MGMT = 0, | |
- WLAN_CATEGORY_QOS = 1, | |
- WLAN_CATEGORY_DLS = 2, | |
- WLAN_CATEGORY_BACK = 3, | |
- WLAN_CATEGORY_HT = 7, | |
- WLAN_CATEGORY_WMM = 17, | |
-}; | |
- | |
-/* SPECTRUM_MGMT action code */ | |
-enum ieee80211_spectrum_mgmt_actioncode { | |
- WLAN_ACTION_SPCT_MSR_REQ = 0, | |
- WLAN_ACTION_SPCT_MSR_RPRT = 1, | |
- WLAN_ACTION_SPCT_TPC_REQ = 2, | |
- WLAN_ACTION_SPCT_TPC_RPRT = 3, | |
- WLAN_ACTION_SPCT_CHL_SWITCH = 4, | |
- WLAN_ACTION_SPCT_EXT_CHL_SWITCH = 5, | |
-}; | |
- | |
-/* BACK action code */ | |
-enum ieee80211_back_actioncode { | |
- WLAN_ACTION_ADDBA_REQ = 0, | |
- WLAN_ACTION_ADDBA_RESP = 1, | |
- WLAN_ACTION_DELBA = 2, | |
-}; | |
- | |
-/* HT features action code */ | |
-enum ieee80211_ht_actioncode { | |
- WLAN_ACTION_NOTIFY_CH_WIDTH = 0, | |
- WLAN_ACTION_SM_PS = 1, | |
- WLAN_ACTION_PSPM = 2, | |
- WLAN_ACTION_PCO_PHASE = 3, | |
- WLAN_ACTION_MIMO_CSI_MX = 4, | |
- WLAN_ACTION_MIMO_NONCP_BF = 5, | |
- WLAN_ACTION_MIMP_CP_BF = 6, | |
- WLAN_ACTION_ASEL_INDICATES_FB = 7, | |
- WLAN_ACTION_HI_INFO_EXCHG = 8, | |
-}; | |
- | |
-/* BACK (block-ack) parties */ | |
-enum ieee80211_back_parties { | |
- WLAN_BACK_RECIPIENT = 0, | |
- WLAN_BACK_INITIATOR = 1, | |
- WLAN_BACK_TIMER = 2, | |
-}; | |
- | |
-struct ieee80211_mgmt { | |
- u16 frame_control; | |
- u16 duration; | |
- u8 da[6]; | |
- u8 sa[6]; | |
- u8 bssid[6]; | |
- u16 seq_ctrl; | |
- union { | |
- struct { | |
- u16 auth_alg; | |
- u16 auth_transaction; | |
- u16 status_code; | |
- /* possibly followed by Challenge text */ | |
- u8 variable[0]; | |
- } __packed auth; | |
- struct { | |
- u16 reason_code; | |
- } __packed deauth; | |
- struct { | |
- u16 capab_info; | |
- u16 listen_interval; | |
- /* followed by SSID and Supported rates */ | |
- u8 variable[0]; | |
- } __packed assoc_req; | |
- struct { | |
- u16 capab_info; | |
- u16 status_code; | |
- u16 aid; | |
- /* followed by Supported rates */ | |
- u8 variable[0]; | |
- } __packed assoc_resp, reassoc_resp; | |
- struct { | |
- u16 capab_info; | |
- u16 listen_interval; | |
- u8 current_ap[6]; | |
- /* followed by SSID and Supported rates */ | |
- u8 variable[0]; | |
- } __packed reassoc_req; | |
- struct { | |
- u16 reason_code; | |
- } __packed disassoc; | |
- struct { | |
- __le64 timestamp; | |
- u16 beacon_int; | |
- u16 capab_info; | |
- /* followed by some of SSID, Supported rates, | |
- * FH Params, DS Params, CF Params, IBSS Params, TIM */ | |
- u8 variable[0]; | |
- } __packed beacon; | |
- struct { | |
- /* only variable items: SSID, Supported rates */ | |
- u8 variable[0]; | |
- } __packed probe_req; | |
- struct { | |
- __le64 timestamp; | |
- u16 beacon_int; | |
- u16 capab_info; | |
- /* followed by some of SSID, Supported rates, | |
- * FH Params, DS Params, CF Params, IBSS Params */ | |
- u8 variable[0]; | |
- } __packed probe_resp; | |
- struct { | |
- u8 category; | |
- union { | |
- struct { | |
- u8 action_code; | |
- u8 dialog_token; | |
- u8 status_code; | |
- u8 variable[0]; | |
- } __packed wme_action; | |
- struct { | |
- u8 action_code; | |
- u8 dialog_token; | |
- u16 capab; | |
- u16 timeout; | |
- u16 start_seq_num; | |
- } __packed addba_req; | |
- struct { | |
- u8 action_code; | |
- u8 dialog_token; | |
- u16 status; | |
- u16 capab; | |
- u16 timeout; | |
- } __packed addba_resp; | |
- struct { | |
- u8 action_code; | |
- u16 params; | |
- u16 reason_code; | |
- } __packed delba; | |
- structi { | |
- u8 action_code; | |
- /* capab_info for open and confirm, | |
- * reason for close | |
- */ | |
- u16 aux; | |
- /* Followed in plink_confirm by status | |
- * code, AID and supported rates, | |
- * and directly by supported rates in | |
- * plink_open and plink_close | |
- */ | |
- u8 variable[0]; | |
- } __packed plink_action; | |
- struct{ | |
- u8 action_code; | |
- u8 variable[0]; | |
- } __packed mesh_action; | |
- } __packed u; | |
- } __packed action; | |
- } __packed u; | |
-} __packed; | |
- | |
-/* mgmt header + 1 byte category code */ | |
-#define IEEE80211_MIN_ACTION_SIZE \ | |
- FIELD_OFFSET(struct ieee80211_mgmt, u.action.u) | |
- | |
-#endif | |
diff --git b/drivers/staging/rtl8188eu/include/mlme_osdep.h a/drivers/staging/rtl8188eu/include/mlme_osdep.h | |
index ae1722c67032..5a35b0866db6 100644 | |
--- b/drivers/staging/rtl8188eu/include/mlme_osdep.h | |
+++ a/drivers/staging/rtl8188eu/include/mlme_osdep.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#ifndef __MLME_OSDEP_H_ | |
#define __MLME_OSDEP_H_ | |
diff --git b/drivers/staging/rtl8188eu/include/mp_custom_oid.h a/drivers/staging/rtl8188eu/include/mp_custom_oid.h | |
index 6fa52cf99c4e..1a06ee6ad460 100644 | |
--- b/drivers/staging/rtl8188eu/include/mp_custom_oid.h | |
+++ a/drivers/staging/rtl8188eu/include/mp_custom_oid.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#ifndef __CUSTOM_OID_H | |
#define __CUSTOM_OID_H | |
diff --git b/drivers/staging/rtl8188eu/include/odm.h a/drivers/staging/rtl8188eu/include/odm.h | |
index bc970caf7eda..4fb3bb07ceaa 100644 | |
--- b/drivers/staging/rtl8188eu/include/odm.h | |
+++ a/drivers/staging/rtl8188eu/include/odm.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
@@ -85,11 +80,6 @@ | |
#define DM_DIG_FA_TH2_LPS 30 /* 30 lps */ | |
#define RSSI_OFFSET_DIG 0x05; | |
-/* ANT Test */ | |
-#define ANTTESTALL 0x00 /* Ant A or B will be Testing */ | |
-#define ANTTESTA 0x01 /* Ant A will be Testing */ | |
-#define ANTTESTB 0x02 /* Ant B will be testing */ | |
- | |
struct rtw_dig { | |
u8 Dig_Enable_Flag; | |
u8 Dig_Ext_Port_Stage; | |
@@ -320,22 +310,6 @@ enum odm_ability { | |
ODM_PSD2AFH = 0x00000800 | |
}; | |
-/* 2011/20/20 MH For MP driver RT_WLAN_STA = struct sta_info */ | |
-/* Please declare below ODM relative info in your STA info structure. */ | |
- | |
-struct odm_sta_info { | |
- /* Driver Write */ | |
- bool bUsed; /* record the sta status link or not? */ | |
- u8 IOTPeer; /* Enum value. HT_IOT_PEER_E */ | |
- | |
- /* ODM Write */ | |
- /* 1 PHY_STATUS_INFO */ | |
- u8 RSSI_Path[4]; /* */ | |
- u8 RSSI_Ave; | |
- u8 RXEVM[4]; | |
- u8 RXSNR[4]; | |
-}; | |
- | |
/* 2011/10/20 MH Define Common info enum for all team. */ | |
enum odm_common_info_def { | |
@@ -348,7 +322,6 @@ enum odm_common_info_def { | |
ODM_CMNINFO_MP_TEST_CHIP, | |
ODM_CMNINFO_IC_TYPE, /* ODM_IC_TYPE_E */ | |
ODM_CMNINFO_CUT_VER, /* ODM_CUT_VERSION_E */ | |
- ODM_CMNINFO_FAB_VER, /* ODM_FAB_E */ | |
ODM_CMNINFO_RF_TYPE, /* ODM_RF_PATH_E or ODM_RF_TYPE_E? */ | |
ODM_CMNINFO_BOARD_TYPE, /* ODM_BOARD_TYPE_E */ | |
ODM_CMNINFO_EXT_LNA, /* true */ | |
@@ -451,12 +424,6 @@ enum odm_cut_version { | |
ODM_CUT_TEST = 7, | |
}; | |
-/* ODM_CMNINFO_FAB_VER */ | |
-enum odm_fab_Version { | |
- ODM_TSMC = 0, | |
- ODM_UMC = 1, | |
-}; | |
- | |
/* ODM_CMNINFO_RF_TYPE */ | |
/* For example 1T2R (A+AB = BIT0|BIT4|BIT5) */ | |
enum odm_rf_path { | |
@@ -618,7 +585,6 @@ struct odm_rf_cal { | |
s32 RegEBC; | |
u8 TXPowercount; | |
- bool bTXPowerTrackingInit; | |
bool bTXPowerTracking; | |
u8 TxPowerTrackControl; /* for mp mode, turn off txpwrtracking | |
* as default */ | |
@@ -752,10 +718,6 @@ struct odm_dm_struct { | |
u32 SupportICType; | |
/* Cut Version TestChip/A-cut/B-cut... = 0/1/2/3/... */ | |
u8 CutVersion; | |
- /* Fab Version TSMC/UMC = 0/1 */ | |
- u8 FabVersion; | |
- /* RF Type 4T4R/3T3R/2T2R/1T2R/1T1R/... */ | |
- u8 RFType; | |
/* Board Type Normal/HighPower/MiniCard/SLIM/Combo/. = 0/1/2/3/4/. */ | |
u8 BoardType; | |
/* with external LNA NO/Yes = 0/1 */ | |
diff --git b/drivers/staging/rtl8188eu/include/odm_HWConfig.h a/drivers/staging/rtl8188eu/include/odm_HWConfig.h | |
index 62a00498e473..da7325d599c6 100644 | |
--- b/drivers/staging/rtl8188eu/include/odm_HWConfig.h | |
+++ a/drivers/staging/rtl8188eu/include/odm_HWConfig.h | |
@@ -11,10 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
* | |
******************************************************************************/ | |
@@ -69,7 +65,7 @@ struct phy_rx_agc_info { | |
}; | |
struct phy_status_rpt { | |
- struct phy_rx_agc_info path_agc[3]; | |
+ struct phy_rx_agc_info path_agc[RF_PATH_MAX]; | |
u8 ch_corr[2]; | |
u8 cck_sig_qual_ofdm_pwdb_all; | |
u8 cck_agc_rpt_ofdm_cfosho_a; | |
diff --git b/drivers/staging/rtl8188eu/include/odm_RTL8188E.h a/drivers/staging/rtl8188eu/include/odm_RTL8188E.h | |
index 14dce6c4b1bc..72b4db67ac33 100644 | |
--- b/drivers/staging/rtl8188eu/include/odm_RTL8188E.h | |
+++ a/drivers/staging/rtl8188eu/include/odm_RTL8188E.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#ifndef __ODM_RTL8188E_H__ | |
#define __ODM_RTL8188E_H__ | |
diff --git b/drivers/staging/rtl8188eu/include/odm_RegDefine11N.h a/drivers/staging/rtl8188eu/include/odm_RegDefine11N.h | |
index 5a61f902bc1b..f46f7d43ce00 100644 | |
--- b/drivers/staging/rtl8188eu/include/odm_RegDefine11N.h | |
+++ a/drivers/staging/rtl8188eu/include/odm_RegDefine11N.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#ifndef __ODM_REGDEFINE11N_H__ | |
@@ -46,8 +41,8 @@ | |
#define ODM_REG_TX_ANT_CTRL_11N 0x80C | |
#define ODM_REG_BB_PWR_SAV5_11N 0x818 | |
#define ODM_REG_CCK_RPT_FORMAT_11N 0x824 | |
-#define ODM_REG_RX_DEFUALT_A_11N 0x858 | |
-#define ODM_REG_RX_DEFUALT_B_11N 0x85A | |
+#define ODM_REG_RX_DEFAULT_A_11N 0x858 | |
+#define ODM_REG_RX_DEFAULT_B_11N 0x85A | |
#define ODM_REG_BB_PWR_SAV3_11N 0x85C | |
#define ODM_REG_ANTSEL_CTRL_11N 0x860 | |
#define ODM_REG_RX_ANT_CTRL_11N 0x864 | |
diff --git b/drivers/staging/rtl8188eu/include/odm_debug.h a/drivers/staging/rtl8188eu/include/odm_debug.h | |
index e9390963d6ff..687ff3e9c09a 100644 | |
--- b/drivers/staging/rtl8188eu/include/odm_debug.h | |
+++ a/drivers/staging/rtl8188eu/include/odm_debug.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
@@ -42,7 +37,7 @@ | |
/* resource allocation failed, unexpected HW behavior, HW BUG and so on. */ | |
#define ODM_DBG_SERIOUS 2 | |
-/* Abnormal, rare, or unexpeted cases. */ | |
+/* Abnormal, rare, or unexpected cases. */ | |
/* For example, IRP/Packet/OID canceled, device suprisely unremoved and so on. */ | |
#define ODM_DBG_WARNING 3 | |
diff --git b/drivers/staging/rtl8188eu/include/odm_precomp.h a/drivers/staging/rtl8188eu/include/odm_precomp.h | |
index 0f236da09277..9e5fe1777e6c 100644 | |
--- b/drivers/staging/rtl8188eu/include/odm_precomp.h | |
+++ a/drivers/staging/rtl8188eu/include/odm_precomp.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#ifndef __ODM_PRECOMP_H__ | |
diff --git b/drivers/staging/rtl8188eu/include/odm_reg.h a/drivers/staging/rtl8188eu/include/odm_reg.h | |
index 7f10b695cf9d..3405a44a19ed 100644 | |
--- b/drivers/staging/rtl8188eu/include/odm_reg.h | |
+++ a/drivers/staging/rtl8188eu/include/odm_reg.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
/* */ | |
/* File Name: odm_reg.h */ | |
diff --git b/drivers/staging/rtl8188eu/include/odm_types.h a/drivers/staging/rtl8188eu/include/odm_types.h | |
index c1355b959c55..3474a9c72640 100644 | |
--- b/drivers/staging/rtl8188eu/include/odm_types.h | |
+++ a/drivers/staging/rtl8188eu/include/odm_types.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#ifndef __ODM_TYPES_H__ | |
#define __ODM_TYPES_H__ | |
diff --git b/drivers/staging/rtl8188eu/include/osdep_intf.h a/drivers/staging/rtl8188eu/include/osdep_intf.h | |
index 1521744d626c..97d3d8504184 100644 | |
--- b/drivers/staging/rtl8188eu/include/osdep_intf.h | |
+++ a/drivers/staging/rtl8188eu/include/osdep_intf.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#ifndef __OSDEP_INTF_H_ | |
@@ -39,9 +34,9 @@ int rtw_ioctl(struct net_device *dev, struct ifreq *rq, int cmd); | |
int rtw_init_netdev_name(struct net_device *pnetdev, const char *ifname); | |
struct net_device *rtw_init_netdev(struct adapter *padapter); | |
u16 rtw_recv_select_queue(struct sk_buff *skb); | |
-void rtw_proc_remove_one(struct net_device *dev); | |
-int pm_netdev_open(struct net_device *pnetdev, u8 bnormal); | |
+int netdev_open(struct net_device *pnetdev); | |
+int ips_netdrv_open(struct adapter *padapter); | |
void rtw_ips_dev_unload(struct adapter *padapter); | |
int rtw_ips_pwr_up(struct adapter *padapter); | |
void rtw_ips_pwr_down(struct adapter *padapter); | |
diff --git b/drivers/staging/rtl8188eu/include/osdep_service.h a/drivers/staging/rtl8188eu/include/osdep_service.h | |
index e24fe8cc3d0b..9e390648d93e 100644 | |
--- b/drivers/staging/rtl8188eu/include/osdep_service.h | |
+++ a/drivers/staging/rtl8188eu/include/osdep_service.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#ifndef __OSDEP_SERVICE_H_ | |
#define __OSDEP_SERVICE_H_ | |
@@ -40,16 +35,15 @@ | |
#include <asm/byteorder.h> | |
#include <linux/atomic.h> | |
#include <linux/io.h> | |
-#include <linux/semaphore.h> | |
+#include <linux/mutex.h> | |
#include <linux/sem.h> | |
-#include <linux/sched.h> | |
+#include <linux/sched/signal.h> | |
#include <linux/etherdevice.h> | |
#include <linux/wireless.h> | |
#include <net/iw_handler.h> | |
#include <linux/if_arp.h> | |
#include <linux/rtnetlink.h> | |
#include <linux/delay.h> | |
-#include <linux/proc_fs.h> /* Necessary because we use the proc fs */ | |
#include <linux/interrupt.h> /* for struct tasklet_struct */ | |
#include <linux/ip.h> | |
#include <linux/kthread.h> | |
@@ -75,35 +69,22 @@ static inline int rtw_netif_queue_stopped(struct net_device *pnetdev) | |
netif_tx_queue_stopped(netdev_get_tx_queue(pnetdev, 3)); | |
} | |
-int RTW_STATUS_CODE(int error_code); | |
- | |
-#define rtw_update_mem_stat(flag, sz) do {} while (0) | |
u8 *_rtw_malloc(u32 sz); | |
#define rtw_malloc(sz) _rtw_malloc((sz)) | |
void *rtw_malloc2d(int h, int w, int size); | |
-u32 _rtw_down_sema(struct semaphore *sema); | |
- | |
void _rtw_init_queue(struct __queue *pqueue); | |
-s32 rtw_get_passing_time_ms(u32 start); | |
- | |
struct rtw_netdev_priv_indicator { | |
void *priv; | |
- u32 sizeof_priv; | |
}; | |
-struct net_device *rtw_alloc_etherdev_with_old_priv(int sizeof_priv, | |
- void *old_priv); | |
+struct net_device *rtw_alloc_etherdev_with_old_priv(void *old_priv); | |
#define rtw_netdev_priv(netdev) \ | |
(((struct rtw_netdev_priv_indicator *)netdev_priv(netdev))->priv) | |
void rtw_free_netdev(struct net_device *netdev); | |
-#define NDEV_FMT "%s" | |
-#define NDEV_ARG(ndev) ndev->name | |
-#define ADPT_FMT "%s" | |
-#define ADPT_ARG(adapter) adapter->pnetdev->name | |
#define FUNC_NDEV_FMT "%s(%s)" | |
#define FUNC_NDEV_ARG(ndev) __func__, ndev->name | |
#define FUNC_ADPT_FMT "%s(%s)" | |
diff --git b/drivers/staging/rtl8188eu/include/phy.h a/drivers/staging/rtl8188eu/include/phy.h | |
index 9a9ab82a8ed3..e99ac3910787 100644 | |
--- b/drivers/staging/rtl8188eu/include/phy.h | |
+++ a/drivers/staging/rtl8188eu/include/phy.h | |
@@ -1,3 +1,4 @@ | |
+/* SPDX-License-Identifier: GPL-2.0 */ | |
#include <odm.h> | |
#define IQK_DELAY_TIME_88E 10 | |
@@ -11,17 +12,13 @@ bool rtl88eu_phy_bb_config(struct adapter *adapt); | |
u32 phy_query_bb_reg(struct adapter *adapt, u32 regaddr, u32 bitmask); | |
void phy_set_bb_reg(struct adapter *adapt, u32 regaddr, u32 bitmask, u32 data); | |
-u32 phy_query_rf_reg(struct adapter *adapt, enum rf_radio_path rf_path, | |
+u32 rtw_hal_read_rfreg(struct adapter *adapt, enum rf_radio_path rf_path, | |
u32 reg_addr, u32 bit_mask); | |
void phy_set_rf_reg(struct adapter *adapt, enum rf_radio_path rf_path, | |
u32 reg_addr, u32 bit_mask, u32 data); | |
void phy_set_tx_power_level(struct adapter *adapt, u8 channel); | |
-void phy_set_bw_mode(struct adapter *adapt, enum ht_channel_width bandwidth, | |
- unsigned char offset); | |
-void phy_sw_chnl(struct adapter *adapt, u8 channel); | |
- | |
void rtl88eu_dm_txpower_track_adjust(struct odm_dm_struct *dm_odm, | |
u8 type, u8 *dir, u32 *out_write); | |
diff --git b/drivers/staging/rtl8188eu/include/pwrseq.h a/drivers/staging/rtl8188eu/include/pwrseq.h | |
index 8c876c6c7a4f..addf90b60ce9 100644 | |
--- b/drivers/staging/rtl8188eu/include/pwrseq.h | |
+++ a/drivers/staging/rtl8188eu/include/pwrseq.h | |
@@ -12,11 +12,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#ifndef __HAL8188EPWRSEQ_H__ | |
@@ -34,7 +29,7 @@ | |
4: LPS--Low Power State | |
5: SUS--Suspend | |
- The transision from different states are defined below | |
+ The transition from different states are defined below | |
TRANS_CARDEMU_TO_ACT | |
TRANS_ACT_TO_CARDEMU | |
TRANS_CARDEMU_TO_SUS | |
@@ -60,254 +55,172 @@ | |
#define RTL8188E_TRANS_CARDEMU_TO_ACT \ | |
/* format | |
- * { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value | |
+ * { offset, cut_msk, cmd, msk, value | |
* }, | |
* comment here | |
*/ \ | |
- {0x0006, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ | |
- PWR_BASEADDR_MAC, PWR_CMD_POLLING, BIT(1), BIT(1)}, \ | |
+ {0x0006, PWR_CUT_ALL_MSK, PWR_CMD_POLLING, BIT(1), BIT(1)}, \ | |
/* wait till 0x04[17] = 1 power ready*/ \ | |
- {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ | |
- PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(0) | BIT(1), 0}, \ | |
+ {0x0002, PWR_CUT_ALL_MSK, PWR_CMD_WRITE, BIT(0) | BIT(1), 0}, \ | |
/* 0x02[1:0] = 0 reset BB*/ \ | |
- {0x0026, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ | |
- PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(7), BIT(7)}, \ | |
+ {0x0026, PWR_CUT_ALL_MSK, PWR_CMD_WRITE, BIT(7), BIT(7)}, \ | |
/*0x24[23] = 2b'01 schmit trigger */ \ | |
- {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ | |
- PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(7), 0}, \ | |
+ {0x0005, PWR_CUT_ALL_MSK, PWR_CMD_WRITE, BIT(7), 0}, \ | |
/* 0x04[15] = 0 disable HWPDN (control by DRV)*/ \ | |
- {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ | |
- PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4) | BIT(3), 0}, \ | |
+ {0x0005, PWR_CUT_ALL_MSK, PWR_CMD_WRITE, BIT(4) | BIT(3), 0}, \ | |
/*0x04[12:11] = 2b'00 disable WL suspend*/ \ | |
- {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ | |
- PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(0), BIT(0)}, \ | |
+ {0x0005, PWR_CUT_ALL_MSK, PWR_CMD_WRITE, BIT(0), BIT(0)}, \ | |
/*0x04[8] = 1 polling until return 0*/ \ | |
- {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ | |
- PWR_BASEADDR_MAC, PWR_CMD_POLLING, BIT(0), 0}, \ | |
+ {0x0005, PWR_CUT_ALL_MSK, PWR_CMD_POLLING, BIT(0), 0}, \ | |
/*wait till 0x04[8] = 0*/ \ | |
- {0x0023, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ | |
- PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4), 0}, \ | |
- /*LDO normal mode*/ \ | |
- {0x0074, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ | |
- PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4), BIT(4)}, \ | |
- /*SDIO Driving*/ | |
+ {0x0023, PWR_CUT_ALL_MSK, PWR_CMD_WRITE, BIT(4), 0}, \ | |
+ /*LDO normal mode*/ | |
#define RTL8188E_TRANS_ACT_TO_CARDEMU \ | |
/* format | |
- * { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value | |
+ * { offset, cut_msk, cmd, msk, value | |
* }, | |
* comments here | |
*/ \ | |
- {0x001F, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ | |
- PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0}, \ | |
+ {0x001F, PWR_CUT_ALL_MSK, PWR_CMD_WRITE, 0xFF, 0}, \ | |
/*0x1F[7:0] = 0 turn off RF*/ \ | |
- {0x0023, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ | |
- PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4), BIT(4)}, \ | |
+ {0x0023, PWR_CUT_ALL_MSK, PWR_CMD_WRITE, BIT(4), BIT(4)}, \ | |
/*LDO Sleep mode*/ \ | |
- {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ | |
- PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(1), BIT(1)}, \ | |
+ {0x0005, PWR_CUT_ALL_MSK, PWR_CMD_WRITE, BIT(1), BIT(1)}, \ | |
/*0x04[9] = 1 turn off MAC by HW state machine*/ \ | |
- {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ | |
- PWR_BASEADDR_MAC, PWR_CMD_POLLING, BIT(1), 0}, \ | |
+ {0x0005, PWR_CUT_ALL_MSK, PWR_CMD_POLLING, BIT(1), 0}, \ | |
/*wait till 0x04[9] = 0 polling until return 0 to disable*/ | |
#define RTL8188E_TRANS_CARDEMU_TO_SUS \ | |
/* format | |
- * { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, | |
+ * { offset, cut_msk, cmd, msk, | |
* value }, | |
* comments here | |
*/ \ | |
- {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \ | |
- PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK, PWR_BASEADDR_MAC, \ | |
- PWR_CMD_WRITE, BIT(3) | BIT(4), BIT(3)}, \ | |
+ {0x0005, PWR_CUT_ALL_MSK, PWR_CMD_WRITE, BIT(3) | BIT(4), BIT(3)}, \ | |
/* 0x04[12:11] = 2b'01enable WL suspend */ \ | |
- {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK, \ | |
- PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(3) | BIT(4), BIT(3) | BIT(4)}, \ | |
- /* 0x04[12:11] = 2b'11enable WL suspend for PCIe */ \ | |
- {0x0007, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \ | |
- PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK, PWR_BASEADDR_MAC, \ | |
- PWR_CMD_WRITE, 0xFF, BIT(7)}, \ | |
+ {0x0007, PWR_CUT_ALL_MSK, PWR_CMD_WRITE, 0xFF, BIT(7)}, \ | |
/* 0x04[31:30] = 2b'10 enable enable bandgap mbias in suspend */\ | |
- {0x0041, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \ | |
- PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK, PWR_BASEADDR_MAC, \ | |
- PWR_CMD_WRITE, BIT(4), 0}, \ | |
+ {0x0041, PWR_CUT_ALL_MSK, PWR_CMD_WRITE, BIT(4), 0}, \ | |
/*Clear SIC_EN register 0x40[12] = 1'b0 */ \ | |
- {0xfe10, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \ | |
- PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK, PWR_BASEADDR_MAC, \ | |
- PWR_CMD_WRITE, BIT(4), BIT(4)}, \ | |
- /*Set USB suspend enable local register 0xfe10[4]=1 */ \ | |
- {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ | |
- PWR_BASEADDR_SDIO, PWR_CMD_WRITE, BIT(0), BIT(0)}, \ | |
- /*Set SDIO suspend local register*/ \ | |
- {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ | |
- PWR_BASEADDR_SDIO, PWR_CMD_POLLING, BIT(1), 0}, \ | |
- /*wait power state to suspend*/ | |
+ {0xfe10, PWR_CUT_ALL_MSK, PWR_CMD_WRITE, BIT(4), BIT(4)}, \ | |
+ /*Set USB suspend enable local register 0xfe10[4]=1 */ | |
#define RTL8188E_TRANS_SUS_TO_CARDEMU \ | |
/* format | |
- * { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, | |
+ * { offset, cut_msk, cmd, msk, | |
* value }, | |
* comments here | |
*/ \ | |
- {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ | |
- PWR_BASEADDR_SDIO, PWR_CMD_WRITE, BIT(0), 0}, \ | |
- /*Set SDIO suspend local register*/ \ | |
- {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ | |
- PWR_BASEADDR_SDIO, PWR_CMD_POLLING, BIT(1), BIT(1)}, \ | |
- /*wait power state to suspend*/ \ | |
- {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ | |
- PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(3) | BIT(4), 0}, \ | |
+ {0x0005, PWR_CUT_ALL_MSK, PWR_CMD_WRITE, BIT(3) | BIT(4), 0}, \ | |
/*0x04[12:11] = 2b'01enable WL suspend*/ | |
#define RTL8188E_TRANS_CARDEMU_TO_CARDDIS \ | |
/* format | |
- * { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, | |
+ * { offset, cut_msk, cmd, msk, | |
* value }, | |
* comments here | |
*/ \ | |
- {0x0026, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ | |
- PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(7), BIT(7)}, \ | |
+ {0x0026, PWR_CUT_ALL_MSK, PWR_CMD_WRITE, BIT(7), BIT(7)}, \ | |
/*0x24[23] = 2b'01 schmit trigger */ \ | |
- {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \ | |
- PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK, PWR_BASEADDR_MAC, \ | |
- PWR_CMD_WRITE, BIT(3) | BIT(4), BIT(3)}, \ | |
+ {0x0005, PWR_CUT_ALL_MSK, PWR_CMD_WRITE, BIT(3) | BIT(4), BIT(3)}, \ | |
/*0x04[12:11] = 2b'01 enable WL suspend*/ \ | |
- {0x0007, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \ | |
- PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK, PWR_BASEADDR_MAC, \ | |
- PWR_CMD_WRITE, 0xFF, 0}, \ | |
+ {0x0007, PWR_CUT_ALL_MSK, PWR_CMD_WRITE, 0xFF, 0}, \ | |
/* 0x04[31:30] = 2b'10 enable enable bandgap mbias in suspend */\ | |
- {0x0041, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \ | |
- PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK, PWR_BASEADDR_MAC, \ | |
- PWR_CMD_WRITE, BIT(4), 0}, \ | |
+ {0x0041, PWR_CUT_ALL_MSK, PWR_CMD_WRITE, BIT(4), 0}, \ | |
/*Clear SIC_EN register 0x40[12] = 1'b0 */ \ | |
- {0xfe10, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK, \ | |
- PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4), BIT(4)}, \ | |
- /*Set USB suspend enable local register 0xfe10[4]=1 */ \ | |
- {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ | |
- PWR_BASEADDR_SDIO, PWR_CMD_WRITE, BIT(0), BIT(0)}, \ | |
- /*Set SDIO suspend local register*/ \ | |
- {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ | |
- PWR_BASEADDR_SDIO, PWR_CMD_POLLING, BIT(1), 0}, \ | |
- /*wait power state to suspend*/ | |
+ {0xfe10, PWR_CUT_ALL_MSK, PWR_CMD_WRITE, BIT(4), BIT(4)}, \ | |
+ /*Set USB suspend enable local register 0xfe10[4]=1 */ | |
#define RTL8188E_TRANS_CARDDIS_TO_CARDEMU \ | |
/* format | |
- * { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, | |
+ * { offset, cut_msk, cmd, msk, | |
* value }, | |
* comments here | |
*/ \ | |
- {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ | |
- PWR_BASEADDR_SDIO, PWR_CMD_WRITE, BIT(0), 0}, \ | |
- /*Set SDIO suspend local register*/ \ | |
- {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ | |
- PWR_BASEADDR_SDIO, PWR_CMD_POLLING, BIT(1), BIT(1)}, \ | |
- /*wait power state to suspend*/ \ | |
- {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ | |
- PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(3) | BIT(4), 0}, \ | |
+ {0x0005, PWR_CUT_ALL_MSK, PWR_CMD_WRITE, BIT(3) | BIT(4), 0}, \ | |
/*0x04[12:11] = 2b'01enable WL suspend*/ | |
#define RTL8188E_TRANS_CARDEMU_TO_PDN \ | |
/* format | |
- * { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, | |
+ * { offset, cut_msk, cmd, msk, | |
* value }, | |
* comments here | |
*/ \ | |
- {0x0006, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ | |
- PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(0), 0}, \ | |
+ {0x0006, PWR_CUT_ALL_MSK, PWR_CMD_WRITE, BIT(0), 0}, \ | |
/* 0x04[16] = 0*/ \ | |
- {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ | |
- PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(7), BIT(7)}, \ | |
+ {0x0005, PWR_CUT_ALL_MSK, PWR_CMD_WRITE, BIT(7), BIT(7)}, \ | |
/* 0x04[15] = 1*/ | |
#define RTL8188E_TRANS_PDN_TO_CARDEMU \ | |
/* format | |
- * { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, | |
+ * { offset, cut_msk, cmd, msk, | |
* value }, | |
* comments here | |
*/ \ | |
- {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ | |
- PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(7), 0}, \ | |
+ {0x0005, PWR_CUT_ALL_MSK, PWR_CMD_WRITE, BIT(7), 0}, \ | |
/* 0x04[15] = 0*/ | |
/* This is used by driver for LPSRadioOff Procedure, not for FW LPS Step */ | |
#define RTL8188E_TRANS_ACT_TO_LPS \ | |
/* format | |
- * { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, | |
+ * { offset, cut_msk, cmd, msk, | |
* value }, | |
* comments here | |
*/ \ | |
- {0x0522, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ | |
- PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x7F},/*Tx Pause*/ \ | |
- {0x05F8, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ | |
- PWR_BASEADDR_MAC, PWR_CMD_POLLING, 0xFF, 0}, \ | |
+ {0x0522, PWR_CUT_ALL_MSK, PWR_CMD_WRITE, 0xFF, 0x7F},/*Tx Pause*/ \ | |
+ {0x05F8, PWR_CUT_ALL_MSK, PWR_CMD_POLLING, 0xFF, 0}, \ | |
/*Should be zero if no packet is transmitting*/ \ | |
- {0x05F9, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ | |
- PWR_BASEADDR_MAC, PWR_CMD_POLLING, 0xFF, 0}, \ | |
+ {0x05F9, PWR_CUT_ALL_MSK, PWR_CMD_POLLING, 0xFF, 0}, \ | |
/*Should be zero if no packet is transmitting*/ \ | |
- {0x05FA, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ | |
- PWR_BASEADDR_MAC, PWR_CMD_POLLING, 0xFF, 0}, \ | |
+ {0x05FA, PWR_CUT_ALL_MSK, PWR_CMD_POLLING, 0xFF, 0}, \ | |
/*Should be zero if no packet is transmitting*/ \ | |
- {0x05FB, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ | |
- PWR_BASEADDR_MAC, PWR_CMD_POLLING, 0xFF, 0}, \ | |
+ {0x05FB, PWR_CUT_ALL_MSK, PWR_CMD_POLLING, 0xFF, 0}, \ | |
/*Should be zero if no packet is transmitting*/ \ | |
- {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ | |
- PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(0), 0}, \ | |
+ {0x0002, PWR_CUT_ALL_MSK, PWR_CMD_WRITE, BIT(0), 0}, \ | |
/*CCK and OFDM are disabled,and clock are gated*/ \ | |
- {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ | |
- PWR_BASEADDR_MAC, PWR_CMD_DELAY, 0, \ | |
- PWRSEQ_DELAY_US},/*Delay 1us*/ \ | |
- {0x0100, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ | |
- PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x3F},/*Reset MAC TRX*/ \ | |
- {0x0101, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ | |
- PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(1), 0},/*check if removed later*/\ | |
- {0x0553, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ | |
- PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(5), BIT(5)}, \ | |
+ {0x0002, PWR_CUT_ALL_MSK, PWR_CMD_DELAY, 0, PWRSEQ_DELAY_US}, \ | |
+ /*Delay 1us*/ \ | |
+ {0x0100, PWR_CUT_ALL_MSK, PWR_CMD_WRITE, 0xFF, 0x3F}, \ | |
+ /*Reset MAC TRX*/ \ | |
+ {0x0101, PWR_CUT_ALL_MSK, PWR_CMD_WRITE, BIT(1), 0}, \ | |
+ /*check if removed later*/\ | |
+ {0x0553, PWR_CUT_ALL_MSK, PWR_CMD_WRITE, BIT(5), BIT(5)}, \ | |
/*Respond TxOK to scheduler*/ | |
#define RTL8188E_TRANS_LPS_TO_ACT \ | |
/* format | |
- * { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, | |
+ * { offset, cut_msk, cmd, msk, | |
* value }, | |
* comments here | |
*/ \ | |
- {0x0080, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ | |
- PWR_BASEADDR_SDIO, PWR_CMD_WRITE, 0xFF, 0x84}, /*SDIO RPWM*/ \ | |
- {0xFE58, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK, \ | |
- PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x84}, /*USB RPWM*/ \ | |
- {0x0361, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK, \ | |
- PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x84}, /*PCIe RPWM*/ \ | |
- {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ | |
- PWR_BASEADDR_MAC, PWR_CMD_DELAY, 0, PWRSEQ_DELAY_MS}, /*Delay*/ \ | |
- {0x0008, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ | |
- PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4), 0}, \ | |
+ {0xFE58, PWR_CUT_ALL_MSK, PWR_CMD_WRITE, 0xFF, 0x84}, \ | |
+ /*USB RPWM*/ \ | |
+ {0x0002, PWR_CUT_ALL_MSK, PWR_CMD_DELAY, 0, PWRSEQ_DELAY_MS}, \ | |
+ /*Delay*/ \ | |
+ {0x0008, PWR_CUT_ALL_MSK, PWR_CMD_WRITE, BIT(4), 0}, \ | |
/* 0x08[4] = 0 switch TSF to 40M */ \ | |
- {0x0109, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ | |
- PWR_BASEADDR_MAC, PWR_CMD_POLLING, BIT(7), 0}, \ | |
+ {0x0109, PWR_CUT_ALL_MSK, PWR_CMD_POLLING, BIT(7), 0}, \ | |
/* Polling 0x109[7]=0 TSF in 40M */ \ | |
- {0x0029, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ | |
- PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(6) | BIT(7), 0}, \ | |
+ {0x0029, PWR_CUT_ALL_MSK, PWR_CMD_WRITE, BIT(6) | BIT(7), 0}, \ | |
/* 0x29[7:6] = 2b'00 enable BB clock */ \ | |
- {0x0101, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ | |
- PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(1), BIT(1)}, \ | |
+ {0x0101, PWR_CUT_ALL_MSK, PWR_CMD_WRITE, BIT(1), BIT(1)}, \ | |
/* 0x101[1] = 1 */ \ | |
- {0x0100, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ | |
- PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0xFF}, \ | |
+ {0x0100, PWR_CUT_ALL_MSK, PWR_CMD_WRITE, 0xFF, 0xFF}, \ | |
/* 0x100[7:0] = 0xFF enable WMAC TRX */ \ | |
- {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ | |
- PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(1) | BIT(0), BIT(1) | BIT(0)}, \ | |
+ {0x0002, PWR_CUT_ALL_MSK, \ | |
+ PWR_CMD_WRITE, BIT(1) | BIT(0), BIT(1) | BIT(0)}, \ | |
/* 0x02[1:0] = 2b'11 enable BB macro */ \ | |
- {0x0522, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ | |
- PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0}, /*. 0x522 = 0*/ | |
+ {0x0522, PWR_CUT_ALL_MSK, PWR_CMD_WRITE, 0xFF, 0}, /*. 0x522 = 0*/ | |
#define RTL8188E_TRANS_END \ | |
/* format | |
- * { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, | |
+ * { offset, cut_msk, cmd, msk, | |
* value }, | |
* comments here | |
*/ \ | |
- {0xFFFF, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, 0, \ | |
- PWR_CMD_END, 0, 0}, | |
+ {0xFFFF, PWR_CUT_ALL_MSK, PWR_CMD_END, 0, 0}, | |
extern struct wl_pwr_cfg rtl8188E_power_on_flow | |
diff --git b/drivers/staging/rtl8188eu/include/pwrseqcmd.h a/drivers/staging/rtl8188eu/include/pwrseqcmd.h | |
index 980a49769157..c4a919ea17ea 100644 | |
--- b/drivers/staging/rtl8188eu/include/pwrseqcmd.h | |
+++ a/drivers/staging/rtl8188eu/include/pwrseqcmd.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#ifndef __HALPWRSEQCMD_H__ | |
#define __HALPWRSEQCMD_H__ | |
@@ -29,24 +24,6 @@ | |
#define PWR_CMD_DELAY 0x03 | |
#define PWR_CMD_END 0x04 | |
-/* The value of base: 4 bits */ | |
-/* define the base address of each block */ | |
-#define PWR_BASEADDR_MAC 0x00 | |
-#define PWR_BASEADDR_USB 0x01 | |
-#define PWR_BASEADDR_PCIE 0x02 | |
-#define PWR_BASEADDR_SDIO 0x03 | |
- | |
-/* The value of interface_msk: 4 bits */ | |
-#define PWR_INTF_SDIO_MSK BIT(0) | |
-#define PWR_INTF_USB_MSK BIT(1) | |
-#define PWR_INTF_PCI_MSK BIT(2) | |
-#define PWR_INTF_ALL_MSK (BIT(0)|BIT(1)|BIT(2)|BIT(3)) | |
- | |
-/* The value of fab_msk: 4 bits */ | |
-#define PWR_FAB_TSMC_MSK BIT(0) | |
-#define PWR_FAB_UMC_MSK BIT(1) | |
-#define PWR_FAB_ALL_MSK (BIT(0)|BIT(1)|BIT(2)|BIT(3)) | |
- | |
/* The value of cut_msk: 8 bits */ | |
#define PWR_CUT_TESTCHIP_MSK BIT(0) | |
#define PWR_CUT_A_MSK BIT(1) | |
@@ -67,9 +44,6 @@ enum pwrseq_cmd_delat_unit { | |
struct wl_pwr_cfg { | |
u16 offset; | |
u8 cut_msk; | |
- u8 fab_msk:4; | |
- u8 interface_msk:4; | |
- u8 base:4; | |
u8 cmd:4; | |
u8 msk; | |
u8 value; | |
@@ -77,14 +51,11 @@ struct wl_pwr_cfg { | |
#define GET_PWR_CFG_OFFSET(__PWR_CMD) __PWR_CMD.offset | |
#define GET_PWR_CFG_CUT_MASK(__PWR_CMD) __PWR_CMD.cut_msk | |
-#define GET_PWR_CFG_FAB_MASK(__PWR_CMD) __PWR_CMD.fab_msk | |
-#define GET_PWR_CFG_INTF_MASK(__PWR_CMD) __PWR_CMD.interface_msk | |
-#define GET_PWR_CFG_BASE(__PWR_CMD) __PWR_CMD.base | |
#define GET_PWR_CFG_CMD(__PWR_CMD) __PWR_CMD.cmd | |
#define GET_PWR_CFG_MASK(__PWR_CMD) __PWR_CMD.msk | |
#define GET_PWR_CFG_VALUE(__PWR_CMD) __PWR_CMD.value | |
-u8 rtl88eu_pwrseqcmdparsing(struct adapter *padapter, u8 cut_vers, u8 fab_vers, | |
- u8 ifacetype, struct wl_pwr_cfg pwrcfgCmd[]); | |
+u8 rtl88eu_pwrseqcmdparsing(struct adapter *padapter, u8 cut_vers, | |
+ struct wl_pwr_cfg pwrcfgCmd[]); | |
#endif | |
diff --git b/drivers/staging/rtl8188eu/include/recv_osdep.h a/drivers/staging/rtl8188eu/include/recv_osdep.h | |
index fdeb603b6cc1..9b43a1314bd5 100644 | |
--- b/drivers/staging/rtl8188eu/include/recv_osdep.h | |
+++ a/drivers/staging/rtl8188eu/include/recv_osdep.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#ifndef __RECV_OSDEP_H_ | |
#define __RECV_OSDEP_H_ | |
@@ -31,15 +26,9 @@ void _rtw_free_recv_priv(struct recv_priv *precvpriv); | |
s32 rtw_recv_entry(struct recv_frame *precv_frame); | |
int rtw_recv_indicatepkt(struct adapter *adapter, | |
struct recv_frame *recv_frame); | |
-void rtw_recv_returnpacket(struct net_device *cnxt, struct sk_buff *retpkt); | |
void rtw_handle_tkip_mic_err(struct adapter *padapter, u8 bgroup); | |
-int rtw_init_recv_priv(struct recv_priv *precvpriv, struct adapter *padapter); | |
-void rtw_free_recv_priv(struct recv_priv *precvpriv); | |
- | |
-void rtw_os_recv_resource_alloc(struct recv_frame *recvfr); | |
- | |
int rtw_os_recvbuf_resource_alloc(struct adapter *adapt, struct recv_buf *buf); | |
void rtw_init_recv_timer(struct recv_reorder_ctrl *preorder_ctrl); | |
diff --git b/drivers/staging/rtl8188eu/include/rf.h a/drivers/staging/rtl8188eu/include/rf.h | |
index 98a5551f5ae7..ed3241c020ad 100644 | |
--- b/drivers/staging/rtl8188eu/include/rf.h | |
+++ a/drivers/staging/rtl8188eu/include/rf.h | |
@@ -1,3 +1,4 @@ | |
+/* SPDX-License-Identifier: GPL-2.0 */ | |
#define RF6052_MAX_TX_PWR 0x3F | |
#define RF6052_MAX_REG 0x3F | |
diff --git b/drivers/staging/rtl8188eu/include/rtl8188e_cmd.h a/drivers/staging/rtl8188eu/include/rtl8188e_cmd.h | |
index f813ce0563f8..042b4ec656c8 100644 | |
--- b/drivers/staging/rtl8188eu/include/rtl8188e_cmd.h | |
+++ a/drivers/staging/rtl8188eu/include/rtl8188e_cmd.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#ifndef __RTL8188E_CMD_H__ | |
#define __RTL8188E_CMD_H__ | |
@@ -54,12 +49,6 @@ enum RTL8188E_H2C_CMD_ID { | |
H2C_RESET_TSF = 0xc0, | |
}; | |
-struct cmd_msg_parm { | |
- u8 eid; /* element id */ | |
- u8 sz; /* sz */ | |
- u8 buf[6]; | |
-}; | |
- | |
enum { | |
PWRS | |
}; | |
@@ -72,15 +61,6 @@ struct setpwrmode_parm { | |
u8 PwrState;/* AllON(0x0c),RFON(0x04),RFOFF(0x00) */ | |
}; | |
-struct H2C_SS_RFOFF_PARAM { | |
- u8 ROFOn; /* 1: on, 0:off */ | |
- u16 gpio_period; /* unit: 1024 us */ | |
-} __packed; | |
- | |
-struct joinbssrpt_parm { | |
- u8 OpMode; /* RT_MEDIA_STATUS */ | |
-}; | |
- | |
struct rsvdpage_loc { | |
u8 LocProbeRsp; | |
u8 LocPsPoll; | |
@@ -89,26 +69,9 @@ struct rsvdpage_loc { | |
u8 LocBTQosNull; | |
}; | |
-struct P2P_PS_Offload_t { | |
- u8 Offload_En:1; | |
- u8 role:1; /* 1: Owner, 0: Client */ | |
- u8 CTWindow_En:1; | |
- u8 NoA0_En:1; | |
- u8 NoA1_En:1; | |
- u8 AllStaSleep:1; /* Only valid in Owner */ | |
- u8 discovery:1; | |
- u8 rsvd:1; | |
-}; | |
- | |
-struct P2P_PS_CTWPeriod_t { | |
- u8 CTWPeriod; /* TU */ | |
-}; | |
- | |
/* host message to firmware cmd */ | |
void rtl8188e_set_FwPwrMode_cmd(struct adapter *padapter, u8 Mode); | |
void rtl8188e_set_FwJoinBssReport_cmd(struct adapter *padapter, u8 mstatus); | |
-void rtl8188e_Add_RateATid(struct adapter *padapter, u32 bitmap, u8 arg, | |
- u8 rssi_level); | |
void rtl8188e_set_FwMediaStatus_cmd(struct adapter *adapt, __le16 mstatus_rpt); | |
diff --git b/drivers/staging/rtl8188eu/include/rtl8188e_dm.h a/drivers/staging/rtl8188eu/include/rtl8188e_dm.h | |
index 5e0ac31ef464..c0ffd98d7617 100644 | |
--- b/drivers/staging/rtl8188eu/include/rtl8188e_dm.h | |
+++ a/drivers/staging/rtl8188eu/include/rtl8188e_dm.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#ifndef __RTL8188E_DM_H__ | |
#define __RTL8188E_DM_H__ | |
@@ -50,12 +45,9 @@ struct dm_priv { | |
u8 PowerIndex_backup[6]; | |
}; | |
-void rtl8188e_init_dm_priv(struct adapter *adapt); | |
void rtl8188e_InitHalDm(struct adapter *adapt); | |
-void rtl8188e_HalDmWatchDog(struct adapter *adapt); | |
void AntDivCompare8188E(struct adapter *adapt, struct wlan_bssid_ex *dst, | |
struct wlan_bssid_ex *src); | |
-u8 AntDivBeforeLink8188E(struct adapter *adapt); | |
#endif | |
diff --git b/drivers/staging/rtl8188eu/include/rtl8188e_hal.h a/drivers/staging/rtl8188eu/include/rtl8188e_hal.h | |
index cbad364f189c..9330361da4ad 100644 | |
--- b/drivers/staging/rtl8188eu/include/rtl8188e_hal.h | |
+++ a/drivers/staging/rtl8188eu/include/rtl8188e_hal.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#ifndef __RTL8188E_HAL_H__ | |
#define __RTL8188E_HAL_H__ | |
@@ -191,8 +186,6 @@ struct txpowerinfo24g { | |
struct hal_data_8188e { | |
struct HAL_VERSION VersionID; | |
u16 CustomerID; | |
- u8 *pfirmware; | |
- u32 fwsize; | |
u16 FirmwareVersion; | |
u16 FirmwareVersionRev; | |
u16 FirmwareSubVersion; | |
@@ -207,11 +200,6 @@ struct hal_data_8188e { | |
u16 BasicRateSet; | |
- /* rf_ctrl */ | |
- u8 rf_chip; | |
- u8 rf_type; | |
- u8 NumTotalRFPath; | |
- | |
u8 BoardType; | |
/* EEPROM setting. */ | |
@@ -273,14 +261,6 @@ struct hal_data_8188e { | |
u32 CCKTxPowerLevelOriginalOffset; | |
u8 CrystalCap; | |
- u32 AntennaTxPath; /* Antenna path Tx */ | |
- u32 AntennaRxPath; /* Antenna path Rx */ | |
- u8 BluetoothCoexist; | |
- u8 ExternalPA; | |
- | |
- u8 bLedOpenDrain; /* Open-drain support for controlling the LED.*/ | |
- | |
- u8 b1x1RecvCombine; /* for 1T1R receive combining */ | |
u32 AcParam_BE; /* Original parameter for BE, use for EDCA turbo. */ | |
@@ -324,14 +304,6 @@ struct hal_data_8188e { | |
u8 OutEpQueueSel; | |
u8 OutEpNumber; | |
- /* Add for USB aggreation mode dynamic shceme. */ | |
- bool UsbRxHighSpeedMode; | |
- | |
- /* 2010/11/22 MH Add for slim combo debug mode selective. */ | |
- /* This is used for fix the drawback of CU TSMC-A/UMC-A cut. | |
- * HW auto suspend ability. Close BT clock. */ | |
- bool SlimComboDbg; | |
- | |
u16 EfuseUsedBytes; | |
/* Auto FSM to Turn On, include clock, isolation, power control | |
@@ -358,10 +330,6 @@ struct hal_data_8188e { | |
u8 UsbRxAggPageTimeout; | |
}; | |
-#define GET_HAL_DATA(__pAdapter) \ | |
- ((struct hal_data_8188e *)((__pAdapter)->HalData)) | |
-#define GET_RF_TYPE(priv) (GET_HAL_DATA(priv)->rf_type) | |
- | |
/* rtl8188e_hal_init.c */ | |
void _8051Reset88E(struct adapter *padapter); | |
void rtl8188e_InitializeFirmwareVars(struct adapter *padapter); | |
@@ -392,8 +360,6 @@ void Hal_EfuseParseBoardType88E(struct adapter *pAdapter, u8 *hwinfo, | |
void Hal_ReadPowerSavingMode88E(struct adapter *pAdapter, u8 *hwinfo, | |
bool AutoLoadFail); | |
-void rtl8188e_set_hal_ops(struct hal_ops *pHalFunc); | |
- | |
/* register */ | |
void rtl8188e_start_thread(struct adapter *padapter); | |
diff --git b/drivers/staging/rtl8188eu/include/rtl8188e_led.h a/drivers/staging/rtl8188eu/include/rtl8188e_led.h | |
index c0147e73cd8c..d1ad6aa8c1e0 100644 | |
--- b/drivers/staging/rtl8188eu/include/rtl8188e_led.h | |
+++ a/drivers/staging/rtl8188eu/include/rtl8188e_led.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#ifndef __RTL8188E_LED_H__ | |
#define __RTL8188E_LED_H__ | |
@@ -27,8 +22,6 @@ | |
/* */ | |
/* Interface to manipulate LED objects. */ | |
/* */ | |
-void rtl8188eu_InitSwLeds(struct adapter *padapter); | |
-void rtl8188eu_DeInitSwLeds(struct adapter *padapter); | |
void SwLedOn(struct adapter *padapter, struct LED_871x *pLed); | |
void SwLedOff(struct adapter *padapter, struct LED_871x *pLed); | |
diff --git b/drivers/staging/rtl8188eu/include/rtl8188e_recv.h a/drivers/staging/rtl8188eu/include/rtl8188e_recv.h | |
index 5fed30d389a2..0d8bf51c72a9 100644 | |
--- b/drivers/staging/rtl8188eu/include/rtl8188e_recv.h | |
+++ a/drivers/staging/rtl8188eu/include/rtl8188e_recv.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#ifndef __RTL8188E_RECV_H__ | |
#define __RTL8188E_RECV_H__ | |
@@ -56,12 +51,9 @@ enum rx_packet_type { | |
}; | |
#define INTERRUPT_MSG_FORMAT_LEN 60 | |
-s32 rtl8188eu_init_recv_priv(struct adapter *padapter); | |
-void rtl8188eu_free_recv_priv(struct adapter *padapter); | |
-void rtl8188eu_recv_hdl(struct adapter *padapter, struct recv_buf *precvbuf); | |
void rtl8188eu_recv_tasklet(void *priv); | |
-void rtl8188e_query_rx_phy_status(struct recv_frame *fr, struct phy_stat *phy); | |
-void rtl8188e_process_phy_info(struct adapter *padapter, void *prframe); | |
+void rtl8188e_process_phy_info(struct adapter *padapter, | |
+ struct recv_frame *prframe); | |
void update_recvframe_phyinfo_88e(struct recv_frame *fra, struct phy_stat *phy); | |
void update_recvframe_attrib_88e(struct recv_frame *fra, | |
struct recv_stat *stat); | |
diff --git b/drivers/staging/rtl8188eu/include/rtl8188e_spec.h a/drivers/staging/rtl8188eu/include/rtl8188e_spec.h | |
index beeee4a6b0bc..c93e19d1c50f 100644 | |
--- b/drivers/staging/rtl8188eu/include/rtl8188e_spec.h | |
+++ a/drivers/staging/rtl8188eu/include/rtl8188e_spec.h | |
@@ -11,10 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
*******************************************************************************/ | |
#ifndef __RTL8188E_SPEC_H__ | |
#define __RTL8188E_SPEC_H__ | |
@@ -1354,7 +1350,7 @@ Current IOREG MAP | |
#define EEPROM_Default_CrystalCap_88E 0x20 | |
#define EEPROM_Default_ThermalMeter_88E 0x18 | |
-/* New EFUSE deafult value */ | |
+/* New EFUSE default value */ | |
#define EEPROM_DEFAULT_24G_INDEX 0x2D | |
#define EEPROM_DEFAULT_24G_HT20_DIFF 0X02 | |
#define EEPROM_DEFAULT_24G_OFDM_DIFF 0X04 | |
diff --git b/drivers/staging/rtl8188eu/include/rtl8188e_xmit.h a/drivers/staging/rtl8188eu/include/rtl8188e_xmit.h | |
index 0b96d42e290b..66205b782721 100644 | |
--- b/drivers/staging/rtl8188eu/include/rtl8188e_xmit.h | |
+++ a/drivers/staging/rtl8188eu/include/rtl8188e_xmit.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#ifndef __RTL8188E_XMIT_H__ | |
#define __RTL8188E_XMIT_H__ | |
@@ -159,14 +154,11 @@ struct txrpt_ccx_88e { | |
void rtl8188e_fill_fake_txdesc(struct adapter *padapter, u8 *pDesc, | |
u32 BufferLen, u8 IsPsPoll, u8 IsBTQosNull); | |
s32 rtl8188eu_init_xmit_priv(struct adapter *padapter); | |
-s32 rtl8188eu_hal_xmit(struct adapter *padapter, struct xmit_frame *frame); | |
-s32 rtl8188eu_mgnt_xmit(struct adapter *padapter, struct xmit_frame *frame); | |
s32 rtl8188eu_xmit_buf_handler(struct adapter *padapter); | |
#define hal_xmit_handler rtl8188eu_xmit_buf_handler | |
void rtl8188eu_xmit_tasklet(void *priv); | |
s32 rtl8188eu_xmitframe_complete(struct adapter *padapter, | |
- struct xmit_priv *pxmitpriv, | |
- struct xmit_buf *pxmitbuf); | |
+ struct xmit_priv *pxmitpriv); | |
void dump_txrpt_ccx_88e(void *buf); | |
void handle_txrpt_ccx_88e(struct adapter *adapter, u8 *buf); | |
diff --git b/drivers/staging/rtl8188eu/include/rtw_android.h a/drivers/staging/rtl8188eu/include/rtw_android.h | |
index e85bf1ff01f8..e81ee92b0ae2 100644 | |
--- b/drivers/staging/rtl8188eu/include/rtw_android.h | |
+++ a/drivers/staging/rtl8188eu/include/rtw_android.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#ifndef __RTW_ANDROID_H__ | |
diff --git b/drivers/staging/rtl8188eu/include/rtw_ap.h a/drivers/staging/rtl8188eu/include/rtw_ap.h | |
index 6128ccce91ba..e8dd6d4407aa 100644 | |
--- b/drivers/staging/rtl8188eu/include/rtw_ap.h | |
+++ a/drivers/staging/rtl8188eu/include/rtw_ap.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#ifndef __RTW_AP_H_ | |
#define __RTW_AP_H_ | |
@@ -55,7 +50,6 @@ void ap_sta_info_defer_update(struct adapter *padapter, struct sta_info *psta); | |
u8 ap_free_sta(struct adapter *padapter, struct sta_info *psta, | |
bool active, u16 reason); | |
int rtw_sta_flush(struct adapter *padapter); | |
-int rtw_ap_inform_ch_switch(struct adapter *padapter, u8 new_ch, u8 ch_offset); | |
void start_ap_mode(struct adapter *padapter); | |
void stop_ap_mode(struct adapter *padapter); | |
#endif /* end of CONFIG_88EU_AP_MODE */ | |
diff --git b/drivers/staging/rtl8188eu/include/rtw_cmd.h a/drivers/staging/rtl8188eu/include/rtw_cmd.h | |
index 9e9f5f4af8f1..f79feeb4e38f 100644 | |
--- b/drivers/staging/rtl8188eu/include/rtw_cmd.h | |
+++ a/drivers/staging/rtl8188eu/include/rtw_cmd.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#ifndef __RTW_CMD_H_ | |
#define __RTW_CMD_H_ | |
@@ -44,8 +39,8 @@ struct cmd_obj { | |
}; | |
struct cmd_priv { | |
- struct semaphore cmd_queue_sema; | |
- struct semaphore terminate_cmdthread_sema; | |
+ struct completion cmd_queue_comp; | |
+ struct completion terminate_cmdthread_comp; | |
struct __queue cmd_queue; | |
u8 cmdthd_running; | |
struct adapter *padapter; | |
@@ -214,40 +209,12 @@ struct set_assocsta_rsp { | |
u8 rsvd[3]; | |
}; | |
-/* | |
- Caller Ad-Hoc/AP | |
- | |
- Command mode | |
- | |
- This is to force fw to del an sta_data entry per driver's request | |
- | |
- FW will invalidate the cam entry associated with it. | |
- | |
-*/ | |
-struct del_assocsta_parm { | |
- u8 addr[ETH_ALEN]; | |
-}; | |
- | |
-/* | |
-Caller Mode: AP/Ad-HoC(M) | |
- | |
-Notes: To notify fw that given staid has changed its power state | |
- | |
-Command Mode | |
- | |
-*/ | |
-struct setstapwrstate_parm { | |
- u8 staid; | |
- u8 status; | |
- u8 hwaddr[6]; | |
-}; | |
- | |
/* | |
Notes: This command is used for H2C/C2H loopback testing | |
mac[0] == 0 | |
==> CMD mode, return H2C_SUCCESS. | |
- The following condition must be ture under CMD mode | |
+ The following condition must be true under CMD mode | |
mac[1] == mac[4], mac[2] == mac[3], mac[0]=mac[5]= 0; | |
s0 == 0x1234, s1 == 0xabcd, w0 == 0x78563412, w1 == 0x5aa5def7; | |
s2 == (b1 << 8 | b0); | |
@@ -317,8 +284,6 @@ struct SetChannelPlan_param { | |
u8 channel_plan; | |
}; | |
-#define GEN_CMD_CODE(cmd) cmd ## _CMD_ | |
- | |
/* | |
Result: | |
@@ -381,42 +346,42 @@ struct _cmd_callback { | |
}; | |
enum rtw_h2c_cmd { | |
- GEN_CMD_CODE(_JoinBss), | |
- GEN_CMD_CODE(_DisConnect), | |
- GEN_CMD_CODE(_CreateBss), | |
- GEN_CMD_CODE(_SetOpMode), | |
- GEN_CMD_CODE(_SiteSurvey), | |
- GEN_CMD_CODE(_SetAuth), | |
- GEN_CMD_CODE(_SetKey), | |
- GEN_CMD_CODE(_SetStaKey), | |
- GEN_CMD_CODE(_SetAssocSta), | |
- GEN_CMD_CODE(_AddBAReq), | |
- GEN_CMD_CODE(_SetChannel), | |
- GEN_CMD_CODE(_TX_Beacon), | |
- GEN_CMD_CODE(_Set_MLME_EVT), | |
- GEN_CMD_CODE(_Set_Drv_Extra), | |
- GEN_CMD_CODE(_SetChannelPlan), | |
+ _JoinBss_CMD_, | |
+ _DisConnect_CMD_, | |
+ _CreateBss_CMD_, | |
+ _SetOpMode_CMD_, | |
+ _SiteSurvey_CMD_, | |
+ _SetAuth_CMD_, | |
+ _SetKey_CMD_, | |
+ _SetStaKey_CMD_, | |
+ _SetAssocSta_CMD_, | |
+ _AddBAReq_CMD_, | |
+ _SetChannel_CMD_, | |
+ _TX_Beacon_CMD_, | |
+ _Set_MLME_EVT_CMD_, | |
+ _Set_Drv_Extra_CMD_, | |
+ _SetChannelPlan_CMD_, | |
MAX_H2CCMD | |
}; | |
#ifdef _RTW_CMD_C_ | |
static struct _cmd_callback rtw_cmd_callback[] = { | |
- {GEN_CMD_CODE(_JoinBss), &rtw_joinbss_cmd_callback}, | |
- {GEN_CMD_CODE(_DisConnect), &rtw_disassoc_cmd_callback}, | |
- {GEN_CMD_CODE(_CreateBss), &rtw_createbss_cmd_callback}, | |
- {GEN_CMD_CODE(_SetOpMode), NULL}, | |
- {GEN_CMD_CODE(_SiteSurvey), &rtw_survey_cmd_callback}, | |
- {GEN_CMD_CODE(_SetAuth), NULL}, | |
- {GEN_CMD_CODE(_SetKey), NULL}, | |
- {GEN_CMD_CODE(_SetStaKey), &rtw_setstaKey_cmdrsp_callback}, | |
- {GEN_CMD_CODE(_SetAssocSta), &rtw_setassocsta_cmdrsp_callback}, | |
- {GEN_CMD_CODE(_AddBAReq), NULL}, | |
- {GEN_CMD_CODE(_SetChannel), NULL}, | |
- {GEN_CMD_CODE(_TX_Beacon), NULL}, | |
- {GEN_CMD_CODE(_Set_MLME_EVT), NULL}, | |
- {GEN_CMD_CODE(_Set_Drv_Extra), NULL}, | |
- {GEN_CMD_CODE(_SetChannelPlan), NULL}, | |
+ {_JoinBss_CMD_, &rtw_joinbss_cmd_callback}, | |
+ {_DisConnect_CMD_, &rtw_disassoc_cmd_callback}, | |
+ {_CreateBss_CMD_, &rtw_createbss_cmd_callback}, | |
+ {_SetOpMode_CMD_, NULL}, | |
+ {_SiteSurvey_CMD_, &rtw_survey_cmd_callback}, | |
+ {_SetAuth_CMD_, NULL}, | |
+ {_SetKey_CMD_, NULL}, | |
+ {_SetStaKey_CMD_, &rtw_setstaKey_cmdrsp_callback}, | |
+ {_SetAssocSta_CMD_, &rtw_setassocsta_cmdrsp_callback}, | |
+ {_AddBAReq_CMD_, NULL}, | |
+ {_SetChannel_CMD_, NULL}, | |
+ {_TX_Beacon_CMD_, NULL}, | |
+ {_Set_MLME_EVT_CMD_, NULL}, | |
+ {_Set_Drv_Extra_CMD_, NULL}, | |
+ {_SetChannelPlan_CMD_, NULL}, | |
}; | |
#endif | |
diff --git b/drivers/staging/rtl8188eu/include/rtw_debug.h a/drivers/staging/rtl8188eu/include/rtw_debug.h | |
index 971bf457f32d..9cc4b8c7c166 100644 | |
--- b/drivers/staging/rtl8188eu/include/rtw_debug.h | |
+++ a/drivers/staging/rtl8188eu/include/rtw_debug.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#ifndef __RTW_DEBUG_H__ | |
#define __RTW_DEBUG_H__ | |
@@ -75,7 +70,7 @@ extern u32 GlobalDebugLevel; | |
#define DBG_88E_LEVEL(_level, fmt, arg...) \ | |
do { \ | |
if (_level <= GlobalDebugLevel) \ | |
- pr_info(DRIVER_PREFIX"ERROR " fmt, ##arg); \ | |
+ pr_info(DRIVER_PREFIX fmt, ##arg); \ | |
} while (0) | |
#define DBG_88E(...) \ | |
@@ -134,133 +129,12 @@ int proc_get_read_reg(char *page, char **start, | |
int proc_set_read_reg(struct file *file, const char __user *buffer, | |
unsigned long count, void *data); | |
-int proc_get_fwstate(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data); | |
-int proc_get_sec_info(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data); | |
-int proc_get_mlmext_state(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data); | |
- | |
-int proc_get_qos_option(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data); | |
-int proc_get_ht_option(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data); | |
-int proc_get_rf_info(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data); | |
-int proc_get_ap_info(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data); | |
- | |
int proc_get_adapter_state(char *page, char **start, | |
off_t offset, int count, | |
int *eof, void *data); | |
-int proc_get_trx_info(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data); | |
- | |
-int proc_get_mac_reg_dump1(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data); | |
- | |
-int proc_get_mac_reg_dump2(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data); | |
- | |
-int proc_get_mac_reg_dump3(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data); | |
- | |
-int proc_get_bb_reg_dump1(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data); | |
- | |
-int proc_get_bb_reg_dump2(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data); | |
- | |
-int proc_get_bb_reg_dump3(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data); | |
- | |
-int proc_get_rf_reg_dump1(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data); | |
- | |
-int proc_get_rf_reg_dump2(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data); | |
- | |
-int proc_get_rf_reg_dump3(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data); | |
- | |
-int proc_get_rf_reg_dump4(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data); | |
- | |
-#ifdef CONFIG_88EU_AP_MODE | |
- | |
-int proc_get_all_sta_info(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data); | |
- | |
-#endif | |
- | |
int proc_get_best_channel(char *page, char **start, | |
off_t offset, int count, | |
int *eof, void *data); | |
-int proc_get_rx_signal(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data); | |
- | |
-int proc_set_rx_signal(struct file *file, const char __user *buffer, | |
- unsigned long count, void *data); | |
- | |
-int proc_get_ht_enable(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data); | |
- | |
-int proc_set_ht_enable(struct file *file, const char __user *buffer, | |
- unsigned long count, void *data); | |
- | |
-int proc_get_cbw40_enable(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data); | |
- | |
-int proc_set_cbw40_enable(struct file *file, const char __user *buffer, | |
- unsigned long count, void *data); | |
- | |
-int proc_get_ampdu_enable(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data); | |
- | |
-int proc_set_ampdu_enable(struct file *file, const char __user *buffer, | |
- unsigned long count, void *data); | |
- | |
-int proc_get_rx_stbc(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data); | |
- | |
-int proc_set_rx_stbc(struct file *file, const char __user *buffer, | |
- unsigned long count, void *data); | |
- | |
-int proc_get_two_path_rssi(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data); | |
- | |
-int proc_get_rssi_disp(char *page, char **start, | |
- off_t offset, int count, | |
- int *eof, void *data); | |
- | |
-int proc_set_rssi_disp(struct file *file, const char __user *buffer, | |
- unsigned long count, void *data); | |
- | |
#endif /* __RTW_DEBUG_H__ */ | |
diff --git b/drivers/staging/rtl8188eu/include/rtw_eeprom.h a/drivers/staging/rtl8188eu/include/rtw_eeprom.h | |
index 904fea1fad6c..5dd73841dd9e 100644 | |
--- b/drivers/staging/rtl8188eu/include/rtw_eeprom.h | |
+++ a/drivers/staging/rtl8188eu/include/rtw_eeprom.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#ifndef __RTW_EEPROM_H__ | |
#define __RTW_EEPROM_H__ | |
diff --git b/drivers/staging/rtl8188eu/include/rtw_efuse.h a/drivers/staging/rtl8188eu/include/rtw_efuse.h | |
index 5660eed7196b..168c12d3c0b4 100644 | |
--- b/drivers/staging/rtl8188eu/include/rtw_efuse.h | |
+++ a/drivers/staging/rtl8188eu/include/rtw_efuse.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#ifndef __RTW_EFUSE_H__ | |
#define __RTW_EFUSE_H__ | |
@@ -39,16 +34,6 @@ | |
#define EFUSE_WIFI 0 | |
#define EFUSE_BT 1 | |
-enum _EFUSE_DEF_TYPE { | |
- TYPE_EFUSE_MAX_SECTION = 0, | |
- TYPE_EFUSE_REAL_CONTENT_LEN = 1, | |
- TYPE_AVAILABLE_EFUSE_BYTES_BANK = 2, | |
- TYPE_AVAILABLE_EFUSE_BYTES_TOTAL = 3, | |
- TYPE_EFUSE_MAP_LEN = 4, | |
- TYPE_EFUSE_PROTECT_BYTES_BANK = 5, | |
- TYPE_EFUSE_CONTENT_LEN_BANK = 6, | |
-}; | |
- | |
/* E-Fuse */ | |
#define EFUSE_MAP_SIZE 512 | |
#define EFUSE_MAX_SIZE 256 | |
@@ -100,8 +85,6 @@ struct efuse_hal { | |
}; | |
u8 Efuse_CalculateWordCnts(u8 word_en); | |
-void EFUSE_GetEfuseDefinition(struct adapter *adapt, u8 type, u8 type1, | |
- void *out); | |
u8 efuse_OneByteRead(struct adapter *adapter, u16 addr, u8 *data); | |
u8 efuse_OneByteWrite(struct adapter *adapter, u16 addr, u8 data); | |
diff --git b/drivers/staging/rtl8188eu/include/rtw_event.h a/drivers/staging/rtl8188eu/include/rtw_event.h | |
index 52151dc4495a..1c5ebde97091 100644 | |
--- b/drivers/staging/rtl8188eu/include/rtw_event.h | |
+++ a/drivers/staging/rtl8188eu/include/rtw_event.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#ifndef _RTW_EVENT_H_ | |
#define _RTW_EVENT_H_ | |
@@ -23,7 +18,7 @@ | |
#include <osdep_service.h> | |
#include <wlan_bssdef.h> | |
-#include <linux/semaphore.h> | |
+#include <linux/mutex.h> | |
#include <linux/sem.h> | |
/* | |
@@ -76,12 +71,6 @@ struct stadel_event { | |
int mac_id; | |
}; | |
-struct addba_event { | |
- unsigned int tid; | |
-}; | |
- | |
-#define GEN_EVT_CODE(event) event ## _EVT_ | |
- | |
struct fwevent { | |
u32 parmsize; | |
void (*event_callback)(struct adapter *dev, u8 *pbuf); | |
@@ -89,21 +78,6 @@ struct fwevent { | |
#define C2HEVENT_SZ 32 | |
-struct event_node { | |
- unsigned char *node; | |
- unsigned char evt_code; | |
- unsigned short evt_sz; | |
- int *caller_ff_tail; | |
- int caller_ff_sz; | |
-}; | |
- | |
-struct c2hevent_queue { | |
- int head; | |
- int tail; | |
- struct event_node nodes[C2HEVENT_SZ]; | |
- unsigned char seq; | |
-}; | |
- | |
#define NETWORK_QUEUE_SZ 4 | |
struct network_queue { | |
diff --git b/drivers/staging/rtl8188eu/include/rtw_ht.h a/drivers/staging/rtl8188eu/include/rtw_ht.h | |
index beb210b37083..d842eade7f57 100644 | |
--- b/drivers/staging/rtl8188eu/include/rtw_ht.h | |
+++ a/drivers/staging/rtl8188eu/include/rtw_ht.h | |
@@ -11,25 +11,15 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#ifndef _RTW_HT_H_ | |
#define _RTW_HT_H_ | |
-#include <osdep_service.h> | |
-#include "wifi.h" | |
+#include <linux/ieee80211.h> | |
struct ht_priv { | |
u32 ht_option; | |
u32 ampdu_enable;/* for enable Tx A-MPDU */ | |
- u32 tx_amsdu_enable;/* for enable Tx A-MSDU */ | |
- u32 tx_amdsu_maxlen; /* 1: 8k, 0:4k ; default:8k, for tx */ | |
- u32 rx_ampdu_maxlen; /* for rx reordering ctrl win_sz, | |
- * updated when join_callback. */ | |
u8 bwmode;/* */ | |
u8 ch_offset;/* PRIME_CHNL_OFFSET */ | |
u8 sgi;/* short GI */ | |
@@ -38,7 +28,7 @@ struct ht_priv { | |
u8 agg_enable_bitmap; | |
u8 candidate_tid_bitmap; | |
- struct rtw_ieee80211_ht_cap ht_cap; | |
+ struct ieee80211_ht_cap ht_cap; | |
}; | |
#endif /* _RTL871X_HT_H_ */ | |
diff --git b/drivers/staging/rtl8188eu/include/rtw_ioctl.h a/drivers/staging/rtl8188eu/include/rtw_ioctl.h | |
index ee2cb54a7552..4c925e610997 100644 | |
--- b/drivers/staging/rtl8188eu/include/rtw_ioctl.h | |
+++ a/drivers/staging/rtl8188eu/include/rtw_ioctl.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#ifndef _RTW_IOCTL_H_ | |
#define _RTW_IOCTL_H_ | |
@@ -63,26 +58,11 @@ | |
#define OID_MP_SEG3 0xFF818700 | |
#define OID_MP_SEG4 0xFF011100 | |
-#define DEBUG_OID(dbg, str) \ | |
- if ((!dbg)) { \ | |
- RT_TRACE(_module_rtl871x_ioctl_c_, _drv_info_, \ | |
- ("%s(%d): %s", __func__, __line__, str)); \ | |
- } | |
- | |
enum oid_type { | |
QUERY_OID, | |
SET_OID | |
}; | |
-struct oid_funs_node { | |
- unsigned int oid_start; /* the starting number for OID */ | |
- unsigned int oid_end; /* the ending number for OID */ | |
- struct oid_obj_priv *node_array; | |
- unsigned int array_sz; /* the size of node_array */ | |
- int query_counter; /* count the number of query hits for this segment */ | |
- int set_counter; /* count the number of set hits for this segment */ | |
-}; | |
- | |
struct oid_par_priv { | |
void *adapter_context; | |
NDIS_OID oid; | |
@@ -94,14 +74,9 @@ struct oid_par_priv { | |
u32 dbg; | |
}; | |
-struct oid_obj_priv { | |
- unsigned char dbg; /* 0: without OID debug message | |
- * 1: with OID debug message */ | |
- int (*oidfuns)(struct oid_par_priv *poid_par_priv); | |
-}; | |
- | |
#if defined(_RTW_MP_IOCTL_C_) | |
-static int oid_null_function(struct oid_par_priv *poid_par_priv) { | |
+static int oid_null_function(struct oid_par_priv *poid_par_priv) | |
+{ | |
return NDIS_STATUS_SUCCESS; | |
} | |
#endif | |
diff --git b/drivers/staging/rtl8188eu/include/rtw_ioctl_rtl.h a/drivers/staging/rtl8188eu/include/rtw_ioctl_rtl.h | |
index 8fa3858cb776..da4949f94f4c 100644 | |
--- b/drivers/staging/rtl8188eu/include/rtw_ioctl_rtl.h | |
+++ a/drivers/staging/rtl8188eu/include/rtw_ioctl_rtl.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#ifndef _RTW_IOCTL_RTL_H_ | |
#define _RTW_IOCTL_RTL_H_ | |
diff --git b/drivers/staging/rtl8188eu/include/rtw_ioctl_set.h a/drivers/staging/rtl8188eu/include/rtw_ioctl_set.h | |
index fa9d655eaab9..b6e14a8b7a11 100644 | |
--- b/drivers/staging/rtl8188eu/include/rtw_ioctl_set.h | |
+++ a/drivers/staging/rtl8188eu/include/rtw_ioctl_set.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#ifndef __RTW_IOCTL_SET_H_ | |
#define __RTW_IOCTL_SET_H_ | |
diff --git b/drivers/staging/rtl8188eu/include/rtw_iol.h a/drivers/staging/rtl8188eu/include/rtw_iol.h | |
index 68aae7f0b02f..1f324e68d2ae 100644 | |
--- b/drivers/staging/rtl8188eu/include/rtw_iol.h | |
+++ a/drivers/staging/rtl8188eu/include/rtw_iol.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#ifndef __RTW_IOL_H_ | |
#define __RTW_IOL_H_ | |
diff --git b/drivers/staging/rtl8188eu/include/rtw_led.h a/drivers/staging/rtl8188eu/include/rtw_led.h | |
index f2054ef70358..607d1ba56a46 100644 | |
--- b/drivers/staging/rtl8188eu/include/rtw_led.h | |
+++ a/drivers/staging/rtl8188eu/include/rtw_led.h | |
@@ -70,12 +70,9 @@ struct LED_871x { | |
struct timer_list BlinkTimer; /* Timer object for led blinking. */ | |
- u8 bSWLedCtrl; | |
- | |
/* ALPHA, added by chiyoko, 20090106 */ | |
u8 bLedNoLinkBlinkInProgress; | |
u8 bLedLinkBlinkInProgress; | |
- u8 bLedStartToLinkBlinkInProgress; | |
u8 bLedScanBlinkInProgress; | |
struct work_struct BlinkWorkItem; /* Workitem used by BlinkTimer to | |
* manipulate H/W to blink LED. */ | |
@@ -91,18 +88,9 @@ void LedControl8188eu(struct adapter *padapter, enum LED_CTL_MODE LedAction); | |
struct led_priv { | |
/* add for led control */ | |
struct LED_871x SwLed0; | |
- u8 bRegUseLed; | |
- void (*LedControlHandler)(struct adapter *padapter, | |
- enum LED_CTL_MODE LedAction); | |
/* add for led control */ | |
}; | |
-#define rtw_led_control(adapt, action) \ | |
- do { \ | |
- if ((adapt)->ledpriv.LedControlHandler) \ | |
- (adapt)->ledpriv.LedControlHandler((adapt), (action)); \ | |
- } while (0) | |
- | |
void BlinkTimerCallback(unsigned long data); | |
void BlinkWorkItemCallback(struct work_struct *work); | |
diff --git b/drivers/staging/rtl8188eu/include/rtw_mlme.h a/drivers/staging/rtl8188eu/include/rtw_mlme.h | |
index 4c992573e3ca..5c5d0ae8bdd1 100644 | |
--- b/drivers/staging/rtl8188eu/include/rtw_mlme.h | |
+++ a/drivers/staging/rtl8188eu/include/rtw_mlme.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#ifndef __RTW_MLME_H_ | |
#define __RTW_MLME_H_ | |
@@ -52,14 +47,6 @@ | |
#define WIFI_STA_ALIVE_CHK_STATE 0x00000400 | |
#define WIFI_SITE_MONITOR 0x00000800 /* to indicate the station is under site surveying */ | |
-#define WIFI_MP_STATE 0x00010000 | |
-#define WIFI_MP_CTX_BACKGROUND 0x00020000 /* in continuous tx background */ | |
-#define WIFI_MP_CTX_ST 0x00040000 /* in continuous tx with single-tone */ | |
-#define WIFI_MP_CTX_BACKGROUND_PENDING 0x00080000 /* pending in continuous tx background due to out of skb */ | |
-#define WIFI_MP_CTX_CCK_HW 0x00100000 /* in continuous tx */ | |
-#define WIFI_MP_CTX_CCK_CS 0x00200000 /* in continuous tx with carrier suppression */ | |
-#define WIFI_MP_LPBK_STATE 0x00400000 | |
- | |
#define _FW_UNDER_LINKING WIFI_UNDER_LINKING | |
#define _FW_LINKED WIFI_ASOC_STATE | |
#define _FW_UNDER_SURVEY WIFI_SITE_MONITOR | |
@@ -120,183 +107,6 @@ struct rt_link_detect { | |
* to Tx traffic. */ | |
}; | |
-struct profile_info { | |
- u8 ssidlen; | |
- u8 ssid[WLAN_SSID_MAXLEN]; | |
- u8 peermac[ETH_ALEN]; | |
-}; | |
- | |
-struct tx_invite_req_info { | |
- u8 token; | |
- u8 benable; | |
- u8 go_ssid[WLAN_SSID_MAXLEN]; | |
- u8 ssidlen; | |
- u8 go_bssid[ETH_ALEN]; | |
- u8 peer_macaddr[ETH_ALEN]; | |
- u8 operating_ch; /* This information will be set by using the | |
- * p2p_set op_ch=x */ | |
- u8 peer_ch; /* The listen channel for peer P2P device */ | |
-}; | |
- | |
-struct tx_invite_resp_info { | |
- u8 token; /* Used to record the dialog token of p2p invitation | |
- * request frame. */ | |
-}; | |
- | |
-struct tx_provdisc_req_info { | |
- u16 wps_config_method_request; /* Used when sending the | |
- * provisioning request frame*/ | |
- u16 peer_channel_num[2]; /* The channel number which the | |
- * receiver stands. */ | |
- struct ndis_802_11_ssid ssid; | |
- u8 peerDevAddr[ETH_ALEN]; /* Peer device address */ | |
- u8 peerIFAddr[ETH_ALEN]; /* Peer interface address */ | |
- u8 benable; /* This provision discovery | |
- * request frame is trigger | |
- * to send or not */ | |
-}; | |
- | |
-/* When peer device issue prov_disc_req first, we should store the following | |
- * information */ | |
-/* The UI must know this information to know which config method the | |
- * remote p2p device needs. */ | |
-struct rx_provdisc_req_info { | |
- u8 peerDevAddr[ETH_ALEN]; /* Peer device address */ | |
- u8 strconfig_method_desc_of_prov_disc_req[4]; /* description | |
- * for the config method located in the provisioning | |
- * discovery request frame. */ | |
-}; | |
- | |
-struct tx_nego_req_info { | |
- u16 peer_channel_num[2]; /* The channel number. */ | |
- u8 peerDevAddr[ETH_ALEN]; /* Peer device address */ | |
- u8 benable; /* This negotiation request frame is | |
- * trigger to send or not */ | |
-}; | |
- | |
-struct group_id_info { | |
- u8 go_device_addr[ETH_ALEN]; /* The GO's device address of | |
- * this P2P group */ | |
- u8 ssid[WLAN_SSID_MAXLEN]; /* The SSID of this P2P group */ | |
-}; | |
- | |
-struct scan_limit_info { | |
- u8 scan_op_ch_only; /* When this flag is set, the driver | |
- * should only scan the op. channel */ | |
- u8 operation_ch[2]; /* Store the op. chan of invitation */ | |
-}; | |
- | |
-struct wifidirect_info { | |
- struct adapter *padapter; | |
- struct timer_list find_phase_timer; | |
- struct timer_list restore_p2p_state_timer; | |
- | |
- /* Used to do the scanning. After confirming the peer is availalble, | |
- * the driver transmits the P2P frame to peer. */ | |
- struct timer_list pre_tx_scan_timer; | |
- struct timer_list reset_ch_sitesurvey; | |
- struct timer_list reset_ch_sitesurvey2; /* Just for resetting the scan | |
- * limit function by using p2p nego */ | |
- struct tx_provdisc_req_info tx_prov_disc_info; | |
- struct rx_provdisc_req_info rx_prov_disc_info; | |
- struct tx_invite_req_info invitereq_info; | |
- /* Store the profile information of persistent group */ | |
- struct profile_info profileinfo[P2P_MAX_PERSISTENT_GROUP_NUM]; | |
- struct tx_invite_resp_info inviteresp_info; | |
- struct tx_nego_req_info nego_req_info; | |
- /* Store the group id info when doing the group negot handshake. */ | |
- struct group_id_info groupid_info; | |
- /* Used for get the limit scan channel from the Invitation procedure */ | |
- struct scan_limit_info rx_invitereq_info; | |
- /* Used for get the limit scan chan from the P2P negotiation handshake*/ | |
- struct scan_limit_info p2p_info; | |
- enum P2P_ROLE role; | |
- enum P2P_STATE pre_p2p_state; | |
- enum P2P_STATE p2p_state; | |
- /* The device address should be the mac address of this device. */ | |
- u8 device_addr[ETH_ALEN]; | |
- u8 interface_addr[ETH_ALEN]; | |
- u8 social_chan[4]; | |
- u8 listen_channel; | |
- u8 operating_channel; | |
- u8 listen_dwell; /* This value should be between 1 and 3 */ | |
- u8 support_rate[8]; | |
- u8 p2p_wildcard_ssid[P2P_WILDCARD_SSID_LEN]; | |
- u8 intent; /* should only include the intent value. */ | |
- u8 p2p_peer_interface_addr[ETH_ALEN]; | |
- u8 p2p_peer_device_addr[ETH_ALEN]; | |
- u8 peer_intent; /* Included the intent value and tie breaker value. */ | |
- /* Device name for displaying on searching device screen */ | |
- u8 device_name[WPS_MAX_DEVICE_NAME_LEN]; | |
- u8 device_name_len; | |
- u8 profileindex; /* Used to point to the index of profileinfo array */ | |
- u8 peer_operating_ch; | |
- u8 find_phase_state_exchange_cnt; | |
- /* The device password ID for group negotiation */ | |
- u16 device_password_id_for_nego; | |
- u8 negotiation_dialog_token; | |
- /* SSID information for group negotitation */ | |
- u8 nego_ssid[WLAN_SSID_MAXLEN]; | |
- u8 nego_ssidlen; | |
- u8 p2p_group_ssid[WLAN_SSID_MAXLEN]; | |
- u8 p2p_group_ssid_len; | |
- /* Flag to know if the persistent function should be supported or not.*/ | |
- u8 persistent_supported; | |
- /* In the Sigma test, the Sigma will provide this enable from the | |
- * sta_set_p2p CAPI. */ | |
- /* 0: disable */ | |
- /* 1: enable */ | |
- u8 session_available; /* Flag to set the WFD session available to | |
- * enable or disable "by Sigma" */ | |
- /* In the Sigma test, the Sigma will disable the session available | |
- * by using the sta_preset CAPI. */ | |
- /* 0: disable */ | |
- /* 1: enable */ | |
- u8 wfd_tdls_enable; /* Flag to enable or disable the TDLS by WFD Sigma*/ | |
- /* 0: disable */ | |
- /* 1: enable */ | |
- u8 wfd_tdls_weaksec; /* Flag to enable or disable the weak security | |
- * function for TDLS by WFD Sigma */ | |
- /* 0: disable */ | |
- /* In this case, the driver can't issue the tdsl | |
- * setup request frame. */ | |
- /* 1: enable */ | |
- /* In this case, the driver can issue the tdls | |
- * setup request frame */ | |
- /* even the current security is weak security. */ | |
- | |
- /* This field will store the WPS value (PIN value or PBC) that UI had | |
- * got from the user. */ | |
- enum P2P_WPSINFO ui_got_wps_info; | |
- u16 supported_wps_cm; /* This field describes the WPS config method | |
- * which this driver supported. */ | |
- /* The value should be the combination of config | |
- * method defined in page104 of WPS v2.0 spec.*/ | |
- /* This field will contain the length of body of P2P Channel List | |
- * attribute of group negotiation response frame. */ | |
- uint channel_list_attr_len; | |
- /* This field will contain the body of P2P Channel List attribute of | |
- * group negotitation response frame. */ | |
- /* We will use the channel_cnt and channel_list fields when constructing | |
- * the group negotiation confirm frame. */ | |
- u8 channel_list_attr[100]; | |
- enum P2P_PS_MODE p2p_ps_mode; /* indicate p2p ps mode */ | |
- enum P2P_PS_STATE p2p_ps_state; /* indicate p2p ps state */ | |
- u8 noa_index; /* Identifies and instance of Notice of Absence timing. */ | |
- u8 ctwindow; /* Client traffic window. A period of time in TU after TBTT. */ | |
- u8 opp_ps; /* opportunistic power save. */ | |
- u8 noa_num; /* number of NoA descriptor in P2P IE. */ | |
- u8 noa_count[P2P_MAX_NOA_NUM]; /* Count for owner, Type of client. */ | |
- /* Max duration for owner, preferred or min acceptable duration for | |
- * client. */ | |
- u32 noa_duration[P2P_MAX_NOA_NUM]; | |
- /* Length of interval for owner, preferred or max acceptable interval | |
- * of client. */ | |
- u32 noa_interval[P2P_MAX_NOA_NUM]; | |
- /* schedule expressed in terms of the lower 4 bytes of the TSF timer. */ | |
- u32 noa_start_time[P2P_MAX_NOA_NUM]; | |
-}; | |
- | |
struct mlme_priv { | |
spinlock_t lock; | |
int fw_state; /* shall we protect this variable? maybe not necessarily... */ | |
@@ -306,12 +116,10 @@ struct mlme_priv { | |
u8 *nic_hdl; | |
- u8 not_indic_disco; | |
struct list_head *pscanned; | |
struct __queue free_bss_pool; | |
struct __queue scanned_queue; | |
u8 *free_bss_buf; | |
- u32 num_of_scanned; | |
struct ndis_802_11_ssid assoc_ssid; | |
u8 assoc_bssid[6]; | |
@@ -323,10 +131,8 @@ struct mlme_priv { | |
struct timer_list assoc_timer; | |
uint assoc_by_bssid; | |
- uint assoc_by_rssi; | |
struct timer_list scan_to_timer; /* driver itself handles scan_timeout status. */ | |
- u32 scan_start_time; /* used to evaluate the time spent in scanning */ | |
struct qos_priv qospriv; | |
@@ -392,17 +198,6 @@ struct mlme_priv { | |
u32 wps_probe_resp_ie_len; | |
u32 wps_assoc_resp_ie_len; | |
- u8 *p2p_beacon_ie; | |
- u8 *p2p_probe_req_ie; | |
- u8 *p2p_probe_resp_ie; | |
- u8 *p2p_go_probe_resp_ie; /* for GO */ | |
- u8 *p2p_assoc_req_ie; | |
- | |
- u32 p2p_beacon_ie_len; | |
- u32 p2p_probe_req_ie_len; | |
- u32 p2p_probe_resp_ie_len; | |
- u32 p2p_go_probe_resp_ie_len; /* for GO */ | |
- u32 p2p_assoc_req_ie_len; | |
spinlock_t bcn_update_lock; | |
u8 update_bcn; | |
#endif /* if defined (CONFIG_88EU_AP_MODE) */ | |
@@ -421,7 +216,6 @@ void hostapd_mode_unload(struct adapter *padapter); | |
extern unsigned char WPA_TKIP_CIPHER[4]; | |
extern unsigned char RSN_TKIP_CIPHER[4]; | |
extern unsigned char REALTEK_96B_IE[]; | |
-extern unsigned char MCS_rate_2R[16]; | |
extern unsigned char MCS_rate_1R[16]; | |
void rtw_joinbss_event_prehandle(struct adapter *adapter, u8 *pbuf); | |
@@ -505,27 +299,6 @@ static inline void clr_fwstate_ex(struct mlme_priv *pmlmepriv, int state) | |
spin_unlock_bh(&pmlmepriv->lock); | |
} | |
-static inline void up_scanned_network(struct mlme_priv *pmlmepriv) | |
-{ | |
- spin_lock_bh(&pmlmepriv->lock); | |
- pmlmepriv->num_of_scanned++; | |
- spin_unlock_bh(&pmlmepriv->lock); | |
-} | |
- | |
-static inline void down_scanned_network(struct mlme_priv *pmlmepriv) | |
-{ | |
- spin_lock_bh(&pmlmepriv->lock); | |
- pmlmepriv->num_of_scanned--; | |
- spin_unlock_bh(&pmlmepriv->lock); | |
-} | |
- | |
-static inline void set_scanned_network_val(struct mlme_priv *pmlmepriv, int val) | |
-{ | |
- spin_lock_bh(&pmlmepriv->lock); | |
- pmlmepriv->num_of_scanned = val; | |
- spin_unlock_bh(&pmlmepriv->lock); | |
-} | |
- | |
u16 rtw_get_capability(struct wlan_bssid_ex *bss); | |
void rtw_update_scanned_network(struct adapter *adapter, | |
struct wlan_bssid_ex *target); | |
diff --git b/drivers/staging/rtl8188eu/include/rtw_mlme_ext.h a/drivers/staging/rtl8188eu/include/rtw_mlme_ext.h | |
index 9093a5f94d32..1b1caaf583c9 100644 | |
--- b/drivers/staging/rtl8188eu/include/rtw_mlme_ext.h | |
+++ a/drivers/staging/rtl8188eu/include/rtw_mlme_ext.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#ifndef __RTW_MLME_EXT_H_ | |
#define __RTW_MLME_EXT_H_ | |
@@ -348,13 +343,13 @@ struct mlme_ext_info { | |
u8 candidate_tid_bitmap; | |
u8 dialogToken; | |
/* Accept ADDBA Request */ | |
- bool bAcceptAddbaReq; | |
+ bool accept_addba_req; | |
u8 bwmode_updated; | |
u8 hidden_ssid_mode; | |
struct ADDBA_request ADDBA_req; | |
struct WMM_para_element WMM_param; | |
- struct HT_caps_element HT_caps; | |
+ struct ieee80211_ht_cap HT_caps; | |
struct HT_info_element HT_info; | |
struct wlan_bssid_ex network;/* join network or bss_network, | |
* if in ap mode, it is the same | |
@@ -534,12 +529,12 @@ int update_sta_support_rate(struct adapter *padapter, u8 *pvar_ie, | |
void update_sta_info(struct adapter *padapter, struct sta_info *psta); | |
unsigned int update_basic_rate(unsigned char *ptn, unsigned int ptn_sz); | |
unsigned int update_supported_rate(unsigned char *ptn, unsigned int ptn_sz); | |
-unsigned int update_MSC_rate(struct HT_caps_element *pHT_caps); | |
+unsigned int update_MSC_rate(struct ieee80211_ht_cap *pHT_caps); | |
void Update_RA_Entry(struct adapter *padapter, u32 mac_id); | |
void set_sta_rate(struct adapter *padapter, struct sta_info *psta); | |
unsigned char get_highest_rate_idx(u32 mask); | |
-int support_short_GI(struct adapter *padapter, struct HT_caps_element *caps); | |
+int support_short_GI(struct adapter *padapter, struct ieee80211_ht_cap *caps); | |
unsigned int is_ap_in_tkip(struct adapter *padapter); | |
unsigned int is_ap_in_wep(struct adapter *padapter); | |
unsigned int should_forbid_n_rate(struct adapter *padapter); | |
@@ -567,8 +562,6 @@ int issue_qos_nulldata(struct adapter *padapter, unsigned char *da, | |
u16 tid, int try_cnt, int wait_ms); | |
int issue_deauth(struct adapter *padapter, unsigned char *da, | |
unsigned short reason); | |
-void issue_action_spct_ch_switch(struct adapter *padapter, u8 *ra, u8 new_ch, | |
- u8 ch_offset); | |
unsigned int send_delba(struct adapter *padapter, u8 initiator, u8 *addr); | |
unsigned int send_beacon(struct adapter *padapter); | |
@@ -632,27 +625,24 @@ u8 led_blink_hdl(struct adapter *padapter, unsigned char *pbuf); | |
u8 set_csa_hdl(struct adapter *padapter, unsigned char *pbuf); | |
u8 tdls_hdl(struct adapter *padapter, unsigned char *pbuf); | |
-#define GEN_DRV_CMD_HANDLER(size, cmd) {size, &cmd ## _hdl}, | |
-#define GEN_MLME_EXT_HANDLER(size, cmd) {size, cmd}, | |
- | |
#ifdef _RTW_CMD_C_ | |
static struct cmd_hdl wlancmds[] = { | |
- GEN_MLME_EXT_HANDLER(sizeof(struct wlan_bssid_ex), join_cmd_hdl) | |
- GEN_MLME_EXT_HANDLER(sizeof(struct disconnect_parm), disconnect_hdl) | |
- GEN_MLME_EXT_HANDLER(sizeof(struct wlan_bssid_ex), createbss_hdl) | |
- GEN_MLME_EXT_HANDLER(sizeof(struct setopmode_parm), setopmode_hdl) | |
- GEN_MLME_EXT_HANDLER(sizeof(struct sitesurvey_parm), sitesurvey_cmd_hdl) | |
- GEN_MLME_EXT_HANDLER(sizeof(struct setauth_parm), setauth_hdl) | |
- GEN_MLME_EXT_HANDLER(sizeof(struct setkey_parm), setkey_hdl) | |
- GEN_MLME_EXT_HANDLER(sizeof(struct set_stakey_parm), set_stakey_hdl) | |
- GEN_MLME_EXT_HANDLER(sizeof(struct set_assocsta_parm), NULL) | |
- GEN_MLME_EXT_HANDLER(sizeof(struct addBaReq_parm), add_ba_hdl) | |
- GEN_MLME_EXT_HANDLER(sizeof(struct set_ch_parm), set_ch_hdl) | |
- GEN_MLME_EXT_HANDLER(sizeof(struct wlan_bssid_ex), tx_beacon_hdl) | |
- GEN_MLME_EXT_HANDLER(0, mlme_evt_hdl) | |
- GEN_MLME_EXT_HANDLER(0, rtw_drvextra_cmd_hdl) | |
- GEN_MLME_EXT_HANDLER(sizeof(struct SetChannelPlan_param), set_chplan_hdl) | |
+ {sizeof(struct wlan_bssid_ex), join_cmd_hdl}, | |
+ {sizeof(struct disconnect_parm), disconnect_hdl}, | |
+ {sizeof(struct wlan_bssid_ex), createbss_hdl}, | |
+ {sizeof(struct setopmode_parm), setopmode_hdl}, | |
+ {sizeof(struct sitesurvey_parm), sitesurvey_cmd_hdl}, | |
+ {sizeof(struct setauth_parm), setauth_hdl}, | |
+ {sizeof(struct setkey_parm), setkey_hdl}, | |
+ {sizeof(struct set_stakey_parm), set_stakey_hdl}, | |
+ {sizeof(struct set_assocsta_parm), NULL}, | |
+ {sizeof(struct addBaReq_parm), add_ba_hdl}, | |
+ {sizeof(struct set_ch_parm), set_ch_hdl}, | |
+ {sizeof(struct wlan_bssid_ex), tx_beacon_hdl}, | |
+ {0, mlme_evt_hdl}, | |
+ {0, rtw_drvextra_cmd_hdl}, | |
+ {sizeof(struct SetChannelPlan_param), set_chplan_hdl} | |
}; | |
#endif | |
@@ -674,32 +664,32 @@ void rtw_dummy_event_callback(struct adapter *adapter, u8 *pbuf); | |
void rtw_fwdbg_event_callback(struct adapter *adapter, u8 *pbuf); | |
enum rtw_c2h_event { | |
- GEN_EVT_CODE(_Read_MACREG) = 0, /*0*/ | |
- GEN_EVT_CODE(_Read_BBREG), | |
- GEN_EVT_CODE(_Read_RFREG), | |
- GEN_EVT_CODE(_Read_EEPROM), | |
- GEN_EVT_CODE(_Read_EFUSE), | |
- GEN_EVT_CODE(_Read_CAM), /*5*/ | |
- GEN_EVT_CODE(_Get_BasicRate), | |
- GEN_EVT_CODE(_Get_DataRate), | |
- GEN_EVT_CODE(_Survey), /*8*/ | |
- GEN_EVT_CODE(_SurveyDone), /*9*/ | |
- | |
- GEN_EVT_CODE(_JoinBss), /*10*/ | |
- GEN_EVT_CODE(_AddSTA), | |
- GEN_EVT_CODE(_DelSTA), | |
- GEN_EVT_CODE(_AtimDone), | |
- GEN_EVT_CODE(_TX_Report), | |
- GEN_EVT_CODE(_CCX_Report), /*15*/ | |
- GEN_EVT_CODE(_DTM_Report), | |
- GEN_EVT_CODE(_TX_Rate_Statistics), | |
- GEN_EVT_CODE(_C2HLBK), | |
- GEN_EVT_CODE(_FWDBG), | |
- GEN_EVT_CODE(_C2HFEEDBACK), /*20*/ | |
- GEN_EVT_CODE(_ADDBA), | |
- GEN_EVT_CODE(_C2HBCN), | |
- GEN_EVT_CODE(_ReportPwrState), /* filen: only for PCIE, USB */ | |
- GEN_EVT_CODE(_CloseRF), /* filen: only for PCIE, | |
+ _Read_MACREG_EVT_ = 0, /*0*/ | |
+ _Read_BBREG_EVT_, | |
+ _Read_RFREG_EVT_, | |
+ _Read_EEPROM_EVT_, | |
+ _Read_EFUSE_EVT_, | |
+ _Read_CAM_EVT_, /*5*/ | |
+ _Get_BasicRate_EVT_, | |
+ _Get_DataRate_EVT_, | |
+ _Survey_EVT_, /*8*/ | |
+ _SurveyDone_EVT_, /*9*/ | |
+ | |
+ _JoinBss_EVT_, /*10*/ | |
+ _AddSTA_EVT_, | |
+ _DelSTA_EVT_, | |
+ _AtimDone_EVT_, | |
+ _TX_Report_EVT_, | |
+ _CCX_Report_EVT_, /*15*/ | |
+ _DTM_Report_EVT_, | |
+ _TX_Rate_Statistics_EVT_, | |
+ _C2HLBK_EVT_, | |
+ _FWDBG_EVT_, | |
+ _C2HFEEDBACK_EVT_, /*20*/ | |
+ _ADDBA_EVT_, | |
+ _C2HBCN_EVT_, | |
+ _ReportPwrState_EVT_, /* filen: only for PCIE, USB */ | |
+ _CloseRF_EVT_, /* filen: only for PCIE, | |
* work around ASPM */ | |
MAX_C2HEVT | |
}; | |
diff --git b/drivers/staging/rtl8188eu/include/rtw_mp_phy_regdef.h a/drivers/staging/rtl8188eu/include/rtw_mp_phy_regdef.h | |
index 30fd17f23bf1..4872a21b3103 100644 | |
--- b/drivers/staging/rtl8188eu/include/rtw_mp_phy_regdef.h | |
+++ a/drivers/staging/rtl8188eu/include/rtw_mp_phy_regdef.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
/***************************************************************************** | |
* | |
@@ -203,7 +198,7 @@ | |
#define rOFDM0_TRSWIsolation 0xc0c | |
#define rOFDM0_XARxAFE 0xc10 /* RxIQ DC offset, Rx digital filter, DC notch filter */ | |
-#define rOFDM0_XARxIQImbalance 0xc14 /* RxIQ imblance matrix */ | |
+#define rOFDM0_XARxIQImbalance 0xc14 /* RxIQ imbalance matrix */ | |
#define rOFDM0_XBRxAFE 0xc18 | |
#define rOFDM0_XBRxIQImbalance 0xc1c | |
#define rOFDM0_XCRxAFE 0xc20 | |
diff --git b/drivers/staging/rtl8188eu/include/rtw_pwrctrl.h a/drivers/staging/rtl8188eu/include/rtw_pwrctrl.h | |
index a493d4c37ef1..18a9e744fcbe 100644 | |
--- b/drivers/staging/rtl8188eu/include/rtw_pwrctrl.h | |
+++ a/drivers/staging/rtl8188eu/include/rtw_pwrctrl.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#ifndef __RTW_PWRCTRL_H_ | |
#define __RTW_PWRCTRL_H_ | |
@@ -97,21 +92,6 @@ struct reportpwrstate_parm { | |
unsigned short rsvd; | |
}; | |
-static inline void _init_pwrlock(struct semaphore *plock) | |
-{ | |
- sema_init(plock, 1); | |
-} | |
- | |
-static inline void _enter_pwrlock(struct semaphore *plock) | |
-{ | |
- _rtw_down_sema(plock); | |
-} | |
- | |
-static inline void _exit_pwrlock(struct semaphore *plock) | |
-{ | |
- up(plock); | |
-} | |
- | |
#define LPS_DELAY_TIME 1*HZ /* 1 sec */ | |
#define EXE_PWR_NONE 0x01 | |
@@ -162,7 +142,7 @@ enum { /* for ips_mode */ | |
}; | |
struct pwrctrl_priv { | |
- struct semaphore lock; | |
+ struct mutex mutex_lock; | |
volatile u8 rpwm; /* requested power state for fw */ | |
volatile u8 cpwm; /* fw current power state. updated when | |
* 1. read from HCPWM 2. driver lowers power level */ | |
diff --git b/drivers/staging/rtl8188eu/include/rtw_qos.h a/drivers/staging/rtl8188eu/include/rtw_qos.h | |
index bbee1ddc00bb..45a77f6f8427 100644 | |
--- b/drivers/staging/rtl8188eu/include/rtw_qos.h | |
+++ a/drivers/staging/rtl8188eu/include/rtw_qos.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#ifndef _RTW_QOS_H_ | |
#define _RTW_QOS_H_ | |
diff --git b/drivers/staging/rtl8188eu/include/rtw_recv.h a/drivers/staging/rtl8188eu/include/rtw_recv.h | |
index eb1ac3d03123..121150860450 100644 | |
--- b/drivers/staging/rtl8188eu/include/rtw_recv.h | |
+++ a/drivers/staging/rtl8188eu/include/rtw_recv.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#ifndef _RTW_RECV_H_ | |
#define _RTW_RECV_H_ | |
@@ -70,13 +65,6 @@ struct stainfo_rxcache { | |
*/ | |
}; | |
-struct smooth_rssi_data { | |
- u32 elements[100]; /* array to store values */ | |
- u32 index; /* index to current array to store */ | |
- u32 total_num; /* num of valid elements */ | |
- u32 total_val; /* sum of valid elements */ | |
-}; | |
- | |
struct signal_stat { | |
u8 update_req; /* used to indicate */ | |
u8 avg_val; /* avg of valid elements */ | |
@@ -118,7 +106,7 @@ struct rx_pkt_attrib { | |
u8 privacy; /* in frame_ctrl field */ | |
u8 bdecrypted; | |
u8 encrypt; /* when 0 indicate no encrypt. when non-zero, | |
- * indicate the encrypt algorith */ | |
+ * indicate the encrypt algorithm */ | |
u8 iv_len; | |
u8 icv_len; | |
u8 crc_err; | |
@@ -151,8 +139,6 @@ struct rx_pkt_attrib { | |
#define SN_EQUAL(a, b) (a == b) | |
#define REORDER_WAIT_TIME (50) /* (ms) */ | |
-#define RECVBUFF_ALIGN_SZ 8 | |
- | |
#define RXDESC_SIZE 24 | |
#define RXDESC_OFFSET RXDESC_SIZE | |
@@ -165,8 +151,6 @@ struct recv_stat { | |
__le32 rxdw5; | |
}; | |
-#define EOR BIT(30) | |
- | |
/* | |
accesser of recv_priv: rtw_recv_entry(dispatch / passive level); | |
recv_thread(passive) ; returnpkt(dispatch) | |
@@ -178,9 +162,7 @@ struct recv_priv { | |
struct __queue free_recv_queue; | |
struct __queue recv_pending_queue; | |
struct __queue uc_swdec_pending_queue; | |
- u8 *pallocated_frame_buf; | |
- u8 *precv_frame_buf; | |
- uint free_recvframe_cnt; | |
+ void *pallocated_frame_buf; | |
struct adapter *adapter; | |
u32 bIsAnyNonBEPkts; | |
u64 rx_bytes; | |
@@ -188,20 +170,13 @@ struct recv_priv { | |
u64 rx_drop; | |
u64 last_rx_bytes; | |
- uint ff_hwaddr; | |
- u8 rx_pending_cnt; | |
- | |
struct tasklet_struct irq_prepare_beacon_tasklet; | |
struct tasklet_struct recv_tasklet; | |
struct sk_buff_head free_recv_skb_queue; | |
struct sk_buff_head rx_skb_queue; | |
- u8 *pallocated_recv_buf; | |
- u8 *precv_buf; /* 4 alignment */ | |
+ struct recv_buf *precv_buf; /* 4 alignment */ | |
struct __queue free_recv_buf_queue; | |
- u32 free_recv_buf_queue_cnt; | |
- /* For display the phy informatiom */ | |
- u8 is_signal_dbg; /* for debug */ | |
- u8 signal_strength_dbg; /* for debug */ | |
+ /* For display the phy information */ | |
s8 rssi; | |
s8 rxpwdb; | |
u8 signal_strength; | |
@@ -251,14 +226,8 @@ struct recv_buf { | |
struct recv_frame { | |
struct list_head list; | |
struct sk_buff *pkt; | |
- struct sk_buff *pkt_newalloc; | |
struct adapter *adapter; | |
struct rx_pkt_attrib attrib; | |
- uint len; | |
- u8 *rx_head; | |
- u8 *rx_data; | |
- u8 *rx_tail; | |
- u8 *rx_end; | |
struct sta_info *psta; | |
/* for A-MPDU Rx reordering buffer control */ | |
struct recv_reorder_ctrl *preorder_ctrl; | |
@@ -280,70 +249,6 @@ u32 rtw_free_uc_swdec_pending_queue(struct adapter *adapter); | |
void rtw_reordering_ctrl_timeout_handler(unsigned long data); | |
-static inline u8 *get_rxmem(struct recv_frame *precvframe) | |
-{ | |
- /* always return rx_head... */ | |
- if (precvframe == NULL) | |
- return NULL; | |
- return precvframe->rx_head; | |
-} | |
- | |
-static inline u8 *recvframe_pull(struct recv_frame *precvframe, int sz) | |
-{ | |
- /* rx_data += sz; move rx_data sz bytes hereafter */ | |
- | |
- /* used for extract sz bytes from rx_data, update rx_data and return | |
- * the updated rx_data to the caller */ | |
- | |
- if (precvframe == NULL) | |
- return NULL; | |
- precvframe->rx_data += sz; | |
- if (precvframe->rx_data > precvframe->rx_tail) { | |
- precvframe->rx_data -= sz; | |
- return NULL; | |
- } | |
- precvframe->len -= sz; | |
- return precvframe->rx_data; | |
-} | |
- | |
-static inline u8 *recvframe_put(struct recv_frame *precvframe, int sz) | |
-{ | |
- /* used for append sz bytes from ptr to rx_tail, update rx_tail | |
- * and return the updated rx_tail to the caller */ | |
- /* after putting, rx_tail must be still larger than rx_end. */ | |
- | |
- if (precvframe == NULL) | |
- return NULL; | |
- | |
- precvframe->rx_tail += sz; | |
- | |
- if (precvframe->rx_tail > precvframe->rx_end) { | |
- precvframe->rx_tail -= sz; | |
- return NULL; | |
- } | |
- precvframe->len += sz; | |
- return precvframe->rx_tail; | |
-} | |
- | |
-static inline u8 *recvframe_pull_tail(struct recv_frame *precvframe, int sz) | |
-{ | |
- /* rmv data from rx_tail (by yitsen) */ | |
- | |
- /* used for extract sz bytes from rx_end, update rx_end and return | |
- * the updated rx_end to the caller */ | |
- /* after pulling, rx_end must be still larger than rx_data. */ | |
- | |
- if (precvframe == NULL) | |
- return NULL; | |
- precvframe->rx_tail -= sz; | |
- if (precvframe->rx_tail < precvframe->rx_data) { | |
- precvframe->rx_tail += sz; | |
- return NULL; | |
- } | |
- precvframe->len -= sz; | |
- return precvframe->rx_tail; | |
-} | |
- | |
static inline s32 translate_percentage_to_dbm(u32 sig_stren_index) | |
{ | |
s32 power; /* in dBm. */ | |
diff --git b/drivers/staging/rtl8188eu/include/rtw_rf.h a/drivers/staging/rtl8188eu/include/rtw_rf.h | |
index 2df88370de59..66896af02042 100644 | |
--- b/drivers/staging/rtl8188eu/include/rtw_rf.h | |
+++ a/drivers/staging/rtl8188eu/include/rtw_rf.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#ifndef __RTW_RF_H_ | |
#define __RTW_RF_H_ | |
@@ -140,7 +135,6 @@ enum rt_rf_type_def { | |
}; | |
u32 rtw_ch2freq(u32 ch); | |
-u32 rtw_freq2ch(u32 freq); | |
#endif /* _RTL8711_RF_H_ */ | |
diff --git b/drivers/staging/rtl8188eu/include/rtw_security.h a/drivers/staging/rtl8188eu/include/rtw_security.h | |
index a1aebe6c8452..74fe664787e5 100644 | |
--- b/drivers/staging/rtl8188eu/include/rtw_security.h | |
+++ a/drivers/staging/rtl8188eu/include/rtw_security.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#ifndef __RTW_SECURITY_H_ | |
#define __RTW_SECURITY_H_ | |
@@ -138,8 +133,6 @@ struct security_priv { | |
u8 busetkipkey; | |
u8 bcheck_grpkey; | |
u8 bgrpkey_handshake; | |
- s32 sw_encrypt;/* from registry_priv */ | |
- s32 sw_decrypt;/* from registry_priv */ | |
s32 hw_decrypted;/* if the rx packets is hw_decrypted==false,i | |
* it means the hw has not been ready. */ | |
@@ -169,12 +162,6 @@ struct security_priv { | |
u8 bWepDefaultKeyIdxSet; | |
}; | |
-struct sha256_state { | |
- u64 length; | |
- u32 state[8], curlen; | |
- u8 buf[64]; | |
-}; | |
- | |
#define GET_ENCRY_ALGO(psecuritypriv, psta, encry_algo, bmcst) \ | |
do { \ | |
switch (psecuritypriv->dot11AuthAlgrthm) { \ | |
@@ -266,42 +253,6 @@ static inline u32 rotr(u32 val, int bits) | |
#define TE2(i) rotr(Te0[((i) >> 8) & 0xff], 16) | |
#define TE3(i) rotr(Te0[(i) & 0xff], 24) | |
-#define GETU32(pt) (((u32)(pt)[0] << 24) ^ ((u32)(pt)[1] << 16) ^ \ | |
- ((u32)(pt)[2] << 8) ^ ((u32)(pt)[3])) | |
- | |
-#define PUTU32(ct, st) { \ | |
-(ct)[0] = (u8)((st) >> 24); (ct)[1] = (u8)((st) >> 16); \ | |
-(ct)[2] = (u8)((st) >> 8); (ct)[3] = (u8)(st); } | |
- | |
-#define WPA_GET_BE32(a) ((((u32)(a)[0]) << 24) | (((u32)(a)[1]) << 16) | \ | |
- (((u32)(a)[2]) << 8) | ((u32)(a)[3])) | |
- | |
-#define WPA_PUT_LE16(a, val) \ | |
- do { \ | |
- (a)[1] = ((u16)(val)) >> 8; \ | |
- (a)[0] = ((u16)(val)) & 0xff; \ | |
- } while (0) | |
- | |
-#define WPA_PUT_BE32(a, val) \ | |
- do { \ | |
- (a)[0] = (u8)((((u32)(val)) >> 24) & 0xff); \ | |
- (a)[1] = (u8)((((u32)(val)) >> 16) & 0xff); \ | |
- (a)[2] = (u8)((((u32)(val)) >> 8) & 0xff); \ | |
- (a)[3] = (u8)(((u32)(val)) & 0xff); \ | |
- } while (0) | |
- | |
-#define WPA_PUT_BE64(a, val) \ | |
- do { \ | |
- (a)[0] = (u8)(((u64)(val)) >> 56); \ | |
- (a)[1] = (u8)(((u64)(val)) >> 48); \ | |
- (a)[2] = (u8)(((u64)(val)) >> 40); \ | |
- (a)[3] = (u8)(((u64)(val)) >> 32); \ | |
- (a)[4] = (u8)(((u64)(val)) >> 24); \ | |
- (a)[5] = (u8)(((u64)(val)) >> 16); \ | |
- (a)[6] = (u8)(((u64)(val)) >> 8); \ | |
- (a)[7] = (u8)(((u64)(val)) & 0xff); \ | |
- } while (0) | |
- | |
/* ===== start - public domain SHA256 implementation ===== */ | |
/* This is based on SHA256 implementation in LibTomCrypt that was released into | |
diff --git b/drivers/staging/rtl8188eu/include/rtw_sreset.h a/drivers/staging/rtl8188eu/include/rtw_sreset.h | |
index 3a62ed010875..4c4ccd564863 100644 | |
--- b/drivers/staging/rtl8188eu/include/rtw_sreset.h | |
+++ a/drivers/staging/rtl8188eu/include/rtw_sreset.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#ifndef _RTW_SRESET_C_ | |
#define _RTW_SRESET_C_ | |
@@ -38,7 +33,6 @@ struct sreset_priv { | |
#define WIFI_RX_HANG BIT(5) | |
#define WIFI_IF_NOT_EXIST BIT(6) | |
-void sreset_init_value(struct adapter *padapter); | |
u8 sreset_get_wifi_status(struct adapter *padapter); | |
void sreset_set_wifi_error_status(struct adapter *padapter, u32 status); | |
diff --git b/drivers/staging/rtl8188eu/include/rtw_xmit.h a/drivers/staging/rtl8188eu/include/rtw_xmit.h | |
index 62f5db169523..dd6b7a9a8d4a 100644 | |
--- b/drivers/staging/rtl8188eu/include/rtw_xmit.h | |
+++ a/drivers/staging/rtl8188eu/include/rtw_xmit.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#ifndef _RTW_XMIT_H_ | |
#define _RTW_XMIT_H_ | |
@@ -118,7 +113,6 @@ struct pkt_attrib { | |
u8 dhcp_pkt; | |
u16 ether_type; | |
u16 seqnum; | |
- u16 pkt_hdrlen; /* the original 802.3 pkt header len */ | |
u16 hdrlen; /* the WLAN Header Len */ | |
u32 pktlen; /* the original 802.3 pkt raw_data len (not include | |
* ether_hdr data) */ | |
@@ -197,7 +191,6 @@ enum { | |
void rtw_sctx_init(struct submit_ctx *sctx, int timeout_ms); | |
int rtw_sctx_wait(struct submit_ctx *sctx); | |
void rtw_sctx_done_err(struct submit_ctx **sctx, int status); | |
-void rtw_sctx_done(struct submit_ctx **sctx); | |
struct xmit_buf { | |
struct list_head list; | |
@@ -262,15 +255,8 @@ struct hw_txqueue { | |
int ac_tag; | |
}; | |
-struct agg_pkt_info { | |
- u16 offset; | |
- u16 pkt_len; | |
-}; | |
- | |
struct xmit_priv { | |
spinlock_t lock; | |
- struct semaphore xmit_sema; | |
- struct semaphore terminate_xmitthread_sema; | |
struct __queue be_pending; | |
struct __queue bk_pending; | |
struct __queue vi_pending; | |
@@ -295,7 +281,6 @@ struct xmit_priv { | |
u8 wmm_para_seq[4];/* sequence for wmm ac parameter strength | |
* from large to small. it's value is 0->vo, | |
* 1->vi, 2->be, 3->bk. */ | |
- struct semaphore tx_retevt;/* all tx return event; */ | |
u8 txirp_cnt;/* */ | |
struct tasklet_struct xmit_tasklet; | |
/* per AC pending irp */ | |
diff --git b/drivers/staging/rtl8188eu/include/sta_info.h a/drivers/staging/rtl8188eu/include/sta_info.h | |
index d4e78326fc8d..42a035123365 100644 | |
--- b/drivers/staging/rtl8188eu/include/sta_info.h | |
+++ a/drivers/staging/rtl8188eu/include/sta_info.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#ifndef __STA_INFO_H_ | |
#define __STA_INFO_H_ | |
diff --git b/drivers/staging/rtl8188eu/include/usb_hal.h a/drivers/staging/rtl8188eu/include/usb_hal.h | |
deleted file mode 100644 | |
index 8a65995d5e48..000000000000 | |
--- b/drivers/staging/rtl8188eu/include/usb_hal.h | |
+++ /dev/null | |
@@ -1,26 +0,0 @@ | |
-/****************************************************************************** | |
- * | |
- * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved. | |
- * | |
- * This program is free software; you can redistribute it and/or modify it | |
- * under the terms of version 2 of the GNU General Public License as | |
- * published by the Free Software Foundation. | |
- * | |
- * This program is distributed in the hope that it will be useful, but WITHOUT | |
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
- * more details. | |
- * | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
- ******************************************************************************/ | |
-#ifndef __USB_HAL_H__ | |
-#define __USB_HAL_H__ | |
- | |
-void rtl8188eu_set_hal_ops(struct adapter *padapter); | |
-#define hal_set_hal_ops rtl8188eu_set_hal_ops | |
- | |
-#endif /* __USB_HAL_H__ */ | |
diff --git b/drivers/staging/rtl8188eu/include/usb_ops_linux.h a/drivers/staging/rtl8188eu/include/usb_ops_linux.h | |
index 4fdc536cba79..fb586365d2e5 100644 | |
--- b/drivers/staging/rtl8188eu/include/usb_ops_linux.h | |
+++ a/drivers/staging/rtl8188eu/include/usb_ops_linux.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#ifndef __USB_OPS_LINUX_H__ | |
#define __USB_OPS_LINUX_H__ | |
@@ -52,35 +47,20 @@ | |
#define usb_read_interrupt_complete(purb, regs) \ | |
usb_read_interrupt_complete(purb) | |
-static inline u8 rtw_usb_bulk_size_boundary(struct adapter *padapter, | |
- int buf_len) | |
-{ | |
- u8 rst = true; | |
- struct dvobj_priv *pdvobjpriv = adapter_to_dvobj(padapter); | |
- | |
- if (pdvobjpriv->ishighspeed) | |
- rst = (0 == (buf_len) % USB_HIGH_SPEED_BULK_SIZE) ? | |
- true : false; | |
- else | |
- rst = (0 == (buf_len) % USB_FULL_SPEED_BULK_SIZE) ? | |
- true : false; | |
- return rst; | |
-} | |
- | |
unsigned int ffaddr2pipehdl(struct dvobj_priv *pdvobj, u32 addr); | |
u8 usb_read8(struct adapter *adapter, u32 addr); | |
u16 usb_read16(struct adapter *adapter, u32 addr); | |
u32 usb_read32(struct adapter *adapter, u32 addr); | |
-u32 usb_read_port(struct adapter *adapter, u32 addr, u32 cnt, u8 *pmem); | |
+u32 usb_read_port(struct adapter *adapter, u32 addr, struct recv_buf *precvbuf); | |
void usb_read_port_cancel(struct adapter *adapter); | |
int usb_write8(struct adapter *adapter, u32 addr, u8 val); | |
int usb_write16(struct adapter *adapter, u32 addr, u16 val); | |
int usb_write32(struct adapter *adapter, u32 addr, u32 val); | |
-u32 usb_write_port(struct adapter *adapter, u32 addr, u32 cnt, u8 *pmem); | |
+u32 usb_write_port(struct adapter *adapter, u32 addr, u32 cnt, struct xmit_buf *pmem); | |
void usb_write_port_cancel(struct adapter *adapter); | |
#endif | |
diff --git b/drivers/staging/rtl8188eu/include/wifi.h a/drivers/staging/rtl8188eu/include/wifi.h | |
index 6cb5beca1672..cb46d353327b 100644 | |
--- b/drivers/staging/rtl8188eu/include/wifi.h | |
+++ a/drivers/staging/rtl8188eu/include/wifi.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#ifndef _WIFI_H_ | |
#define _WIFI_H_ | |
@@ -28,7 +23,6 @@ | |
#define WLAN_HDR_A4_LEN 30 | |
#define WLAN_HDR_A3_QOS_LEN 26 | |
#define WLAN_HDR_A4_QOS_LEN 32 | |
-#define WLAN_SSID_MAXLEN 32 | |
#define WLAN_DATA_MAXLEN 2312 | |
#define WLAN_A3_PN_OFFSET 24 | |
@@ -485,50 +479,10 @@ static inline int IsFrameTypeCtrl(unsigned char *pframe) | |
Below is the definition for 802.11n | |
------------------------------------------------------------------------------*/ | |
-#define SetOrderBit(pbuf) \ | |
- do { \ | |
- *(unsigned short *)(pbuf) |= cpu_to_le16(_ORDER_); \ | |
- } while (0) | |
- | |
-#define GetOrderBit(pbuf) \ | |
- (((*(unsigned short *)(pbuf)) & le16_to_cpu(_ORDER_)) != 0) | |
- | |
- | |
-/** | |
- * struct rtw_ieee80211_bar - HT Block Ack Request | |
- * | |
- * This structure refers to "HT BlockAckReq" as | |
- * described in 802.11n draft section 7.2.1.7.1 | |
- */ | |
-struct rtw_ieee80211_bar { | |
- unsigned short frame_control; | |
- unsigned short duration; | |
- unsigned char ra[6]; | |
- unsigned char ta[6]; | |
- unsigned short control; | |
- unsigned short start_seq_num; | |
-} __packed; | |
- | |
/* 802.11 BAR control masks */ | |
#define IEEE80211_BAR_CTRL_ACK_POLICY_NORMAL 0x0000 | |
#define IEEE80211_BAR_CTRL_CBMTID_COMPRESSED_BA 0x0004 | |
- /** | |
- * struct rtw_ieee80211_ht_cap - HT capabilities | |
- * | |
- * This structure refers to "HT capabilities element" as | |
- * described in 802.11n draft section 7.3.2.52 | |
- */ | |
- | |
-struct rtw_ieee80211_ht_cap { | |
- unsigned short cap_info; | |
- unsigned char ampdu_params_info; | |
- unsigned char supp_mcs_set[16]; | |
- unsigned short extended_ht_cap_info; | |
- unsigned int tx_BF_cap_info; | |
- unsigned char antenna_selection_info; | |
-} __packed; | |
- | |
/** | |
* struct rtw_ieee80211_ht_cap - HT additional information | |
* | |
@@ -543,20 +497,6 @@ struct ieee80211_ht_addt_info { | |
unsigned char basic_set[16]; | |
} __packed; | |
-struct HT_caps_element { | |
- union { | |
- struct { | |
- __le16 HT_caps_info; | |
- unsigned char AMPDU_para; | |
- unsigned char MCS_rate[16]; | |
- unsigned short HT_ext_caps; | |
- unsigned int Beamforming_caps; | |
- unsigned char ASEL_caps; | |
- } HT_cap_element; | |
- unsigned char HT_cap[26]; | |
- } u; | |
-} __packed; | |
- | |
struct HT_info_element { | |
unsigned char primary_channel; | |
unsigned char infos[5]; | |
@@ -688,9 +628,6 @@ enum ht_cap_ampdu_factor { | |
#define WPS_ATTR_VENDOR_EXT 0x1049 | |
#define WPS_ATTR_SELECTED_REGISTRAR 0x1041 | |
-/* Value of WPS attribute "WPS_ATTR_DEVICE_NAME */ | |
-#define WPS_MAX_DEVICE_NAME_LEN 32 | |
- | |
/* Value of WPS Request Type Attribute */ | |
#define WPS_REQ_TYPE_ENROLLEE_INFO_ONLY 0x00 | |
#define WPS_REQ_TYPE_ENROLLEE_OPEN_8021X 0x01 | |
@@ -793,14 +730,6 @@ enum ht_cap_ampdu_factor { | |
#define P2P_STATUS_FAIL_USER_REJECT 0x0B | |
/* Value of Invitation Flags Attribute */ | |
-#define P2P_INVITATION_FLAGS_PERSISTENT BIT(0) | |
- | |
-#define DMP_P2P_DEVCAP_SUPPORT (P2P_DEVCAP_SERVICE_DISCOVERY | \ | |
- P2P_DEVCAP_CLIENT_DISCOVERABILITY | \ | |
- P2P_DEVCAP_CONCURRENT_OPERATION | \ | |
- P2P_DEVCAP_INVITATION_PROC) | |
- | |
-#define DMP_P2P_GRPCAP_SUPPORT (P2P_GRPCAP_INTRABSS) | |
/* Value of Device Capability Bitmap */ | |
#define P2P_DEVCAP_SERVICE_DISCOVERY BIT(0) | |
@@ -839,13 +768,8 @@ enum ht_cap_ampdu_factor { | |
#define P2P_PRESENCE_RESPONSE 2 | |
#define P2P_GO_DISC_REQUEST 3 | |
- | |
-#define P2P_MAX_PERSISTENT_GROUP_NUM 10 | |
- | |
#define P2P_PROVISIONING_SCAN_CNT 3 | |
-#define P2P_WILDCARD_SSID_LEN 7 | |
- | |
/* default value, used when: (1)p2p disabled or (2)p2p enabled | |
* but only do 1 scan phase */ | |
#define P2P_FINDPHASE_EX_NONE 0 | |
@@ -874,8 +798,6 @@ enum ht_cap_ampdu_factor { | |
#define P2P_RESET_SCAN_CH 25000 | |
#define P2P_MAX_INTENT 15 | |
-#define P2P_MAX_NOA_NUM 2 | |
- | |
/* WPS Configuration Method */ | |
#define WPS_CM_NONE 0x0000 | |
#define WPS_CM_LABEL 0x0004 | |
@@ -890,64 +812,6 @@ enum ht_cap_ampdu_factor { | |
#define WPS_CM_SW_DISPLAY_P 0x2008 | |
#define WPS_CM_LCD_DISPLAY_P 0x4008 | |
-enum P2P_ROLE { | |
- P2P_ROLE_DISABLE = 0, | |
- P2P_ROLE_DEVICE = 1, | |
- P2P_ROLE_CLIENT = 2, | |
- P2P_ROLE_GO = 3 | |
-}; | |
- | |
-enum P2P_STATE { | |
- P2P_STATE_NONE = 0, /* P2P disable */ | |
- /* P2P had enabled and do nothing */ | |
- P2P_STATE_IDLE = 1, | |
- P2P_STATE_LISTEN = 2, /* In pure listen state */ | |
- P2P_STATE_SCAN = 3, /* In scan phase */ | |
- /* In the listen state of find phase */ | |
- P2P_STATE_FIND_PHASE_LISTEN = 4, | |
- /* In the search state of find phase */ | |
- P2P_STATE_FIND_PHASE_SEARCH = 5, | |
- /* In P2P provisioning discovery */ | |
- P2P_STATE_TX_PROVISION_DIS_REQ = 6, | |
- P2P_STATE_RX_PROVISION_DIS_RSP = 7, | |
- P2P_STATE_RX_PROVISION_DIS_REQ = 8, | |
- /* Doing the group owner negotiation handshake */ | |
- P2P_STATE_GONEGO_ING = 9, | |
- /* finish the group negotiation handshake with success */ | |
- P2P_STATE_GONEGO_OK = 10, | |
- /* finish the group negotiation handshake with failure */ | |
- P2P_STATE_GONEGO_FAIL = 11, | |
- /* receiving the P2P Invitation request and match with the profile. */ | |
- P2P_STATE_RECV_INVITE_REQ_MATCH = 12, | |
- /* Doing the P2P WPS */ | |
- P2P_STATE_PROVISIONING_ING = 13, | |
- /* Finish the P2P WPS */ | |
- P2P_STATE_PROVISIONING_DONE = 14, | |
- /* Transmit the P2P Invitation request */ | |
- P2P_STATE_TX_INVITE_REQ = 15, | |
- /* Receiving the P2P Invitation response */ | |
- P2P_STATE_RX_INVITE_RESP_OK = 16, | |
- /* receiving the P2P Invitation request and dismatch with the profile. */ | |
- P2P_STATE_RECV_INVITE_REQ_DISMATCH = 17, | |
- /* receiving the P2P Invitation request and this wifi is GO. */ | |
- P2P_STATE_RECV_INVITE_REQ_GO = 18, | |
- /* receiving the P2P Invitation request to join an existing P2P Group. */ | |
- P2P_STATE_RECV_INVITE_REQ_JOIN = 19, | |
- /* receiving the P2P Invitation response with failure */ | |
- P2P_STATE_RX_INVITE_RESP_FAIL = 20, | |
- /* receiving p2p negotiation response with information is not available */ | |
- P2P_STATE_RX_INFOR_NOREADY = 21, | |
- /* sending p2p negotiation response with information is not available */ | |
- P2P_STATE_TX_INFOR_NOREADY = 22, | |
-}; | |
- | |
-enum P2P_WPSINFO { | |
- P2P_NO_WPSINFO = 0, | |
- P2P_GOT_WPSINFO_PEER_DISPLAY_PIN = 1, | |
- P2P_GOT_WPSINFO_SELF_DISPLAY_PIN = 2, | |
- P2P_GOT_WPSINFO_PBC = 3, | |
-}; | |
- | |
#define P2P_PRIVATE_IOCTL_SET_LEN 64 | |
enum P2P_PROTO_WK_ID { | |
@@ -960,21 +824,6 @@ enum P2P_PROTO_WK_ID { | |
P2P_RO_CH_WK = 6, | |
}; | |
-enum P2P_PS_STATE { | |
- P2P_PS_DISABLE = 0, | |
- P2P_PS_ENABLE = 1, | |
- P2P_PS_SCAN = 2, | |
- P2P_PS_SCAN_DONE = 3, | |
- P2P_PS_ALLSTASLEEP = 4, /* for P2P GO */ | |
-}; | |
- | |
-enum P2P_PS_MODE { | |
- P2P_PS_NONE = 0, | |
- P2P_PS_CTWINDOW = 1, | |
- P2P_PS_NOA = 2, | |
- P2P_PS_MIX = 3, /* CTWindow and NoA */ | |
-}; | |
- | |
/* =====================WFD Section===================== */ | |
/* For Wi-Fi Display */ | |
#define WFD_ATTR_DEVICE_INFO 0x00 | |
diff --git b/drivers/staging/rtl8188eu/include/wlan_bssdef.h a/drivers/staging/rtl8188eu/include/wlan_bssdef.h | |
index 85b99da49a2d..e1931dd04da0 100644 | |
--- b/drivers/staging/rtl8188eu/include/wlan_bssdef.h | |
+++ a/drivers/staging/rtl8188eu/include/wlan_bssdef.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#ifndef __WLAN_BSSDEF_H__ | |
#define __WLAN_BSSDEF_H__ | |
@@ -128,40 +123,10 @@ enum ndis_802_11_wep_status { | |
#define NDIS_802_11_AI_RESFI_STATUSCODE 2 | |
#define NDIS_802_11_AI_RESFI_ASSOCIATIONID 4 | |
-struct ndis_802_11_ai_reqfi { | |
- u16 Capabilities; | |
- u16 ListenInterval; | |
- unsigned char CurrentAPAddress[ETH_ALEN]; | |
-}; | |
- | |
-struct ndis_802_11_ai_resfi { | |
- u16 Capabilities; | |
- u16 StatusCode; | |
- u16 AssociationId; | |
-}; | |
- | |
-struct ndis_802_11_assoc_info { | |
- u32 Length; | |
- u16 AvailableRequestFixedIEs; | |
- struct ndis_802_11_ai_reqfi RequestFixedIEs; | |
- u32 RequestIELength; | |
- u32 OffsetRequestIEs; | |
- u16 AvailableResponseFixedIEs; | |
- struct ndis_802_11_ai_resfi ResponseFixedIEs; | |
- u32 ResponseIELength; | |
- u32 OffsetResponseIEs; | |
-}; | |
- | |
enum ndis_802_11_reload_def { | |
Ndis802_11ReloadWEPKeys | |
}; | |
-struct ndis_802_11_remove_key { | |
- u32 Length; /* Length */ | |
- u32 KeyIndex; | |
- unsigned char BSSID[ETH_ALEN]; | |
-}; | |
- | |
struct ndis_802_11_wep { | |
u32 Length; /* Length of this structure */ | |
u32 KeyIndex; /* 0 is the per-client key, | |
@@ -170,12 +135,6 @@ struct ndis_802_11_wep { | |
u8 KeyMaterial[16];/* variable len depending on above field */ | |
}; | |
-struct ndis_802_11_auth_req { | |
- u32 Length; /* Length of structure */ | |
- unsigned char Bssid[ETH_ALEN]; | |
- u32 Flags; | |
-}; | |
- | |
enum ndis_802_11_status_type { | |
Ndis802_11StatusType_Authentication, | |
Ndis802_11StatusType_MediaStreamMode, | |
@@ -184,10 +143,6 @@ enum ndis_802_11_status_type { | |
* an upper bound */ | |
}; | |
-struct ndis_802_11_status_ind { | |
- enum ndis_802_11_status_type StatusType; | |
-}; | |
- | |
/* mask for authentication/integrity fields */ | |
#define NDIS_802_11_AUTH_REQUEST_AUTH_FIELDS 0x0f | |
#define NDIS_802_11_AUTH_REQUEST_REAUTH 0x01 | |
@@ -198,21 +153,6 @@ struct ndis_802_11_status_ind { | |
/* MIC check time, 60 seconds. */ | |
#define MIC_CHECK_TIME 60000000 | |
-struct ndis_802_11_auth_evt { | |
- struct ndis_802_11_status_ind Status; | |
- struct ndis_802_11_auth_req Request[1]; | |
-}; | |
- | |
-struct ndis_802_11_test { | |
- u32 Length; | |
- u32 Type; | |
- union { | |
- struct ndis_802_11_auth_evt AuthenticationEvent; | |
- NDIS_802_11_RSSI RssiTrigger; | |
- } tt; | |
-}; | |
- | |
- | |
#ifndef Ndis802_11APMode | |
#define Ndis802_11APMode (Ndis802_11InfrastructureMax+1) | |
#endif | |
@@ -302,32 +242,4 @@ enum UAPSD_MAX_SP { | |
#define NUM_PRE_AUTH_KEY 16 | |
#define NUM_PMKID_CACHE NUM_PRE_AUTH_KEY | |
-/* | |
-* WPA2 | |
-*/ | |
- | |
-struct pmkid_candidate { | |
- unsigned char BSSID[ETH_ALEN]; | |
- u32 Flags; | |
-}; | |
- | |
-struct ndis_802_11_pmkid_list { | |
- u32 Version; /* Version of the structure */ | |
- u32 NumCandidates; /* No. of pmkid candidates */ | |
- struct pmkid_candidate CandidateList[1]; | |
-}; | |
- | |
-struct ndis_802_11_auth_encrypt { | |
- enum ndis_802_11_auth_mode AuthModeSupported; | |
- enum ndis_802_11_wep_status EncryptStatusSupported; | |
-}; | |
- | |
-struct ndis_802_11_cap { | |
- u32 Length; | |
- u32 Version; | |
- u32 NoOfPMKIDs; | |
- u32 NoOfAuthEncryptPairsSupported; | |
- struct ndis_802_11_auth_encrypt AuthenticationEncryptionSupported[1]; | |
-}; | |
- | |
#endif /* ifndef WLAN_BSSDEF_H_ */ | |
diff --git b/drivers/staging/rtl8188eu/include/xmit_osdep.h a/drivers/staging/rtl8188eu/include/xmit_osdep.h | |
index 13965f2489db..959ef4b3066c 100644 | |
--- b/drivers/staging/rtl8188eu/include/xmit_osdep.h | |
+++ a/drivers/staging/rtl8188eu/include/xmit_osdep.h | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#ifndef __XMIT_OSDEP_H_ | |
#define __XMIT_OSDEP_H_ | |
@@ -46,13 +41,11 @@ void rtw_os_xmit_schedule(struct adapter *padapter); | |
int rtw_os_xmit_resource_alloc(struct adapter *padapter, | |
struct xmit_buf *pxmitbuf, u32 alloc_sz); | |
-void rtw_os_xmit_resource_free(struct adapter *padapter, | |
- struct xmit_buf *pxmitbuf, u32 free_sz); | |
+void rtw_os_xmit_resource_free(struct xmit_buf *pxmitbuf); | |
uint rtw_remainder_len(struct pkt_file *pfile); | |
void _rtw_open_pktfile(struct sk_buff *pkt, struct pkt_file *pfile); | |
uint _rtw_pktfile_read(struct pkt_file *pfile, u8 *rmem, uint rlen); | |
-int rtw_endofpktfile(struct pkt_file *pfile); | |
void rtw_os_pkt_complete(struct adapter *padapter, struct sk_buff *pkt); | |
void rtw_os_xmit_complete(struct adapter *padapter, | |
diff --git b/drivers/staging/rtl8188eu/os_dep/ioctl_linux.c a/drivers/staging/rtl8188eu/os_dep/ioctl_linux.c | |
index a076ede50b22..446310775e90 100644 | |
--- b/drivers/staging/rtl8188eu/os_dep/ioctl_linux.c | |
+++ a/drivers/staging/rtl8188eu/os_dep/ioctl_linux.c | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#define _IOCTL_LINUX_C_ | |
@@ -137,12 +132,16 @@ static char *translate_scan(struct adapter *padapter, | |
p = rtw_get_ie(&pnetwork->network.IEs[12], _HT_CAPABILITY_IE_, &ht_ielen, pnetwork->network.IELength-12); | |
if (p && ht_ielen > 0) { | |
- struct rtw_ieee80211_ht_cap *pht_capie; | |
+ struct ieee80211_ht_cap *pht_capie; | |
ht_cap = true; | |
- pht_capie = (struct rtw_ieee80211_ht_cap *)(p+2); | |
- memcpy(&mcs_rate, pht_capie->supp_mcs_set, 2); | |
- bw_40MHz = (pht_capie->cap_info&IEEE80211_HT_CAP_SUP_WIDTH) ? 1 : 0; | |
- short_GI = (pht_capie->cap_info&(IEEE80211_HT_CAP_SGI_20|IEEE80211_HT_CAP_SGI_40)) ? 1 : 0; | |
+ | |
+ pht_capie = (struct ieee80211_ht_cap *)(p + 2); | |
+ memcpy(&mcs_rate, pht_capie->mcs.rx_mask, 2); | |
+ bw_40MHz = !!(le16_to_cpu(pht_capie->cap_info) & | |
+ IEEE80211_HT_CAP_SUP_WIDTH); | |
+ short_GI = !!(le16_to_cpu(pht_capie->cap_info) & | |
+ (IEEE80211_HT_CAP_SGI_20 | | |
+ IEEE80211_HT_CAP_SGI_40)); | |
} | |
/* Add the protocol name */ | |
@@ -287,8 +286,8 @@ static char *translate_scan(struct adapter *padapter, | |
uint cnt = 0, total_ielen; | |
u8 *wpsie_ptr = NULL; | |
uint wps_ielen = 0; | |
- | |
u8 *ie_ptr = pnetwork->network.IEs + _FIXED_IE_LENGTH_; | |
+ | |
total_ielen = pnetwork->network.IELength - _FIXED_IE_LENGTH_; | |
while (cnt < total_ielen) { | |
@@ -403,9 +402,9 @@ static int wpa_set_encryption(struct net_device *dev, struct ieee_param *param, | |
if (wep_key_len > 0) { | |
wep_key_len = wep_key_len <= 5 ? 5 : 13; | |
- wep_total_len = wep_key_len + FIELD_OFFSET(struct ndis_802_11_wep, KeyMaterial); | |
+ wep_total_len = wep_key_len + offsetof(struct ndis_802_11_wep, KeyMaterial); | |
pwep = (struct ndis_802_11_wep *)rtw_malloc(wep_total_len); | |
- if (pwep == NULL) { | |
+ if (!pwep) { | |
RT_TRACE(_module_rtl871x_ioctl_os_c, _drv_err_, (" wpa_set_encryption: pwep allocate fail !!!\n")); | |
goto exit; | |
} | |
@@ -444,9 +443,9 @@ static int wpa_set_encryption(struct net_device *dev, struct ieee_param *param, | |
struct sta_info *psta, *pbcmc_sta; | |
struct sta_priv *pstapriv = &padapter->stapriv; | |
- if (check_fwstate(pmlmepriv, WIFI_STATION_STATE | WIFI_MP_STATE)) { /* sta mode */ | |
+ if (check_fwstate(pmlmepriv, WIFI_STATION_STATE)) { /* sta mode */ | |
psta = rtw_get_stainfo(pstapriv, get_bssid(pmlmepriv)); | |
- if (psta == NULL) { | |
+ if (!psta) { | |
; | |
} else { | |
if (strcmp(param->u.crypt.alg, "none") != 0) | |
@@ -481,7 +480,7 @@ static int wpa_set_encryption(struct net_device *dev, struct ieee_param *param, | |
} | |
} | |
pbcmc_sta = rtw_get_bcmc_stainfo(padapter); | |
- if (pbcmc_sta == NULL) { | |
+ if (!pbcmc_sta) { | |
; | |
} else { | |
/* Jeff: don't disable ieee8021x_blocked while clearing key */ | |
@@ -507,9 +506,9 @@ static int rtw_set_wpa_ie(struct adapter *padapter, char *pie, unsigned short ie | |
int group_cipher = 0, pairwise_cipher = 0; | |
int ret = 0; | |
- if ((ielen > MAX_WPA_IE_LEN) || (pie == NULL)) { | |
+ if ((ielen > MAX_WPA_IE_LEN) || (!pie)) { | |
_clr_fwstate_(&padapter->mlmepriv, WIFI_UNDER_WPS); | |
- if (pie == NULL) | |
+ if (!pie) | |
return ret; | |
else | |
return -EINVAL; | |
@@ -517,7 +516,7 @@ static int rtw_set_wpa_ie(struct adapter *padapter, char *pie, unsigned short ie | |
if (ielen) { | |
buf = kmemdup(pie, ielen, GFP_KERNEL); | |
- if (buf == NULL) { | |
+ if (!buf) { | |
ret = -ENOMEM; | |
goto exit; | |
} | |
@@ -525,6 +524,7 @@ static int rtw_set_wpa_ie(struct adapter *padapter, char *pie, unsigned short ie | |
/* dump */ | |
{ | |
int i; | |
+ | |
DBG_88E("\n wpa_ie(length:%d):\n", ielen); | |
for (i = 0; i < ielen; i += 8) | |
DBG_88E("0x%.2x 0x%.2x 0x%.2x 0x%.2x 0x%.2x 0x%.2x 0x%.2x 0x%.2x\n", buf[i], buf[i+1], buf[i+2], buf[i+3], buf[i+4], buf[i+5], buf[i+6], buf[i+7]); | |
@@ -1054,7 +1054,7 @@ static int rtw_wx_set_mlme(struct net_device *dev, | |
struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev); | |
struct iw_mlme *mlme = (struct iw_mlme *)extra; | |
- if (mlme == NULL) | |
+ if (!mlme) | |
return -1; | |
DBG_88E("%s\n", __func__); | |
@@ -1086,14 +1086,9 @@ static int rtw_wx_set_scan(struct net_device *dev, struct iw_request_info *a, | |
struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev); | |
struct mlme_priv *pmlmepriv = &padapter->mlmepriv; | |
struct ndis_802_11_ssid ssid[RTW_SSID_SCAN_AMOUNT]; | |
+ | |
RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_, ("rtw_wx_set_scan\n")); | |
- if (padapter->registrypriv.mp_mode == 1) { | |
- if (check_fwstate(pmlmepriv, WIFI_MP_STATE)) { | |
- ret = -1; | |
- goto exit; | |
- } | |
- } | |
if (_FAIL == rtw_pwr_wakeup(padapter)) { | |
ret = -1; | |
goto exit; | |
@@ -1227,6 +1222,7 @@ static int rtw_wx_get_scan(struct net_device *dev, struct iw_request_info *a, | |
u32 cnt = 0; | |
u32 wait_for_surveydone; | |
int wait_status; | |
+ | |
RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_, ("rtw_wx_get_scan\n")); | |
RT_TRACE(_module_rtl871x_ioctl_os_c, _drv_info_, (" Start of Query SIOCGIWSCAN .\n")); | |
@@ -1399,19 +1395,13 @@ static int rtw_wx_get_essid(struct net_device *dev, | |
if ((check_fwstate(pmlmepriv, _FW_LINKED)) || | |
(check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE))) { | |
len = pcur_bss->Ssid.SsidLength; | |
- | |
- wrqu->essid.length = len; | |
- | |
memcpy(extra, pcur_bss->Ssid.Ssid, len); | |
- | |
- wrqu->essid.flags = 1; | |
} else { | |
- ret = -1; | |
- goto exit; | |
+ len = 0; | |
+ *extra = 0; | |
} | |
- | |
-exit: | |
- | |
+ wrqu->essid.length = len; | |
+ wrqu->essid.flags = 1; | |
return ret; | |
} | |
@@ -1615,6 +1605,7 @@ static int rtw_wx_set_enc(struct net_device *dev, | |
struct iw_point *erq = &(wrqu->encoding); | |
struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev); | |
struct pwrctrl_priv *pwrpriv = &padapter->pwrctrlpriv; | |
+ | |
DBG_88E("+rtw_wx_set_enc, flags = 0x%x\n", erq->flags); | |
memset(&wep, 0, sizeof(struct ndis_802_11_wep)); | |
@@ -1677,7 +1668,7 @@ static int rtw_wx_set_enc(struct net_device *dev, | |
if (erq->length > 0) { | |
wep.KeyLength = erq->length <= 5 ? 5 : 13; | |
- wep.Length = wep.KeyLength + FIELD_OFFSET(struct ndis_802_11_wep, KeyMaterial); | |
+ wep.Length = wep.KeyLength + offsetof(struct ndis_802_11_wep, KeyMaterial); | |
} else { | |
wep.KeyLength = 0; | |
@@ -1901,13 +1892,13 @@ static int rtw_wx_set_enc_ext(struct net_device *dev, | |
param_len = sizeof(struct ieee_param) + pext->key_len; | |
param = (struct ieee_param *)rtw_malloc(param_len); | |
- if (param == NULL) | |
+ if (!param) | |
return -1; | |
memset(param, 0, param_len); | |
param->cmd = IEEE_CMD_SET_ENCRYPTION; | |
- memset(param->sta_addr, 0xff, ETH_ALEN); | |
+ eth_broadcast_addr(param->sta_addr); | |
switch (pext->alg) { | |
case IW_ENCODE_ALG_NONE: | |
@@ -2066,7 +2057,7 @@ static int wpa_supplicant_ioctl(struct net_device *dev, struct iw_point *p) | |
} | |
param = (struct ieee_param *)rtw_malloc(p->length); | |
- if (param == NULL) { | |
+ if (!param) { | |
ret = -ENOMEM; | |
goto out; | |
} | |
@@ -2120,13 +2111,13 @@ static u8 set_pairwise_key(struct adapter *padapter, struct sta_info *psta) | |
u8 res = _SUCCESS; | |
ph2c = kzalloc(sizeof(struct cmd_obj), GFP_KERNEL); | |
- if (ph2c == NULL) { | |
+ if (!ph2c) { | |
res = _FAIL; | |
goto exit; | |
} | |
psetstakey_para = kzalloc(sizeof(struct set_stakey_parm), GFP_KERNEL); | |
- if (psetstakey_para == NULL) { | |
+ if (!psetstakey_para) { | |
kfree(ph2c); | |
res = _FAIL; | |
goto exit; | |
@@ -2158,19 +2149,17 @@ static int set_group_key(struct adapter *padapter, u8 *key, u8 alg, int keyid) | |
DBG_88E("%s\n", __func__); | |
pcmd = kzalloc(sizeof(struct cmd_obj), GFP_KERNEL); | |
- if (pcmd == NULL) { | |
+ if (!pcmd) { | |
res = _FAIL; | |
goto exit; | |
} | |
psetkeyparm = kzalloc(sizeof(struct setkey_parm), GFP_KERNEL); | |
- if (psetkeyparm == NULL) { | |
+ if (!psetkeyparm) { | |
kfree(pcmd); | |
res = _FAIL; | |
goto exit; | |
} | |
- memset(psetkeyparm, 0, sizeof(struct setkey_parm)); | |
- | |
psetkeyparm->keyid = (u8)keyid; | |
psetkeyparm->algorithm = alg; | |
@@ -2259,13 +2248,13 @@ static int rtw_set_encryption(struct net_device *dev, struct ieee_param *param, | |
} | |
} | |
- if (strcmp(param->u.crypt.alg, "none") == 0 && (psta == NULL)) { | |
+ if (strcmp(param->u.crypt.alg, "none") == 0 && (!psta)) { | |
/* todo:clear default encryption keys */ | |
DBG_88E("clear default encryption keys, keyid =%d\n", param->u.crypt.idx); | |
goto exit; | |
} | |
- if (strcmp(param->u.crypt.alg, "WEP") == 0 && (psta == NULL)) { | |
+ if (strcmp(param->u.crypt.alg, "WEP") == 0 && (!psta)) { | |
DBG_88E("r871x_set_encryption, crypt.alg = WEP\n"); | |
wep_key_idx = param->u.crypt.idx; | |
wep_key_len = param->u.crypt.key_len; | |
@@ -2277,9 +2266,9 @@ static int rtw_set_encryption(struct net_device *dev, struct ieee_param *param, | |
if (wep_key_len > 0) { | |
wep_key_len = wep_key_len <= 5 ? 5 : 13; | |
- wep_total_len = wep_key_len + FIELD_OFFSET(struct ndis_802_11_wep, KeyMaterial); | |
+ wep_total_len = wep_key_len + offsetof(struct ndis_802_11_wep, KeyMaterial); | |
pwep = (struct ndis_802_11_wep *)rtw_malloc(wep_total_len); | |
- if (pwep == NULL) { | |
+ if (!pwep) { | |
DBG_88E(" r871x_set_encryption: pwep allocate fail !!!\n"); | |
goto exit; | |
} | |
@@ -2533,7 +2522,8 @@ static int rtw_add_sta(struct net_device *dev, struct ieee_param *param) | |
if (WLAN_STA_HT&flags) { | |
psta->htpriv.ht_option = true; | |
psta->qos_option = 1; | |
- memcpy((void *)&psta->htpriv.ht_cap, (void *)¶m->u.add_sta.ht_cap, sizeof(struct rtw_ieee80211_ht_cap)); | |
+ memcpy(&psta->htpriv.ht_cap, ¶m->u.add_sta.ht_cap, | |
+ sizeof(struct ieee80211_ht_cap)); | |
} else { | |
psta->htpriv.ht_option = false; | |
} | |
@@ -2629,7 +2619,8 @@ static int rtw_ioctl_get_sta_data(struct net_device *dev, struct ieee_param *par | |
(psta->ht_20mhz_set << 5)); | |
psta_data->tx_supp_rates_len = psta->bssratelen; | |
memcpy(psta_data->tx_supp_rates, psta->bssrateset, psta->bssratelen); | |
- memcpy(&psta_data->ht_cap, &psta->htpriv.ht_cap, sizeof(struct rtw_ieee80211_ht_cap)); | |
+ memcpy(&psta_data->ht_cap, | |
+ &psta->htpriv.ht_cap, sizeof(struct ieee80211_ht_cap)); | |
psta_data->rx_pkts = psta->sta_stats.rx_data_pkts; | |
psta_data->rx_bytes = psta->sta_stats.rx_bytes; | |
psta_data->rx_drops = psta->sta_stats.rx_drops; | |
@@ -2704,7 +2695,7 @@ static int rtw_set_wps_beacon(struct net_device *dev, struct ieee_param *param, | |
if (ie_len > 0) { | |
pmlmepriv->wps_beacon_ie = rtw_malloc(ie_len); | |
pmlmepriv->wps_beacon_ie_len = ie_len; | |
- if (pmlmepriv->wps_beacon_ie == NULL) { | |
+ if (!pmlmepriv->wps_beacon_ie) { | |
DBG_88E("%s()-%d: rtw_malloc() ERROR!\n", __func__, __LINE__); | |
return -EINVAL; | |
} | |
@@ -2739,7 +2730,7 @@ static int rtw_set_wps_probe_resp(struct net_device *dev, struct ieee_param *par | |
if (ie_len > 0) { | |
pmlmepriv->wps_probe_resp_ie = rtw_malloc(ie_len); | |
pmlmepriv->wps_probe_resp_ie_len = ie_len; | |
- if (pmlmepriv->wps_probe_resp_ie == NULL) { | |
+ if (!pmlmepriv->wps_probe_resp_ie) { | |
DBG_88E("%s()-%d: rtw_malloc() ERROR!\n", __func__, __LINE__); | |
return -EINVAL; | |
} | |
@@ -2769,7 +2760,7 @@ static int rtw_set_wps_assoc_resp(struct net_device *dev, struct ieee_param *par | |
if (ie_len > 0) { | |
pmlmepriv->wps_assoc_resp_ie = rtw_malloc(ie_len); | |
pmlmepriv->wps_assoc_resp_ie_len = ie_len; | |
- if (pmlmepriv->wps_assoc_resp_ie == NULL) { | |
+ if (!pmlmepriv->wps_assoc_resp_ie) { | |
DBG_88E("%s()-%d: rtw_malloc() ERROR!\n", __func__, __LINE__); | |
return -EINVAL; | |
} | |
@@ -2871,7 +2862,7 @@ static int rtw_hostapd_ioctl(struct net_device *dev, struct iw_point *p) | |
} | |
param = (struct ieee_param *)rtw_malloc(p->length); | |
- if (param == NULL) { | |
+ if (!param) { | |
ret = -ENOMEM; | |
goto out; | |
} | |
@@ -2981,7 +2972,7 @@ static int rtw_wx_set_priv(struct net_device *dev, | |
pmlmepriv->wps_probe_req_ie = NULL; | |
pmlmepriv->wps_probe_req_ie = rtw_malloc(cp_sz); | |
- if (pmlmepriv->wps_probe_req_ie == NULL) { | |
+ if (!pmlmepriv->wps_probe_req_ie) { | |
pr_info("%s()-%d: rtw_malloc() ERROR!\n", __func__, __LINE__); | |
ret = -EINVAL; | |
goto FREE_EXT; | |
@@ -3095,7 +3086,6 @@ struct iw_handler_def rtw_handlers_def = { | |
.get_wireless_stats = rtw_get_wireless_stats, | |
}; | |
-#include <rtw_android.h> | |
int rtw_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) | |
{ | |
struct iwreq *wrq = (struct iwreq *)rq; | |
diff --git b/drivers/staging/rtl8188eu/os_dep/mlme_linux.c a/drivers/staging/rtl8188eu/os_dep/mlme_linux.c | |
index 08bfa76f4975..bc756267c7fc 100644 | |
--- b/drivers/staging/rtl8188eu/os_dep/mlme_linux.c | |
+++ a/drivers/staging/rtl8188eu/os_dep/mlme_linux.c | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
diff --git b/drivers/staging/rtl8188eu/os_dep/mon.c a/drivers/staging/rtl8188eu/os_dep/mon.c | |
index 63bb87593af0..225c23fc69dc 100644 | |
--- b/drivers/staging/rtl8188eu/os_dep/mon.c | |
+++ a/drivers/staging/rtl8188eu/os_dep/mon.c | |
@@ -53,7 +53,7 @@ static void mon_recv_decrypted(struct net_device *dev, const u8 *data, | |
skb = netdev_alloc_skb(dev, data_len); | |
if (!skb) | |
return; | |
- memcpy(skb_put(skb, data_len), data, data_len); | |
+ skb_put_data(skb, data, data_len); | |
/* | |
* Frame data is not encrypted. Strip off protection so | |
@@ -92,8 +92,8 @@ void rtl88eu_mon_recv_hook(struct net_device *dev, struct recv_frame *frame) | |
return; | |
attr = &frame->attrib; | |
- data = frame->rx_data; | |
- data_len = frame->len; | |
+ data = frame->pkt->data; | |
+ data_len = frame->pkt->len; | |
/* Broadcast and multicast frames don't have attr->{iv,icv}_len set */ | |
SET_ICE_IV_LEN(iv_len, icv_len, attr->encrypt); | |
@@ -145,7 +145,6 @@ static netdev_tx_t mon_xmit(struct sk_buff *skb, struct net_device *dev) | |
static const struct net_device_ops mon_netdev_ops = { | |
.ndo_start_xmit = mon_xmit, | |
- .ndo_change_mtu = eth_change_mtu, | |
.ndo_set_mac_address = eth_mac_addr, | |
.ndo_validate_addr = eth_validate_addr, | |
}; | |
@@ -153,9 +152,9 @@ static const struct net_device_ops mon_netdev_ops = { | |
static void mon_setup(struct net_device *dev) | |
{ | |
dev->netdev_ops = &mon_netdev_ops; | |
- dev->destructor = free_netdev; | |
+ dev->needs_free_netdev = true; | |
ether_setup(dev); | |
- dev->tx_queue_len = 0; | |
+ dev->priv_flags |= IFF_NO_QUEUE; | |
dev->type = ARPHRD_IEEE80211; | |
/* | |
* Use a locally administered address (IEEE 802) | |
diff --git b/drivers/staging/rtl8188eu/os_dep/os_intfs.c a/drivers/staging/rtl8188eu/os_dep/os_intfs.c | |
index d063d02db7f0..add1ba00f3e9 100644 | |
--- b/drivers/staging/rtl8188eu/os_dep/os_intfs.c | |
+++ a/drivers/staging/rtl8188eu/os_dep/os_intfs.c | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#define _OS_INTFS_C_ | |
@@ -28,8 +23,6 @@ | |
#include <rtw_ioctl.h> | |
#include <rtl8188e_hal.h> | |
-#include <usb_hal.h> | |
- | |
MODULE_LICENSE("GPL"); | |
MODULE_DESCRIPTION("Realtek Wireless Lan Driver"); | |
MODULE_AUTHOR("Realtek Semiconductor Corp."); | |
@@ -38,11 +31,7 @@ MODULE_VERSION(DRIVERVERSION); | |
#define RTW_NOTCH_FILTER 0 /* 0:Disable, 1:Enable, */ | |
/* module param defaults */ | |
-static int rtw_chip_version; | |
-static int rtw_rfintfs = HWPI; | |
-static int rtw_lbkmode;/* RTL8712_AIR_TRX; */ | |
/* Ndis802_11Infrastructure; infra, ad-hoc, auto */ | |
-static int rtw_network_mode = Ndis802_11IBSS; | |
static int rtw_channel = 1;/* ad-hoc support requirement */ | |
static int rtw_wireless_mode = WIRELESS_11BG_24N; | |
static int rtw_vrtl_carrier_sense = AUTO_VCS; | |
@@ -50,9 +39,6 @@ static int rtw_vcs_type = RTS_CTS;/* */ | |
static int rtw_rts_thresh = 2347;/* */ | |
static int rtw_frag_thresh = 2346;/* */ | |
static int rtw_preamble = PREAMBLE_LONG;/* long, short, auto */ | |
-static int rtw_scan_mode = 1;/* active, passive */ | |
-static int rtw_adhoc_tx_pwr = 1; | |
-static int rtw_soft_ap; | |
static int rtw_power_mgnt = 1; | |
static int rtw_ips_mode = IPS_NORMAL; | |
@@ -62,24 +48,11 @@ module_param(rtw_ips_mode, int, 0644); | |
MODULE_PARM_DESC(rtw_ips_mode, "The default IPS mode"); | |
static int rtw_debug = 1; | |
-static int rtw_radio_enable = 1; | |
-static int rtw_long_retry_lmt = 7; | |
-static int rtw_short_retry_lmt = 7; | |
-static int rtw_busy_thresh = 40; | |
-static int rtw_ack_policy = NORMAL_ACK; | |
- | |
-static int rtw_software_encrypt; | |
-static int rtw_software_decrypt; | |
static int rtw_acm_method;/* 0:By SW 1:By HW. */ | |
static int rtw_wmm_enable = 1;/* default is set to enable the wmm. */ | |
static int rtw_uapsd_enable; | |
-static int rtw_uapsd_max_sp = NO_LIMIT; | |
-static int rtw_uapsd_acbk_en; | |
-static int rtw_uapsd_acbe_en; | |
-static int rtw_uapsd_acvi_en; | |
-static int rtw_uapsd_acvo_en; | |
static int rtw_ht_enable = 1; | |
/* 0 :disable, bit(0): enable 2.4g, bit(1): enable 5g */ | |
@@ -94,15 +67,8 @@ static int rtw_ampdu_enable = 1;/* for enable tx_ampdu */ | |
static int rtw_rx_stbc = 1; | |
static int rtw_ampdu_amsdu;/* 0: disabled, 1:enabled, 2:auto */ | |
-/* Use 2 path Tx to transmit MCS0~7 and legacy mode */ | |
-static int rtw_lowrate_two_xmit = 1; | |
- | |
-static int rtw_rf_config = RF_819X_MAX_TYPE; /* auto */ | |
-static int rtw_low_power; | |
static int rtw_wifi_spec; | |
static int rtw_channel_plan = RT_CHANNEL_DOMAIN_MAX; | |
-/* 0:Reject AP's Add BA req, 1:Accept AP's Add BA req. */ | |
-static int rtw_AcceptAddbaReq = true; | |
static int rtw_antdiv_cfg = 2; /* 0:OFF , 1:ON, 2:decide by Efuse config */ | |
@@ -118,10 +84,6 @@ static int rtw_enusbss;/* 0:disable, 1:enable */ | |
static int rtw_hwpdn_mode = 2;/* 0:disable, 1:enable, 2: by EFUSE config */ | |
-static int rtw_hwpwrp_detect; /* HW power ping detect 0:disable , 1:enable */ | |
- | |
-static int rtw_hw_wps_pbc = 1; | |
- | |
int rtw_mc2u_disable; | |
static int rtw_80211d; | |
@@ -139,32 +101,22 @@ char *rtw_initmac; | |
module_param(rtw_initmac, charp, 0644); | |
module_param(rtw_channel_plan, int, 0644); | |
-module_param(rtw_chip_version, int, 0644); | |
-module_param(rtw_rfintfs, int, 0644); | |
-module_param(rtw_lbkmode, int, 0644); | |
-module_param(rtw_network_mode, int, 0644); | |
module_param(rtw_channel, int, 0644); | |
module_param(rtw_wmm_enable, int, 0644); | |
module_param(rtw_vrtl_carrier_sense, int, 0644); | |
module_param(rtw_vcs_type, int, 0644); | |
-module_param(rtw_busy_thresh, int, 0644); | |
module_param(rtw_ht_enable, int, 0644); | |
module_param(rtw_cbw40_enable, int, 0644); | |
module_param(rtw_ampdu_enable, int, 0644); | |
module_param(rtw_rx_stbc, int, 0644); | |
module_param(rtw_ampdu_amsdu, int, 0644); | |
-module_param(rtw_lowrate_two_xmit, int, 0644); | |
-module_param(rtw_rf_config, int, 0644); | |
module_param(rtw_power_mgnt, int, 0644); | |
module_param(rtw_smart_ps, int, 0644); | |
-module_param(rtw_low_power, int, 0644); | |
module_param(rtw_wifi_spec, int, 0644); | |
module_param(rtw_antdiv_cfg, int, 0644); | |
module_param(rtw_antdiv_type, int, 0644); | |
module_param(rtw_enusbss, int, 0644); | |
module_param(rtw_hwpdn_mode, int, 0644); | |
-module_param(rtw_hwpwrp_detect, int, 0644); | |
-module_param(rtw_hw_wps_pbc, int, 0644); | |
static uint rtw_max_roaming_times = 2; | |
module_param(rtw_max_roaming_times, uint, 0644); | |
@@ -189,364 +141,13 @@ static bool rtw_monitor_enable; | |
module_param_named(monitor_enable, rtw_monitor_enable, bool, 0444); | |
MODULE_PARM_DESC(monitor_enable, "Enable monitor inferface (default: false)"); | |
-static int netdev_open(struct net_device *pnetdev); | |
static int netdev_close(struct net_device *pnetdev); | |
-/* dummy routines */ | |
-void rtw_proc_remove_one(struct net_device *dev) | |
-{ | |
-} | |
- | |
-static void rtw_proc_init_one(struct net_device *dev) | |
-{ | |
-} | |
- | |
-#if 0 /* TODO: Convert these to /sys */ | |
-static void rtw_proc_init_one(struct net_device *dev) | |
-{ | |
- struct proc_dir_entry *dir_dev = NULL; | |
- struct proc_dir_entry *entry = NULL; | |
- struct adapter *padapter = rtw_netdev_priv(dev); | |
- u8 rf_type; | |
- | |
- if (rtw_proc == NULL) { | |
- memcpy(rtw_proc_name, DRV_NAME, sizeof(DRV_NAME)); | |
- | |
- rtw_proc = create_proc_entry(rtw_proc_name, S_IFDIR, | |
- init_net.proc_net); | |
- if (rtw_proc == NULL) { | |
- DBG_88E(KERN_ERR "Unable to create rtw_proc directory\n"); | |
- return; | |
- } | |
- | |
- entry = create_proc_read_entry("ver_info", S_IFREG | S_IRUGO, | |
- rtw_proc, proc_get_drv_version, | |
- dev); | |
- if (!entry) { | |
- pr_info("Unable to create_proc_read_entry!\n"); | |
- return; | |
- } | |
- } | |
- | |
- if (padapter->dir_dev == NULL) { | |
- padapter->dir_dev = create_proc_entry(dev->name, | |
- S_IFDIR | S_IRUGO | S_IXUGO, | |
- rtw_proc); | |
- dir_dev = padapter->dir_dev; | |
- if (dir_dev == NULL) { | |
- if (rtw_proc_cnt == 0 && rtw_proc) { | |
- remove_proc_entry(rtw_proc_name, init_net.proc_net); | |
- rtw_proc = NULL; | |
- } | |
- | |
- pr_info("Unable to create dir_dev directory\n"); | |
- return; | |
- } | |
- } else { | |
- return; | |
- } | |
- | |
- rtw_proc_cnt++; | |
- | |
- entry = create_proc_read_entry("write_reg", S_IFREG | S_IRUGO, | |
- dir_dev, proc_get_write_reg, dev); | |
- if (!entry) { | |
- pr_info("Unable to create_proc_read_entry!\n"); | |
- return; | |
- } | |
- entry->write_proc = proc_set_write_reg; | |
- | |
- entry = create_proc_read_entry("read_reg", S_IFREG | S_IRUGO, | |
- dir_dev, proc_get_read_reg, dev); | |
- if (!entry) { | |
- pr_info("Unable to create_proc_read_entry!\n"); | |
- return; | |
- } | |
- entry->write_proc = proc_set_read_reg; | |
- | |
- | |
- entry = create_proc_read_entry("fwstate", S_IFREG | S_IRUGO, | |
- dir_dev, proc_get_fwstate, dev); | |
- if (!entry) { | |
- pr_info("Unable to create_proc_read_entry!\n"); | |
- return; | |
- } | |
- | |
- entry = create_proc_read_entry("sec_info", S_IFREG | S_IRUGO, | |
- dir_dev, proc_get_sec_info, dev); | |
- if (!entry) { | |
- pr_info("Unable to create_proc_read_entry!\n"); | |
- return; | |
- } | |
- | |
- entry = create_proc_read_entry("mlmext_state", S_IFREG | S_IRUGO, | |
- dir_dev, proc_get_mlmext_state, dev); | |
- if (!entry) { | |
- pr_info("Unable to create_proc_read_entry!\n"); | |
- return; | |
- } | |
- | |
- entry = create_proc_read_entry("qos_option", S_IFREG | S_IRUGO, | |
- dir_dev, proc_get_qos_option, dev); | |
- if (!entry) { | |
- pr_info("Unable to create_proc_read_entry!\n"); | |
- return; | |
- } | |
- | |
- entry = create_proc_read_entry("ht_option", S_IFREG | S_IRUGO, | |
- dir_dev, proc_get_ht_option, dev); | |
- if (!entry) { | |
- pr_info("Unable to create_proc_read_entry!\n"); | |
- return; | |
- } | |
- | |
- entry = create_proc_read_entry("rf_info", S_IFREG | S_IRUGO, | |
- dir_dev, proc_get_rf_info, dev); | |
- if (!entry) { | |
- pr_info("Unable to create_proc_read_entry!\n"); | |
- return; | |
- } | |
- | |
- entry = create_proc_read_entry("ap_info", S_IFREG | S_IRUGO, | |
- dir_dev, proc_get_ap_info, dev); | |
- if (!entry) { | |
- pr_info("Unable to create_proc_read_entry!\n"); | |
- return; | |
- } | |
- | |
- entry = create_proc_read_entry("adapter_state", S_IFREG | S_IRUGO, | |
- dir_dev, proc_getstruct adapter_state, dev); | |
- if (!entry) { | |
- pr_info("Unable to create_proc_read_entry!\n"); | |
- return; | |
- } | |
- | |
- entry = create_proc_read_entry("trx_info", S_IFREG | S_IRUGO, | |
- dir_dev, proc_get_trx_info, dev); | |
- if (!entry) { | |
- pr_info("Unable to create_proc_read_entry!\n"); | |
- return; | |
- } | |
- | |
- entry = create_proc_read_entry("mac_reg_dump1", S_IFREG | S_IRUGO, | |
- dir_dev, proc_get_mac_reg_dump1, dev); | |
- if (!entry) { | |
- pr_info("Unable to create_proc_read_entry!\n"); | |
- return; | |
- } | |
- | |
- entry = create_proc_read_entry("mac_reg_dump2", S_IFREG | S_IRUGO, | |
- dir_dev, proc_get_mac_reg_dump2, dev); | |
- if (!entry) { | |
- pr_info("Unable to create_proc_read_entry!\n"); | |
- return; | |
- } | |
- | |
- entry = create_proc_read_entry("mac_reg_dump3", S_IFREG | S_IRUGO, | |
- dir_dev, proc_get_mac_reg_dump3, dev); | |
- if (!entry) { | |
- pr_info("Unable to create_proc_read_entry!\n"); | |
- return; | |
- } | |
- | |
- entry = create_proc_read_entry("bb_reg_dump1", S_IFREG | S_IRUGO, | |
- dir_dev, proc_get_bb_reg_dump1, dev); | |
- if (!entry) { | |
- pr_info("Unable to create_proc_read_entry!\n"); | |
- return; | |
- } | |
- | |
- entry = create_proc_read_entry("bb_reg_dump2", S_IFREG | S_IRUGO, | |
- dir_dev, proc_get_bb_reg_dump2, dev); | |
- if (!entry) { | |
- pr_info("Unable to create_proc_read_entry!\n"); | |
- return; | |
- } | |
- | |
- entry = create_proc_read_entry("bb_reg_dump3", S_IFREG | S_IRUGO, | |
- dir_dev, proc_get_bb_reg_dump3, dev); | |
- if (!entry) { | |
- pr_info("Unable to create_proc_read_entry!\n"); | |
- return; | |
- } | |
- | |
- entry = create_proc_read_entry("rf_reg_dump1", S_IFREG | S_IRUGO, | |
- dir_dev, proc_get_rf_reg_dump1, dev); | |
- if (!entry) { | |
- pr_info("Unable to create_proc_read_entry!\n"); | |
- return; | |
- } | |
- | |
- entry = create_proc_read_entry("rf_reg_dump2", S_IFREG | S_IRUGO, | |
- dir_dev, proc_get_rf_reg_dump2, dev); | |
- if (!entry) { | |
- pr_info("Unable to create_proc_read_entry!\n"); | |
- return; | |
- } | |
- | |
- rtw_hal_get_hwreg(padapter, HW_VAR_RF_TYPE, (u8 *)(&rf_type)); | |
- if ((RF_1T2R == rf_type) || (RF_1T1R == rf_type)) { | |
- entry = create_proc_read_entry("rf_reg_dump3", | |
- S_IFREG | S_IRUGO, dir_dev, | |
- proc_get_rf_reg_dump3, dev); | |
- if (!entry) { | |
- pr_info("Unable to create_proc_read_entry!\n"); | |
- return; | |
- } | |
- | |
- entry = create_proc_read_entry("rf_reg_dump4", | |
- S_IFREG | S_IRUGO, dir_dev, | |
- proc_get_rf_reg_dump4, dev); | |
- if (!entry) { | |
- pr_info("Unable to create_proc_read_entry!\n"); | |
- return; | |
- } | |
- } | |
- | |
-#ifdef CONFIG_88EU_AP_MODE | |
- | |
- entry = create_proc_read_entry("all_sta_info", S_IFREG | S_IRUGO, | |
- dir_dev, proc_get_all_sta_info, dev); | |
- if (!entry) { | |
- pr_info("Unable to create_proc_read_entry!\n"); | |
- return; | |
- } | |
-#endif | |
- | |
- entry = create_proc_read_entry("best_channel", S_IFREG | S_IRUGO, | |
- dir_dev, proc_get_best_channel, dev); | |
- if (!entry) { | |
- pr_info("Unable to create_proc_read_entry!\n"); | |
- return; | |
- } | |
- | |
- entry = create_proc_read_entry("rx_signal", S_IFREG | S_IRUGO, | |
- dir_dev, proc_get_rx_signal, dev); | |
- if (!entry) { | |
- pr_info("Unable to create_proc_read_entry!\n"); | |
- return; | |
- } | |
- entry->write_proc = proc_set_rx_signal; | |
- entry = create_proc_read_entry("ht_enable", S_IFREG | S_IRUGO, | |
- dir_dev, proc_get_ht_enable, dev); | |
- if (!entry) { | |
- pr_info("Unable to create_proc_read_entry!\n"); | |
- return; | |
- } | |
- entry->write_proc = proc_set_ht_enable; | |
- | |
- entry = create_proc_read_entry("cbw40_enable", S_IFREG | S_IRUGO, | |
- dir_dev, proc_get_cbw40_enable, dev); | |
- if (!entry) { | |
- pr_info("Unable to create_proc_read_entry!\n"); | |
- return; | |
- } | |
- entry->write_proc = proc_set_cbw40_enable; | |
- | |
- entry = create_proc_read_entry("ampdu_enable", S_IFREG | S_IRUGO, | |
- dir_dev, proc_get_ampdu_enable, dev); | |
- if (!entry) { | |
- pr_info("Unable to create_proc_read_entry!\n"); | |
- return; | |
- } | |
- entry->write_proc = proc_set_ampdu_enable; | |
- | |
- entry = create_proc_read_entry("rx_stbc", S_IFREG | S_IRUGO, | |
- dir_dev, proc_get_rx_stbc, dev); | |
- if (!entry) { | |
- pr_info("Unable to create_proc_read_entry!\n"); | |
- return; | |
- } | |
- entry->write_proc = proc_set_rx_stbc; | |
- | |
- entry = create_proc_read_entry("path_rssi", S_IFREG | S_IRUGO, | |
- dir_dev, proc_get_two_path_rssi, dev); | |
- if (!entry) { | |
- pr_info("Unable to create_proc_read_entry!\n"); | |
- return; | |
- } | |
- entry = create_proc_read_entry("rssi_disp", S_IFREG | S_IRUGO, | |
- dir_dev, proc_get_rssi_disp, dev); | |
- if (!entry) { | |
- pr_info("Unable to create_proc_read_entry!\n"); | |
- return; | |
- } | |
- entry->write_proc = proc_set_rssi_disp; | |
-} | |
- | |
-void rtw_proc_remove_one(struct net_device *dev) | |
-{ | |
- struct proc_dir_entry *dir_dev = NULL; | |
- struct adapter *padapter = rtw_netdev_priv(dev); | |
- u8 rf_type; | |
- | |
- dir_dev = padapter->dir_dev; | |
- padapter->dir_dev = NULL; | |
- | |
- if (dir_dev) { | |
- remove_proc_entry("write_reg", dir_dev); | |
- remove_proc_entry("read_reg", dir_dev); | |
- remove_proc_entry("fwstate", dir_dev); | |
- remove_proc_entry("sec_info", dir_dev); | |
- remove_proc_entry("mlmext_state", dir_dev); | |
- remove_proc_entry("qos_option", dir_dev); | |
- remove_proc_entry("ht_option", dir_dev); | |
- remove_proc_entry("rf_info", dir_dev); | |
- remove_proc_entry("ap_info", dir_dev); | |
- remove_proc_entry("adapter_state", dir_dev); | |
- remove_proc_entry("trx_info", dir_dev); | |
- remove_proc_entry("mac_reg_dump1", dir_dev); | |
- remove_proc_entry("mac_reg_dump2", dir_dev); | |
- remove_proc_entry("mac_reg_dump3", dir_dev); | |
- remove_proc_entry("bb_reg_dump1", dir_dev); | |
- remove_proc_entry("bb_reg_dump2", dir_dev); | |
- remove_proc_entry("bb_reg_dump3", dir_dev); | |
- remove_proc_entry("rf_reg_dump1", dir_dev); | |
- remove_proc_entry("rf_reg_dump2", dir_dev); | |
- rtw_hal_get_hwreg(padapter, HW_VAR_RF_TYPE, (u8 *)(&rf_type)); | |
- if ((RF_1T2R == rf_type) || (RF_1T1R == rf_type)) { | |
- remove_proc_entry("rf_reg_dump3", dir_dev); | |
- remove_proc_entry("rf_reg_dump4", dir_dev); | |
- } | |
-#ifdef CONFIG_88EU_AP_MODE | |
- remove_proc_entry("all_sta_info", dir_dev); | |
-#endif | |
- | |
- remove_proc_entry("best_channel", dir_dev); | |
- remove_proc_entry("rx_signal", dir_dev); | |
- remove_proc_entry("cbw40_enable", dir_dev); | |
- remove_proc_entry("ht_enable", dir_dev); | |
- remove_proc_entry("ampdu_enable", dir_dev); | |
- remove_proc_entry("rx_stbc", dir_dev); | |
- remove_proc_entry("path_rssi", dir_dev); | |
- remove_proc_entry("rssi_disp", dir_dev); | |
- remove_proc_entry(dev->name, rtw_proc); | |
- dir_dev = NULL; | |
- } else { | |
- return; | |
- } | |
- rtw_proc_cnt--; | |
- | |
- if (rtw_proc_cnt == 0) { | |
- if (rtw_proc) { | |
- remove_proc_entry("ver_info", rtw_proc); | |
- | |
- remove_proc_entry(rtw_proc_name, init_net.proc_net); | |
- rtw_proc = NULL; | |
- } | |
- } | |
-} | |
-#endif | |
- | |
static void loadparam(struct adapter *padapter, struct net_device *pnetdev) | |
{ | |
struct registry_priv *registry_par = &padapter->registrypriv; | |
GlobalDebugLevel = rtw_debug; | |
- registry_par->chip_version = (u8)rtw_chip_version; | |
- registry_par->rfintfs = (u8)rtw_rfintfs; | |
- registry_par->lbkmode = (u8)rtw_lbkmode; | |
- registry_par->network_mode = (u8)rtw_network_mode; | |
memcpy(registry_par->ssid.Ssid, "ANY", 3); | |
registry_par->ssid.SsidLength = 3; | |
@@ -558,47 +159,27 @@ static void loadparam(struct adapter *padapter, struct net_device *pnetdev) | |
registry_par->rts_thresh = (u16)rtw_rts_thresh; | |
registry_par->frag_thresh = (u16)rtw_frag_thresh; | |
registry_par->preamble = (u8)rtw_preamble; | |
- registry_par->scan_mode = (u8)rtw_scan_mode; | |
- registry_par->adhoc_tx_pwr = (u8)rtw_adhoc_tx_pwr; | |
- registry_par->soft_ap = (u8)rtw_soft_ap; | |
registry_par->smart_ps = (u8)rtw_smart_ps; | |
registry_par->power_mgnt = (u8)rtw_power_mgnt; | |
registry_par->ips_mode = (u8)rtw_ips_mode; | |
- registry_par->radio_enable = (u8)rtw_radio_enable; | |
- registry_par->long_retry_lmt = (u8)rtw_long_retry_lmt; | |
- registry_par->short_retry_lmt = (u8)rtw_short_retry_lmt; | |
- registry_par->busy_thresh = (u16)rtw_busy_thresh; | |
- registry_par->ack_policy = (u8)rtw_ack_policy; | |
registry_par->mp_mode = 0; | |
- registry_par->software_encrypt = (u8)rtw_software_encrypt; | |
- registry_par->software_decrypt = (u8)rtw_software_decrypt; | |
registry_par->acm_method = (u8)rtw_acm_method; | |
/* UAPSD */ | |
registry_par->wmm_enable = (u8)rtw_wmm_enable; | |
registry_par->uapsd_enable = (u8)rtw_uapsd_enable; | |
- registry_par->uapsd_max_sp = (u8)rtw_uapsd_max_sp; | |
- registry_par->uapsd_acbk_en = (u8)rtw_uapsd_acbk_en; | |
- registry_par->uapsd_acbe_en = (u8)rtw_uapsd_acbe_en; | |
- registry_par->uapsd_acvi_en = (u8)rtw_uapsd_acvi_en; | |
- registry_par->uapsd_acvo_en = (u8)rtw_uapsd_acvo_en; | |
registry_par->ht_enable = (u8)rtw_ht_enable; | |
registry_par->cbw40_enable = (u8)rtw_cbw40_enable; | |
registry_par->ampdu_enable = (u8)rtw_ampdu_enable; | |
registry_par->rx_stbc = (u8)rtw_rx_stbc; | |
registry_par->ampdu_amsdu = (u8)rtw_ampdu_amsdu; | |
- registry_par->lowrate_two_xmit = (u8)rtw_lowrate_two_xmit; | |
- registry_par->rf_config = (u8)rtw_rf_config; | |
- registry_par->low_power = (u8)rtw_low_power; | |
registry_par->wifi_spec = (u8)rtw_wifi_spec; | |
registry_par->channel_plan = (u8)rtw_channel_plan; | |
- registry_par->bAcceptAddbaReq = (u8)rtw_AcceptAddbaReq; | |
+ registry_par->accept_addba_req = true; | |
registry_par->antdiv_cfg = (u8)rtw_antdiv_cfg; | |
registry_par->antdiv_type = (u8)rtw_antdiv_type; | |
registry_par->hwpdn_mode = (u8)rtw_hwpdn_mode; | |
- registry_par->hwpwrp_detect = (u8)rtw_hwpwrp_detect; | |
- registry_par->hw_wps_pbc = (u8)rtw_hw_wps_pbc; | |
registry_par->max_roaming_times = (u8)rtw_max_roaming_times; | |
@@ -739,7 +320,7 @@ struct net_device *rtw_init_netdev(struct adapter *old_padapter) | |
RT_TRACE(_module_os_intfs_c_, _drv_info_, ("+init_net_dev\n")); | |
if (old_padapter != NULL) | |
- pnetdev = rtw_alloc_etherdev_with_old_priv(sizeof(struct adapter), (void *)old_padapter); | |
+ pnetdev = rtw_alloc_etherdev_with_old_priv((void *)old_padapter); | |
if (!pnetdev) | |
return NULL; | |
@@ -769,7 +350,7 @@ static int rtw_start_drv_threads(struct adapter *padapter) | |
err = PTR_ERR(padapter->cmdThread); | |
else | |
/* wait for cmd_thread to run */ | |
- _rtw_down_sema(&padapter->cmdpriv.terminate_cmdthread_sema); | |
+ wait_for_completion_interruptible(&padapter->cmdpriv.terminate_cmdthread_comp); | |
return err; | |
} | |
@@ -779,9 +360,9 @@ void rtw_stop_drv_threads(struct adapter *padapter) | |
RT_TRACE(_module_os_intfs_c_, _drv_info_, ("+rtw_stop_drv_threads\n")); | |
/* Below is to terminate rtw_cmd_thread & event_thread... */ | |
- up(&padapter->cmdpriv.cmd_queue_sema); | |
+ complete(&padapter->cmdpriv.cmd_queue_comp); | |
if (padapter->cmdThread) | |
- _rtw_down_sema(&padapter->cmdpriv.terminate_cmdthread_sema); | |
+ wait_for_completion_interruptible(&padapter->cmdpriv.terminate_cmdthread_comp); | |
} | |
@@ -807,8 +388,6 @@ static u8 rtw_init_default_value(struct adapter *padapter) | |
/* security_priv */ | |
psecuritypriv->binstallGrpkey = _FAIL; | |
- psecuritypriv->sw_encrypt = pregistrypriv->software_encrypt; | |
- psecuritypriv->sw_decrypt = pregistrypriv->software_decrypt; | |
psecuritypriv->dot11AuthAlgrthm = dot11AuthAlgrthm_Open; | |
psecuritypriv->dot11PrivacyAlgrthm = _NO_PRIVACY_; | |
psecuritypriv->dot11PrivacyKeyIndex = 0; | |
@@ -827,8 +406,6 @@ static u8 rtw_init_default_value(struct adapter *padapter) | |
/* misc. */ | |
padapter->bReadPortCancel = false; | |
padapter->bWritePortCancel = false; | |
- padapter->bRxRSSIDisplay = 0; | |
- padapter->bNotifyChannelChange = 0; | |
return _SUCCESS; | |
} | |
@@ -841,7 +418,6 @@ u8 rtw_reset_drv_sw(struct adapter *padapter) | |
rtw_hal_def_value_init(padapter); | |
padapter->bReadPortCancel = false; | |
padapter->bWritePortCancel = false; | |
- padapter->bRxRSSIDisplay = 0; | |
pmlmepriv->scan_interval = SCAN_INTERVAL;/* 30*2 sec = 60sec */ | |
padapter->xmitpriv.tx_pkts = 0; | |
@@ -919,8 +495,6 @@ u8 rtw_init_drv_sw(struct adapter *padapter) | |
rtw_hal_sreset_init(padapter); | |
- spin_lock_init(&padapter->br_ext_lock); | |
- | |
exit: | |
RT_TRACE(_module_os_intfs_c_, _drv_info_, ("-rtw_init_drv_sw\n")); | |
@@ -968,12 +542,6 @@ u8 rtw_free_drv_sw(struct adapter *padapter) | |
RT_TRACE(_module_os_intfs_c_, _drv_info_, ("<== rtw_free_drv_sw\n")); | |
- /* free the old_pnetdev */ | |
- if (padapter->rereg_nd_name_priv.old_pnetdev) { | |
- free_netdev(padapter->rereg_nd_name_priv.old_pnetdev); | |
- padapter->rereg_nd_name_priv.old_pnetdev = NULL; | |
- } | |
- | |
mutex_destroy(&padapter->hw_init_mutex); | |
RT_TRACE(_module_os_intfs_c_, _drv_info_, ("-rtw_free_drv_sw\n")); | |
@@ -1018,11 +586,9 @@ static int _netdev_open(struct net_device *pnetdev) | |
pr_info("can't init mlme_ext_priv\n"); | |
goto netdev_open_error; | |
} | |
- if (padapter->intf_start) | |
- padapter->intf_start(padapter); | |
- rtw_proc_init_one(pnetdev); | |
+ rtw_hal_inirp_init(padapter); | |
- rtw_led_control(padapter, LED_CTL_NO_LINK); | |
+ LedControl8188eu(padapter, LED_CTL_NO_LINK); | |
padapter->bup = true; | |
} | |
@@ -1053,7 +619,7 @@ static int _netdev_open(struct net_device *pnetdev) | |
return -1; | |
} | |
-static int netdev_open(struct net_device *pnetdev) | |
+int netdev_open(struct net_device *pnetdev) | |
{ | |
int ret; | |
struct adapter *padapter = (struct adapter *)rtw_netdev_priv(pnetdev); | |
@@ -1065,7 +631,7 @@ static int netdev_open(struct net_device *pnetdev) | |
return ret; | |
} | |
-static int ips_netdrv_open(struct adapter *padapter) | |
+int ips_netdrv_open(struct adapter *padapter) | |
{ | |
int status = _SUCCESS; | |
@@ -1081,8 +647,7 @@ static int ips_netdrv_open(struct adapter *padapter) | |
goto netdev_open_error; | |
} | |
- if (padapter->intf_start) | |
- padapter->intf_start(padapter); | |
+ rtw_hal_inirp_init(padapter); | |
rtw_set_pwr_state_check_timer(&padapter->pwrctrlpriv); | |
mod_timer(&padapter->mlmepriv.dynamic_chk_timer, | |
@@ -1100,31 +665,33 @@ static int ips_netdrv_open(struct adapter *padapter) | |
int rtw_ips_pwr_up(struct adapter *padapter) | |
{ | |
int result; | |
- u32 start_time = jiffies; | |
+ unsigned long start_time = jiffies; | |
DBG_88E("===> rtw_ips_pwr_up..............\n"); | |
rtw_reset_drv_sw(padapter); | |
result = ips_netdrv_open(padapter); | |
- rtw_led_control(padapter, LED_CTL_NO_LINK); | |
+ LedControl8188eu(padapter, LED_CTL_NO_LINK); | |
- DBG_88E("<=== rtw_ips_pwr_up.............. in %dms\n", rtw_get_passing_time_ms(start_time)); | |
+ DBG_88E("<=== rtw_ips_pwr_up.............. in %dms\n", | |
+ jiffies_to_msecs(jiffies - start_time)); | |
return result; | |
} | |
void rtw_ips_pwr_down(struct adapter *padapter) | |
{ | |
- u32 start_time = jiffies; | |
+ unsigned long start_time = jiffies; | |
DBG_88E("===> rtw_ips_pwr_down...................\n"); | |
padapter->net_closed = true; | |
- rtw_led_control(padapter, LED_CTL_POWER_OFF); | |
+ LedControl8188eu(padapter, LED_CTL_POWER_OFF); | |
rtw_ips_dev_unload(padapter); | |
- DBG_88E("<=== rtw_ips_pwr_down..................... in %dms\n", rtw_get_passing_time_ms(start_time)); | |
+ DBG_88E("<=== rtw_ips_pwr_down..................... in %dms\n", | |
+ jiffies_to_msecs(jiffies - start_time)); | |
} | |
void rtw_ips_dev_unload(struct adapter *padapter) | |
@@ -1133,29 +700,16 @@ void rtw_ips_dev_unload(struct adapter *padapter) | |
rtw_hal_set_hwreg(padapter, HW_VAR_FIFO_CLEARN_UP, NULL); | |
- if (padapter->intf_stop) | |
- padapter->intf_stop(padapter); | |
+ usb_intf_stop(padapter); | |
/* s5. */ | |
if (!padapter->bSurpriseRemoved) | |
rtw_hal_deinit(padapter); | |
} | |
-int pm_netdev_open(struct net_device *pnetdev, u8 bnormal) | |
-{ | |
- int status; | |
- | |
- if (bnormal) | |
- status = netdev_open(pnetdev); | |
- else | |
- status = (_SUCCESS == ips_netdrv_open((struct adapter *)rtw_netdev_priv(pnetdev))) ? (0) : (-1); | |
- return status; | |
-} | |
- | |
static int netdev_close(struct net_device *pnetdev) | |
{ | |
struct adapter *padapter = (struct adapter *)rtw_netdev_priv(pnetdev); | |
- struct hal_data_8188e *rtlhal = GET_HAL_DATA(padapter); | |
RT_TRACE(_module_os_intfs_c_, _drv_info_, ("+88eu_drv - drv_close\n")); | |
@@ -1185,12 +739,9 @@ static int netdev_close(struct net_device *pnetdev) | |
/* s2-4. */ | |
rtw_free_network_queue(padapter, true); | |
/* Close LED */ | |
- rtw_led_control(padapter, LED_CTL_POWER_OFF); | |
+ LedControl8188eu(padapter, LED_CTL_POWER_OFF); | |
} | |
- kfree(rtlhal->pfirmware); | |
- rtlhal->pfirmware = NULL; | |
- | |
RT_TRACE(_module_os_intfs_c_, _drv_info_, ("-88eu_drv - drv_close\n")); | |
DBG_88E("-88eu_drv - drv_close, bup =%d\n", padapter->bup); | |
return 0; | |
diff --git b/drivers/staging/rtl8188eu/os_dep/osdep_service.c a/drivers/staging/rtl8188eu/os_dep/osdep_service.c | |
index 466cd76fc1c4..3be87252fd62 100644 | |
--- b/drivers/staging/rtl8188eu/os_dep/osdep_service.c | |
+++ a/drivers/staging/rtl8188eu/os_dep/osdep_service.c | |
@@ -11,14 +11,7 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
- | |
- | |
#define _OSDEP_SERVICE_C_ | |
#include <osdep_service.h> | |
@@ -28,63 +21,32 @@ | |
#include <linux/vmalloc.h> | |
#include <rtw_ioctl_set.h> | |
-/* | |
-* Translate the OS dependent @param error_code to OS independent RTW_STATUS_CODE | |
-* @return: one of RTW_STATUS_CODE | |
-*/ | |
-inline int RTW_STATUS_CODE(int error_code) | |
-{ | |
- if (error_code >= 0) | |
- return _SUCCESS; | |
- return _FAIL; | |
-} | |
- | |
u8 *_rtw_malloc(u32 sz) | |
{ | |
- u8 *pbuf = NULL; | |
- | |
- pbuf = kmalloc(sz, in_interrupt() ? GFP_ATOMIC : GFP_KERNEL); | |
- return pbuf; | |
+ return kmalloc(sz, in_interrupt() ? GFP_ATOMIC : GFP_KERNEL); | |
} | |
void *rtw_malloc2d(int h, int w, int size) | |
{ | |
int j; | |
- | |
void **a = kzalloc(h * sizeof(void *) + h * w * size, GFP_KERNEL); | |
- if (!a) { | |
- pr_info("%s: alloc memory fail!\n", __func__); | |
- return NULL; | |
- } | |
+ | |
+ if (!a) | |
+ goto out; | |
for (j = 0; j < h; j++) | |
a[j] = ((char *)(a + h)) + j * w * size; | |
- | |
+out: | |
return a; | |
} | |
-u32 _rtw_down_sema(struct semaphore *sema) | |
-{ | |
- if (down_interruptible(sema)) | |
- return _FAIL; | |
- else | |
- return _SUCCESS; | |
-} | |
- | |
void _rtw_init_queue(struct __queue *pqueue) | |
{ | |
- INIT_LIST_HEAD(&(pqueue->queue)); | |
- spin_lock_init(&(pqueue->lock)); | |
-} | |
- | |
-/* the input parameter start must be in jiffies */ | |
-inline s32 rtw_get_passing_time_ms(u32 start) | |
-{ | |
- return jiffies_to_msecs(jiffies-start); | |
+ INIT_LIST_HEAD(&pqueue->queue); | |
+ spin_lock_init(&pqueue->lock); | |
} | |
-struct net_device *rtw_alloc_etherdev_with_old_priv(int sizeof_priv, | |
- void *old_priv) | |
+struct net_device *rtw_alloc_etherdev_with_old_priv(void *old_priv) | |
{ | |
struct net_device *pnetdev; | |
struct rtw_netdev_priv_indicator *pnpi; | |
@@ -95,7 +57,6 @@ struct net_device *rtw_alloc_etherdev_with_old_priv(int sizeof_priv, | |
pnpi = netdev_priv(pnetdev); | |
pnpi->priv = old_priv; | |
- pnpi->sizeof_priv = sizeof_priv; | |
RETURN: | |
return pnetdev; | |
diff --git b/drivers/staging/rtl8188eu/os_dep/recv_linux.c a/drivers/staging/rtl8188eu/os_dep/recv_linux.c | |
index d4734baffc8a..d14bc2b68d98 100644 | |
--- b/drivers/staging/rtl8188eu/os_dep/recv_linux.c | |
+++ a/drivers/staging/rtl8188eu/os_dep/recv_linux.c | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#include <osdep_service.h> | |
#include <drv_types.h> | |
@@ -26,13 +21,6 @@ | |
#include <osdep_intf.h> | |
#include <usb_ops_linux.h> | |
-/* alloc os related resource in struct recv_frame */ | |
-void rtw_os_recv_resource_alloc(struct recv_frame *precvframe) | |
-{ | |
- precvframe->pkt_newalloc = NULL; | |
- precvframe->pkt = NULL; | |
-} | |
- | |
/* alloc os related resource in struct recv_buf */ | |
int rtw_os_recvbuf_resource_alloc(struct adapter *padapter, | |
struct recv_buf *precvbuf) | |
@@ -100,27 +88,6 @@ int rtw_recv_indicatepkt(struct adapter *padapter, | |
goto _recv_indicatepkt_drop; | |
} | |
- RT_TRACE(_module_recv_osdep_c_, _drv_info_, | |
- ("rtw_recv_indicatepkt():skb != NULL !!!\n")); | |
- RT_TRACE(_module_recv_osdep_c_, _drv_info_, | |
- ("rtw_recv_indicatepkt():precv_frame->rx_head =%p precv_frame->hdr.rx_data =%p\n", | |
- precv_frame->rx_head, precv_frame->rx_data)); | |
- RT_TRACE(_module_recv_osdep_c_, _drv_info_, | |
- ("precv_frame->hdr.rx_tail =%p precv_frame->rx_end =%p precv_frame->hdr.len =%d\n", | |
- precv_frame->rx_tail, precv_frame->rx_end, | |
- precv_frame->len)); | |
- | |
- skb->data = precv_frame->rx_data; | |
- | |
- skb_set_tail_pointer(skb, precv_frame->len); | |
- | |
- skb->len = precv_frame->len; | |
- | |
- RT_TRACE(_module_recv_osdep_c_, _drv_info_, | |
- ("skb->head =%p skb->data =%p skb->tail =%p skb->end =%p skb->len =%d\n", | |
- skb->head, skb->data, skb_tail_pointer(skb), | |
- skb_end_pointer(skb), skb->len)); | |
- | |
if (check_fwstate(pmlmepriv, WIFI_AP_STATE)) { | |
struct sk_buff *pskb2 = NULL; | |
struct sta_info *psta = NULL; | |
diff --git b/drivers/staging/rtl8188eu/os_dep/rtw_android.c a/drivers/staging/rtl8188eu/os_dep/rtw_android.c | |
index 5f3337c281ee..336e7023f7f7 100644 | |
--- b/drivers/staging/rtl8188eu/os_dep/rtw_android.c | |
+++ a/drivers/staging/rtl8188eu/os_dep/rtw_android.c | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#include <linux/module.h> | |
@@ -78,6 +73,7 @@ static int g_wifi_on = true; | |
int rtw_android_cmdstr_to_num(char *cmdstr) | |
{ | |
int cmd_num; | |
+ | |
for (cmd_num = 0; cmd_num < ANDROID_WIFI_CMD_MAX; cmd_num++) | |
if (0 == strncasecmp(cmdstr, android_wifi_cmd_str[cmd_num], | |
strlen(android_wifi_cmd_str[cmd_num]))) | |
diff --git b/drivers/staging/rtl8188eu/os_dep/usb_intf.c a/drivers/staging/rtl8188eu/os_dep/usb_intf.c | |
index 82a7c27c517f..32c7225a831e 100644 | |
--- b/drivers/staging/rtl8188eu/os_dep/usb_intf.c | |
+++ a/drivers/staging/rtl8188eu/os_dep/usb_intf.c | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#define pr_fmt(fmt) "R8188EU: " fmt | |
@@ -30,13 +25,14 @@ | |
#include <osdep_intf.h> | |
#include <usb_ops_linux.h> | |
-#include <usb_hal.h> | |
#include <rtw_ioctl.h> | |
+#include "rtl8188e_hal.h" | |
+ | |
#define USB_VENDER_ID_REALTEK 0x0bda | |
/* DID_USB_v916_20130116 */ | |
-static struct usb_device_id rtw_usb_id_tbl[] = { | |
+static const struct usb_device_id rtw_usb_id_tbl[] = { | |
/*=== Realtek demoboard ===*/ | |
{USB_DEVICE(USB_VENDER_ID_REALTEK, 0x8179)}, /* 8188EUS */ | |
{USB_DEVICE(USB_VENDER_ID_REALTEK, 0x0179)}, /* 8188ETV */ | |
@@ -47,7 +43,9 @@ static struct usb_device_id rtw_usb_id_tbl[] = { | |
{USB_DEVICE(0x2001, 0x330F)}, /* DLink DWA-125 REV D1 */ | |
{USB_DEVICE(0x2001, 0x3310)}, /* Dlink DWA-123 REV D1 */ | |
{USB_DEVICE(0x2001, 0x3311)}, /* DLink GO-USB-N150 REV B1 */ | |
+ {USB_DEVICE(0x2357, 0x010c)}, /* TP-Link TL-WN722N v2 */ | |
{USB_DEVICE(0x0df6, 0x0076)}, /* Sitecom N150 v2 */ | |
+ {USB_DEVICE(USB_VENDER_ID_REALTEK, 0xffef)}, /* Rosewill RNX-N150NUB */ | |
{} /* Terminating entry */ | |
}; | |
@@ -65,7 +63,7 @@ static struct dvobj_priv *usb_dvobj_init(struct usb_interface *usb_intf) | |
struct usb_device *pusbd; | |
pdvobjpriv = kzalloc(sizeof(*pdvobjpriv), GFP_KERNEL); | |
- if (pdvobjpriv == NULL) | |
+ if (!pdvobjpriv) | |
return NULL; | |
pdvobjpriv->pusbintf = usb_intf; | |
@@ -84,10 +82,10 @@ static struct dvobj_priv *usb_dvobj_init(struct usb_interface *usb_intf) | |
pdvobjpriv->NumInterfaces = pconf_desc->bNumInterfaces; | |
pdvobjpriv->InterfaceNumber = piface_desc->bInterfaceNumber; | |
- pdvobjpriv->nr_endpoint = piface_desc->bNumEndpoints; | |
- for (i = 0; i < pdvobjpriv->nr_endpoint; i++) { | |
+ for (i = 0; i < piface_desc->bNumEndpoints; i++) { | |
int ep_num; | |
+ | |
pendp_desc = &phost_iface->endpoint[i].desc; | |
ep_num = usb_endpoint_num(pendp_desc); | |
@@ -103,7 +101,6 @@ static struct dvobj_priv *usb_dvobj_init(struct usb_interface *usb_intf) | |
ep_num; | |
pdvobjpriv->RtNumOutPipes++; | |
} | |
- pdvobjpriv->ep_num[i] = ep_num; | |
} | |
if (pusbd->speed == USB_SPEED_HIGH) | |
@@ -112,13 +109,6 @@ static struct dvobj_priv *usb_dvobj_init(struct usb_interface *usb_intf) | |
pdvobjpriv->ishighspeed = false; | |
mutex_init(&pdvobjpriv->usb_vendor_req_mutex); | |
- pdvobjpriv->usb_vendor_req_buf = kzalloc(MAX_USB_IO_CTL_SIZE, GFP_KERNEL); | |
- | |
- if (!pdvobjpriv->usb_vendor_req_buf) { | |
- usb_set_intfdata(usb_intf, NULL); | |
- kfree(pdvobjpriv); | |
- return NULL; | |
- } | |
usb_get_dev(pusbd); | |
return pdvobjpriv; | |
@@ -146,7 +136,6 @@ static void usb_dvobj_deinit(struct usb_interface *usb_intf) | |
} | |
} | |
- kfree(dvobj->usb_vendor_req_buf); | |
mutex_destroy(&dvobj->usb_vendor_req_mutex); | |
kfree(dvobj); | |
} | |
@@ -155,16 +144,7 @@ static void usb_dvobj_deinit(struct usb_interface *usb_intf) | |
} | |
-static void usb_intf_start(struct adapter *padapter) | |
-{ | |
- RT_TRACE(_module_hci_intfs_c_, _drv_err_, ("+usb_intf_start\n")); | |
- | |
- rtw_hal_inirp_init(padapter); | |
- | |
- RT_TRACE(_module_hci_intfs_c_, _drv_err_, ("-usb_intf_start\n")); | |
-} | |
- | |
-static void usb_intf_stop(struct adapter *padapter) | |
+void usb_intf_stop(struct adapter *padapter) | |
{ | |
RT_TRACE(_module_hci_intfs_c_, _drv_err_, ("+usb_intf_stop\n")); | |
@@ -197,8 +177,7 @@ static void rtw_dev_unload(struct adapter *padapter) | |
if (padapter->xmitpriv.ack_tx) | |
rtw_ack_tx_done(&padapter->xmitpriv, RTW_SCTX_DONE_DRV_STOP); | |
/* s3. */ | |
- if (padapter->intf_stop) | |
- padapter->intf_stop(padapter); | |
+ usb_intf_stop(padapter); | |
/* s4. */ | |
if (!padapter->pwrctrlpriv.bInternalAutoSuspend) | |
rtw_stop_drv_threads(padapter); | |
@@ -227,7 +206,7 @@ static int rtw_suspend(struct usb_interface *pusb_intf, pm_message_t message) | |
struct net_device *pnetdev = padapter->pnetdev; | |
struct mlme_priv *pmlmepriv = &padapter->mlmepriv; | |
struct pwrctrl_priv *pwrpriv = &padapter->pwrctrlpriv; | |
- u32 start_time = jiffies; | |
+ unsigned long start_time = jiffies; | |
pr_debug("==> %s (%s:%d)\n", __func__, current->comm, current->pid); | |
@@ -243,7 +222,7 @@ static int rtw_suspend(struct usb_interface *pusb_intf, pm_message_t message) | |
rtw_cancel_all_timer(padapter); | |
LeaveAllPowerSaveMode(padapter); | |
- _enter_pwrlock(&pwrpriv->lock); | |
+ mutex_lock(&pwrpriv->mutex_lock); | |
/* s1. */ | |
if (pnetdev) { | |
netif_carrier_off(pnetdev); | |
@@ -272,7 +251,7 @@ static int rtw_suspend(struct usb_interface *pusb_intf, pm_message_t message) | |
rtw_free_network_queue(padapter, true); | |
rtw_dev_unload(padapter); | |
- _exit_pwrlock(&pwrpriv->lock); | |
+ mutex_unlock(&pwrpriv->mutex_lock); | |
if (check_fwstate(pmlmepriv, _FW_UNDER_SURVEY)) | |
rtw_indicate_scan_done(padapter, 1); | |
@@ -282,7 +261,7 @@ static int rtw_suspend(struct usb_interface *pusb_intf, pm_message_t message) | |
exit: | |
pr_debug("<=== %s .............. in %dms\n", __func__, | |
- rtw_get_passing_time_ms(start_time)); | |
+ jiffies_to_msecs(jiffies - start_time)); | |
return 0; | |
} | |
@@ -292,7 +271,7 @@ static int rtw_resume_process(struct adapter *padapter) | |
struct net_device *pnetdev; | |
struct pwrctrl_priv *pwrpriv = NULL; | |
int ret = -1; | |
- u32 start_time = jiffies; | |
+ unsigned long start_time = jiffies; | |
pr_debug("==> %s (%s:%d)\n", __func__, current->comm, current->pid); | |
@@ -303,18 +282,20 @@ static int rtw_resume_process(struct adapter *padapter) | |
goto exit; | |
} | |
- _enter_pwrlock(&pwrpriv->lock); | |
+ mutex_lock(&pwrpriv->mutex_lock); | |
rtw_reset_drv_sw(padapter); | |
pwrpriv->bkeepfwalive = false; | |
pr_debug("bkeepfwalive(%x)\n", pwrpriv->bkeepfwalive); | |
- if (pm_netdev_open(pnetdev, true) != 0) | |
+ if (netdev_open(pnetdev) != 0) { | |
+ mutex_unlock(&pwrpriv->mutex_lock); | |
goto exit; | |
+ } | |
netif_device_attach(pnetdev); | |
netif_carrier_on(pnetdev); | |
- _exit_pwrlock(&pwrpriv->lock); | |
+ mutex_unlock(&pwrpriv->mutex_lock); | |
rtw_roaming(padapter, NULL); | |
@@ -323,7 +304,7 @@ static int rtw_resume_process(struct adapter *padapter) | |
if (pwrpriv) | |
pwrpriv->bInSuspend = false; | |
pr_debug("<=== %s return %d.............. in %dms\n", __func__, | |
- ret, rtw_get_passing_time_ms(start_time)); | |
+ ret, jiffies_to_msecs(jiffies - start_time)); | |
return ret; | |
} | |
@@ -360,7 +341,6 @@ static struct adapter *rtw_usb_if1_init(struct dvobj_priv *dvobj, | |
padapter->bDriverStopped = true; | |
mutex_init(&padapter->hw_init_mutex); | |
- padapter->chip_type = RTL8188E; | |
pnetdev = rtw_init_netdev(padapter); | |
if (pnetdev == NULL) | |
@@ -375,11 +355,9 @@ static struct adapter *rtw_usb_if1_init(struct dvobj_priv *dvobj, | |
padapter->pmondev = pmondev; | |
} | |
- /* step 2. hook HalFunc, allocate HalData */ | |
- hal_set_hal_ops(padapter); | |
- | |
- padapter->intf_start = &usb_intf_start; | |
- padapter->intf_stop = &usb_intf_stop; | |
+ padapter->HalData = kzalloc(sizeof(struct hal_data_8188e), GFP_KERNEL); | |
+ if (!padapter->HalData) | |
+ DBG_88E("cant not alloc memory for HAL DATA\n"); | |
/* step read_chip_version */ | |
rtw_hal_read_chip_version(padapter); | |
@@ -442,7 +420,7 @@ static struct adapter *rtw_usb_if1_init(struct dvobj_priv *dvobj, | |
if (status != _SUCCESS) { | |
if (pnetdev) | |
rtw_free_netdev(pnetdev); | |
- else if (padapter) | |
+ else | |
vfree(padapter); | |
padapter = NULL; | |
} | |
@@ -462,11 +440,9 @@ static void rtw_usb_if1_deinit(struct adapter *if1) | |
free_mlme_ap_info(if1); | |
#endif | |
- if (pnetdev) { | |
- /* will call netdev_close() */ | |
- unregister_netdev(pnetdev); | |
- rtw_proc_remove_one(pnetdev); | |
- } | |
+ if (pnetdev) | |
+ unregister_netdev(pnetdev); /* will call netdev_close() */ | |
+ | |
rtl88eu_mon_deinit(if1->pmondev); | |
rtw_cancel_all_timer(if1); | |
@@ -474,7 +450,6 @@ static void rtw_usb_if1_deinit(struct adapter *if1) | |
pr_debug("+r871xu_dev_remove, hw_init_completed=%d\n", | |
if1->hw_init_completed); | |
rtw_free_drv_sw(if1); | |
- if (pnetdev) | |
rtw_free_netdev(pnetdev); | |
} | |
@@ -483,24 +458,20 @@ static int rtw_drv_init(struct usb_interface *pusb_intf, const struct usb_device | |
struct adapter *if1 = NULL; | |
struct dvobj_priv *dvobj; | |
- RT_TRACE(_module_hci_intfs_c_, _drv_err_, ("+rtw_drv_init\n")); | |
- | |
/* Initialize dvobj_priv */ | |
dvobj = usb_dvobj_init(pusb_intf); | |
- if (dvobj == NULL) { | |
+ if (!dvobj) { | |
RT_TRACE(_module_hci_intfs_c_, _drv_err_, | |
("initialize device object priv Failed!\n")); | |
goto exit; | |
} | |
if1 = rtw_usb_if1_init(dvobj, pusb_intf, pdid); | |
- if (if1 == NULL) { | |
+ if (!if1) { | |
pr_debug("rtw_init_primarystruct adapter Failed!\n"); | |
goto free_dvobj; | |
} | |
- RT_TRACE(_module_hci_intfs_c_, _drv_err_, ("-871x_drv - drv_init, success!\n")); | |
- | |
return 0; | |
free_dvobj: | |
diff --git b/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c a/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c | |
index 0fea338d7313..64397b6f1248 100644 | |
--- b/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c | |
+++ a/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c | |
@@ -11,10 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
******************************************************************************/ | |
#define _USB_OPS_LINUX_C_ | |
@@ -24,7 +20,7 @@ | |
static void interrupt_handler_8188eu(struct adapter *adapt, u16 pkt_len, u8 *pbuf) | |
{ | |
- struct hal_data_8188e *haldata = GET_HAL_DATA(adapt); | |
+ struct hal_data_8188e *haldata = adapt->HalData; | |
if (pkt_len != INTERRUPT_MSG_FORMAT_LEN) { | |
DBG_88E("%s Invalid interrupt content length (%d)!\n", __func__, pkt_len); | |
@@ -52,7 +48,7 @@ static int recvbuf2recvframe(struct adapter *adapt, struct sk_buff *pskb) | |
struct sk_buff *pkt_copy = NULL; | |
struct recv_frame *precvframe = NULL; | |
struct rx_pkt_attrib *pattrib = NULL; | |
- struct hal_data_8188e *haldata = GET_HAL_DATA(adapt); | |
+ struct hal_data_8188e *haldata = adapt->HalData; | |
struct recv_priv *precvpriv = &adapt->recvpriv; | |
struct __queue *pfree_recv_queue = &precvpriv->free_recv_queue; | |
@@ -77,7 +73,6 @@ static int recvbuf2recvframe(struct adapter *adapt, struct sk_buff *pskb) | |
} | |
INIT_LIST_HEAD(&precvframe->list); | |
- precvframe->len = 0; | |
update_recvframe_attrib_88e(precvframe, prxstat); | |
@@ -129,33 +124,15 @@ static int recvbuf2recvframe(struct adapter *adapt, struct sk_buff *pskb) | |
if (pkt_copy) { | |
pkt_copy->dev = adapt->pnetdev; | |
precvframe->pkt = pkt_copy; | |
- precvframe->rx_head = pkt_copy->data; | |
- precvframe->rx_end = pkt_copy->data + alloc_sz; | |
skb_reserve(pkt_copy, 8 - ((size_t)(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. */ | |
memcpy(pkt_copy->data, (pbuf + pattrib->drvinfo_sz + RXDESC_SIZE), skb_len); | |
- precvframe->rx_tail = pkt_copy->data; | |
- precvframe->rx_data = pkt_copy->data; | |
+ skb_put(precvframe->pkt, skb_len); | |
} else { | |
- if ((pattrib->mfrag == 1) && (pattrib->frag_num == 0)) { | |
DBG_88E("recvbuf2recvframe: alloc_skb fail , drop frag frame\n"); | |
rtw_free_recvframe(precvframe, pfree_recv_queue); | |
goto _exit_recvbuf2recvframe; | |
} | |
- precvframe->pkt = skb_clone(pskb, GFP_ATOMIC); | |
- if (precvframe->pkt) { | |
- precvframe->rx_tail = pbuf + pattrib->drvinfo_sz + RXDESC_SIZE; | |
- precvframe->rx_head = precvframe->rx_tail; | |
- precvframe->rx_data = precvframe->rx_tail; | |
- precvframe->rx_end = pbuf + pattrib->drvinfo_sz + RXDESC_SIZE + alloc_sz; | |
- } else { | |
- DBG_88E("recvbuf2recvframe: skb_clone fail\n"); | |
- rtw_free_recvframe(precvframe, pfree_recv_queue); | |
- goto _exit_recvbuf2recvframe; | |
- } | |
- } | |
- | |
- recvframe_put(precvframe, skb_len); | |
switch (haldata->UsbRxAggMode) { | |
case USB_RX_AGG_DMA: | |
@@ -171,27 +148,26 @@ static int recvbuf2recvframe(struct adapter *adapt, struct sk_buff *pskb) | |
} | |
if (pattrib->pkt_rpt_type == NORMAL_RX) { /* Normal rx packet */ | |
if (pattrib->physt) | |
- update_recvframe_phyinfo_88e(precvframe, (struct phy_stat *)pphy_status); | |
+ update_recvframe_phyinfo_88e(precvframe, pphy_status); | |
if (rtw_recv_entry(precvframe) != _SUCCESS) { | |
RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, | |
("recvbuf2recvframe: rtw_recv_entry(precvframe) != _SUCCESS\n")); | |
} | |
- } else { | |
- /* enqueue recvframe to txrtp queue */ | |
- if (pattrib->pkt_rpt_type == TX_REPORT1) { | |
+ } else if (pattrib->pkt_rpt_type == TX_REPORT1) { | |
/* CCX-TXRPT ack for xmit mgmt frames. */ | |
- handle_txrpt_ccx_88e(adapt, precvframe->rx_data); | |
+ handle_txrpt_ccx_88e(adapt, precvframe->pkt->data); | |
+ rtw_free_recvframe(precvframe, pfree_recv_queue); | |
} else if (pattrib->pkt_rpt_type == TX_REPORT2) { | |
ODM_RA_TxRPT2Handle_8188E( | |
&haldata->odmpriv, | |
- precvframe->rx_data, | |
+ precvframe->pkt->data, | |
pattrib->pkt_len, | |
pattrib->MacIDValidEntry[0], | |
pattrib->MacIDValidEntry[1] | |
); | |
+ rtw_free_recvframe(precvframe, pfree_recv_queue); | |
} else if (pattrib->pkt_rpt_type == HIS_REPORT) { | |
- interrupt_handler_8188eu(adapt, pattrib->pkt_len, precvframe->rx_data); | |
- } | |
+ interrupt_handler_8188eu(adapt, pattrib->pkt_len, precvframe->pkt->data); | |
rtw_free_recvframe(precvframe, pfree_recv_queue); | |
} | |
pkt_cnt--; | |
@@ -255,9 +231,9 @@ static int usbctrl_vendorreq(struct adapter *adapt, u8 request, u16 value, u16 i | |
} | |
/* Acquire IO memory for vendorreq */ | |
- pIo_buf = dvobjpriv->usb_vendor_req_buf; | |
+ pIo_buf = kmalloc(MAX_USB_IO_CTL_SIZE, GFP_ATOMIC); | |
- if (pIo_buf == NULL) { | |
+ if (!pIo_buf) { | |
DBG_88E("[%s] pIo_buf == NULL\n", __func__); | |
status = -ENOMEM; | |
goto release_mutex; | |
@@ -289,8 +265,7 @@ static int usbctrl_vendorreq(struct adapter *adapt, u8 request, u16 value, u16 i | |
if (status == (-ESHUTDOWN) || status == -ENODEV) { | |
adapt->bSurpriseRemoved = true; | |
} else { | |
- struct hal_data_8188e *haldata = GET_HAL_DATA(adapt); | |
- haldata->srestpriv.Wifi_Error_Status = USB_VEN_REQ_CMD_FAIL; | |
+ adapt->HalData->srestpriv.Wifi_Error_Status = USB_VEN_REQ_CMD_FAIL; | |
} | |
} else { /* status != len && status >= 0 */ | |
if (status > 0) { | |
@@ -307,6 +282,8 @@ static int usbctrl_vendorreq(struct adapter *adapt, u8 request, u16 value, u16 i | |
if ((value >= FW_8188E_START_ADDRESS && value <= FW_8188E_END_ADDRESS) || status == len) | |
break; | |
} | |
+ kfree(pIo_buf); | |
+ | |
release_mutex: | |
mutex_unlock(&dvobjpriv->usb_vendor_req_mutex); | |
exit: | |
@@ -387,8 +364,6 @@ static void usb_read_port_complete(struct urb *purb, struct pt_regs *regs) | |
RT_TRACE(_module_hci_ops_os_c_, _drv_err_, ("usb_read_port_complete!!!\n")); | |
- precvpriv->rx_pending_cnt--; | |
- | |
if (adapt->bSurpriseRemoved || adapt->bDriverStopped || adapt->bReadPortCancel) { | |
RT_TRACE(_module_hci_ops_os_c_, _drv_err_, | |
("usb_read_port_complete:bDriverStopped(%d) OR bSurpriseRemoved(%d)\n", | |
@@ -406,7 +381,7 @@ static void usb_read_port_complete(struct urb *purb, struct pt_regs *regs) | |
RT_TRACE(_module_hci_ops_os_c_, _drv_err_, | |
("usb_read_port_complete: (purb->actual_length > MAX_RECVBUF_SZ) || (purb->actual_length < RXDESC_SIZE)\n")); | |
precvbuf->reuse = true; | |
- usb_read_port(adapt, precvpriv->ff_hwaddr, 0, (unsigned char *)precvbuf); | |
+ usb_read_port(adapt, RECV_BULK_IN_ADDR, precvbuf); | |
DBG_88E("%s()-%d: RX Warning!\n", __func__, __LINE__); | |
} else { | |
skb_put(precvbuf->pskb, purb->actual_length); | |
@@ -417,7 +392,7 @@ static void usb_read_port_complete(struct urb *purb, struct pt_regs *regs) | |
precvbuf->pskb = NULL; | |
precvbuf->reuse = false; | |
- usb_read_port(adapt, precvpriv->ff_hwaddr, 0, (unsigned char *)precvbuf); | |
+ usb_read_port(adapt, RECV_BULK_IN_ADDR, precvbuf); | |
} | |
} else { | |
RT_TRACE(_module_hci_ops_os_c_, _drv_err_, ("usb_read_port_complete : purb->status(%d) != 0\n", purb->status)); | |
@@ -438,12 +413,9 @@ static void usb_read_port_complete(struct urb *purb, struct pt_regs *regs) | |
break; | |
case -EPROTO: | |
case -EOVERFLOW: | |
- { | |
- struct hal_data_8188e *haldata = GET_HAL_DATA(adapt); | |
- haldata->srestpriv.Wifi_Error_Status = USB_READ_PORT_FAIL; | |
- } | |
+ adapt->HalData->srestpriv.Wifi_Error_Status = USB_READ_PORT_FAIL; | |
precvbuf->reuse = true; | |
- usb_read_port(adapt, precvpriv->ff_hwaddr, 0, (unsigned char *)precvbuf); | |
+ usb_read_port(adapt, RECV_BULK_IN_ADDR, precvbuf); | |
break; | |
case -EINPROGRESS: | |
DBG_88E("ERROR: URB IS IN PROGRESS!\n"); | |
@@ -454,17 +426,14 @@ static void usb_read_port_complete(struct urb *purb, struct pt_regs *regs) | |
} | |
} | |
-u32 usb_read_port(struct adapter *adapter, u32 addr, u32 cnt, u8 *rmem) | |
+u32 usb_read_port(struct adapter *adapter, u32 addr, struct recv_buf *precvbuf) | |
{ | |
struct urb *purb = NULL; | |
- struct recv_buf *precvbuf = (struct recv_buf *)rmem; | |
struct dvobj_priv *pdvobj = adapter_to_dvobj(adapter); | |
struct recv_priv *precvpriv = &adapter->recvpriv; | |
struct usb_device *pusbd = pdvobj->pusbdev; | |
int err; | |
unsigned int pipe; | |
- size_t tmpaddr = 0; | |
- size_t alignment = 0; | |
u32 ret = _SUCCESS; | |
@@ -483,28 +452,22 @@ u32 usb_read_port(struct adapter *adapter, u32 addr, u32 cnt, u8 *rmem) | |
if ((!precvbuf->reuse) || (precvbuf->pskb == NULL)) { | |
precvbuf->pskb = skb_dequeue(&precvpriv->free_recv_skb_queue); | |
- if (NULL != precvbuf->pskb) | |
+ if (precvbuf->pskb != NULL) | |
precvbuf->reuse = true; | |
} | |
/* re-assign for linux based on skb */ | |
if ((!precvbuf->reuse) || (precvbuf->pskb == NULL)) { | |
- precvbuf->pskb = netdev_alloc_skb(adapter->pnetdev, MAX_RECVBUF_SZ + RECVBUFF_ALIGN_SZ); | |
+ precvbuf->pskb = netdev_alloc_skb(adapter->pnetdev, MAX_RECVBUF_SZ); | |
if (precvbuf->pskb == NULL) { | |
RT_TRACE(_module_hci_ops_os_c_, _drv_err_, ("init_recvbuf(): alloc_skb fail!\n")); | |
DBG_88E("#### usb_read_port() alloc_skb fail!#####\n"); | |
return _FAIL; | |
} | |
- | |
- tmpaddr = (size_t)precvbuf->pskb->data; | |
- alignment = tmpaddr & (RECVBUFF_ALIGN_SZ-1); | |
- skb_reserve(precvbuf->pskb, (RECVBUFF_ALIGN_SZ - alignment)); | |
} else { /* reuse skb */ | |
precvbuf->reuse = false; | |
} | |
- precvpriv->rx_pending_cnt++; | |
- | |
purb = precvbuf->purb; | |
/* translate DMA FIFO addr to pipehandle */ | |
@@ -529,12 +492,12 @@ u32 usb_read_port(struct adapter *adapter, u32 addr, u32 cnt, u8 *rmem) | |
return ret; | |
} | |
-void usb_read_port_cancel(struct adapter *padapter) | |
+void rtw_hal_inirp_deinit(struct adapter *padapter) | |
{ | |
int i; | |
struct recv_buf *precvbuf; | |
- precvbuf = (struct recv_buf *)padapter->recvpriv.precv_buf; | |
+ precvbuf = padapter->recvpriv.precv_buf; | |
DBG_88E("%s\n", __func__); | |
@@ -695,7 +658,7 @@ static void usb_write_port_complete(struct urb *purb, struct pt_regs *regs) | |
tasklet_hi_schedule(&pxmitpriv->xmit_tasklet); | |
} | |
-u32 usb_write_port(struct adapter *padapter, u32 addr, u32 cnt, u8 *wmem) | |
+u32 usb_write_port(struct adapter *padapter, u32 addr, u32 cnt, struct xmit_buf *xmitbuf) | |
{ | |
unsigned long irqL; | |
unsigned int pipe; | |
@@ -704,8 +667,7 @@ u32 usb_write_port(struct adapter *padapter, u32 addr, u32 cnt, u8 *wmem) | |
struct urb *purb = NULL; | |
struct dvobj_priv *pdvobj = adapter_to_dvobj(padapter); | |
struct xmit_priv *pxmitpriv = &padapter->xmitpriv; | |
- struct xmit_buf *pxmitbuf = (struct xmit_buf *)wmem; | |
- struct xmit_frame *pxmitframe = (struct xmit_frame *)pxmitbuf->priv_data; | |
+ struct xmit_frame *pxmitframe = (struct xmit_frame *)xmitbuf->priv_data; | |
struct usb_device *pusbd = pdvobj->pusbdev; | |
@@ -715,7 +677,7 @@ u32 usb_write_port(struct adapter *padapter, u32 addr, u32 cnt, u8 *wmem) | |
(padapter->pwrctrlpriv.pnp_bstop_trx)) { | |
RT_TRACE(_module_hci_ops_os_c_, _drv_err_, | |
("usb_write_port:( padapter->bDriverStopped ||padapter->bSurpriseRemoved ||adapter->pwrctrlpriv.pnp_bstop_trx)!!!\n")); | |
- rtw_sctx_done_err(&pxmitbuf->sctx, RTW_SCTX_DONE_TX_DENY); | |
+ rtw_sctx_done_err(&xmitbuf->sctx, RTW_SCTX_DONE_TX_DENY); | |
goto exit; | |
} | |
@@ -724,44 +686,44 @@ u32 usb_write_port(struct adapter *padapter, u32 addr, u32 cnt, u8 *wmem) | |
switch (addr) { | |
case VO_QUEUE_INX: | |
pxmitpriv->voq_cnt++; | |
- pxmitbuf->flags = VO_QUEUE_INX; | |
+ xmitbuf->flags = VO_QUEUE_INX; | |
break; | |
case VI_QUEUE_INX: | |
pxmitpriv->viq_cnt++; | |
- pxmitbuf->flags = VI_QUEUE_INX; | |
+ xmitbuf->flags = VI_QUEUE_INX; | |
break; | |
case BE_QUEUE_INX: | |
pxmitpriv->beq_cnt++; | |
- pxmitbuf->flags = BE_QUEUE_INX; | |
+ xmitbuf->flags = BE_QUEUE_INX; | |
break; | |
case BK_QUEUE_INX: | |
pxmitpriv->bkq_cnt++; | |
- pxmitbuf->flags = BK_QUEUE_INX; | |
+ xmitbuf->flags = BK_QUEUE_INX; | |
break; | |
case HIGH_QUEUE_INX: | |
- pxmitbuf->flags = HIGH_QUEUE_INX; | |
+ xmitbuf->flags = HIGH_QUEUE_INX; | |
break; | |
default: | |
- pxmitbuf->flags = MGT_QUEUE_INX; | |
+ xmitbuf->flags = MGT_QUEUE_INX; | |
break; | |
} | |
spin_unlock_irqrestore(&pxmitpriv->lock, irqL); | |
- purb = pxmitbuf->pxmit_urb[0]; | |
+ purb = xmitbuf->pxmit_urb[0]; | |
/* translate DMA FIFO addr to pipehandle */ | |
pipe = ffaddr2pipehdl(pdvobj, addr); | |
usb_fill_bulk_urb(purb, pusbd, pipe, | |
- pxmitframe->buf_addr, /* pxmitbuf->pbuf */ | |
+ pxmitframe->buf_addr, /* xmitbuf->pbuf */ | |
cnt, | |
usb_write_port_complete, | |
- pxmitbuf);/* context is pxmitbuf */ | |
+ xmitbuf);/* context is xmitbuf */ | |
status = usb_submit_urb(purb, GFP_ATOMIC); | |
if (status) { | |
- rtw_sctx_done_err(&pxmitbuf->sctx, RTW_SCTX_DONE_WRITE_PORT_ERR); | |
+ rtw_sctx_done_err(&xmitbuf->sctx, RTW_SCTX_DONE_WRITE_PORT_ERR); | |
DBG_88E("usb_write_port, status =%d\n", status); | |
RT_TRACE(_module_hci_ops_os_c_, _drv_err_, ("usb_write_port(): usb_submit_urb, status =%x\n", status)); | |
@@ -783,7 +745,7 @@ u32 usb_write_port(struct adapter *padapter, u32 addr, u32 cnt, u8 *wmem) | |
exit: | |
if (ret != _SUCCESS) | |
- rtw_free_xmitbuf(pxmitpriv, pxmitbuf); | |
+ rtw_free_xmitbuf(pxmitpriv, xmitbuf); | |
return ret; | |
} | |
@@ -850,7 +812,7 @@ void rtl8188eu_xmit_tasklet(void *priv) | |
break; | |
} | |
- ret = rtl8188eu_xmitframe_complete(adapt, pxmitpriv, NULL); | |
+ ret = rtl8188eu_xmitframe_complete(adapt, pxmitpriv); | |
if (!ret) | |
break; | |
diff --git b/drivers/staging/rtl8188eu/os_dep/xmit_linux.c a/drivers/staging/rtl8188eu/os_dep/xmit_linux.c | |
index 1593e280e060..8bf8248e4ac7 100644 | |
--- b/drivers/staging/rtl8188eu/os_dep/xmit_linux.c | |
+++ a/drivers/staging/rtl8188eu/os_dep/xmit_linux.c | |
@@ -11,11 +11,6 @@ | |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
* more details. | |
* | |
- * You should have received a copy of the GNU General Public License along with | |
- * this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | |
- * | |
- * | |
******************************************************************************/ | |
#define _XMIT_OSDEP_C_ | |
@@ -64,11 +59,6 @@ uint _rtw_pktfile_read(struct pkt_file *pfile, u8 *rmem, uint rlen) | |
return len; | |
} | |
-int rtw_endofpktfile(struct pkt_file *pfile) | |
-{ | |
- return pfile->pkt_len == 0; | |
-} | |
- | |
int rtw_os_xmit_resource_alloc(struct adapter *padapter, struct xmit_buf *pxmitbuf, u32 alloc_sz) | |
{ | |
int i; | |
@@ -77,12 +67,12 @@ int rtw_os_xmit_resource_alloc(struct adapter *padapter, struct xmit_buf *pxmitb | |
if (pxmitbuf->pallocated_buf == NULL) | |
return _FAIL; | |
- pxmitbuf->pbuf = (u8 *)N_BYTE_ALIGMENT((size_t)(pxmitbuf->pallocated_buf), XMITBUF_ALIGN_SZ); | |
+ pxmitbuf->pbuf = PTR_ALIGN(pxmitbuf->pallocated_buf, XMITBUF_ALIGN_SZ); | |
pxmitbuf->dma_transfer_addr = 0; | |
for (i = 0; i < 8; i++) { | |
pxmitbuf->pxmit_urb[i] = usb_alloc_urb(0, GFP_KERNEL); | |
- if (pxmitbuf->pxmit_urb[i] == NULL) { | |
+ if (!pxmitbuf->pxmit_urb[i]) { | |
DBG_88E("pxmitbuf->pxmit_urb[i]==NULL"); | |
return _FAIL; | |
} | |
@@ -90,8 +80,7 @@ int rtw_os_xmit_resource_alloc(struct adapter *padapter, struct xmit_buf *pxmitb | |
return _SUCCESS; | |
} | |
-void rtw_os_xmit_resource_free(struct adapter *padapter, | |
- struct xmit_buf *pxmitbuf, u32 free_sz) | |
+void rtw_os_xmit_resource_free(struct xmit_buf *pxmitbuf) | |
{ | |
int i; | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment