diff options
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-tx.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-tx.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-tx.c b/drivers/net/wireless/iwlwifi/iwl-tx.c index e045dfeaa1fe..18d6cf67d9b7 100644 --- a/drivers/net/wireless/iwlwifi/iwl-tx.c +++ b/drivers/net/wireless/iwlwifi/iwl-tx.c | |||
@@ -611,7 +611,7 @@ int iwl_txq_ctx_reset(struct iwl_priv *priv) | |||
611 | */ | 611 | */ |
612 | void iwl_txq_ctx_stop(struct iwl_priv *priv) | 612 | void iwl_txq_ctx_stop(struct iwl_priv *priv) |
613 | { | 613 | { |
614 | int txq_id; | 614 | int ch; |
615 | unsigned long flags; | 615 | unsigned long flags; |
616 | 616 | ||
617 | /* Turn off all Tx DMA fifos */ | 617 | /* Turn off all Tx DMA fifos */ |
@@ -624,12 +624,11 @@ void iwl_txq_ctx_stop(struct iwl_priv *priv) | |||
624 | priv->cfg->ops->lib->txq_set_sched(priv, 0); | 624 | priv->cfg->ops->lib->txq_set_sched(priv, 0); |
625 | 625 | ||
626 | /* Stop each Tx DMA channel, and wait for it to be idle */ | 626 | /* Stop each Tx DMA channel, and wait for it to be idle */ |
627 | for (txq_id = 0; txq_id < priv->hw_params.max_txq_num; txq_id++) { | 627 | for (ch = 0; ch < priv->hw_params.dma_chnl_num; ch++) { |
628 | iwl_write_direct32(priv, | 628 | iwl_write_direct32(priv, FH_TCSR_CHNL_TX_CONFIG_REG(ch), 0x0); |
629 | FH_TCSR_CHNL_TX_CONFIG_REG(txq_id), 0x0); | ||
630 | iwl_poll_direct_bit(priv, FH_TSSR_TX_STATUS_REG, | 629 | iwl_poll_direct_bit(priv, FH_TSSR_TX_STATUS_REG, |
631 | FH_TSSR_TX_STATUS_REG_MSK_CHNL_IDLE | 630 | FH_TSSR_TX_STATUS_REG_MSK_CHNL_IDLE(ch), |
632 | (txq_id), 200); | 631 | 200); |
633 | } | 632 | } |
634 | iwl_release_nic_access(priv); | 633 | iwl_release_nic_access(priv); |
635 | spin_unlock_irqrestore(&priv->lock, flags); | 634 | spin_unlock_irqrestore(&priv->lock, flags); |