iwlwifi: mvm: BT Coex - don't limit rate control if TTC is on
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Mon, 2 Jun 2014 13:18:42 +0000 (16:18 +0300)
committerEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Tue, 24 Jun 2014 18:55:36 +0000 (21:55 +0300)
When the firmware enables TxTxCorunning, we can lift the
constaints on the rate control.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
drivers/net/wireless/iwlwifi/mvm/coex.c
drivers/net/wireless/iwlwifi/mvm/fw-api-coex.h

index aab92a6b2f35f5ab34f8958ba9920ff276bc22e4..8d7146e54269cef66e832edb52bff5533c0aeba5 100644 (file)
@@ -1212,6 +1212,9 @@ u16 iwl_mvm_coex_agg_time_limit(struct iwl_mvm *mvm,
            BT_HIGH_TRAFFIC)
                return LINK_QUAL_AGG_TIME_LIMIT_DEF;
 
+       if (mvm->last_bt_notif.ttc_enabled)
+               return LINK_QUAL_AGG_TIME_LIMIT_DEF;
+
        lut_type = iwl_get_coex_type(mvm, mvmsta->vif);
 
        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,
        struct iwl_mvm_sta *mvmsta = iwl_mvm_sta_from_mac80211(sta);
        enum iwl_bt_coex_lut_type lut_type;
 
+       if (mvm->last_bt_notif.ttc_enabled)
+               return true;
+
        if (le32_to_cpu(mvm->last_bt_notif.bt_activity_grading) <
            BT_HIGH_TRAFFIC)
                return true;
index 98175ca05e9d0256b762151e383b2e32e69c4fd0..39cb33a198621f8e53926ac0ce6ac4e17996a58d 100644 (file)
@@ -305,6 +305,7 @@ enum iwl_bt_activity_grading {
  * @bt_traffic_load: load of BT traffic
  * @bt_agg_traffic_load: aggregated load of BT traffic
  * @bt_ci_compliance: 0 - no CI compliance, 1 - CI compliant
+ * @ttc_enabled: true if ttc has been enabled by the firmware
  * @primary_ch_lut: LUT used for primary channel
  * @secondary_ch_lut: LUT used for secondary channel
  * @bt_activity_grading: the activity of BT enum %iwl_bt_activity_grading
@@ -317,7 +318,8 @@ struct iwl_bt_coex_profile_notif {
        u8 bt_traffic_load;
        u8 bt_agg_traffic_load;
        u8 bt_ci_compliance;
-       u8 reserved[3];
+       u8 ttc_enabled;
+       __le16 reserved;
 
        __le32 primary_ch_lut;
        __le32 secondary_ch_lut;