diff options
author | Winkler, Tomas <tomas.winkler@intel.com> | 2008-11-19 18:32:26 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-11-26 09:47:39 -0500 |
commit | 31a73fe4f3284d94d52774c285e9e98a5f441d21 (patch) | |
tree | 0b0b706bd575a83ea835ade19b730a0acd7118f0 /drivers/net/wireless/iwlwifi/iwl-4965.c | |
parent | 25e35a56d5f4795cf52cdd0830a91e3103396cfe (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.c | 10 |
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[] = { | |||
692 | static int iwl4965_alive_notify(struct iwl_priv *priv) | 692 | static 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 | ||