wifi: iwlwifi: mvm: initialize rates in FW earlier

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: 499d027904 ("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>
This commit is contained in:
Johannes Berg 2024-01-28 08:53:58 +02:00
parent e50a88e5cb
commit d3b2c6c65b

View File

@ -3686,6 +3686,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;
}