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

Commit c6e0a3e0 authored by Luciano Coelho's avatar Luciano Coelho Committed by Emmanuel Grumbach
Browse files

iwlwifi: mvm: disable beacon filtering during CSA



After a channel switch, transmission on the new channel is only
started once we see a beacon on it.  Thus, beacon filtering needs to
be disabled during channel switch so that mac80211 receives this
beacon and finishes the process.

Signed-off-by: default avatarLuciano Coelho <luciano.coelho@intel.com>
parent 622e3f9b
Loading
Loading
Loading
Loading
+10 −0
Original line number Original line Diff line number Diff line
@@ -3206,6 +3206,12 @@ static int iwl_mvm_pre_channel_switch(struct ieee80211_hw *hw,


		iwl_mvm_schedule_csa_period(mvm, vif, vif->bss_conf.beacon_int,
		iwl_mvm_schedule_csa_period(mvm, vif, vif->bss_conf.beacon_int,
					    apply_time);
					    apply_time);
		if (mvmvif->bf_data.bf_enabled) {
			ret = iwl_mvm_disable_beacon_filter(mvm, vif, 0);
			if (ret)
				goto out_unlock;
		}

		break;
		break;
	default:
	default:
		break;
		break;
@@ -3246,6 +3252,10 @@ static int iwl_mvm_post_channel_switch(struct ieee80211_hw *hw,
		iwl_mvm_sta_modify_disable_tx(mvm, mvmsta, false);
		iwl_mvm_sta_modify_disable_tx(mvm, mvmsta, false);


		iwl_mvm_mac_ctxt_changed(mvm, vif, false, NULL);
		iwl_mvm_mac_ctxt_changed(mvm, vif, false, NULL);

		ret = iwl_mvm_enable_beacon_filter(mvm, vif, 0);
		if (ret)
			goto out_unlock;
	}
	}


	mvmvif->ps_disabled = false;
	mvmvif->ps_disabled = false;