aboutsummaryrefslogtreecommitdiff
path: root/drivers/net/wireless/intel/iwlwifi
diff options
context:
space:
mode:
authorGravatar Miri Korenblit <miriam.rachel.korenblit@intel.com> 2024-05-05 09:19:52 +0300
committerGravatar Johannes Berg <johannes.berg@intel.com> 2024-05-06 16:33:24 +0200
commitbc6a7fae761cc1a2c0c3699cfcabcfebca021481 (patch)
tree9e38fa42634b67c1529c625eae995218093d1f95 /drivers/net/wireless/intel/iwlwifi
parentwifi: iwlwifi: mvm: consider FWs recommendation for EMLSR (diff)
downloadlinux-bc6a7fae761cc1a2c0c3699cfcabcfebca021481.tar.gz
linux-bc6a7fae761cc1a2c0c3699cfcabcfebca021481.tar.bz2
linux-bc6a7fae761cc1a2c0c3699cfcabcfebca021481.zip
wifi: iwlwifi: mvm: trigger link selection upon TTLM start/end
When non default TTLM is applied, mac80211 may force us to use a specific link (For example, if the only active link becomes a dormant link, mac80211 will pick the first usable link and set it as active). When default TTLM is applied, we have new usable links that we might want to select. Therefore, trigger MLO scan and link selection upon change in TTLM. Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com> Reviewed-by: Ilan Peer <ilan.peer@intel.com> Link: https://msgid.link/20240505091420.ed2b386566a8.I0168e61da86b2027633743aaf5d97e483991f0dc@changeid Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'drivers/net/wireless/intel/iwlwifi')
-rw-r--r--drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c b/drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c
index 305f194ae7b2..31669996ecce 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c
@@ -879,6 +879,11 @@ static void iwl_mvm_mld_vif_cfg_changed_station(struct iwl_mvm *mvm,
if (ret)
IWL_ERR(mvm, "failed to update power mode\n");
}
+
+ if (changes & (BSS_CHANGED_MLD_VALID_LINKS | BSS_CHANGED_MLD_TTLM) &&
+ ieee80211_vif_is_mld(vif) && mvmvif->authorized)
+ wiphy_delayed_work_queue(mvm->hw->wiphy,
+ &mvmvif->mlo_int_scan_wk, 0);
}
static void