aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>2014-06-02 09:18:42 -0400
committerEmmanuel Grumbach <emmanuel.grumbach@intel.com>2014-06-24 14:55:36 -0400
commit35fbf5d08e57cb4e7bd516781ba9499ff83688f6 (patch)
treec4c87084fd5fb69c5782126ab44a2f983aa1041f
parent7fa4fa0c441835ebe78aa25496ae952177e8bb84 (diff)
iwlwifi: mvm: BT Coex - don't limit rate control if TTC is on
When the firmware enables TxTxCorunning, we can lift the constaints on the rate control. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/coex.c6
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/fw-api-coex.h4
2 files changed, 9 insertions, 1 deletions
diff --git a/drivers/net/wireless/iwlwifi/mvm/coex.c b/drivers/net/wireless/iwlwifi/mvm/coex.c
index aab92a6b2f35..8d7146e54269 100644
--- a/drivers/net/wireless/iwlwifi/mvm/coex.c
+++ b/drivers/net/wireless/iwlwifi/mvm/coex.c
@@ -1212,6 +1212,9 @@ u16 iwl_mvm_coex_agg_time_limit(struct iwl_mvm *mvm,
1212 BT_HIGH_TRAFFIC) 1212 BT_HIGH_TRAFFIC)
1213 return LINK_QUAL_AGG_TIME_LIMIT_DEF; 1213 return LINK_QUAL_AGG_TIME_LIMIT_DEF;
1214 1214
1215 if (mvm->last_bt_notif.ttc_enabled)
1216 return LINK_QUAL_AGG_TIME_LIMIT_DEF;
1217
1215 lut_type = iwl_get_coex_type(mvm, mvmsta->vif); 1218 lut_type = iwl_get_coex_type(mvm, mvmsta->vif);
1216 1219
1217 if (lut_type == BT_COEX_LOOSE_LUT || lut_type == BT_COEX_INVALID_LUT) 1220 if (lut_type == BT_COEX_LOOSE_LUT || lut_type == BT_COEX_INVALID_LUT)
@@ -1227,6 +1230,9 @@ bool iwl_mvm_bt_coex_is_mimo_allowed(struct iwl_mvm *mvm,
1227 struct iwl_mvm_sta *mvmsta = iwl_mvm_sta_from_mac80211(sta); 1230 struct iwl_mvm_sta *mvmsta = iwl_mvm_sta_from_mac80211(sta);
1228 enum iwl_bt_coex_lut_type lut_type; 1231 enum iwl_bt_coex_lut_type lut_type;
1229 1232
1233 if (mvm->last_bt_notif.ttc_enabled)
1234 return true;
1235
1230 if (le32_to_cpu(mvm->last_bt_notif.bt_activity_grading) < 1236 if (le32_to_cpu(mvm->last_bt_notif.bt_activity_grading) <
1231 BT_HIGH_TRAFFIC) 1237 BT_HIGH_TRAFFIC)
1232 return true; 1238 return true;
diff --git a/drivers/net/wireless/iwlwifi/mvm/fw-api-coex.h b/drivers/net/wireless/iwlwifi/mvm/fw-api-coex.h
index 98175ca05e9d..39cb33a19862 100644
--- a/drivers/net/wireless/iwlwifi/mvm/fw-api-coex.h
+++ b/drivers/net/wireless/iwlwifi/mvm/fw-api-coex.h
@@ -305,6 +305,7 @@ enum iwl_bt_activity_grading {
305 * @bt_traffic_load: load of BT traffic 305 * @bt_traffic_load: load of BT traffic
306 * @bt_agg_traffic_load: aggregated load of BT traffic 306 * @bt_agg_traffic_load: aggregated load of BT traffic
307 * @bt_ci_compliance: 0 - no CI compliance, 1 - CI compliant 307 * @bt_ci_compliance: 0 - no CI compliance, 1 - CI compliant
308 * @ttc_enabled: true if ttc has been enabled by the firmware
308 * @primary_ch_lut: LUT used for primary channel 309 * @primary_ch_lut: LUT used for primary channel
309 * @secondary_ch_lut: LUT used for secondary channel 310 * @secondary_ch_lut: LUT used for secondary channel
310 * @bt_activity_grading: the activity of BT enum %iwl_bt_activity_grading 311 * @bt_activity_grading: the activity of BT enum %iwl_bt_activity_grading
@@ -317,7 +318,8 @@ struct iwl_bt_coex_profile_notif {
317 u8 bt_traffic_load; 318 u8 bt_traffic_load;
318 u8 bt_agg_traffic_load; 319 u8 bt_agg_traffic_load;
319 u8 bt_ci_compliance; 320 u8 bt_ci_compliance;
320 u8 reserved[3]; 321 u8 ttc_enabled;
322 __le16 reserved;
321 323
322 __le32 primary_ch_lut; 324 __le32 primary_ch_lut;
323 __le32 secondary_ch_lut; 325 __le32 secondary_ch_lut;