|
@@ -950,9 +950,12 @@ void iwlagn_txq_ctx_stop(struct iwl_priv *priv)
|
|
|
/* Stop each Tx DMA channel, and wait for it to be idle */
|
|
|
for (ch = 0; ch < priv->hw_params.dma_chnl_num; ch++) {
|
|
|
iwl_write_direct32(priv, FH_TCSR_CHNL_TX_CONFIG_REG(ch), 0x0);
|
|
|
- iwl_poll_direct_bit(priv, FH_TSSR_TX_STATUS_REG,
|
|
|
+ if (iwl_poll_direct_bit(priv, FH_TSSR_TX_STATUS_REG,
|
|
|
FH_TSSR_TX_STATUS_REG_MSK_CHNL_IDLE(ch),
|
|
|
- 1000);
|
|
|
+ 1000))
|
|
|
+ IWL_ERR(priv, "Failing on timeout while stopping"
|
|
|
+ " DMA channel %d [0x%08x]", ch,
|
|
|
+ iwl_read_direct32(priv, FH_TSSR_TX_STATUS_REG));
|
|
|
}
|
|
|
spin_unlock_irqrestore(&priv->lock, flags);
|
|
|
}
|