Commit 14a4aca5 authored by Somashekhar Puttagangaiah's avatar Somashekhar Puttagangaiah Committed by Miri Korenblit
Browse files

wifi: iwlwifi: mld: trigger mlo scan only when not in EMLSR



When beacon loss happens or the RSSI drops, trigger MLO scan only
if not in EMLSR. The link switch was meant to be done when we are
not in EMLSR and we can try to switch to a better link.
If in EMLSR, we exit first and then trigger MLO scan.

Signed-off-by: default avatarSomashekhar Puttagangaiah <somashekhar.puttagangaiah@intel.com>
Signed-off-by: default avatarMiri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20250826184046.f6ae8e3882cf.I60901c16487371b8e62019bd0bf25c45ab23752f@changeid
parent da707495
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -572,7 +572,10 @@ void iwl_mld_handle_missed_beacon_notif(struct iwl_mld *mld,
	if (missed_bcon_since_rx > IWL_MLD_MISSED_BEACONS_THRESHOLD) {
		ieee80211_cqm_beacon_loss_notify(vif, GFP_ATOMIC);

		/* try to switch links, no-op if we don't have MLO */
		/* Not in EMLSR and we can't hear the link.
		 * Try to switch to a better link. EMLSR case is handled below.
		 */
		if (!iwl_mld_emlsr_active(vif))
			iwl_mld_int_mlo_scan(mld, vif);
	}

+7 −4
Original line number Diff line number Diff line
@@ -379,11 +379,14 @@ static void iwl_mld_update_link_sig(struct ieee80211_vif *vif, int sig,

	/* TODO: task=statistics handle CQM notifications */

	if (!iwl_mld_emlsr_active(vif)) {
		/* We're not in EMLSR and our signal is bad,
		 * try to switch link maybe. EMLSR will be handled below.
		 */
		if (sig < IWL_MLD_LOW_RSSI_MLO_SCAN_THRESH)
			iwl_mld_int_mlo_scan(mld, vif);

	if (!iwl_mld_emlsr_active(vif))
		return;
	}

	/* We are in EMLSR, check if we need to exit */
	exit_emlsr_thresh =