Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

staging: r8188eu: replace HT_caps_element with ieee80211_ht_cap structure

HT_caps_element is reimplementation of ieee80211_ht_cap.

Signed-off-by: Ivan Safonov <insafonov@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Ivan Safonov and committed by
Greg Kroah-Hartman
3d3cd94d ad0ca590

+42 -41
+5 -5
drivers/staging/rtl8188eu/core/rtw_ap.c
··· 706 706 707 707 /* handle A-MPDU parameter field */ 708 708 /* 709 - AMPDU_para [1:0]:Max AMPDU Len => 0:8k , 1:16k, 2:32k, 3:64k 710 - AMPDU_para [4:2]:Min MPDU Start Spacing 709 + ampdu_params_info [1:0]:Max AMPDU Len => 0:8k , 1:16k, 2:32k, 3:64k 710 + ampdu_params_info [4:2]:Min MPDU Start Spacing 711 711 */ 712 - max_AMPDU_len = pmlmeinfo->HT_caps.AMPDU_para & 0x03; 712 + max_AMPDU_len = pmlmeinfo->HT_caps.ampdu_params_info & 0x03; 713 713 714 - min_MPDU_spacing = (pmlmeinfo->HT_caps.AMPDU_para & 0x1c) >> 2; 714 + min_MPDU_spacing = (pmlmeinfo->HT_caps.ampdu_params_info & 0x1c) >> 2; 715 715 716 716 rtw_hal_set_hwreg(padapter, HW_VAR_AMPDU_MIN_SPACE, (u8 *)(&min_MPDU_spacing)); 717 717 ··· 720 720 /* */ 721 721 /* Config SM Power Save setting */ 722 722 /* */ 723 - pmlmeinfo->SM_PS = (le16_to_cpu(pmlmeinfo->HT_caps.HT_caps_info) & 0x0C) >> 2; 723 + pmlmeinfo->SM_PS = (le16_to_cpu(pmlmeinfo->HT_caps.cap_info) & 0x0C) >> 2; 724 724 if (pmlmeinfo->SM_PS == WLAN_HT_CAP_SM_PS_STATIC) 725 725 DBG_88E("%s(): WLAN_HT_CAP_SM_PS_STATIC\n", __func__); 726 726 }
+3 -3
drivers/staging/rtl8188eu/core/rtw_ioctl_set.c
··· 588 588 /* cur_bwmod is updated by beacon, pmlmeinfo is updated by association response */ 589 589 bw_40MHz = (pmlmeext->cur_bwmode && (HT_INFO_HT_PARAM_REC_TRANS_CHNL_WIDTH & pmlmeinfo->HT_info.infos[0])) ? 1 : 0; 590 590 591 - short_GI_20 = (le16_to_cpu(pmlmeinfo->HT_caps.HT_caps_info) & IEEE80211_HT_CAP_SGI_20) ? 1 : 0; 592 - short_GI_40 = (le16_to_cpu(pmlmeinfo->HT_caps.HT_caps_info) & IEEE80211_HT_CAP_SGI_40) ? 1 : 0; 591 + short_GI_20 = (le16_to_cpu(pmlmeinfo->HT_caps.cap_info) & IEEE80211_HT_CAP_SGI_20) ? 1 : 0; 592 + short_GI_40 = (le16_to_cpu(pmlmeinfo->HT_caps.cap_info) & IEEE80211_HT_CAP_SGI_40) ? 1 : 0; 593 593 594 594 rtw_hal_get_hwreg(adapter, HW_VAR_RF_TYPE, (u8 *)(&rf_type)); 595 595 max_rate = rtw_mcs_rate( ··· 597 597 bw_40MHz & (pregistrypriv->cbw40_enable), 598 598 short_GI_20, 599 599 short_GI_40, 600 - pmlmeinfo->HT_caps.MCS_rate 600 + pmlmeinfo->HT_caps.mcs.rx_mask 601 601 ); 602 602 } 603 603 } else {
+6 -6
drivers/staging/rtl8188eu/core/rtw_mlme.c
··· 1971 1971 rtw_hal_get_def_var(padapter, HAL_DEF_MAX_RECVBUF_SZ, &max_recvbuf_sz); 1972 1972 1973 1973 /* 1974 - AMPDU_para [1:0]:Max AMPDU Len => 0:8k , 1:16k, 2:32k, 3:64k 1975 - AMPDU_para [4:2]:Min MPDU Start Spacing 1974 + ampdu_params_info [1:0]:Max AMPDU Len => 0:8k , 1:16k, 2:32k, 3:64k 1975 + ampdu_params_info [4:2]:Min MPDU Start Spacing 1976 1976 */ 1977 1977 1978 1978 rtw_hal_get_def_var(padapter, HW_VAR_MAX_RX_AMPDU_FACTOR, &max_rx_ampdu_factor); ··· 2044 2044 2045 2045 /* update cur_bwmode & cur_ch_offset */ 2046 2046 if ((pregistrypriv->cbw40_enable) && 2047 - (le16_to_cpu(pmlmeinfo->HT_caps.HT_caps_info) & BIT(1)) && 2047 + (le16_to_cpu(pmlmeinfo->HT_caps.cap_info) & BIT(1)) && 2048 2048 (pmlmeinfo->HT_info.infos[0] & BIT(2))) { 2049 2049 int i; 2050 2050 u8 rf_type; ··· 2054 2054 /* update the MCS rates */ 2055 2055 for (i = 0; i < 16; i++) { 2056 2056 if ((rf_type == RF_1T1R) || (rf_type == RF_1T2R)) 2057 - pmlmeinfo->HT_caps.MCS_rate[i] &= MCS_rate_1R[i]; 2057 + ((u8 *)&pmlmeinfo->HT_caps.mcs)[i] &= MCS_rate_1R[i]; 2058 2058 else 2059 - pmlmeinfo->HT_caps.MCS_rate[i] &= MCS_rate_2R[i]; 2059 + ((u8 *)&pmlmeinfo->HT_caps.mcs)[i] &= MCS_rate_2R[i]; 2060 2060 } 2061 2061 /* switch to the 40M Hz mode according to the AP */ 2062 2062 pmlmeext->cur_bwmode = HT_CHANNEL_WIDTH_40; ··· 2074 2074 } 2075 2075 2076 2076 /* Config SM Power Save setting */ 2077 - pmlmeinfo->SM_PS = (le16_to_cpu(pmlmeinfo->HT_caps.HT_caps_info) & 0x0C) >> 2; 2077 + pmlmeinfo->SM_PS = (le16_to_cpu(pmlmeinfo->HT_caps.cap_info) & 0x0C) >> 2; 2078 2078 if (pmlmeinfo->SM_PS == WLAN_HT_CAP_SM_PS_STATIC) 2079 2079 DBG_88E("%s(): WLAN_HT_CAP_SM_PS_STATIC\n", __func__); 2080 2080
+11 -11
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c
··· 1132 1132 if (padapter->mlmepriv.htpriv.ht_option) { 1133 1133 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))); 1134 1134 if ((p != NULL) && (!(is_ap_in_tkip(padapter)))) { 1135 - memcpy(&(pmlmeinfo->HT_caps), (p + 2), sizeof(struct HT_caps_element)); 1135 + memcpy(&pmlmeinfo->HT_caps, p + 2, sizeof(struct ieee80211_ht_cap)); 1136 1136 1137 1137 /* to disable 40M Hz support while gd_bw_40MHz_en = 0 */ 1138 1138 if (pregpriv->cbw40_enable == 0) 1139 - pmlmeinfo->HT_caps.HT_caps_info &= cpu_to_le16(~(BIT(6) | BIT(1))); 1139 + pmlmeinfo->HT_caps.cap_info &= cpu_to_le16(~(BIT(6) | BIT(1))); 1140 1140 else 1141 - pmlmeinfo->HT_caps.HT_caps_info |= cpu_to_le16(BIT(1)); 1141 + pmlmeinfo->HT_caps.cap_info |= cpu_to_le16(BIT(1)); 1142 1142 1143 1143 /* todo: disable SM power save mode */ 1144 - pmlmeinfo->HT_caps.HT_caps_info |= cpu_to_le16(0x000c); 1144 + pmlmeinfo->HT_caps.cap_info |= cpu_to_le16(0x000c); 1145 1145 1146 1146 rtw_hal_get_hwreg(padapter, HW_VAR_RF_TYPE, (u8 *)(&rf_type)); 1147 1147 switch (rf_type) { 1148 1148 case RF_1T1R: 1149 1149 if (pregpriv->rx_stbc) 1150 - pmlmeinfo->HT_caps.HT_caps_info |= cpu_to_le16(0x0100);/* RX STBC One spatial stream */ 1151 - memcpy(pmlmeinfo->HT_caps.MCS_rate, MCS_rate_1R, 16); 1150 + pmlmeinfo->HT_caps.cap_info |= cpu_to_le16(0x0100);/* RX STBC One spatial stream */ 1151 + memcpy((u8 *)&pmlmeinfo->HT_caps.mcs, MCS_rate_1R, 16); 1152 1152 break; 1153 1153 case RF_2T2R: 1154 1154 case RF_1T2R: ··· 1157 1157 ((pmlmeext->cur_wireless_mode & WIRELESS_11_24N) && (pregpriv->rx_stbc == 0x1)) || /* enable for 2.4GHz */ 1158 1158 (pregpriv->wifi_spec == 1)) { 1159 1159 DBG_88E("declare supporting RX STBC\n"); 1160 - pmlmeinfo->HT_caps.HT_caps_info |= cpu_to_le16(0x0200);/* RX STBC two spatial stream */ 1160 + pmlmeinfo->HT_caps.cap_info |= cpu_to_le16(0x0200);/* RX STBC two spatial stream */ 1161 1161 } 1162 - memcpy(pmlmeinfo->HT_caps.MCS_rate, MCS_rate_2R, 16); 1162 + memcpy(&pmlmeinfo->HT_caps.mcs, MCS_rate_2R, 16); 1163 1163 break; 1164 1164 } 1165 1165 pframe = rtw_set_ie(pframe, _HT_CAPABILITY_IE_, ie_len , (u8 *)(&(pmlmeinfo->HT_caps)), &(pattrib->pktlen)); ··· 2189 2189 struct mlme_priv *pmlmepriv = &padapter->mlmepriv; 2190 2190 p = rtw_get_ie(bssid->IEs + ie_offset, _HT_CAPABILITY_IE_, &len, bssid->IELength - ie_offset); 2191 2191 if (p && len > 0) { 2192 - struct HT_caps_element *pHT_caps; 2193 - pHT_caps = (struct HT_caps_element *)(p + 2); 2192 + struct ieee80211_ht_cap *pHT_caps = 2193 + (struct ieee80211_ht_cap *)(p + 2); 2194 2194 2195 - if (le16_to_cpu(pHT_caps->HT_caps_info) & BIT(14)) 2195 + if (le16_to_cpu(pHT_caps->cap_info) & BIT(14)) 2196 2196 pmlmepriv->num_FortyMHzIntolerant++; 2197 2197 } else { 2198 2198 pmlmepriv->num_sta_no_ht++;
+14 -13
drivers/staging/rtl8188eu/core/rtw_wlan_util.c
··· 732 732 HT_cap[i] &= (pIE->data[i]); 733 733 } else { 734 734 /* modify from fw by Thomas 2010/11/17 */ 735 - if ((pmlmeinfo->HT_caps.AMPDU_para & 0x3) > (pIE->data[i] & 0x3)) 735 + if ((pmlmeinfo->HT_caps.ampdu_params_info & 0x3) > (pIE->data[i] & 0x3)) 736 736 max_AMPDU_len = pIE->data[i] & 0x3; 737 737 else 738 - max_AMPDU_len = pmlmeinfo->HT_caps.AMPDU_para & 0x3; 738 + max_AMPDU_len = pmlmeinfo->HT_caps.ampdu_params_info & 0x3; 739 739 740 - if ((pmlmeinfo->HT_caps.AMPDU_para & 0x1c) > (pIE->data[i] & 0x1c)) 741 - min_MPDU_spacing = pmlmeinfo->HT_caps.AMPDU_para & 0x1c; 740 + if ((pmlmeinfo->HT_caps.ampdu_params_info & 0x1c) > (pIE->data[i] & 0x1c)) 741 + min_MPDU_spacing = pmlmeinfo->HT_caps.ampdu_params_info & 0x1c; 742 742 else 743 743 min_MPDU_spacing = pIE->data[i] & 0x1c; 744 744 745 - pmlmeinfo->HT_caps.AMPDU_para = max_AMPDU_len | min_MPDU_spacing; 745 + pmlmeinfo->HT_caps.ampdu_params_info = max_AMPDU_len | min_MPDU_spacing; 746 746 } 747 747 } 748 748 ··· 751 751 /* update the MCS rates */ 752 752 for (i = 0; i < 16; i++) { 753 753 if ((rf_type == RF_1T1R) || (rf_type == RF_1T2R)) 754 - pmlmeinfo->HT_caps.MCS_rate[i] &= MCS_rate_1R[i]; 754 + ((u8 *)&pmlmeinfo->HT_caps.mcs)[i] &= MCS_rate_1R[i]; 755 755 else 756 - pmlmeinfo->HT_caps.MCS_rate[i] &= MCS_rate_2R[i]; 756 + ((u8 *)&pmlmeinfo->HT_caps.mcs)[i] &= MCS_rate_2R[i]; 757 757 } 758 758 } 759 759 ··· 799 799 AMPDU_para [1:0]:Max AMPDU Len => 0:8k , 1:16k, 2:32k, 3:64k 800 800 AMPDU_para [4:2]:Min MPDU Start Spacing 801 801 */ 802 - max_AMPDU_len = pmlmeinfo->HT_caps.AMPDU_para & 0x03; 802 + max_AMPDU_len = pmlmeinfo->HT_caps.ampdu_params_info & 0x03; 803 803 804 - min_MPDU_spacing = (pmlmeinfo->HT_caps.AMPDU_para & 0x1c) >> 2; 804 + min_MPDU_spacing = (pmlmeinfo->HT_caps.ampdu_params_info & 0x1c) >> 2; 805 805 806 806 rtw_hal_set_hwreg(padapter, HW_VAR_AMPDU_MIN_SPACE, (u8 *)(&min_MPDU_spacing)); 807 807 ··· 1245 1245 return mask; 1246 1246 } 1247 1247 1248 - unsigned int update_MSC_rate(struct HT_caps_element *pHT_caps) 1248 + unsigned int update_MSC_rate(struct ieee80211_ht_cap *pHT_caps) 1249 1249 { 1250 1250 unsigned int mask = 0; 1251 1251 1252 - mask = (pHT_caps->MCS_rate[0] << 12) | (pHT_caps->MCS_rate[1] << 20); 1252 + mask = (pHT_caps->mcs.rx_mask[0] << 12) | 1253 + (pHT_caps->mcs.rx_mask[1] << 20); 1253 1254 1254 1255 return mask; 1255 1256 } 1256 1257 1257 - int support_short_GI(struct adapter *padapter, struct HT_caps_element *pHT_caps) 1258 + int support_short_GI(struct adapter *padapter, struct ieee80211_ht_cap *pHT_caps) 1258 1259 { 1259 1260 unsigned char bit_offset; 1260 1261 struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; ··· 1269 1268 1270 1269 bit_offset = (pmlmeext->cur_bwmode & HT_CHANNEL_WIDTH_40) ? 6 : 5; 1271 1270 1272 - if (__le16_to_cpu(pHT_caps->HT_caps_info) & (0x1 << bit_offset)) 1271 + if (__le16_to_cpu(pHT_caps->cap_info) & (0x1 << bit_offset)) 1273 1272 return _SUCCESS; 1274 1273 else 1275 1274 return _FAIL;
+3 -3
drivers/staging/rtl8188eu/include/rtw_mlme_ext.h
··· 349 349 350 350 struct ADDBA_request ADDBA_req; 351 351 struct WMM_para_element WMM_param; 352 - struct HT_caps_element HT_caps; 352 + struct ieee80211_ht_cap HT_caps; 353 353 struct HT_info_element HT_info; 354 354 struct wlan_bssid_ex network;/* join network or bss_network, 355 355 * if in ap mode, it is the same ··· 529 529 void update_sta_info(struct adapter *padapter, struct sta_info *psta); 530 530 unsigned int update_basic_rate(unsigned char *ptn, unsigned int ptn_sz); 531 531 unsigned int update_supported_rate(unsigned char *ptn, unsigned int ptn_sz); 532 - unsigned int update_MSC_rate(struct HT_caps_element *pHT_caps); 532 + unsigned int update_MSC_rate(struct ieee80211_ht_cap *pHT_caps); 533 533 void Update_RA_Entry(struct adapter *padapter, u32 mac_id); 534 534 void set_sta_rate(struct adapter *padapter, struct sta_info *psta); 535 535 536 536 unsigned char get_highest_rate_idx(u32 mask); 537 - int support_short_GI(struct adapter *padapter, struct HT_caps_element *caps); 537 + int support_short_GI(struct adapter *padapter, struct ieee80211_ht_cap *caps); 538 538 unsigned int is_ap_in_tkip(struct adapter *padapter); 539 539 unsigned int is_ap_in_wep(struct adapter *padapter); 540 540 unsigned int should_forbid_n_rate(struct adapter *padapter);