Merge remote-tracking branch 'staging/staging-next'
[deliverable/linux.git] / drivers / staging / rtl8188eu / core / rtw_wlan_util.c
index 4410fe8d7c68b07a6ec5a4d6728c7032496cf044..2a65ac70212955fac783f0e217e122357c679f7b 100644 (file)
@@ -341,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); */
@@ -716,6 +713,7 @@ void HT_caps_handler(struct adapter *padapter, struct ndis_802_11_var_ie *pIE)
        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;
@@ -728,20 +726,20 @@ 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;
                }
        }
 
@@ -750,9 +748,9 @@ void HT_caps_handler(struct adapter *padapter, struct ndis_802_11_var_ie *pIE)
        /* 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];
+                       ((u8 *)&pmlmeinfo->HT_caps.mcs)[i] &= MCS_rate_1R[i];
                else
-                       pmlmeinfo->HT_caps.u.HT_cap_element.MCS_rate[i] &= MCS_rate_2R[i];
+                       ((u8 *)&pmlmeinfo->HT_caps.mcs)[i] &= MCS_rate_2R[i];
        }
 }
 
@@ -798,9 +796,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));
 
@@ -872,7 +870,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;
@@ -881,7 +878,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__);
@@ -907,14 +904,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;
        }
@@ -1243,16 +1242,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;
@@ -1266,7 +1266,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;
@@ -1508,7 +1508,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);
@@ -1584,7 +1584,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));
This page took 0.04436 seconds and 5 git commands to generate.