summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl-agn.c
diff options
context:
space:
mode:
authorWey-Yi Guy <wey-yi.w.guy@intel.com>2010-08-23 07:57:13 -0700
committerJohn W. Linville <linville@tuxdriver.com>2010-08-25 14:34:53 -0400
commitda5dbb971573efda54c7c39e7e4ccd3fc7c86e49 (patch)
treef7350f6d2ead2bef4c3b663a18c6ec1ceac1c996 /drivers/net/wireless/iwlwifi/iwl-agn.c
parentf37837c962c309f1d90636626c779497b614be42 (diff)
iwlagn: set traffic load based on multiple factors
Current BT traffic load should based on the following conditions: 1. BT On/Off status 2. Channel announcement enable/disable 3. Curren traffic load report from uCode Need to modify rate scale to down-grade from MIMO to SISO if detected high BT traffic load. Also need to make sure not using chain "B" with high BT traffic or if it is in "full concurrency" mode. Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-agn.c')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
index 989e4a70260..4410f820c2f 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
@@ -2823,6 +2823,7 @@ static void __iwl_down(struct iwl_priv *priv)
iwl_clear_driver_stations(priv);
/* reset BT coex data */
+ priv->bt_status = 0;
priv->bt_traffic_load = priv->cfg->bt_init_traffic_load;
priv->bt_sco_active = false;
priv->bt_full_concurrent = false;
@@ -3133,6 +3134,7 @@ static void iwl_bg_restart(struct work_struct *data)
bool bt_sco, bt_full_concurrent;
u8 bt_ci_compliance;
u8 bt_load;
+ u8 bt_status;
mutex_lock(&priv->mutex);
priv->vif = NULL;
@@ -3151,6 +3153,7 @@ static void iwl_bg_restart(struct work_struct *data)
bt_full_concurrent = priv->bt_full_concurrent;
bt_ci_compliance = priv->bt_ci_compliance;
bt_load = priv->bt_traffic_load;
+ bt_status = priv->bt_status;
__iwl_down(priv);
@@ -3158,6 +3161,7 @@ static void iwl_bg_restart(struct work_struct *data)
priv->bt_full_concurrent = bt_full_concurrent;
priv->bt_ci_compliance = bt_ci_compliance;
priv->bt_traffic_load = bt_load;
+ priv->bt_status = bt_status;
mutex_unlock(&priv->mutex);
iwl_cancel_deferred_work(priv);