diff options
author | Ilan Peer <ilan.peer@intel.com> | 2013-07-23 07:41:53 -0400 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2013-07-26 04:05:49 -0400 |
commit | ea183d02e1ddfda1996d7df1e55f3a639830e335 (patch) | |
tree | dc88d772a0f895bbda6c3a3f57fd39f1bde65607 | |
parent | 2997494fa66a1c94717d69c3cfae0a94462093c6 (diff) |
iwlwifi: mvm: Disable managed PS when GO is added
The managed interface PS was not disabled when a GO interface
was added. As a consequence, when the station VMAC was in PS,
the GO also was not on the medium. Fix this.
Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/mac80211.c | 42 |
1 files changed, 21 insertions, 21 deletions
diff --git a/drivers/net/wireless/iwlwifi/mvm/mac80211.c b/drivers/net/wireless/iwlwifi/mvm/mac80211.c index 1eedc424051c..f19baf0dea6b 100644 --- a/drivers/net/wireless/iwlwifi/mvm/mac80211.c +++ b/drivers/net/wireless/iwlwifi/mvm/mac80211.c | |||
@@ -512,6 +512,27 @@ static int iwl_mvm_mac_add_interface(struct ieee80211_hw *hw, | |||
512 | goto out_unlock; | 512 | goto out_unlock; |
513 | 513 | ||
514 | /* | 514 | /* |
515 | * TODO: remove this temporary code. | ||
516 | * Currently MVM FW supports power management only on single MAC. | ||
517 | * If new interface added, disable PM on existing interface. | ||
518 | * P2P device is a special case, since it is handled by FW similary to | ||
519 | * scan. If P2P deviced is added, PM remains enabled on existing | ||
520 | * interface. | ||
521 | * Note: the method below does not count the new interface being added | ||
522 | * at this moment. | ||
523 | */ | ||
524 | if (vif->type != NL80211_IFTYPE_P2P_DEVICE) | ||
525 | mvm->vif_count++; | ||
526 | if (mvm->vif_count > 1) { | ||
527 | IWL_DEBUG_MAC80211(mvm, | ||
528 | "Disable power on existing interfaces\n"); | ||
529 | ieee80211_iterate_active_interfaces_atomic( | ||
530 | mvm->hw, | ||
531 | IEEE80211_IFACE_ITER_NORMAL, | ||
532 | iwl_mvm_pm_disable_iterator, mvm); | ||
533 | } | ||
534 | |||
535 | /* | ||
515 | * The AP binding flow can be done only after the beacon | 536 | * The AP binding flow can be done only after the beacon |
516 | * template is configured (which happens only in the mac80211 | 537 | * template is configured (which happens only in the mac80211 |
517 | * start_ap() flow), and adding the broadcast station can happen | 538 | * start_ap() flow), and adding the broadcast station can happen |
@@ -534,27 +555,6 @@ static int iwl_mvm_mac_add_interface(struct ieee80211_hw *hw, | |||
534 | goto out_unlock; | 555 | goto out_unlock; |
535 | } | 556 | } |
536 | 557 | ||
537 | /* | ||
538 | * TODO: remove this temporary code. | ||
539 | * Currently MVM FW supports power management only on single MAC. | ||
540 | * If new interface added, disable PM on existing interface. | ||
541 | * P2P device is a special case, since it is handled by FW similary to | ||
542 | * scan. If P2P deviced is added, PM remains enabled on existing | ||
543 | * interface. | ||
544 | * Note: the method below does not count the new interface being added | ||
545 | * at this moment. | ||
546 | */ | ||
547 | if (vif->type != NL80211_IFTYPE_P2P_DEVICE) | ||
548 | mvm->vif_count++; | ||
549 | if (mvm->vif_count > 1) { | ||
550 | IWL_DEBUG_MAC80211(mvm, | ||
551 | "Disable power on existing interfaces\n"); | ||
552 | ieee80211_iterate_active_interfaces_atomic( | ||
553 | mvm->hw, | ||
554 | IEEE80211_IFACE_ITER_NORMAL, | ||
555 | iwl_mvm_pm_disable_iterator, mvm); | ||
556 | } | ||
557 | |||
558 | ret = iwl_mvm_mac_ctxt_add(mvm, vif); | 558 | ret = iwl_mvm_mac_ctxt_add(mvm, vif); |
559 | if (ret) | 559 | if (ret) |
560 | goto out_release; | 560 | goto out_release; |