aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl-5000.c
diff options
context:
space:
mode:
authorTomas Winkler <tomas.winkler@intel.com>2008-05-29 04:35:00 -0400
committerJohn W. Linville <linville@tuxdriver.com>2008-06-03 15:00:21 -0400
commitda1bc4539f9b10dc30ac1750fbaaf5afae4b3446 (patch)
tree697cbfd1f1eb6ce8117e86612988abb4ea861b97 /drivers/net/wireless/iwlwifi/iwl-5000.c
parent46315e012236af887cf442fd494a91b1d36858b9 (diff)
iwlwifi: move txq_ctx_stop into iwl-tx.c
This patch moves txq_ctx_stop into iwl-tx.c iwlcore module. 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-5000.c')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-5000.c32
1 files changed, 10 insertions, 22 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-5000.c b/drivers/net/wireless/iwlwifi/iwl-5000.c
index d6074522c446..a94cd362fef5 100644
--- a/drivers/net/wireless/iwlwifi/iwl-5000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-5000.c
@@ -662,10 +662,10 @@ static int iwl5000_alive_notify(struct iwl_priv *priv)
662 } 662 }
663 663
664 iwl_write_prph(priv, IWL50_SCD_INTERRUPT_MASK, 664 iwl_write_prph(priv, IWL50_SCD_INTERRUPT_MASK,
665 (1 << priv->hw_params.max_txq_num) - 1); 665 IWL_MASK(0, priv->hw_params.max_txq_num));
666 666
667 iwl_write_prph(priv, IWL50_SCD_TXFACT, 667 /* Activate all Tx DMA/FIFO channels */
668 SCD_TXFACT_REG_TXFIFO_MASK(0, 7)); 668 priv->cfg->ops->lib->txq_set_sched(priv, IWL_MASK(0, 7));
669 669
670 iwl5000_set_wr_ptrs(priv, IWL_CMD_QUEUE_NUM, 0); 670 iwl5000_set_wr_ptrs(priv, IWL_CMD_QUEUE_NUM, 0);
671 /* map qos queues to fifos one-to-one */ 671 /* map qos queues to fifos one-to-one */
@@ -839,25 +839,13 @@ static u16 iwl5000_build_addsta_hcmd(const struct iwl_addsta_cmd *cmd, u8 *data)
839} 839}
840 840
841 841
842static int iwl5000_disable_tx_fifo(struct iwl_priv *priv) 842/*
843 * Activate/Deactivat Tx DMA/FIFO channels according tx fifos mask
844 * must be called under priv->lock and mac access
845 */
846static void iwl5000_txq_set_sched(struct iwl_priv *priv, u32 mask)
843{ 847{
844 unsigned long flags; 848 iwl_write_prph(priv, IWL50_SCD_TXFACT, mask);
845 int ret;
846
847 spin_lock_irqsave(&priv->lock, flags);
848
849 ret = iwl_grab_nic_access(priv);
850 if (unlikely(ret)) {
851 IWL_ERROR("Tx fifo reset failed");
852 spin_unlock_irqrestore(&priv->lock, flags);
853 return ret;
854 }
855
856 iwl_write_prph(priv, IWL50_SCD_TXFACT, 0);
857 iwl_release_nic_access(priv);
858 spin_unlock_irqrestore(&priv->lock, flags);
859
860 return 0;
861} 849}
862 850
863/* Currently 5000 is the supperset of everything */ 851/* Currently 5000 is the supperset of everything */
@@ -894,7 +882,7 @@ static struct iwl_lib_ops iwl5000_lib = {
894 .free_shared_mem = iwl5000_free_shared_mem, 882 .free_shared_mem = iwl5000_free_shared_mem,
895 .shared_mem_rx_idx = iwl5000_shared_mem_rx_idx, 883 .shared_mem_rx_idx = iwl5000_shared_mem_rx_idx,
896 .txq_update_byte_cnt_tbl = iwl5000_txq_update_byte_cnt_tbl, 884 .txq_update_byte_cnt_tbl = iwl5000_txq_update_byte_cnt_tbl,
897 .disable_tx_fifo = iwl5000_disable_tx_fifo, 885 .txq_set_sched = iwl5000_txq_set_sched,
898 .rx_handler_setup = iwl5000_rx_handler_setup, 886 .rx_handler_setup = iwl5000_rx_handler_setup,
899 .is_valid_rtc_data_addr = iwl5000_hw_valid_rtc_data_addr, 887 .is_valid_rtc_data_addr = iwl5000_hw_valid_rtc_data_addr,
900 .load_ucode = iwl5000_load_ucode, 888 .load_ucode = iwl5000_load_ucode,