diff options
Diffstat (limited to 'drivers/net/wireless/iwlwifi/mvm/power.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/power.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/net/wireless/iwlwifi/mvm/power.c b/drivers/net/wireless/iwlwifi/mvm/power.c index 2620dd0c45f9..9c6fce10fe0b 100644 --- a/drivers/net/wireless/iwlwifi/mvm/power.c +++ b/drivers/net/wireless/iwlwifi/mvm/power.c | |||
@@ -357,7 +357,7 @@ static void iwl_mvm_power_build_cmd(struct iwl_mvm *mvm, | |||
357 | cmd->flags |= cpu_to_le16(POWER_FLAGS_POWER_SAVE_ENA_MSK); | 357 | cmd->flags |= cpu_to_le16(POWER_FLAGS_POWER_SAVE_ENA_MSK); |
358 | 358 | ||
359 | if (!vif->bss_conf.ps || iwl_mvm_vif_low_latency(mvmvif) || | 359 | if (!vif->bss_conf.ps || iwl_mvm_vif_low_latency(mvmvif) || |
360 | !mvmvif->pm_enabled || iwl_mvm_tdls_sta_count(mvm, vif)) | 360 | !mvmvif->pm_enabled) |
361 | return; | 361 | return; |
362 | 362 | ||
363 | cmd->flags |= cpu_to_le16(POWER_FLAGS_POWER_MANAGEMENT_ENA_MSK); | 363 | cmd->flags |= cpu_to_le16(POWER_FLAGS_POWER_MANAGEMENT_ENA_MSK); |
@@ -638,6 +638,10 @@ static void iwl_mvm_power_set_pm(struct iwl_mvm *mvm, | |||
638 | if (vifs->ap_vif) | 638 | if (vifs->ap_vif) |
639 | ap_mvmvif = iwl_mvm_vif_from_mac80211(vifs->ap_vif); | 639 | ap_mvmvif = iwl_mvm_vif_from_mac80211(vifs->ap_vif); |
640 | 640 | ||
641 | /* don't allow PM if any TDLS stations exist */ | ||
642 | if (iwl_mvm_tdls_sta_count(mvm, NULL)) | ||
643 | return; | ||
644 | |||
641 | /* enable PM on bss if bss stand alone */ | 645 | /* enable PM on bss if bss stand alone */ |
642 | if (vifs->bss_active && !vifs->p2p_active && !vifs->ap_active) { | 646 | if (vifs->bss_active && !vifs->p2p_active && !vifs->ap_active) { |
643 | bss_mvmvif->pm_enabled = true; | 647 | bss_mvmvif->pm_enabled = true; |