iwlwifi: mvm: Add power management support for P2P DCM
authorAvri Altman <avri.altman@intel.com>
Wed, 2 Apr 2014 04:54:07 +0000 (07:54 +0300)
committerEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Sun, 11 May 2014 10:11:47 +0000 (13:11 +0300)
If two clients are active while each one is alone on its channel,
and the applicable flags are set, power management should be enabled.
This condition is referred to as Different Channel Mode (DCM).
Up to now, in DCM power management was supported only on BSS.
This patch adds support for P2P power management in DCM as well.

Signed-off-by: Avri Altman <avri.altman@intel.com>
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 78309f7d0b7b8caea2c9443c81ae42e1f299e7ec..258405f47719100bf792bc11e5d74d8eadd387cb 100644 (file)
@@ -613,11 +613,15 @@ iwl_mvm_power_set_pm(struct iwl_mvm *mvm,
                ap_same_channel = (bss_mvmvif->phy_ctxt->id ==
                                   ap_mvmvif->phy_ctxt->id);
 
-       /* bss is not stand alone: enable PM if alone on its channel */
-       if (vifs->bss_active && !(client_same_channel || ap_same_channel) &&
+       /* clients are not stand alone: enable PM if DCM */
+       if (!(client_same_channel || ap_same_channel) &&
            (mvm->fw->ucode_capa.flags & IWL_UCODE_TLV_FLAGS_BSS_P2P_PS_DCM)) {
+               if (vifs->bss_active)
                        bss_mvmvif->pm_enabled = true;
-                       return;
+               if (vifs->p2p_active &&
+                   (mvm->fw->ucode_capa.flags & IWL_UCODE_TLV_FLAGS_P2P_PM))
+                       p2p_mvmvif->pm_enabled = true;
+               return;
        }
 
        /*