iwlwifi: reset BT when going down
authorJohannes Berg <johannes.berg@intel.com>
Mon, 23 Aug 2010 14:56:59 +0000 (07:56 -0700)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 25 Aug 2010 18:33:22 +0000 (14:33 -0400)
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>
drivers/net/wireless/iwlwifi/iwl-agn.c

index 26bc0482dd9e2d6b44f0d8028404739a336e224f..a8a5a5b79f3977e5b7202f1c9b3a899e27e055b0 100644 (file)
@@ -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);