diff options
author | Emmanuel Grumbach <emmanuel.grumbach@intel.com> | 2014-07-07 07:38:39 -0400 |
---|---|---|
committer | Emmanuel Grumbach <emmanuel.grumbach@intel.com> | 2014-07-22 12:21:07 -0400 |
commit | 45bbb2ca1e27c79bd3cbdcec040e7daceceeabbb (patch) | |
tree | 32ba81e902292eee3255c783047bc2d74295f456 /drivers/net/wireless/iwlwifi/mvm/coex.c | |
parent | 1459f269e836834494e944ea7687177932568d00 (diff) |
iwlwifi: mvm: BT Coex - don't change AP SMPS mode
Leave it to default instead - regardless of the BT activity.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/mvm/coex.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/coex.c | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/drivers/net/wireless/iwlwifi/mvm/coex.c b/drivers/net/wireless/iwlwifi/mvm/coex.c index a65b1bb12b3d..2291bbcaaeab 100644 --- a/drivers/net/wireless/iwlwifi/mvm/coex.c +++ b/drivers/net/wireless/iwlwifi/mvm/coex.c | |||
@@ -768,13 +768,8 @@ static void iwl_mvm_bt_notif_iterator(void *_data, u8 *mac, | |||
768 | smps_mode = IEEE80211_SMPS_AUTOMATIC; | 768 | smps_mode = IEEE80211_SMPS_AUTOMATIC; |
769 | break; | 769 | break; |
770 | case NL80211_IFTYPE_AP: | 770 | case NL80211_IFTYPE_AP: |
771 | /* default smps_mode for AP / GO is OFF */ | 771 | if (!mvmvif->ap_ibss_active) |
772 | smps_mode = IEEE80211_SMPS_OFF; | ||
773 | if (!mvmvif->ap_ibss_active) { | ||
774 | iwl_mvm_update_smps(mvm, vif, IWL_MVM_SMPS_REQ_BT_COEX, | ||
775 | smps_mode); | ||
776 | return; | 772 | return; |
777 | } | ||
778 | break; | 773 | break; |
779 | default: | 774 | default: |
780 | return; | 775 | return; |
@@ -785,10 +780,10 @@ static void iwl_mvm_bt_notif_iterator(void *_data, u8 *mac, | |||
785 | /* If channel context is invalid or not on 2.4GHz .. */ | 780 | /* If channel context is invalid or not on 2.4GHz .. */ |
786 | if ((!chanctx_conf || | 781 | if ((!chanctx_conf || |
787 | chanctx_conf->def.chan->band != IEEE80211_BAND_2GHZ)) { | 782 | chanctx_conf->def.chan->band != IEEE80211_BAND_2GHZ)) { |
788 | /* ... relax constraints and disable rssi events */ | ||
789 | iwl_mvm_update_smps(mvm, vif, IWL_MVM_SMPS_REQ_BT_COEX, | ||
790 | smps_mode); | ||
791 | if (vif->type == NL80211_IFTYPE_STATION) { | 783 | if (vif->type == NL80211_IFTYPE_STATION) { |
784 | /* ... relax constraints and disable rssi events */ | ||
785 | iwl_mvm_update_smps(mvm, vif, IWL_MVM_SMPS_REQ_BT_COEX, | ||
786 | smps_mode); | ||
792 | iwl_mvm_bt_coex_reduced_txp(mvm, mvmvif->ap_sta_id, | 787 | iwl_mvm_bt_coex_reduced_txp(mvm, mvmvif->ap_sta_id, |
793 | false); | 788 | false); |
794 | iwl_mvm_bt_coex_enable_rssi_event(mvm, vif, false, 0); | 789 | iwl_mvm_bt_coex_enable_rssi_event(mvm, vif, false, 0); |
@@ -800,9 +795,7 @@ static void iwl_mvm_bt_notif_iterator(void *_data, u8 *mac, | |||
800 | if (bt_activity_grading >= BT_HIGH_TRAFFIC) | 795 | if (bt_activity_grading >= BT_HIGH_TRAFFIC) |
801 | smps_mode = IEEE80211_SMPS_STATIC; | 796 | smps_mode = IEEE80211_SMPS_STATIC; |
802 | else if (bt_activity_grading >= BT_LOW_TRAFFIC) | 797 | else if (bt_activity_grading >= BT_LOW_TRAFFIC) |
803 | smps_mode = vif->type == NL80211_IFTYPE_AP ? | 798 | smps_mode = IEEE80211_SMPS_DYNAMIC; |
804 | IEEE80211_SMPS_OFF : | ||
805 | IEEE80211_SMPS_DYNAMIC; | ||
806 | 799 | ||
807 | /* relax SMPS contraints for next association */ | 800 | /* relax SMPS contraints for next association */ |
808 | if (!vif->bss_conf.assoc) | 801 | if (!vif->bss_conf.assoc) |
@@ -816,7 +809,9 @@ static void iwl_mvm_bt_notif_iterator(void *_data, u8 *mac, | |||
816 | "mac %d: bt_activity_grading %d smps_req %d\n", | 809 | "mac %d: bt_activity_grading %d smps_req %d\n", |
817 | mvmvif->id, bt_activity_grading, smps_mode); | 810 | mvmvif->id, bt_activity_grading, smps_mode); |
818 | 811 | ||
819 | iwl_mvm_update_smps(mvm, vif, IWL_MVM_SMPS_REQ_BT_COEX, smps_mode); | 812 | if (vif->type == NL80211_IFTYPE_STATION) |
813 | iwl_mvm_update_smps(mvm, vif, IWL_MVM_SMPS_REQ_BT_COEX, | ||
814 | smps_mode); | ||
820 | 815 | ||
821 | /* low latency is always primary */ | 816 | /* low latency is always primary */ |
822 | if (iwl_mvm_vif_low_latency(mvmvif)) { | 817 | if (iwl_mvm_vif_low_latency(mvmvif)) { |