iwlwifi: mvm: restrict FW SMPS request
The firmware SMPS request should only be honoured if the connection is currently with HE and on 160 MHz, so check that and then potentially reapply any request if the BW changes. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Link: https://lore.kernel.org/r/iwlwifi.20210802172232.0cdcac5660da.I9ee7956fd4f48399855d1f97728bc58b36caf112@changeid Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
This commit is contained in:
parent
a6dfbd040e
commit
de34d1c1d3
@ -2440,6 +2440,9 @@ static void iwl_mvm_bss_info_changed_station(struct iwl_mvm *mvm,
|
||||
IWL_DEBUG_MAC80211(mvm, "arp filter changed\n");
|
||||
iwl_mvm_configure_bcast_filter(mvm);
|
||||
}
|
||||
|
||||
if (changes & BSS_CHANGED_BANDWIDTH)
|
||||
iwl_mvm_apply_fw_smps_request(vif);
|
||||
}
|
||||
|
||||
static int iwl_mvm_start_ap_ibss(struct ieee80211_hw *hw,
|
||||
|
@ -214,11 +214,14 @@ void iwl_mvm_apply_fw_smps_request(struct ieee80211_vif *vif)
|
||||
{
|
||||
struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
|
||||
struct iwl_mvm *mvm = mvmvif->mvm;
|
||||
enum ieee80211_smps_mode mode = IEEE80211_SMPS_AUTOMATIC;
|
||||
|
||||
iwl_mvm_update_smps(mvm, vif, IWL_MVM_SMPS_REQ_FW,
|
||||
mvm->fw_static_smps_request ?
|
||||
IEEE80211_SMPS_STATIC :
|
||||
IEEE80211_SMPS_AUTOMATIC);
|
||||
if (mvm->fw_static_smps_request &&
|
||||
vif->bss_conf.chandef.width == NL80211_CHAN_WIDTH_160 &&
|
||||
vif->bss_conf.he_support)
|
||||
mode = IEEE80211_SMPS_STATIC;
|
||||
|
||||
iwl_mvm_update_smps(mvm, vif, IWL_MVM_SMPS_REQ_FW, mode);
|
||||
}
|
||||
|
||||
static void iwl_mvm_intf_dual_chain_req(void *data, u8 *mac,
|
||||
|
Loading…
Reference in New Issue
Block a user