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>
This commit is contained in:
@@ -511,6 +511,27 @@ static int iwl_mvm_mac_add_interface(struct ieee80211_hw *hw,
|
|||||||
if (ret)
|
if (ret)
|
||||||
goto out_unlock;
|
goto out_unlock;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* TODO: remove this temporary code.
|
||||||
|
* Currently MVM FW supports power management only on single MAC.
|
||||||
|
* If new interface added, disable PM on existing interface.
|
||||||
|
* P2P device is a special case, since it is handled by FW similary to
|
||||||
|
* scan. If P2P deviced is added, PM remains enabled on existing
|
||||||
|
* interface.
|
||||||
|
* Note: the method below does not count the new interface being added
|
||||||
|
* at this moment.
|
||||||
|
*/
|
||||||
|
if (vif->type != NL80211_IFTYPE_P2P_DEVICE)
|
||||||
|
mvm->vif_count++;
|
||||||
|
if (mvm->vif_count > 1) {
|
||||||
|
IWL_DEBUG_MAC80211(mvm,
|
||||||
|
"Disable power on existing interfaces\n");
|
||||||
|
ieee80211_iterate_active_interfaces_atomic(
|
||||||
|
mvm->hw,
|
||||||
|
IEEE80211_IFACE_ITER_NORMAL,
|
||||||
|
iwl_mvm_pm_disable_iterator, mvm);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The AP binding flow can be done only after the beacon
|
* The AP binding flow can be done only after the beacon
|
||||||
* template is configured (which happens only in the mac80211
|
* template is configured (which happens only in the mac80211
|
||||||
@@ -534,27 +555,6 @@ static int iwl_mvm_mac_add_interface(struct ieee80211_hw *hw,
|
|||||||
goto out_unlock;
|
goto out_unlock;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* TODO: remove this temporary code.
|
|
||||||
* Currently MVM FW supports power management only on single MAC.
|
|
||||||
* If new interface added, disable PM on existing interface.
|
|
||||||
* P2P device is a special case, since it is handled by FW similary to
|
|
||||||
* scan. If P2P deviced is added, PM remains enabled on existing
|
|
||||||
* interface.
|
|
||||||
* Note: the method below does not count the new interface being added
|
|
||||||
* at this moment.
|
|
||||||
*/
|
|
||||||
if (vif->type != NL80211_IFTYPE_P2P_DEVICE)
|
|
||||||
mvm->vif_count++;
|
|
||||||
if (mvm->vif_count > 1) {
|
|
||||||
IWL_DEBUG_MAC80211(mvm,
|
|
||||||
"Disable power on existing interfaces\n");
|
|
||||||
ieee80211_iterate_active_interfaces_atomic(
|
|
||||||
mvm->hw,
|
|
||||||
IEEE80211_IFACE_ITER_NORMAL,
|
|
||||||
iwl_mvm_pm_disable_iterator, mvm);
|
|
||||||
}
|
|
||||||
|
|
||||||
ret = iwl_mvm_mac_ctxt_add(mvm, vif);
|
ret = iwl_mvm_mac_ctxt_add(mvm, vif);
|
||||||
if (ret)
|
if (ret)
|
||||||
goto out_release;
|
goto out_release;
|
||||||
|
Reference in New Issue
Block a user