aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl-rx.c
diff options
context:
space:
mode:
authorTomas Winkler <tomas.winkler@intel.com>2008-05-29 04:35:01 -0400
committerJohn W. Linville <linville@tuxdriver.com>2008-06-03 15:00:22 -0400
commitb3bbacb78bc688707ac312158c5bbc6bbbb55b23 (patch)
treefa57d2349a629c6a565c4f57d349d58e2363540d /drivers/net/wireless/iwlwifi/iwl-rx.c
parentda1bc4539f9b10dc30ac1750fbaaf5afae4b3446 (diff)
iwlwifi: move iwl_rxq_stop into iwl-rx.c
This patch moves iwl_rxq_stop into iwl-rx.c. Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-rx.c')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-rx.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-rx.c b/drivers/net/wireless/iwlwifi/iwl-rx.c
index a2eb90d40b7e..ed63e5c76f3c 100644
--- a/drivers/net/wireless/iwlwifi/iwl-rx.c
+++ b/drivers/net/wireless/iwlwifi/iwl-rx.c
@@ -420,3 +420,29 @@ int iwl_rx_init(struct iwl_priv *priv, struct iwl_rx_queue *rxq)
420 return 0; 420 return 0;
421} 421}
422 422
423int iwl_rxq_stop(struct iwl_priv *priv)
424{
425 int ret;
426 unsigned long flags;
427
428 spin_lock_irqsave(&priv->lock, flags);
429 ret = iwl_grab_nic_access(priv);
430 if (unlikely(ret)) {
431 spin_unlock_irqrestore(&priv->lock, flags);
432 return ret;
433 }
434
435 /* stop Rx DMA */
436 iwl_write_direct32(priv, FH_MEM_RCSR_CHNL0_CONFIG_REG, 0);
437 ret = iwl_poll_direct_bit(priv, FH_MEM_RSSR_RX_STATUS_REG,
438 (1 << 24), 1000);
439 if (ret < 0)
440 IWL_ERROR("Can't stop Rx DMA.\n");
441
442 iwl_release_nic_access(priv);
443 spin_unlock_irqrestore(&priv->lock, flags);
444
445 return 0;
446}
447EXPORT_SYMBOL(iwl_rxq_stop);
448