|
@@ -1934,19 +1934,17 @@ static void __iwl_down(struct iwl_priv *priv)
|
|
|
|
|
|
/* device going down, Stop using ICT table */
|
|
|
iwl_disable_ict(priv);
|
|
|
- spin_lock_irqsave(&priv->lock, flags);
|
|
|
- iwl_clear_bit(priv, CSR_GP_CNTRL,
|
|
|
- CSR_GP_CNTRL_REG_FLAG_MAC_ACCESS_REQ);
|
|
|
- spin_unlock_irqrestore(&priv->lock, flags);
|
|
|
|
|
|
iwl_txq_ctx_stop(priv);
|
|
|
iwl_rxq_stop(priv);
|
|
|
|
|
|
- iwl_write_prph(priv, APMG_CLK_DIS_REG,
|
|
|
- APMG_CLK_VAL_DMA_CLK_RQT);
|
|
|
-
|
|
|
+ /* Power-down device's busmaster DMA clocks */
|
|
|
+ iwl_write_prph(priv, APMG_CLK_DIS_REG, APMG_CLK_VAL_DMA_CLK_RQT);
|
|
|
udelay(5);
|
|
|
|
|
|
+ /* Make sure (redundant) we've released our request to stay awake */
|
|
|
+ iwl_clear_bit(priv, CSR_GP_CNTRL, CSR_GP_CNTRL_REG_FLAG_MAC_ACCESS_REQ);
|
|
|
+
|
|
|
/* Stop the device, and put it in low power state */
|
|
|
priv->cfg->ops->lib->apm_ops.stop(priv);
|
|
|
|