iwlwifi: mvm: in VHT connection use only VHT capabilities
authorMordechay Goodstein <mordechay.goodstein@intel.com>
Fri, 15 Nov 2019 07:27:34 +0000 (09:27 +0200)
committerKalle Valo <kvalo@codeaurora.org>
Fri, 15 Nov 2019 07:31:56 +0000 (09:31 +0200)
mac80211 limits amsdu size to the minimum of HT and VHT capabilities
but since in a VHT connection we don't transmit HT frames we can discard
HT limits.

Signed-off-by: Mordechay Goodstein <mordechay.goodstein@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c
drivers/net/wireless/intel/iwlwifi/mvm/rs.c
drivers/net/wireless/intel/iwlwifi/mvm/rs.h

index 098d481..10a08fa 100644 (file)
@@ -384,7 +384,7 @@ out:
        rcu_read_unlock();
 }
 
-static u16 rs_fw_get_max_amsdu_len(struct ieee80211_sta *sta)
+u16 rs_fw_get_max_amsdu_len(struct ieee80211_sta *sta)
 {
        const struct ieee80211_sta_vht_cap *vht_cap = &sta->vht_cap;
        const struct ieee80211_sta_ht_cap *ht_cap = &sta->ht_cap;
index 42d525e..0a442cb 100644 (file)
@@ -1533,6 +1533,8 @@ static void rs_set_amsdu_len(struct iwl_mvm *mvm, struct ieee80211_sta *sta,
        struct iwl_mvm_sta *mvmsta = iwl_mvm_sta_from_mac80211(sta);
        int i;
 
+       sta->max_amsdu_len = rs_fw_get_max_amsdu_len(sta);
+
        /*
         * In case TLC offload is not active amsdu_enabled is either 0xFFFF
         * or 0, since there is no per-TID alg.
index 7cd62c5..32104c9 100644 (file)
@@ -452,4 +452,6 @@ int rs_fw_tx_protection(struct iwl_mvm *mvm, struct iwl_mvm_sta *mvmsta,
                        bool enable);
 void iwl_mvm_tlc_update_notif(struct iwl_mvm *mvm,
                              struct iwl_rx_cmd_buffer *rxb);
+
+u16 rs_fw_get_max_amsdu_len(struct ieee80211_sta *sta);
 #endif /* __rs__ */