aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl-3945.c
diff options
context:
space:
mode:
authorTomas Winkler <tomas.winkler@intel.com>2008-12-18 21:37:01 -0500
committerJohn W. Linville <linville@tuxdriver.com>2009-01-29 15:58:50 -0500
commitbddadf86fb284f237d6e2d3496772c8f5c68370e (patch)
treef605f0b6c8fd77c73feefe645f31e3f78bd91650 /drivers/net/wireless/iwlwifi/iwl-3945.c
parent7cbf0ba5193d1f3bb3caaa06668e22bc86776e41 (diff)
iwlwifi: 3945 extract flow handler definitions into iwl-3945-fh.h
This patch moves 3945 definitions into iwl-3945-fh.h It renames FH_ to FH39 to help inclusion of 3945 into iwlcore framework Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Acked-by: Samuel Ortiz <sameo@linux.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-3945.c')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-3945.c83
1 files changed, 42 insertions, 41 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-3945.c b/drivers/net/wireless/iwlwifi/iwl-3945.c
index 45cfa1cf194a..f4fee0a91b66 100644
--- a/drivers/net/wireless/iwlwifi/iwl-3945.c
+++ b/drivers/net/wireless/iwlwifi/iwl-3945.c
@@ -39,6 +39,7 @@
39#include <net/mac80211.h> 39#include <net/mac80211.h>
40 40
41#include "iwl-3945-core.h" 41#include "iwl-3945-core.h"
42#include "iwl-3945-fh.h"
42#include "iwl-3945.h" 43#include "iwl-3945.h"
43#include "iwl-helpers.h" 44#include "iwl-helpers.h"
44#include "iwl-3945-rs.h" 45#include "iwl-3945-rs.h"
@@ -984,23 +985,23 @@ static int iwl3945_rx_init(struct iwl3945_priv *priv, struct iwl3945_rx_queue *r
984 return rc; 985 return rc;
985 } 986 }
986 987
987 iwl3945_write_direct32(priv, FH_RCSR_RBD_BASE(0), rxq->dma_addr); 988 iwl3945_write_direct32(priv, FH39_RCSR_RBD_BASE(0), rxq->dma_addr);
988 iwl3945_write_direct32(priv, FH_RCSR_RPTR_ADDR(0), 989 iwl3945_write_direct32(priv, FH39_RCSR_RPTR_ADDR(0),
989 priv->hw_setting.shared_phys + 990 priv->hw_setting.shared_phys +
990 offsetof(struct iwl3945_shared, rx_read_ptr[0])); 991 offsetof(struct iwl3945_shared, rx_read_ptr[0]));
991 iwl3945_write_direct32(priv, FH_RCSR_WPTR(0), 0); 992 iwl3945_write_direct32(priv, FH39_RCSR_WPTR(0), 0);
992 iwl3945_write_direct32(priv, FH_RCSR_CONFIG(0), 993 iwl3945_write_direct32(priv, FH39_RCSR_CONFIG(0),
993 ALM_FH_RCSR_RX_CONFIG_REG_VAL_DMA_CHNL_EN_ENABLE | 994 FH39_RCSR_RX_CONFIG_REG_VAL_DMA_CHNL_EN_ENABLE |
994 ALM_FH_RCSR_RX_CONFIG_REG_VAL_RDRBD_EN_ENABLE | 995 FH39_RCSR_RX_CONFIG_REG_VAL_RDRBD_EN_ENABLE |
995 ALM_FH_RCSR_RX_CONFIG_REG_BIT_WR_STTS_EN | 996 FH39_RCSR_RX_CONFIG_REG_BIT_WR_STTS_EN |
996 ALM_FH_RCSR_RX_CONFIG_REG_VAL_MAX_FRAG_SIZE_128 | 997 FH39_RCSR_RX_CONFIG_REG_VAL_MAX_FRAG_SIZE_128 |
997 (RX_QUEUE_SIZE_LOG << ALM_FH_RCSR_RX_CONFIG_REG_POS_RBDC_SIZE) | 998 (RX_QUEUE_SIZE_LOG << FH39_RCSR_RX_CONFIG_REG_POS_RBDC_SIZE) |
998 ALM_FH_RCSR_RX_CONFIG_REG_VAL_IRQ_DEST_INT_HOST | 999 FH39_RCSR_RX_CONFIG_REG_VAL_IRQ_DEST_INT_HOST |
999 (1 << ALM_FH_RCSR_RX_CONFIG_REG_POS_IRQ_RBTH) | 1000 (1 << FH39_RCSR_RX_CONFIG_REG_POS_IRQ_RBTH) |
1000 ALM_FH_RCSR_RX_CONFIG_REG_VAL_MSG_MODE_FH); 1001 FH39_RCSR_RX_CONFIG_REG_VAL_MSG_MODE_FH);
1001 1002
1002 /* fake read to flush all prev I/O */ 1003 /* fake read to flush all prev I/O */
1003 iwl3945_read_direct32(priv, FH_RSSR_CTRL); 1004 iwl3945_read_direct32(priv, FH39_RSSR_CTRL);
1004 1005
1005 iwl3945_release_nic_access(priv); 1006 iwl3945_release_nic_access(priv);
1006 spin_unlock_irqrestore(&priv->lock, flags); 1007 spin_unlock_irqrestore(&priv->lock, flags);
@@ -1034,17 +1035,17 @@ static int iwl3945_tx_reset(struct iwl3945_priv *priv)
1034 iwl3945_write_prph(priv, ALM_SCD_TXF4MF_REG, 0x000004); 1035 iwl3945_write_prph(priv, ALM_SCD_TXF4MF_REG, 0x000004);
1035 iwl3945_write_prph(priv, ALM_SCD_TXF5MF_REG, 0x000005); 1036 iwl3945_write_prph(priv, ALM_SCD_TXF5MF_REG, 0x000005);
1036 1037
1037 iwl3945_write_direct32(priv, FH_TSSR_CBB_BASE, 1038 iwl3945_write_direct32(priv, FH39_TSSR_CBB_BASE,
1038 priv->hw_setting.shared_phys); 1039 priv->hw_setting.shared_phys);
1039 1040
1040 iwl3945_write_direct32(priv, FH_TSSR_MSG_CONFIG, 1041 iwl3945_write_direct32(priv, FH39_TSSR_MSG_CONFIG,
1041 ALM_FH_TSSR_TX_MSG_CONFIG_REG_VAL_SNOOP_RD_TXPD_ON | 1042 FH39_TSSR_TX_MSG_CONFIG_REG_VAL_SNOOP_RD_TXPD_ON |
1042 ALM_FH_TSSR_TX_MSG_CONFIG_REG_VAL_ORDER_RD_TXPD_ON | 1043 FH39_TSSR_TX_MSG_CONFIG_REG_VAL_ORDER_RD_TXPD_ON |
1043 ALM_FH_TSSR_TX_MSG_CONFIG_REG_VAL_MAX_FRAG_SIZE_128B | 1044 FH39_TSSR_TX_MSG_CONFIG_REG_VAL_MAX_FRAG_SIZE_128B |
1044 ALM_FH_TSSR_TX_MSG_CONFIG_REG_VAL_SNOOP_RD_TFD_ON | 1045 FH39_TSSR_TX_MSG_CONFIG_REG_VAL_SNOOP_RD_TFD_ON |
1045 ALM_FH_TSSR_TX_MSG_CONFIG_REG_VAL_ORDER_RD_CBB_ON | 1046 FH39_TSSR_TX_MSG_CONFIG_REG_VAL_ORDER_RD_CBB_ON |
1046 ALM_FH_TSSR_TX_MSG_CONFIG_REG_VAL_ORDER_RSP_WAIT_TH | 1047 FH39_TSSR_TX_MSG_CONFIG_REG_VAL_ORDER_RSP_WAIT_TH |
1047 ALM_FH_TSSR_TX_MSG_CONFIG_REG_VAL_RSP_WAIT_TH); 1048 FH39_TSSR_TX_MSG_CONFIG_REG_VAL_RSP_WAIT_TH);
1048 1049
1049 iwl3945_release_nic_access(priv); 1050 iwl3945_release_nic_access(priv);
1050 spin_unlock_irqrestore(&priv->lock, flags); 1051 spin_unlock_irqrestore(&priv->lock, flags);
@@ -1210,7 +1211,7 @@ int iwl3945_hw_nic_init(struct iwl3945_priv *priv)
1210 spin_unlock_irqrestore(&priv->lock, flags); 1211 spin_unlock_irqrestore(&priv->lock, flags);
1211 return rc; 1212 return rc;
1212 } 1213 }
1213 iwl3945_write_direct32(priv, FH_RCSR_WPTR(0), rxq->write & ~7); 1214 iwl3945_write_direct32(priv, FH39_RCSR_WPTR(0), rxq->write & ~7);
1214 iwl3945_release_nic_access(priv); 1215 iwl3945_release_nic_access(priv);
1215 1216
1216 spin_unlock_irqrestore(&priv->lock, flags); 1217 spin_unlock_irqrestore(&priv->lock, flags);
@@ -1240,7 +1241,7 @@ void iwl3945_hw_txq_ctx_free(struct iwl3945_priv *priv)
1240 1241
1241void iwl3945_hw_txq_ctx_stop(struct iwl3945_priv *priv) 1242void iwl3945_hw_txq_ctx_stop(struct iwl3945_priv *priv)
1242{ 1243{
1243 int queue; 1244 int txq_id;
1244 unsigned long flags; 1245 unsigned long flags;
1245 1246
1246 spin_lock_irqsave(&priv->lock, flags); 1247 spin_lock_irqsave(&priv->lock, flags);
@@ -1254,10 +1255,10 @@ void iwl3945_hw_txq_ctx_stop(struct iwl3945_priv *priv)
1254 iwl3945_write_prph(priv, ALM_SCD_MODE_REG, 0); 1255 iwl3945_write_prph(priv, ALM_SCD_MODE_REG, 0);
1255 1256
1256 /* reset TFD queues */ 1257 /* reset TFD queues */
1257 for (queue = TFD_QUEUE_MIN; queue < TFD_QUEUE_MAX; queue++) { 1258 for (txq_id = 0; txq_id < TFD_QUEUE_MAX; txq_id++) {
1258 iwl3945_write_direct32(priv, FH_TCSR_CONFIG(queue), 0x0); 1259 iwl3945_write_direct32(priv, FH39_TCSR_CONFIG(txq_id), 0x0);
1259 iwl3945_poll_direct_bit(priv, FH_TSSR_TX_STATUS, 1260 iwl3945_poll_direct_bit(priv, FH39_TSSR_TX_STATUS,
1260 ALM_FH_TSSR_TX_STATUS_REG_MSK_CHNL_IDLE(queue), 1261 FH39_TSSR_TX_STATUS_REG_MSK_CHNL_IDLE(txq_id),
1261 1000); 1262 1000);
1262 } 1263 }
1263 1264
@@ -2307,9 +2308,9 @@ int iwl3945_hw_rxq_stop(struct iwl3945_priv *priv)
2307 return rc; 2308 return rc;
2308 } 2309 }
2309 2310
2310 iwl3945_write_direct32(priv, FH_RCSR_CONFIG(0), 0); 2311 iwl3945_write_direct32(priv, FH39_RCSR_CONFIG(0), 0);
2311 rc = iwl3945_poll_direct_bit(priv, FH_RSSR_STATUS, 2312 rc = iwl3945_poll_direct_bit(priv, FH39_RSSR_STATUS,
2312 FH_RSSR_CHNL0_RX_STATUS_CHNL_IDLE, 1000); 2313 FH39_RSSR_CHNL0_RX_STATUS_CHNL_IDLE, 1000);
2313 if (rc < 0) 2314 if (rc < 0)
2314 IWL_ERROR("Can't stop Rx DMA.\n"); 2315 IWL_ERROR("Can't stop Rx DMA.\n");
2315 2316
@@ -2335,19 +2336,19 @@ int iwl3945_hw_tx_queue_init(struct iwl3945_priv *priv, struct iwl3945_tx_queue
2335 spin_unlock_irqrestore(&priv->lock, flags); 2336 spin_unlock_irqrestore(&priv->lock, flags);
2336 return rc; 2337 return rc;
2337 } 2338 }
2338 iwl3945_write_direct32(priv, FH_CBCC_CTRL(txq_id), 0); 2339 iwl3945_write_direct32(priv, FH39_CBCC_CTRL(txq_id), 0);
2339 iwl3945_write_direct32(priv, FH_CBCC_BASE(txq_id), 0); 2340 iwl3945_write_direct32(priv, FH39_CBCC_BASE(txq_id), 0);
2340 2341
2341 iwl3945_write_direct32(priv, FH_TCSR_CONFIG(txq_id), 2342 iwl3945_write_direct32(priv, FH39_TCSR_CONFIG(txq_id),
2342 ALM_FH_TCSR_TX_CONFIG_REG_VAL_CIRQ_RTC_NOINT | 2343 FH39_TCSR_TX_CONFIG_REG_VAL_CIRQ_RTC_NOINT |
2343 ALM_FH_TCSR_TX_CONFIG_REG_VAL_MSG_MODE_TXF | 2344 FH39_TCSR_TX_CONFIG_REG_VAL_MSG_MODE_TXF |
2344 ALM_FH_TCSR_TX_CONFIG_REG_VAL_CIRQ_HOST_IFTFD | 2345 FH39_TCSR_TX_CONFIG_REG_VAL_CIRQ_HOST_IFTFD |
2345 ALM_FH_TCSR_TX_CONFIG_REG_VAL_DMA_CREDIT_ENABLE_VAL | 2346 FH39_TCSR_TX_CONFIG_REG_VAL_DMA_CREDIT_ENABLE_VAL |
2346 ALM_FH_TCSR_TX_CONFIG_REG_VAL_DMA_CHNL_ENABLE); 2347 FH39_TCSR_TX_CONFIG_REG_VAL_DMA_CHNL_ENABLE);
2347 iwl3945_release_nic_access(priv); 2348 iwl3945_release_nic_access(priv);
2348 2349
2349 /* fake read to flush all prev. writes */ 2350 /* fake read to flush all prev. writes */
2350 iwl3945_read32(priv, FH_TSSR_CBB_BASE); 2351 iwl3945_read32(priv, FH39_TSSR_CBB_BASE);
2351 spin_unlock_irqrestore(&priv->lock, flags); 2352 spin_unlock_irqrestore(&priv->lock, flags);
2352 2353
2353 return 0; 2354 return 0;