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

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@changeidSigned-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent 56f4f12b
...@@ -1317,7 +1317,7 @@ static int iwl_mvm_set_tx_power(struct iwl_mvm *mvm, struct ieee80211_vif *vif, ...@@ -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); 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 ieee80211_vif *vif)
{ {
struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(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, ...@@ -1339,7 +1339,9 @@ 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);
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); iwl_mvm_mac_ctxt_changed(mvm, vif, false, NULL);
if (!fw_has_capa(&mvm->fw->ucode_capa, if (!fw_has_capa(&mvm->fw->ucode_capa,
......
...@@ -640,6 +640,7 @@ const struct ieee80211_ops iwl_mvm_mld_hw_ops = { ...@@ -640,6 +640,7 @@ const struct ieee80211_ops iwl_mvm_mld_hw_ops = {
.switch_vif_chanctx = iwl_mvm_mld_switch_vif_chanctx, .switch_vif_chanctx = iwl_mvm_mld_switch_vif_chanctx,
.join_ibss = iwl_mvm_mld_start_ap_ibss, .join_ibss = iwl_mvm_mld_start_ap_ibss,
.leave_ibss = iwl_mvm_mld_stop_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, .sta_state = iwl_mvm_mld_mac_sta_state,
.conf_tx = iwl_mvm_mld_mac_conf_tx, .conf_tx = iwl_mvm_mld_mac_conf_tx,
.bss_info_changed = iwl_mvm_mld_bss_info_changed, .bss_info_changed = iwl_mvm_mld_bss_info_changed,
......
...@@ -2298,6 +2298,8 @@ static inline u8 iwl_mvm_phy_band_from_nl80211(enum nl80211_band band) ...@@ -2298,6 +2298,8 @@ static inline u8 iwl_mvm_phy_band_from_nl80211(enum nl80211_band band)
/* Channel Switch */ /* Channel Switch */
void iwl_mvm_channel_switch_disconnect_wk(struct work_struct *wk); 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 */ /* Channel Context */
/** /**
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment