static void
 mwifiex_fill_vht_cap_info(struct mwifiex_private *priv,
-                         struct mwifiex_ie_types_vhtcap *vht_cap, u8 bands)
+                         struct ieee80211_vht_cap *vht_cap, u8 bands)
 {
        struct mwifiex_adapter *adapter = priv->adapter;
 
        if (bands & BAND_A)
-               vht_cap->vht_cap.vht_cap_info =
+               vht_cap->vht_cap_info =
                                cpu_to_le32(adapter->usr_dot_11ac_dev_cap_a);
        else
-               vht_cap->vht_cap.vht_cap_info =
+               vht_cap->vht_cap_info =
                                cpu_to_le32(adapter->usr_dot_11ac_dev_cap_bg);
 }
 
 static void
 mwifiex_fill_vht_cap_tlv(struct mwifiex_private *priv,
-                        struct mwifiex_ie_types_vhtcap *vht_cap, u8 bands)
+                        struct ieee80211_vht_cap *vht_cap, u8 bands)
 {
        struct mwifiex_adapter *adapter = priv->adapter;
        u16 mcs_map_user, mcs_map_resp, mcs_map_result;
 
        /* rx MCS Set: find the minimum of the user rx mcs and ap rx mcs */
        mcs_map_user = GET_DEVRXMCSMAP(adapter->usr_dot_11ac_mcs_support);
-       mcs_map_resp = le16_to_cpu(vht_cap->vht_cap.supp_mcs.rx_mcs_map);
+       mcs_map_resp = le16_to_cpu(vht_cap->supp_mcs.rx_mcs_map);
        mcs_map_result = 0;
 
        for (nss = 1; nss <= 8; nss++) {
                                      min(mcs_user, mcs_resp));
        }
 
-       vht_cap->vht_cap.supp_mcs.rx_mcs_map = cpu_to_le16(mcs_map_result);
+       vht_cap->supp_mcs.rx_mcs_map = cpu_to_le16(mcs_map_result);
 
        tmp = mwifiex_convert_mcsmap_to_maxrate(priv, bands, mcs_map_result);
-       vht_cap->vht_cap.supp_mcs.rx_highest = cpu_to_le16(tmp);
+       vht_cap->supp_mcs.rx_highest = cpu_to_le16(tmp);
 
        /* tx MCS Set: find the minimum of the user tx mcs and ap tx mcs */
        mcs_map_user = GET_DEVTXMCSMAP(adapter->usr_dot_11ac_mcs_support);
-       mcs_map_resp = le16_to_cpu(vht_cap->vht_cap.supp_mcs.tx_mcs_map);
+       mcs_map_resp = le16_to_cpu(vht_cap->supp_mcs.tx_mcs_map);
        mcs_map_result = 0;
 
        for (nss = 1; nss <= 8; nss++) {
                                      min(mcs_user, mcs_resp));
        }
 
-       vht_cap->vht_cap.supp_mcs.tx_mcs_map = cpu_to_le16(mcs_map_result);
+       vht_cap->supp_mcs.tx_mcs_map = cpu_to_le16(mcs_map_result);
 
        tmp = mwifiex_convert_mcsmap_to_maxrate(priv, bands, mcs_map_result);
-       vht_cap->vht_cap.supp_mcs.tx_highest = cpu_to_le16(tmp);
+       vht_cap->supp_mcs.tx_highest = cpu_to_le16(tmp);
 
        return;
 }
                       sizeof(struct ieee_types_header),
                       le16_to_cpu(vht_cap->header.len));
 
-               mwifiex_fill_vht_cap_tlv(priv, vht_cap, bss_desc->bss_band);
+               mwifiex_fill_vht_cap_tlv(priv, &vht_cap->vht_cap,
+                                        bss_desc->bss_band);
                *buffer += sizeof(*vht_cap);
                ret_len += sizeof(*vht_cap);
        }