]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
iwlwifi: clear all the stop_queue flag after load firmware
authorWey-Yi Guy <wey-yi.w.guy@intel.com>
Tue, 9 Feb 2010 16:14:11 +0000 (08:14 -0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 26 May 2010 21:32:11 +0000 (14:32 -0700)
commit a9e10fb9b1c6ad16e73cf2656951fce3a817611e upstream.

All the queues are awake and ready to use after loading firmware,
for firmware reload case, if any queues was stopped before
reload, mac80211 will wake those queues after restart hardware, so make
sure all the flag used to keep track of the queue status are
reset correctly.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/net/wireless/iwlwifi/iwl-4965.c
drivers/net/wireless/iwlwifi/iwl-5000.c

index 3b4c5a4610af8852a154e581ee1a7ad5f4210932..82c1d2e16cbd9772c2a615d1535bc7c65de0784c 100644 (file)
@@ -581,6 +581,11 @@ static int iwl4965_alive_notify(struct iwl_priv *priv)
 
        iwl4965_set_wr_ptrs(priv, IWL_CMD_QUEUE_NUM, 0);
 
+       /* make sure all queue are not stopped */
+       memset(&priv->queue_stopped[0], 0, sizeof(priv->queue_stopped));
+       for (i = 0; i < 4; i++)
+               atomic_set(&priv->queue_stop_count[i], 0);
+
        /* reset to 0 to enable all the queue first */
        priv->txq_ctx_active_msk = 0;
        /* Map each Tx/cmd queue to its corresponding fifo */
index c610e5fbd718f8dc9ac160c933699fa9b84e27fb..f7d41c72effb61d26c84369b4b23d74a90f6aabf 100644 (file)
@@ -657,6 +657,11 @@ int iwl5000_alive_notify(struct iwl_priv *priv)
 
        iwl5000_set_wr_ptrs(priv, IWL_CMD_QUEUE_NUM, 0);
 
+       /* make sure all queue are not stopped */
+       memset(&priv->queue_stopped[0], 0, sizeof(priv->queue_stopped));
+       for (i = 0; i < 4; i++)
+               atomic_set(&priv->queue_stop_count[i], 0);
+
        /* reset to 0 to enable all the queue first */
        priv->txq_ctx_active_msk = 0;
        /* map qos queues to fifos one-to-one */