summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2010-08-23 07:56:59 -0700
committerJohn W. Linville <linville@tuxdriver.com>2010-08-25 14:33:22 -0400
commita11741383ba6eef707b8330f0d3c1da6a7478ee3 (patch)
tree45ef1458d753ee13499f9342cbf997df9629bd03
parent290f599cc6ee8c769355486b7d98fd1dc5115d76 (diff)
iwlwifi: reset BT when going down
When we turn off the device, reset BT data so that we don't have outdated information when we come up again. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
index 26bc0482dd9..a8a5a5b79f3 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
@@ -2773,6 +2773,10 @@ static void __iwl_down(struct iwl_priv *priv)
iwl_dealloc_bcast_station(priv);
iwl_clear_driver_stations(priv);
+ /* reset BT coex data */
+ priv->bt_traffic_load = 0;
+ priv->bt_sco_active = false;
+
/* Unblock any waiting calls */
wake_up_interruptible_all(&priv->wait_command_queue);
@@ -3078,8 +3082,9 @@ static void iwl_bg_restart(struct work_struct *data)
mutex_lock(&priv->mutex);
priv->vif = NULL;
priv->is_open = 0;
+ __iwl_down(priv);
mutex_unlock(&priv->mutex);
- iwl_down(priv);
+ iwl_cancel_deferred_work(priv);
ieee80211_restart_hw(priv->hw);
} else {
iwl_down(priv);