Commit 03117f30 authored by Miri Korenblit's avatar Miri Korenblit Committed by Johannes Berg
Browse files

wifi: iwlwifi: mvm: add support for post_channel_switch in MLD mode



Adjust the existing iwl_mvm_post_channel_switch()
to the new MLD API and use it in the new MLD ieee80211_ops

Signed-off-by: default avatarMiri Korenblit <miriam.rachel.korenblit@intel.com>
Signed-off-by: default avatarGregory Greenman <gregory.greenman@intel.com>
Link: https://lore.kernel.org/r/20230328104948.fa3992f7dfd2.Ie298a9b1522e956d7b699f0432795548bc6e47f9@changeid


Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent 56f4f12b
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -1317,7 +1317,7 @@ static int iwl_mvm_set_tx_power(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
	return iwl_mvm_send_cmd_pdu(mvm, cmd_id, 0, len, &cmd);
}

static int iwl_mvm_post_channel_switch(struct ieee80211_hw *hw,
int iwl_mvm_post_channel_switch(struct ieee80211_hw *hw,
				struct ieee80211_vif *vif)
{
	struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
@@ -1339,7 +1339,9 @@ static int iwl_mvm_post_channel_switch(struct ieee80211_hw *hw,
		}

		iwl_mvm_sta_modify_disable_tx(mvm, mvmsta, false);

		if (mvm->mld_api_is_used)
			iwl_mvm_mld_mac_ctxt_changed(mvm, vif, false);
		else
			iwl_mvm_mac_ctxt_changed(mvm, vif, false, NULL);

		if (!fw_has_capa(&mvm->fw->ucode_capa,
+1 −0
Original line number Diff line number Diff line
@@ -640,6 +640,7 @@ const struct ieee80211_ops iwl_mvm_mld_hw_ops = {
	.switch_vif_chanctx = iwl_mvm_mld_switch_vif_chanctx,
	.join_ibss = iwl_mvm_mld_start_ap_ibss,
	.leave_ibss = iwl_mvm_mld_stop_ap_ibss,
	.post_channel_switch = iwl_mvm_post_channel_switch,
	.sta_state = iwl_mvm_mld_mac_sta_state,
	.conf_tx = iwl_mvm_mld_mac_conf_tx,
	.bss_info_changed = iwl_mvm_mld_bss_info_changed,
+2 −0
Original line number Diff line number Diff line
@@ -2298,6 +2298,8 @@ static inline u8 iwl_mvm_phy_band_from_nl80211(enum nl80211_band band)

/* Channel Switch */
void iwl_mvm_channel_switch_disconnect_wk(struct work_struct *wk);
int iwl_mvm_post_channel_switch(struct ieee80211_hw *hw,
				struct ieee80211_vif *vif);

/* Channel Context */
/**