aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/iwlwifi')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-1000.c4
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-2000.c4
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-5000.c8
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-6000.c4
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn.c4
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-commands.h1
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-core.c2
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-shared.h9
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-trans.c9
9 files changed, 7 insertions, 38 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-1000.c b/drivers/net/wireless/iwlwifi/iwl-1000.c
index bd0ce3993b52..7d60cd2f49c6 100644
--- a/drivers/net/wireless/iwlwifi/iwl-1000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-1000.c
@@ -129,10 +129,6 @@ static int iwl1000_hw_set_hw_params(struct iwl_priv *priv)
129 iwlagn_mod_params.num_of_queues; 129 iwlagn_mod_params.num_of_queues;
130 130
131 hw_params(priv).max_txq_num = priv->cfg->base_params->num_of_queues; 131 hw_params(priv).max_txq_num = priv->cfg->base_params->num_of_queues;
132 hw_params(priv).scd_bc_tbls_size =
133 priv->cfg->base_params->num_of_queues *
134 sizeof(struct iwlagn_scd_bc_tbl);
135 hw_params(priv).tfd_size = sizeof(struct iwl_tfd);
136 hw_params(priv).max_stations = IWLAGN_STATION_COUNT; 132 hw_params(priv).max_stations = IWLAGN_STATION_COUNT;
137 priv->contexts[IWL_RXON_CTX_BSS].bcast_sta_id = IWLAGN_BROADCAST_ID; 133 priv->contexts[IWL_RXON_CTX_BSS].bcast_sta_id = IWLAGN_BROADCAST_ID;
138 134
diff --git a/drivers/net/wireless/iwlwifi/iwl-2000.c b/drivers/net/wireless/iwlwifi/iwl-2000.c
index 1a36edf05ee4..8d71eec36699 100644
--- a/drivers/net/wireless/iwlwifi/iwl-2000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-2000.c
@@ -126,10 +126,6 @@ static int iwl2000_hw_set_hw_params(struct iwl_priv *priv)
126 iwlagn_mod_params.num_of_queues; 126 iwlagn_mod_params.num_of_queues;
127 127
128 hw_params(priv).max_txq_num = priv->cfg->base_params->num_of_queues; 128 hw_params(priv).max_txq_num = priv->cfg->base_params->num_of_queues;
129 hw_params(priv).scd_bc_tbls_size =
130 priv->cfg->base_params->num_of_queues *
131 sizeof(struct iwlagn_scd_bc_tbl);
132 hw_params(priv).tfd_size = sizeof(struct iwl_tfd);
133 hw_params(priv).max_stations = IWLAGN_STATION_COUNT; 129 hw_params(priv).max_stations = IWLAGN_STATION_COUNT;
134 priv->contexts[IWL_RXON_CTX_BSS].bcast_sta_id = IWLAGN_BROADCAST_ID; 130 priv->contexts[IWL_RXON_CTX_BSS].bcast_sta_id = IWLAGN_BROADCAST_ID;
135 131
diff --git a/drivers/net/wireless/iwlwifi/iwl-5000.c b/drivers/net/wireless/iwlwifi/iwl-5000.c
index 6048b3b8cd6a..55fdbf57df98 100644
--- a/drivers/net/wireless/iwlwifi/iwl-5000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-5000.c
@@ -157,10 +157,6 @@ static int iwl5000_hw_set_hw_params(struct iwl_priv *priv)
157 iwlagn_mod_params.num_of_queues; 157 iwlagn_mod_params.num_of_queues;
158 158
159 hw_params(priv).max_txq_num = priv->cfg->base_params->num_of_queues; 159 hw_params(priv).max_txq_num = priv->cfg->base_params->num_of_queues;
160 hw_params(priv).scd_bc_tbls_size =
161 priv->cfg->base_params->num_of_queues *
162 sizeof(struct iwlagn_scd_bc_tbl);
163 hw_params(priv).tfd_size = sizeof(struct iwl_tfd);
164 hw_params(priv).max_stations = IWLAGN_STATION_COUNT; 160 hw_params(priv).max_stations = IWLAGN_STATION_COUNT;
165 priv->contexts[IWL_RXON_CTX_BSS].bcast_sta_id = IWLAGN_BROADCAST_ID; 161 priv->contexts[IWL_RXON_CTX_BSS].bcast_sta_id = IWLAGN_BROADCAST_ID;
166 162
@@ -200,10 +196,6 @@ static int iwl5150_hw_set_hw_params(struct iwl_priv *priv)
200 iwlagn_mod_params.num_of_queues; 196 iwlagn_mod_params.num_of_queues;
201 197
202 hw_params(priv).max_txq_num = priv->cfg->base_params->num_of_queues; 198 hw_params(priv).max_txq_num = priv->cfg->base_params->num_of_queues;
203 hw_params(priv).scd_bc_tbls_size =
204 priv->cfg->base_params->num_of_queues *
205 sizeof(struct iwlagn_scd_bc_tbl);
206 hw_params(priv).tfd_size = sizeof(struct iwl_tfd);
207 hw_params(priv).max_stations = IWLAGN_STATION_COUNT; 199 hw_params(priv).max_stations = IWLAGN_STATION_COUNT;
208 priv->contexts[IWL_RXON_CTX_BSS].bcast_sta_id = IWLAGN_BROADCAST_ID; 200 priv->contexts[IWL_RXON_CTX_BSS].bcast_sta_id = IWLAGN_BROADCAST_ID;
209 201
diff --git a/drivers/net/wireless/iwlwifi/iwl-6000.c b/drivers/net/wireless/iwlwifi/iwl-6000.c
index c2cba80fb73f..63089bc28d9c 100644
--- a/drivers/net/wireless/iwlwifi/iwl-6000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-6000.c
@@ -146,10 +146,6 @@ static int iwl6000_hw_set_hw_params(struct iwl_priv *priv)
146 iwlagn_mod_params.num_of_queues; 146 iwlagn_mod_params.num_of_queues;
147 147
148 hw_params(priv).max_txq_num = priv->cfg->base_params->num_of_queues; 148 hw_params(priv).max_txq_num = priv->cfg->base_params->num_of_queues;
149 hw_params(priv).scd_bc_tbls_size =
150 priv->cfg->base_params->num_of_queues *
151 sizeof(struct iwlagn_scd_bc_tbl);
152 hw_params(priv).tfd_size = sizeof(struct iwl_tfd);
153 hw_params(priv).max_stations = IWLAGN_STATION_COUNT; 149 hw_params(priv).max_stations = IWLAGN_STATION_COUNT;
154 priv->contexts[IWL_RXON_CTX_BSS].bcast_sta_id = IWLAGN_BROADCAST_ID; 150 priv->contexts[IWL_RXON_CTX_BSS].bcast_sta_id = IWLAGN_BROADCAST_ID;
155 151
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
index bbdc475c74dd..61437438c843 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
@@ -3191,8 +3191,6 @@ static u32 iwl_hw_detect(struct iwl_priv *priv)
3191 3191
3192static int iwl_set_hw_params(struct iwl_priv *priv) 3192static int iwl_set_hw_params(struct iwl_priv *priv)
3193{ 3193{
3194 hw_params(priv).max_rxq_size = RX_QUEUE_SIZE;
3195 hw_params(priv).max_rxq_log = RX_QUEUE_SIZE_LOG;
3196 if (iwlagn_mod_params.amsdu_size_8K) 3194 if (iwlagn_mod_params.amsdu_size_8K)
3197 hw_params(priv).rx_page_order = 3195 hw_params(priv).rx_page_order =
3198 get_order(IWL_RX_BUF_SIZE_8K); 3196 get_order(IWL_RX_BUF_SIZE_8K);
@@ -3200,8 +3198,6 @@ static int iwl_set_hw_params(struct iwl_priv *priv)
3200 hw_params(priv).rx_page_order = 3198 hw_params(priv).rx_page_order =
3201 get_order(IWL_RX_BUF_SIZE_4K); 3199 get_order(IWL_RX_BUF_SIZE_4K);
3202 3200
3203 hw_params(priv).max_beacon_itrvl = IWL_MAX_UCODE_BEACON_INTERVAL;
3204
3205 if (iwlagn_mod_params.disable_11n) 3201 if (iwlagn_mod_params.disable_11n)
3206 priv->cfg->sku &= ~EEPROM_SKU_CAP_11N_ENABLE; 3202 priv->cfg->sku &= ~EEPROM_SKU_CAP_11N_ENABLE;
3207 3203
diff --git a/drivers/net/wireless/iwlwifi/iwl-commands.h b/drivers/net/wireless/iwlwifi/iwl-commands.h
index 86b974804ead..1426b2fb1c3a 100644
--- a/drivers/net/wireless/iwlwifi/iwl-commands.h
+++ b/drivers/net/wireless/iwlwifi/iwl-commands.h
@@ -673,7 +673,6 @@ struct iwl_rxon_assoc_cmd {
673 673
674#define IWL_CONN_MAX_LISTEN_INTERVAL 10 674#define IWL_CONN_MAX_LISTEN_INTERVAL 10
675#define IWL_MAX_UCODE_BEACON_INTERVAL 4 /* 4096 */ 675#define IWL_MAX_UCODE_BEACON_INTERVAL 4 /* 4096 */
676#define IWL39_MAX_UCODE_BEACON_INTERVAL 1 /* 1024 */
677 676
678/* 677/*
679 * REPLY_RXON_TIMING = 0x14 (command, has simple generic response) 678 * REPLY_RXON_TIMING = 0x14 (command, has simple generic response)
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.c b/drivers/net/wireless/iwlwifi/iwl-core.c
index cfc23c25e979..048c8e2578f5 100644
--- a/drivers/net/wireless/iwlwifi/iwl-core.c
+++ b/drivers/net/wireless/iwlwifi/iwl-core.c
@@ -359,7 +359,7 @@ int iwl_send_rxon_timing(struct iwl_priv *priv, struct iwl_rxon_context *ctx)
359 beacon_int = le16_to_cpu(ctx->timing.beacon_interval); 359 beacon_int = le16_to_cpu(ctx->timing.beacon_interval);
360 } else { 360 } else {
361 beacon_int = iwl_adjust_beacon_interval(beacon_int, 361 beacon_int = iwl_adjust_beacon_interval(beacon_int,
362 hw_params(priv).max_beacon_itrvl * TIME_UNIT); 362 IWL_MAX_UCODE_BEACON_INTERVAL * TIME_UNIT);
363 ctx->timing.beacon_interval = cpu_to_le16(beacon_int); 363 ctx->timing.beacon_interval = cpu_to_le16(beacon_int);
364 } 364 }
365 365
diff --git a/drivers/net/wireless/iwlwifi/iwl-shared.h b/drivers/net/wireless/iwlwifi/iwl-shared.h
index 1229eb3c098c..7145e48bd014 100644
--- a/drivers/net/wireless/iwlwifi/iwl-shared.h
+++ b/drivers/net/wireless/iwlwifi/iwl-shared.h
@@ -121,12 +121,8 @@ struct iwl_mod_params {
121/** 121/**
122 * struct iwl_hw_params 122 * struct iwl_hw_params
123 * @max_txq_num: Max # Tx queues supported 123 * @max_txq_num: Max # Tx queues supported
124 * @scd_bc_tbls_size: size of scheduler byte count tables
125 * @tfd_size: TFD size
126 * @tx/rx_chains_num: Number of TX/RX chains 124 * @tx/rx_chains_num: Number of TX/RX chains
127 * @valid_tx/rx_ant: usable antennas 125 * @valid_tx/rx_ant: usable antennas
128 * @max_rxq_size: Max # Rx frames in Rx queue (must be power-of-2)
129 * @max_rxq_log: Log-base-2 of max_rxq_size
130 * @rx_page_order: Rx buffer page order 126 * @rx_page_order: Rx buffer page order
131 * @rx_wrt_ptr_reg: FH{39}_RSCSR_CHNL0_WPTR 127 * @rx_wrt_ptr_reg: FH{39}_RSCSR_CHNL0_WPTR
132 * @max_stations: 128 * @max_stations:
@@ -142,18 +138,13 @@ struct iwl_mod_params {
142 */ 138 */
143struct iwl_hw_params { 139struct iwl_hw_params {
144 u8 max_txq_num; 140 u8 max_txq_num;
145 u16 scd_bc_tbls_size;
146 u32 tfd_size;
147 u8 tx_chains_num; 141 u8 tx_chains_num;
148 u8 rx_chains_num; 142 u8 rx_chains_num;
149 u8 valid_tx_ant; 143 u8 valid_tx_ant;
150 u8 valid_rx_ant; 144 u8 valid_rx_ant;
151 u16 max_rxq_size;
152 u16 max_rxq_log;
153 u32 rx_page_order; 145 u32 rx_page_order;
154 u8 max_stations; 146 u8 max_stations;
155 u8 ht40_channel; 147 u8 ht40_channel;
156 u8 max_beacon_itrvl; /* in 1024 ms */
157 u32 max_inst_size; 148 u32 max_inst_size;
158 u32 max_data_size; 149 u32 max_data_size;
159 u32 ct_kill_threshold; /* value in hw-dependent units */ 150 u32 ct_kill_threshold; /* value in hw-dependent units */
diff --git a/drivers/net/wireless/iwlwifi/iwl-trans.c b/drivers/net/wireless/iwlwifi/iwl-trans.c
index 2ffacb2b2d77..4f3fdcaa63bc 100644
--- a/drivers/net/wireless/iwlwifi/iwl-trans.c
+++ b/drivers/net/wireless/iwlwifi/iwl-trans.c
@@ -302,7 +302,7 @@ static int iwl_trans_txq_alloc(struct iwl_trans *trans,
302 struct iwl_tx_queue *txq, int slots_num, 302 struct iwl_tx_queue *txq, int slots_num,
303 u32 txq_id) 303 u32 txq_id)
304{ 304{
305 size_t tfd_sz = hw_params(trans).tfd_size * TFD_QUEUE_SIZE_MAX; 305 size_t tfd_sz = sizeof(struct iwl_tfd) * TFD_QUEUE_SIZE_MAX;
306 int i; 306 int i;
307 307
308 if (WARN_ON(txq->meta || txq->cmd || txq->txb || txq->tfds)) 308 if (WARN_ON(txq->meta || txq->cmd || txq->txb || txq->tfds))
@@ -448,7 +448,7 @@ static void iwl_tx_queue_free(struct iwl_trans *trans, int txq_id)
448 448
449 /* De-alloc circular buffer of TFDs */ 449 /* De-alloc circular buffer of TFDs */
450 if (txq->q.n_bd) { 450 if (txq->q.n_bd) {
451 dma_free_coherent(dev, hw_params(trans).tfd_size * 451 dma_free_coherent(dev, sizeof(struct iwl_tfd) *
452 txq->q.n_bd, txq->tfds, txq->q.dma_addr); 452 txq->q.n_bd, txq->tfds, txq->q.dma_addr);
453 memset(&txq->q.dma_addr, 0, sizeof(txq->q.dma_addr)); 453 memset(&txq->q.dma_addr, 0, sizeof(txq->q.dma_addr));
454 } 454 }
@@ -509,6 +509,9 @@ static int iwl_trans_tx_alloc(struct iwl_trans *trans)
509 struct iwl_trans_pcie *trans_pcie = 509 struct iwl_trans_pcie *trans_pcie =
510 IWL_TRANS_GET_PCIE_TRANS(trans); 510 IWL_TRANS_GET_PCIE_TRANS(trans);
511 511
512 u16 scd_bc_tbls_size = priv->cfg->base_params->num_of_queues *
513 sizeof(struct iwlagn_scd_bc_tbl);
514
512 /*It is not allowed to alloc twice, so warn when this happens. 515 /*It is not allowed to alloc twice, so warn when this happens.
513 * We cannot rely on the previous allocation, so free and fail */ 516 * We cannot rely on the previous allocation, so free and fail */
514 if (WARN_ON(priv->txq)) { 517 if (WARN_ON(priv->txq)) {
@@ -517,7 +520,7 @@ static int iwl_trans_tx_alloc(struct iwl_trans *trans)
517 } 520 }
518 521
519 ret = iwlagn_alloc_dma_ptr(trans, &trans_pcie->scd_bc_tbls, 522 ret = iwlagn_alloc_dma_ptr(trans, &trans_pcie->scd_bc_tbls,
520 hw_params(trans).scd_bc_tbls_size); 523 scd_bc_tbls_size);
521 if (ret) { 524 if (ret) {
522 IWL_ERR(trans, "Scheduler BC Table allocation failed\n"); 525 IWL_ERR(trans, "Scheduler BC Table allocation failed\n");
523 goto error; 526 goto error;