|
@@ -263,7 +263,8 @@ static void iwl_init_vht_hw_capab(const struct iwl_cfg *cfg,
|
|
|
struct iwl_nvm_data *data,
|
|
|
struct ieee80211_sta_vht_cap *vht_cap)
|
|
|
{
|
|
|
- int bf_sts_cap = num_of_ant(data->valid_rx_ant) - 1;
|
|
|
+ int num_ants = num_of_ant(data->valid_rx_ant);
|
|
|
+ int bf_sts_cap = num_ants - 1;
|
|
|
|
|
|
vht_cap->vht_supported = true;
|
|
|
|
|
@@ -273,6 +274,9 @@ static void iwl_init_vht_hw_capab(const struct iwl_cfg *cfg,
|
|
|
bf_sts_cap << IEEE80211_VHT_CAP_BEAMFORMEE_STS_SHIFT |
|
|
|
7 << IEEE80211_VHT_CAP_MAX_A_MPDU_LENGTH_EXPONENT_SHIFT;
|
|
|
|
|
|
+ if (num_ants > 1)
|
|
|
+ vht_cap->cap |= IEEE80211_VHT_CAP_TXSTBC;
|
|
|
+
|
|
|
if (iwlwifi_mod_params.amsdu_size_8K)
|
|
|
vht_cap->cap |= IEEE80211_VHT_CAP_MAX_MPDU_LENGTH_7991;
|
|
|
|
|
@@ -286,7 +290,7 @@ static void iwl_init_vht_hw_capab(const struct iwl_cfg *cfg,
|
|
|
IEEE80211_VHT_MCS_NOT_SUPPORTED << 12 |
|
|
|
IEEE80211_VHT_MCS_NOT_SUPPORTED << 14);
|
|
|
|
|
|
- if (num_of_ant(data->valid_rx_ant) == 1 ||
|
|
|
+ if (num_ants == 1 ||
|
|
|
cfg->rx_with_siso_diversity) {
|
|
|
vht_cap->cap |= IEEE80211_VHT_CAP_RX_ANTENNA_PATTERN |
|
|
|
IEEE80211_VHT_CAP_TX_ANTENNA_PATTERN;
|