wifi: iwlwifi: mvm: really send iwl_txpower_constraints_cmd
authorMiri Korenblit <miriam.rachel.korenblit@intel.com>
Thu, 10 Oct 2024 11:05:01 +0000 (14:05 +0300)
committerJohannes Berg <johannes.berg@intel.com>
Fri, 25 Oct 2024 15:53:26 +0000 (17:53 +0200)
iwl_mvm_send_ap_tx_power_constraint_cmd is a no-op if the link is not
active (we need to know the band etc.)
However, for the station case it will be called just before we set the
link to active (by calling iwl_mvm_link_changed with
the LINK_CONTEXT_MODIFY_ACTIVE bit set in the 'changed' flags and
active = true), so it will end up doing nothing.

Fix this by calling iwl_mvm_send_ap_tx_power_constraint_cmd before
iwl_mvm_link_changed.

Fixes: 6b82f4e119d1 ("wifi: iwlwifi: mvm: handle TPE advertised by AP")
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20241010140328.5c235fccd3f1.I2d40dea21e5547eba458565edcb4c354d094d82a@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c

index f2378e0fb2fb38edf6259d583442ff80af881c2c..bd043db906db6296be6626806991ff22cf3a588b 100644 (file)
@@ -350,11 +350,6 @@ __iwl_mvm_mld_assign_vif_chanctx(struct iwl_mvm *mvm,
                rcu_read_unlock();
        }
 
-       if (vif->type == NL80211_IFTYPE_STATION)
-               iwl_mvm_send_ap_tx_power_constraint_cmd(mvm, vif,
-                                                       link_conf,
-                                                       false);
-
        /* then activate */
        ret = iwl_mvm_link_changed(mvm, vif, link_conf,
                                   LINK_CONTEXT_MODIFY_ACTIVE |
@@ -363,6 +358,11 @@ __iwl_mvm_mld_assign_vif_chanctx(struct iwl_mvm *mvm,
        if (ret)
                goto out;
 
+       if (vif->type == NL80211_IFTYPE_STATION)
+               iwl_mvm_send_ap_tx_power_constraint_cmd(mvm, vif,
+                                                       link_conf,
+                                                       false);
+
        /*
         * Power state must be updated before quotas,
         * otherwise fw will complain.