@ -96,21 +96,21 @@ mwifiex_convert_mcsmap_to_maxrate(struct mwifiex_private *priv,
static void
mwifiex_fill_vht_cap_info ( struct mwifiex_private * priv ,
struct mwifiex_ie_types_vht cap * 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_vht cap * 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 ;
@ -121,7 +121,7 @@ mwifiex_fill_vht_cap_tlv(struct mwifiex_private *priv,
/* 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 + + ) {
@ -137,14 +137,14 @@ mwifiex_fill_vht_cap_tlv(struct mwifiex_private *priv,
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 + + ) {
@ -159,10 +159,10 @@ mwifiex_fill_vht_cap_tlv(struct mwifiex_private *priv,
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 ;
}
@ -197,7 +197,8 @@ int mwifiex_cmd_append_11ac_tlv(struct mwifiex_private *priv,
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 ) ;
}