diff options
author | Tomas Winkler <tomas.winkler@intel.com> | 2008-12-18 21:37:01 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-01-29 15:58:50 -0500 |
commit | bddadf86fb284f237d6e2d3496772c8f5c68370e (patch) | |
tree | f605f0b6c8fd77c73feefe645f31e3f78bd91650 /drivers/net/wireless/iwlwifi/iwl-3945.c | |
parent | 7cbf0ba5193d1f3bb3caaa06668e22bc86776e41 (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.c | 83 |
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 | ||
1241 | void iwl3945_hw_txq_ctx_stop(struct iwl3945_priv *priv) | 1242 | void 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; |