Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bd5e4744 authored by David Spinadel's avatar David Spinadel Committed by Emmanuel Grumbach
Browse files

iwlwifi: mvm: do no sched scan while associated



Currently the FW doesn't support sched scan while associated,
Prevent it.

Signed-off-by: default avatarDavid Spinadel <david.spinadel@intel.com>
Reviewed-by: default avatarJohannes Berg <johannes.berg@intel.com>
Reviewed-by: default avatarLuciano Coelho <luciano.coelho@intel.com>
Signed-off-by: default avatarEmmanuel Grumbach <emmanuel.grumbach@intel.com>
parent 8e96440e
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -1807,6 +1807,11 @@ static int iwl_mvm_mac_sched_scan_start(struct ieee80211_hw *hw,

	mutex_lock(&mvm->mutex);

	if (iwl_mvm_is_associated(mvm)) {
		ret = -EBUSY;
		goto out;
	}

	switch (mvm->scan_status) {
	case IWL_MVM_SCAN_OS:
		IWL_DEBUG_SCAN(mvm, "Stopping previous scan for sched_scan\n");
+3 −0
Original line number Diff line number Diff line
@@ -1003,6 +1003,9 @@ static inline bool iwl_mvm_vif_low_latency(struct iwl_mvm_vif *mvmvif)
	return mvmvif->low_latency;
}

/* Assoc status */
bool iwl_mvm_is_associated(struct iwl_mvm *mvm);

/* Thermal management and CT-kill */
void iwl_mvm_tt_tx_backoff(struct iwl_mvm *mvm, u32 backoff);
void iwl_mvm_tt_handler(struct iwl_mvm *mvm);
+19 −0
Original line number Diff line number Diff line
@@ -644,3 +644,22 @@ bool iwl_mvm_low_latency(struct iwl_mvm *mvm)

	return result;
}

static void iwl_mvm_assoc_iter(void *_data, u8 *mac, struct ieee80211_vif *vif)
{
	bool *assoc = _data;

	if (vif->bss_conf.assoc)
		*assoc = true;
}

bool iwl_mvm_is_associated(struct iwl_mvm *mvm)
{
	bool assoc = false;

	ieee80211_iterate_active_interfaces_atomic(
			mvm->hw, IEEE80211_IFACE_ITER_NORMAL,
			iwl_mvm_assoc_iter, &assoc);

	return assoc;
}