]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
wifi: iwlwifi: mvm: initialize rates in FW earlier
authorJohannes Berg <johannes.berg@intel.com>
Sun, 28 Jan 2024 06:53:58 +0000 (08:53 +0200)
committerSasha Levin <sashal@kernel.org>
Tue, 26 Mar 2024 22:16:37 +0000 (18:16 -0400)
[ Upstream commit d3b2c6c65bfd3b9616084e91bd0d402964ea7cef ]

When connecting to an AP, we currently initialize the rate
control only after associating. Since we now use firmware
to assign rates to auth/assoc frames rather than using the
data in the station and the firmware doesn't know, they're
transmitted using low mandatory rates. However, if the AP
advertised only higher supported rates we want to use them
to be nicer (it still must receive mandatory rates though),
so send the information to the firmware earlier to have it
know about it and be able to use it.

Fixes: 499d02790495 ("wifi: iwlwifi: Use FW rate for non-data frames")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240128084842.ed7ab1c859c2.I4b4d4fc3905c8d8470fc0fee4648f25c950c9bb7@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c

index 53e26c3c3a9af616ac057428503edf6270d53b3d..346512696bd1c193cdab50946961e38d3eac740d 100644 (file)
@@ -3698,6 +3698,19 @@ iwl_mvm_sta_state_notexist_to_none(struct iwl_mvm *mvm,
        if (vif->type == NL80211_IFTYPE_STATION && !sta->tdls)
                mvmvif->ap_sta = sta;
 
+       /*
+        * Initialize the rates here already - this really tells
+        * the firmware only what the supported legacy rates are
+        * (may be) since it's initialized already from what the
+        * AP advertised in the beacon/probe response. This will
+        * allow the firmware to send auth/assoc frames with one
+        * of the supported rates already, rather than having to
+        * use a mandatory rate.
+        * If we're the AP, we'll just assume mandatory rates at
+        * this point, but we know nothing about the STA anyway.
+        */
+       iwl_mvm_rs_rate_init_all_links(mvm, vif, sta);
+
        return 0;
 }