aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl-4965.c
diff options
context:
space:
mode:
authorWinkler, Tomas <tomas.winkler@intel.com>2008-11-19 18:32:26 -0500
committerJohn W. Linville <linville@tuxdriver.com>2008-11-26 09:47:39 -0500
commit31a73fe4f3284d94d52774c285e9e98a5f441d21 (patch)
tree0b0b706bd575a83ea835ade19b730a0acd7118f0 /drivers/net/wireless/iwlwifi/iwl-4965.c
parent25e35a56d5f4795cf52cdd0830a91e3103396cfe (diff)
iwlwifi: TX setup fix confusion between TX queue and TX DMA channel
This patch configures correctly TX DMA channel. It is not the same as TX queue. Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Acked-by: Zhu Yi <yi.zhu@intel.com> Signed-off-by: Reinette Chatre <reinette.chatre@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-4965.c')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-4965.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-4965.c b/drivers/net/wireless/iwlwifi/iwl-4965.c
index b96f55341384..60769b12b685 100644
--- a/drivers/net/wireless/iwlwifi/iwl-4965.c
+++ b/drivers/net/wireless/iwlwifi/iwl-4965.c
@@ -692,9 +692,9 @@ static const u16 default_queue_to_tx_fifo[] = {
692static int iwl4965_alive_notify(struct iwl_priv *priv) 692static int iwl4965_alive_notify(struct iwl_priv *priv)
693{ 693{
694 u32 a; 694 u32 a;
695 int i = 0;
696 unsigned long flags; 695 unsigned long flags;
697 int ret; 696 int ret;
697 int i, chan;
698 698
699 spin_lock_irqsave(&priv->lock, flags); 699 spin_lock_irqsave(&priv->lock, flags);
700 700
@@ -718,6 +718,12 @@ static int iwl4965_alive_notify(struct iwl_priv *priv)
718 iwl_write_prph(priv, IWL49_SCD_DRAM_BASE_ADDR, 718 iwl_write_prph(priv, IWL49_SCD_DRAM_BASE_ADDR,
719 priv->scd_bc_tbls.dma >> 10); 719 priv->scd_bc_tbls.dma >> 10);
720 720
721 /* Enable DMA channel */
722 for (chan = 0; chan < FH49_TCSR_CHNL_NUM ; chan++)
723 iwl_write_direct32(priv, FH_TCSR_CHNL_TX_CONFIG_REG(chan),
724 FH_TCSR_TX_CONFIG_REG_VAL_DMA_CHNL_ENABLE |
725 FH_TCSR_TX_CONFIG_REG_VAL_DMA_CREDIT_ENABLE);
726
721 /* Disable chain mode for all queues */ 727 /* Disable chain mode for all queues */
722 iwl_write_prph(priv, IWL49_SCD_QUEUECHAIN_SEL, 0); 728 iwl_write_prph(priv, IWL49_SCD_QUEUECHAIN_SEL, 0);
723 729
@@ -748,7 +754,7 @@ static int iwl4965_alive_notify(struct iwl_priv *priv)
748 (1 << priv->hw_params.max_txq_num) - 1); 754 (1 << priv->hw_params.max_txq_num) - 1);
749 755
750 /* Activate all Tx DMA/FIFO channels */ 756 /* Activate all Tx DMA/FIFO channels */
751 priv->cfg->ops->lib->txq_set_sched(priv, IWL_MASK(0, 7)); 757 priv->cfg->ops->lib->txq_set_sched(priv, IWL_MASK(0, 6));
752 758
753 iwl4965_set_wr_ptrs(priv, IWL_CMD_QUEUE_NUM, 0); 759 iwl4965_set_wr_ptrs(priv, IWL_CMD_QUEUE_NUM, 0);
754 760