iwlwifi: mvm: don't look at power commmand to decide if power is enabled
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Sun, 26 Jan 2014 14:54:05 +0000 (16:54 +0200)
committerEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Mon, 3 Feb 2014 20:43:54 +0000 (22:43 +0200)
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
drivers/net/wireless/iwlwifi/mvm/power.c

index f9ddd79..20bc376 100644 (file)
@@ -423,6 +423,7 @@ static int iwl_mvm_power_mac_update_mode(struct iwl_mvm *mvm,
        int ret;
        bool ba_enable;
        struct iwl_mac_power_cmd cmd = {};
+       struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
 
        if (vif->type != NL80211_IFTYPE_STATION)
                return 0;
@@ -439,8 +440,9 @@ static int iwl_mvm_power_mac_update_mode(struct iwl_mvm *mvm,
        if (ret)
                return ret;
 
-       ba_enable = !!(cmd.flags &
-                      cpu_to_le16(POWER_FLAGS_POWER_MANAGEMENT_ENA_MSK));
+       ba_enable = !(iwlmvm_mod_params.power_scheme == IWL_POWER_SCHEME_CAM ||
+                     mvm->ps_prevented || mvm->bound_vif_cnt > 1 ||
+                     !vif->bss_conf.ps || iwl_mvm_vif_low_latency(mvmvif));
 
        return iwl_mvm_update_beacon_abort(mvm, vif, ba_enable);
 }