|
@@ -290,6 +290,9 @@ static void iwl_init_vht_hw_capab(const struct iwl_cfg *cfg,
|
|
IEEE80211_VHT_MCS_NOT_SUPPORTED << 12 |
|
|
IEEE80211_VHT_MCS_NOT_SUPPORTED << 12 |
|
|
IEEE80211_VHT_MCS_NOT_SUPPORTED << 14);
|
|
IEEE80211_VHT_MCS_NOT_SUPPORTED << 14);
|
|
|
|
|
|
|
|
+ /* Max rate for Long GI NSS=2 80Mhz is 780Mbps */
|
|
|
|
+ vht_cap->vht_mcs.rx_highest = cpu_to_le16(780);
|
|
|
|
+
|
|
if (num_ants == 1 ||
|
|
if (num_ants == 1 ||
|
|
cfg->rx_with_siso_diversity) {
|
|
cfg->rx_with_siso_diversity) {
|
|
vht_cap->cap |= IEEE80211_VHT_CAP_RX_ANTENNA_PATTERN |
|
|
vht_cap->cap |= IEEE80211_VHT_CAP_RX_ANTENNA_PATTERN |
|
|
@@ -297,9 +300,12 @@ static void iwl_init_vht_hw_capab(const struct iwl_cfg *cfg,
|
|
/* this works because NOT_SUPPORTED == 3 */
|
|
/* this works because NOT_SUPPORTED == 3 */
|
|
vht_cap->vht_mcs.rx_mcs_map |=
|
|
vht_cap->vht_mcs.rx_mcs_map |=
|
|
cpu_to_le16(IEEE80211_VHT_MCS_NOT_SUPPORTED << 2);
|
|
cpu_to_le16(IEEE80211_VHT_MCS_NOT_SUPPORTED << 2);
|
|
|
|
+ /* Max rate for Long GI NSS=1 80Mhz is 390Mbps */
|
|
|
|
+ vht_cap->vht_mcs.rx_highest = cpu_to_le16(390);
|
|
}
|
|
}
|
|
|
|
|
|
vht_cap->vht_mcs.tx_mcs_map = vht_cap->vht_mcs.rx_mcs_map;
|
|
vht_cap->vht_mcs.tx_mcs_map = vht_cap->vht_mcs.rx_mcs_map;
|
|
|
|
+ vht_cap->vht_mcs.tx_highest = vht_cap->vht_mcs.rx_highest;
|
|
}
|
|
}
|
|
|
|
|
|
static void iwl_init_sbands(struct device *dev, const struct iwl_cfg *cfg,
|
|
static void iwl_init_sbands(struct device *dev, const struct iwl_cfg *cfg,
|