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

staging: r8188eu: simplify HT_caps_element structure

Now HT_caps_element structure is similar to ieee80211_ht_caps.

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
ad0ca590 16d475cb

+37 -41
+3 -3
drivers/staging/rtl8188eu/core/rtw_ap.c
··· 709 709 AMPDU_para [1:0]:Max AMPDU Len => 0:8k , 1:16k, 2:32k, 3:64k 710 710 AMPDU_para [4:2]:Min MPDU Start Spacing 711 711 */ 712 - max_AMPDU_len = pmlmeinfo->HT_caps.u.HT_cap_element.AMPDU_para & 0x03; 712 + max_AMPDU_len = pmlmeinfo->HT_caps.AMPDU_para & 0x03; 713 713 714 - min_MPDU_spacing = (pmlmeinfo->HT_caps.u.HT_cap_element.AMPDU_para & 0x1c) >> 2; 714 + min_MPDU_spacing = (pmlmeinfo->HT_caps.AMPDU_para & 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.u.HT_cap_element.HT_caps_info) & 0x0C) >> 2; 723 + pmlmeinfo->SM_PS = (le16_to_cpu(pmlmeinfo->HT_caps.HT_caps_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.u.HT_cap_element.HT_caps_info) & IEEE80211_HT_CAP_SGI_20) ? 1 : 0; 592 - short_GI_40 = (le16_to_cpu(pmlmeinfo->HT_caps.u.HT_cap_element.HT_caps_info) & IEEE80211_HT_CAP_SGI_40) ? 1 : 0; 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; 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.u.HT_cap_element.MCS_rate 600 + pmlmeinfo->HT_caps.MCS_rate 601 601 ); 602 602 } 603 603 } else {
+4 -4
drivers/staging/rtl8188eu/core/rtw_mlme.c
··· 2044 2044 2045 2045 /* update cur_bwmode & cur_ch_offset */ 2046 2046 if ((pregistrypriv->cbw40_enable) && 2047 - (le16_to_cpu(pmlmeinfo->HT_caps.u.HT_cap_element.HT_caps_info) & BIT(1)) && 2047 + (le16_to_cpu(pmlmeinfo->HT_caps.HT_caps_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.u.HT_cap_element.MCS_rate[i] &= MCS_rate_1R[i]; 2057 + pmlmeinfo->HT_caps.MCS_rate[i] &= MCS_rate_1R[i]; 2058 2058 else 2059 - pmlmeinfo->HT_caps.u.HT_cap_element.MCS_rate[i] &= MCS_rate_2R[i]; 2059 + pmlmeinfo->HT_caps.MCS_rate[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.u.HT_cap_element.HT_caps_info) & 0x0C) >> 2; 2077 + pmlmeinfo->SM_PS = (le16_to_cpu(pmlmeinfo->HT_caps.HT_caps_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
+9 -9
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c
··· 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.u.HT_cap_element.HT_caps_info &= cpu_to_le16(~(BIT(6) | BIT(1))); 1139 + pmlmeinfo->HT_caps.HT_caps_info &= cpu_to_le16(~(BIT(6) | BIT(1))); 1140 1140 else 1141 - pmlmeinfo->HT_caps.u.HT_cap_element.HT_caps_info |= cpu_to_le16(BIT(1)); 1141 + pmlmeinfo->HT_caps.HT_caps_info |= cpu_to_le16(BIT(1)); 1142 1142 1143 1143 /* todo: disable SM power save mode */ 1144 - pmlmeinfo->HT_caps.u.HT_cap_element.HT_caps_info |= cpu_to_le16(0x000c); 1144 + pmlmeinfo->HT_caps.HT_caps_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.u.HT_cap_element.HT_caps_info |= cpu_to_le16(0x0100);/* RX STBC One spatial stream */ 1151 - memcpy(pmlmeinfo->HT_caps.u.HT_cap_element.MCS_rate, MCS_rate_1R, 16); 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); 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.u.HT_cap_element.HT_caps_info |= cpu_to_le16(0x0200);/* RX STBC two spatial stream */ 1160 + pmlmeinfo->HT_caps.HT_caps_info |= cpu_to_le16(0x0200);/* RX STBC two spatial stream */ 1161 1161 } 1162 - memcpy(pmlmeinfo->HT_caps.u.HT_cap_element.MCS_rate, MCS_rate_2R, 16); 1162 + memcpy(pmlmeinfo->HT_caps.MCS_rate, 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)); ··· 2192 2192 struct HT_caps_element *pHT_caps; 2193 2193 pHT_caps = (struct HT_caps_element *)(p + 2); 2194 2194 2195 - if (le16_to_cpu(pHT_caps->u.HT_cap_element.HT_caps_info)&BIT(14)) 2195 + if (le16_to_cpu(pHT_caps->HT_caps_info) & BIT(14)) 2196 2196 pmlmepriv->num_FortyMHzIntolerant++; 2197 2197 } else { 2198 2198 pmlmepriv->num_sta_no_ht++; ··· 4479 4479 4480 4480 psta->htpriv.ampdu_enable = pmlmepriv->htpriv.ampdu_enable; 4481 4481 4482 - if (support_short_GI(padapter, &(pmlmeinfo->HT_caps))) 4482 + if (support_short_GI(padapter, &pmlmeinfo->HT_caps)) 4483 4483 psta->htpriv.sgi = true; 4484 4484 4485 4485 psta->qos_option = true;
+12 -12
drivers/staging/rtl8188eu/core/rtw_wlan_util.c
··· 716 716 struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info); 717 717 struct mlme_priv *pmlmepriv = &padapter->mlmepriv; 718 718 struct ht_priv *phtpriv = &pmlmepriv->htpriv; 719 - u8 *HT_cap = (u8 *)(&pmlmeinfo->HT_caps.u.HT_cap_element); 719 + u8 *HT_cap = (u8 *)(&pmlmeinfo->HT_caps); 720 720 721 721 if (pIE == NULL) 722 722 return; ··· 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.u.HT_cap_element.AMPDU_para & 0x3) > (pIE->data[i] & 0x3)) 735 + if ((pmlmeinfo->HT_caps.AMPDU_para & 0x3) > (pIE->data[i] & 0x3)) 736 736 max_AMPDU_len = pIE->data[i] & 0x3; 737 737 else 738 - max_AMPDU_len = pmlmeinfo->HT_caps.u.HT_cap_element.AMPDU_para & 0x3; 738 + max_AMPDU_len = pmlmeinfo->HT_caps.AMPDU_para & 0x3; 739 739 740 - if ((pmlmeinfo->HT_caps.u.HT_cap_element.AMPDU_para & 0x1c) > (pIE->data[i] & 0x1c)) 741 - min_MPDU_spacing = pmlmeinfo->HT_caps.u.HT_cap_element.AMPDU_para & 0x1c; 740 + if ((pmlmeinfo->HT_caps.AMPDU_para & 0x1c) > (pIE->data[i] & 0x1c)) 741 + min_MPDU_spacing = pmlmeinfo->HT_caps.AMPDU_para & 0x1c; 742 742 else 743 743 min_MPDU_spacing = pIE->data[i] & 0x1c; 744 744 745 - pmlmeinfo->HT_caps.u.HT_cap_element.AMPDU_para = max_AMPDU_len | min_MPDU_spacing; 745 + pmlmeinfo->HT_caps.AMPDU_para = 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.u.HT_cap_element.MCS_rate[i] &= MCS_rate_1R[i]; 754 + pmlmeinfo->HT_caps.MCS_rate[i] &= MCS_rate_1R[i]; 755 755 else 756 - pmlmeinfo->HT_caps.u.HT_cap_element.MCS_rate[i] &= MCS_rate_2R[i]; 756 + pmlmeinfo->HT_caps.MCS_rate[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.u.HT_cap_element.AMPDU_para & 0x03; 802 + max_AMPDU_len = pmlmeinfo->HT_caps.AMPDU_para & 0x03; 803 803 804 - min_MPDU_spacing = (pmlmeinfo->HT_caps.u.HT_cap_element.AMPDU_para & 0x1c) >> 2; 804 + min_MPDU_spacing = (pmlmeinfo->HT_caps.AMPDU_para & 0x1c) >> 2; 805 805 806 806 rtw_hal_set_hwreg(padapter, HW_VAR_AMPDU_MIN_SPACE, (u8 *)(&min_MPDU_spacing)); 807 807 ··· 1249 1249 { 1250 1250 unsigned int mask = 0; 1251 1251 1252 - mask = (pHT_caps->u.HT_cap_element.MCS_rate[0] << 12) | (pHT_caps->u.HT_cap_element.MCS_rate[1] << 20); 1252 + mask = (pHT_caps->MCS_rate[0] << 12) | (pHT_caps->MCS_rate[1] << 20); 1253 1253 1254 1254 return mask; 1255 1255 } ··· 1268 1268 1269 1269 bit_offset = (pmlmeext->cur_bwmode & HT_CHANNEL_WIDTH_40) ? 6 : 5; 1270 1270 1271 - if (__le16_to_cpu(pHT_caps->u.HT_cap_element.HT_caps_info) & (0x1 << bit_offset)) 1271 + if (__le16_to_cpu(pHT_caps->HT_caps_info) & (0x1 << bit_offset)) 1272 1272 return _SUCCESS; 1273 1273 else 1274 1274 return _FAIL;
+6 -10
drivers/staging/rtl8188eu/include/wifi.h
··· 523 523 } __packed; 524 524 525 525 struct HT_caps_element { 526 - union { 527 - struct { 528 - __le16 HT_caps_info; 529 - unsigned char AMPDU_para; 530 - unsigned char MCS_rate[16]; 531 - unsigned short HT_ext_caps; 532 - unsigned int Beamforming_caps; 533 - unsigned char ASEL_caps; 534 - } HT_cap_element; 535 - } u; 526 + __le16 HT_caps_info; 527 + unsigned char AMPDU_para; 528 + unsigned char MCS_rate[16]; 529 + unsigned short HT_ext_caps; 530 + unsigned int Beamforming_caps; 531 + unsigned char ASEL_caps; 536 532 } __packed; 537 533 538 534 struct HT_info_element {