diff options
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-3945-led.c | 56 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-3945-rs.c | 4 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-3945.c | 66 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-3945.h | 24 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl3945-base.c | 376 |
5 files changed, 263 insertions, 263 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-3945-led.c b/drivers/net/wireless/iwlwifi/iwl-3945-led.c index 32d09ba3e694..1ef21b6b3c4f 100644 --- a/drivers/net/wireless/iwlwifi/iwl-3945-led.c +++ b/drivers/net/wireless/iwlwifi/iwl-3945-led.c | |||
@@ -313,66 +313,66 @@ int iwl3945_led_register(struct iwl3945_priv *priv) | |||
313 | priv->allow_blinking = 0; | 313 | priv->allow_blinking = 0; |
314 | 314 | ||
315 | trigger = ieee80211_get_radio_led_name(priv->hw); | 315 | trigger = ieee80211_get_radio_led_name(priv->hw); |
316 | snprintf(priv->led[IWL_LED_TRG_RADIO].name, | 316 | snprintf(priv->led39[IWL_LED_TRG_RADIO].name, |
317 | sizeof(priv->led[IWL_LED_TRG_RADIO].name), "iwl-%s:radio", | 317 | sizeof(priv->led39[IWL_LED_TRG_RADIO].name), "iwl-%s:radio", |
318 | wiphy_name(priv->hw->wiphy)); | 318 | wiphy_name(priv->hw->wiphy)); |
319 | 319 | ||
320 | priv->led[IWL_LED_TRG_RADIO].led_on = iwl3945_led_on; | 320 | priv->led39[IWL_LED_TRG_RADIO].led_on = iwl3945_led_on; |
321 | priv->led[IWL_LED_TRG_RADIO].led_off = iwl3945_led_off; | 321 | priv->led39[IWL_LED_TRG_RADIO].led_off = iwl3945_led_off; |
322 | priv->led[IWL_LED_TRG_RADIO].led_pattern = NULL; | 322 | priv->led39[IWL_LED_TRG_RADIO].led_pattern = NULL; |
323 | 323 | ||
324 | ret = iwl3945_led_register_led(priv, | 324 | ret = iwl3945_led_register_led(priv, |
325 | &priv->led[IWL_LED_TRG_RADIO], | 325 | &priv->led39[IWL_LED_TRG_RADIO], |
326 | IWL_LED_TRG_RADIO, 1, trigger); | 326 | IWL_LED_TRG_RADIO, 1, trigger); |
327 | 327 | ||
328 | if (ret) | 328 | if (ret) |
329 | goto exit_fail; | 329 | goto exit_fail; |
330 | 330 | ||
331 | trigger = ieee80211_get_assoc_led_name(priv->hw); | 331 | trigger = ieee80211_get_assoc_led_name(priv->hw); |
332 | snprintf(priv->led[IWL_LED_TRG_ASSOC].name, | 332 | snprintf(priv->led39[IWL_LED_TRG_ASSOC].name, |
333 | sizeof(priv->led[IWL_LED_TRG_ASSOC].name), "iwl-%s:assoc", | 333 | sizeof(priv->led39[IWL_LED_TRG_ASSOC].name), "iwl-%s:assoc", |
334 | wiphy_name(priv->hw->wiphy)); | 334 | wiphy_name(priv->hw->wiphy)); |
335 | 335 | ||
336 | ret = iwl3945_led_register_led(priv, | 336 | ret = iwl3945_led_register_led(priv, |
337 | &priv->led[IWL_LED_TRG_ASSOC], | 337 | &priv->led39[IWL_LED_TRG_ASSOC], |
338 | IWL_LED_TRG_ASSOC, 0, trigger); | 338 | IWL_LED_TRG_ASSOC, 0, trigger); |
339 | 339 | ||
340 | /* for assoc always turn led on */ | 340 | /* for assoc always turn led on */ |
341 | priv->led[IWL_LED_TRG_ASSOC].led_on = iwl3945_led_on; | 341 | priv->led39[IWL_LED_TRG_ASSOC].led_on = iwl3945_led_on; |
342 | priv->led[IWL_LED_TRG_ASSOC].led_off = iwl3945_led_on; | 342 | priv->led39[IWL_LED_TRG_ASSOC].led_off = iwl3945_led_on; |
343 | priv->led[IWL_LED_TRG_ASSOC].led_pattern = NULL; | 343 | priv->led39[IWL_LED_TRG_ASSOC].led_pattern = NULL; |
344 | 344 | ||
345 | if (ret) | 345 | if (ret) |
346 | goto exit_fail; | 346 | goto exit_fail; |
347 | 347 | ||
348 | trigger = ieee80211_get_rx_led_name(priv->hw); | 348 | trigger = ieee80211_get_rx_led_name(priv->hw); |
349 | snprintf(priv->led[IWL_LED_TRG_RX].name, | 349 | snprintf(priv->led39[IWL_LED_TRG_RX].name, |
350 | sizeof(priv->led[IWL_LED_TRG_RX].name), "iwl-%s:RX", | 350 | sizeof(priv->led39[IWL_LED_TRG_RX].name), "iwl-%s:RX", |
351 | wiphy_name(priv->hw->wiphy)); | 351 | wiphy_name(priv->hw->wiphy)); |
352 | 352 | ||
353 | ret = iwl3945_led_register_led(priv, | 353 | ret = iwl3945_led_register_led(priv, |
354 | &priv->led[IWL_LED_TRG_RX], | 354 | &priv->led39[IWL_LED_TRG_RX], |
355 | IWL_LED_TRG_RX, 0, trigger); | 355 | IWL_LED_TRG_RX, 0, trigger); |
356 | 356 | ||
357 | priv->led[IWL_LED_TRG_RX].led_on = iwl3945_led_associated; | 357 | priv->led39[IWL_LED_TRG_RX].led_on = iwl3945_led_associated; |
358 | priv->led[IWL_LED_TRG_RX].led_off = iwl3945_led_associated; | 358 | priv->led39[IWL_LED_TRG_RX].led_off = iwl3945_led_associated; |
359 | priv->led[IWL_LED_TRG_RX].led_pattern = iwl3945_led_pattern; | 359 | priv->led39[IWL_LED_TRG_RX].led_pattern = iwl3945_led_pattern; |
360 | 360 | ||
361 | if (ret) | 361 | if (ret) |
362 | goto exit_fail; | 362 | goto exit_fail; |
363 | 363 | ||
364 | trigger = ieee80211_get_tx_led_name(priv->hw); | 364 | trigger = ieee80211_get_tx_led_name(priv->hw); |
365 | snprintf(priv->led[IWL_LED_TRG_TX].name, | 365 | snprintf(priv->led39[IWL_LED_TRG_TX].name, |
366 | sizeof(priv->led[IWL_LED_TRG_TX].name), "iwl-%s:TX", | 366 | sizeof(priv->led39[IWL_LED_TRG_TX].name), "iwl-%s:TX", |
367 | wiphy_name(priv->hw->wiphy)); | 367 | wiphy_name(priv->hw->wiphy)); |
368 | 368 | ||
369 | ret = iwl3945_led_register_led(priv, | 369 | ret = iwl3945_led_register_led(priv, |
370 | &priv->led[IWL_LED_TRG_TX], | 370 | &priv->led39[IWL_LED_TRG_TX], |
371 | IWL_LED_TRG_TX, 0, trigger); | 371 | IWL_LED_TRG_TX, 0, trigger); |
372 | 372 | ||
373 | priv->led[IWL_LED_TRG_TX].led_on = iwl3945_led_associated; | 373 | priv->led39[IWL_LED_TRG_TX].led_on = iwl3945_led_associated; |
374 | priv->led[IWL_LED_TRG_TX].led_off = iwl3945_led_associated; | 374 | priv->led39[IWL_LED_TRG_TX].led_off = iwl3945_led_associated; |
375 | priv->led[IWL_LED_TRG_TX].led_pattern = iwl3945_led_pattern; | 375 | priv->led39[IWL_LED_TRG_TX].led_pattern = iwl3945_led_pattern; |
376 | 376 | ||
377 | if (ret) | 377 | if (ret) |
378 | goto exit_fail; | 378 | goto exit_fail; |
@@ -401,9 +401,9 @@ static void iwl3945_led_unregister_led(struct iwl3945_led *led, u8 set_led) | |||
401 | /* Unregister all led handlers */ | 401 | /* Unregister all led handlers */ |
402 | void iwl3945_led_unregister(struct iwl3945_priv *priv) | 402 | void iwl3945_led_unregister(struct iwl3945_priv *priv) |
403 | { | 403 | { |
404 | iwl3945_led_unregister_led(&priv->led[IWL_LED_TRG_ASSOC], 0); | 404 | iwl3945_led_unregister_led(&priv->led39[IWL_LED_TRG_ASSOC], 0); |
405 | iwl3945_led_unregister_led(&priv->led[IWL_LED_TRG_RX], 0); | 405 | iwl3945_led_unregister_led(&priv->led39[IWL_LED_TRG_RX], 0); |
406 | iwl3945_led_unregister_led(&priv->led[IWL_LED_TRG_TX], 0); | 406 | iwl3945_led_unregister_led(&priv->led39[IWL_LED_TRG_TX], 0); |
407 | iwl3945_led_unregister_led(&priv->led[IWL_LED_TRG_RADIO], 1); | 407 | iwl3945_led_unregister_led(&priv->led39[IWL_LED_TRG_RADIO], 1); |
408 | } | 408 | } |
409 | 409 | ||
diff --git a/drivers/net/wireless/iwlwifi/iwl-3945-rs.c b/drivers/net/wireless/iwlwifi/iwl-3945-rs.c index 3fa9570f82b4..daaac3196ce1 100644 --- a/drivers/net/wireless/iwlwifi/iwl-3945-rs.c +++ b/drivers/net/wireless/iwlwifi/iwl-3945-rs.c | |||
@@ -901,7 +901,7 @@ void iwl3945_rate_scale_init(struct ieee80211_hw *hw, s32 sta_id) | |||
901 | 901 | ||
902 | rcu_read_lock(); | 902 | rcu_read_lock(); |
903 | 903 | ||
904 | sta = ieee80211_find_sta(hw, priv->stations[sta_id].sta.sta.addr); | 904 | sta = ieee80211_find_sta(hw, priv->stations_39[sta_id].sta.sta.addr); |
905 | if (!sta) { | 905 | if (!sta) { |
906 | rcu_read_unlock(); | 906 | rcu_read_unlock(); |
907 | return; | 907 | return; |
@@ -916,7 +916,7 @@ void iwl3945_rate_scale_init(struct ieee80211_hw *hw, s32 sta_id) | |||
916 | switch (priv->band) { | 916 | switch (priv->band) { |
917 | case IEEE80211_BAND_2GHZ: | 917 | case IEEE80211_BAND_2GHZ: |
918 | /* TODO: this always does G, not a regression */ | 918 | /* TODO: this always does G, not a regression */ |
919 | if (priv->active_rxon.flags & RXON_FLG_TGG_PROTECT_MSK) { | 919 | if (priv->active39_rxon.flags & RXON_FLG_TGG_PROTECT_MSK) { |
920 | rs_sta->tgg = 1; | 920 | rs_sta->tgg = 1; |
921 | rs_sta->expected_tpt = iwl3945_expected_tpt_g_prot; | 921 | rs_sta->expected_tpt = iwl3945_expected_tpt_g_prot; |
922 | } else | 922 | } else |
diff --git a/drivers/net/wireless/iwlwifi/iwl-3945.c b/drivers/net/wireless/iwlwifi/iwl-3945.c index b5b23b1ad240..f480c437cd66 100644 --- a/drivers/net/wireless/iwlwifi/iwl-3945.c +++ b/drivers/net/wireless/iwlwifi/iwl-3945.c | |||
@@ -199,7 +199,7 @@ static int iwl3945_hwrate_to_plcp_idx(u8 plcp) | |||
199 | * iwl3945_get_antenna_flags - Get antenna flags for RXON command | 199 | * iwl3945_get_antenna_flags - Get antenna flags for RXON command |
200 | * @priv: eeprom and antenna fields are used to determine antenna flags | 200 | * @priv: eeprom and antenna fields are used to determine antenna flags |
201 | * | 201 | * |
202 | * priv->eeprom is used to determine if antenna AUX/MAIN are reversed | 202 | * priv->eeprom39 is used to determine if antenna AUX/MAIN are reversed |
203 | * priv->antenna specifies the antenna diversity mode: | 203 | * priv->antenna specifies the antenna diversity mode: |
204 | * | 204 | * |
205 | * IWL_ANTENNA_DIVERSITY - NIC selects best antenna by itself | 205 | * IWL_ANTENNA_DIVERSITY - NIC selects best antenna by itself |
@@ -213,12 +213,12 @@ __le32 iwl3945_get_antenna_flags(const struct iwl3945_priv *priv) | |||
213 | return 0; | 213 | return 0; |
214 | 214 | ||
215 | case IWL_ANTENNA_MAIN: | 215 | case IWL_ANTENNA_MAIN: |
216 | if (priv->eeprom.antenna_switch_type) | 216 | if (priv->eeprom39.antenna_switch_type) |
217 | return RXON_FLG_DIS_DIV_MSK | RXON_FLG_ANT_B_MSK; | 217 | return RXON_FLG_DIS_DIV_MSK | RXON_FLG_ANT_B_MSK; |
218 | return RXON_FLG_DIS_DIV_MSK | RXON_FLG_ANT_A_MSK; | 218 | return RXON_FLG_DIS_DIV_MSK | RXON_FLG_ANT_A_MSK; |
219 | 219 | ||
220 | case IWL_ANTENNA_AUX: | 220 | case IWL_ANTENNA_AUX: |
221 | if (priv->eeprom.antenna_switch_type) | 221 | if (priv->eeprom39.antenna_switch_type) |
222 | return RXON_FLG_DIS_DIV_MSK | RXON_FLG_ANT_A_MSK; | 222 | return RXON_FLG_DIS_DIV_MSK | RXON_FLG_ANT_A_MSK; |
223 | return RXON_FLG_DIS_DIV_MSK | RXON_FLG_ANT_B_MSK; | 223 | return RXON_FLG_DIS_DIV_MSK | RXON_FLG_ANT_B_MSK; |
224 | } | 224 | } |
@@ -305,7 +305,7 @@ int iwl3945_rs_next_rate(struct iwl3945_priv *priv, int rate) | |||
305 | static void iwl3945_tx_queue_reclaim(struct iwl3945_priv *priv, | 305 | static void iwl3945_tx_queue_reclaim(struct iwl3945_priv *priv, |
306 | int txq_id, int index) | 306 | int txq_id, int index) |
307 | { | 307 | { |
308 | struct iwl3945_tx_queue *txq = &priv->txq[txq_id]; | 308 | struct iwl3945_tx_queue *txq = &priv->txq39[txq_id]; |
309 | struct iwl_queue *q = &txq->q; | 309 | struct iwl_queue *q = &txq->q; |
310 | struct iwl3945_tx_info *tx_info; | 310 | struct iwl3945_tx_info *tx_info; |
311 | 311 | ||
@@ -336,7 +336,7 @@ static void iwl3945_rx_reply_tx(struct iwl3945_priv *priv, | |||
336 | u16 sequence = le16_to_cpu(pkt->hdr.sequence); | 336 | u16 sequence = le16_to_cpu(pkt->hdr.sequence); |
337 | int txq_id = SEQ_TO_QUEUE(sequence); | 337 | int txq_id = SEQ_TO_QUEUE(sequence); |
338 | int index = SEQ_TO_INDEX(sequence); | 338 | int index = SEQ_TO_INDEX(sequence); |
339 | struct iwl3945_tx_queue *txq = &priv->txq[txq_id]; | 339 | struct iwl3945_tx_queue *txq = &priv->txq39[txq_id]; |
340 | struct ieee80211_tx_info *info; | 340 | struct ieee80211_tx_info *info; |
341 | struct iwl3945_tx_resp *tx_resp = (void *)&pkt->u.raw[0]; | 341 | struct iwl3945_tx_resp *tx_resp = (void *)&pkt->u.raw[0]; |
342 | u32 status = le32_to_cpu(tx_resp->status); | 342 | u32 status = le32_to_cpu(tx_resp->status); |
@@ -396,7 +396,7 @@ void iwl3945_hw_rx_statistics(struct iwl3945_priv *priv, struct iwl_rx_mem_buffe | |||
396 | (int)sizeof(struct iwl3945_notif_statistics), | 396 | (int)sizeof(struct iwl3945_notif_statistics), |
397 | le32_to_cpu(pkt->len)); | 397 | le32_to_cpu(pkt->len)); |
398 | 398 | ||
399 | memcpy(&priv->statistics, pkt->u.raw, sizeof(priv->statistics)); | 399 | memcpy(&priv->statistics_39, pkt->u.raw, sizeof(priv->statistics_39)); |
400 | 400 | ||
401 | iwl3945_led_background(priv); | 401 | iwl3945_led_background(priv); |
402 | 402 | ||
@@ -808,9 +808,9 @@ u8 iwl3945_hw_find_station(struct iwl3945_priv *priv, const u8 *addr) | |||
808 | 808 | ||
809 | spin_lock_irqsave(&priv->sta_lock, flags); | 809 | spin_lock_irqsave(&priv->sta_lock, flags); |
810 | for (i = start; i < priv->hw_params.max_stations; i++) | 810 | for (i = start; i < priv->hw_params.max_stations; i++) |
811 | if ((priv->stations[i].used) && | 811 | if ((priv->stations_39[i].used) && |
812 | (!compare_ether_addr | 812 | (!compare_ether_addr |
813 | (priv->stations[i].sta.sta.addr, addr))) { | 813 | (priv->stations_39[i].sta.sta.addr, addr))) { |
814 | ret = i; | 814 | ret = i; |
815 | goto out; | 815 | goto out; |
816 | } | 816 | } |
@@ -905,7 +905,7 @@ u8 iwl3945_sync_sta(struct iwl3945_priv *priv, int sta_id, u16 tx_rate, u8 flags | |||
905 | return IWL_INVALID_STATION; | 905 | return IWL_INVALID_STATION; |
906 | 906 | ||
907 | spin_lock_irqsave(&priv->sta_lock, flags_spin); | 907 | spin_lock_irqsave(&priv->sta_lock, flags_spin); |
908 | station = &priv->stations[sta_id]; | 908 | station = &priv->stations_39[sta_id]; |
909 | 909 | ||
910 | station->sta.sta.modify_mask = STA_MODIFY_TX_RATE_MSK; | 910 | station->sta.sta.modify_mask = STA_MODIFY_TX_RATE_MSK; |
911 | station->sta.rate_n_flags = cpu_to_le16(tx_rate); | 911 | station->sta.rate_n_flags = cpu_to_le16(tx_rate); |
@@ -1062,7 +1062,7 @@ static int iwl3945_txq_ctx_reset(struct iwl3945_priv *priv) | |||
1062 | for (txq_id = 0; txq_id < TFD_QUEUE_MAX; txq_id++) { | 1062 | for (txq_id = 0; txq_id < TFD_QUEUE_MAX; txq_id++) { |
1063 | slots_num = (txq_id == IWL_CMD_QUEUE_NUM) ? | 1063 | slots_num = (txq_id == IWL_CMD_QUEUE_NUM) ? |
1064 | TFD_CMD_SLOTS : TFD_TX_CMD_SLOTS; | 1064 | TFD_CMD_SLOTS : TFD_TX_CMD_SLOTS; |
1065 | rc = iwl3945_tx_queue_init(priv, &priv->txq[txq_id], slots_num, | 1065 | rc = iwl3945_tx_queue_init(priv, &priv->txq39[txq_id], slots_num, |
1066 | txq_id); | 1066 | txq_id); |
1067 | if (rc) { | 1067 | if (rc) { |
1068 | IWL_ERROR("Tx %d queue init failed\n", txq_id); | 1068 | IWL_ERROR("Tx %d queue init failed\n", txq_id); |
@@ -1135,42 +1135,42 @@ int iwl3945_hw_nic_init(struct iwl3945_priv *priv) | |||
1135 | CSR39_HW_IF_CONFIG_REG_BIT_3945_MM); | 1135 | CSR39_HW_IF_CONFIG_REG_BIT_3945_MM); |
1136 | } | 1136 | } |
1137 | 1137 | ||
1138 | if (EEPROM_SKU_CAP_OP_MODE_MRC == priv->eeprom.sku_cap) { | 1138 | if (EEPROM_SKU_CAP_OP_MODE_MRC == priv->eeprom39.sku_cap) { |
1139 | IWL_DEBUG_INFO("SKU OP mode is mrc\n"); | 1139 | IWL_DEBUG_INFO("SKU OP mode is mrc\n"); |
1140 | iwl3945_set_bit(priv, CSR_HW_IF_CONFIG_REG, | 1140 | iwl3945_set_bit(priv, CSR_HW_IF_CONFIG_REG, |
1141 | CSR39_HW_IF_CONFIG_REG_BIT_SKU_MRC); | 1141 | CSR39_HW_IF_CONFIG_REG_BIT_SKU_MRC); |
1142 | } else | 1142 | } else |
1143 | IWL_DEBUG_INFO("SKU OP mode is basic\n"); | 1143 | IWL_DEBUG_INFO("SKU OP mode is basic\n"); |
1144 | 1144 | ||
1145 | if ((priv->eeprom.board_revision & 0xF0) == 0xD0) { | 1145 | if ((priv->eeprom39.board_revision & 0xF0) == 0xD0) { |
1146 | IWL_DEBUG_INFO("3945ABG revision is 0x%X\n", | 1146 | IWL_DEBUG_INFO("3945ABG revision is 0x%X\n", |
1147 | priv->eeprom.board_revision); | 1147 | priv->eeprom39.board_revision); |
1148 | iwl3945_set_bit(priv, CSR_HW_IF_CONFIG_REG, | 1148 | iwl3945_set_bit(priv, CSR_HW_IF_CONFIG_REG, |
1149 | CSR39_HW_IF_CONFIG_REG_BIT_BOARD_TYPE); | 1149 | CSR39_HW_IF_CONFIG_REG_BIT_BOARD_TYPE); |
1150 | } else { | 1150 | } else { |
1151 | IWL_DEBUG_INFO("3945ABG revision is 0x%X\n", | 1151 | IWL_DEBUG_INFO("3945ABG revision is 0x%X\n", |
1152 | priv->eeprom.board_revision); | 1152 | priv->eeprom39.board_revision); |
1153 | iwl3945_clear_bit(priv, CSR_HW_IF_CONFIG_REG, | 1153 | iwl3945_clear_bit(priv, CSR_HW_IF_CONFIG_REG, |
1154 | CSR39_HW_IF_CONFIG_REG_BIT_BOARD_TYPE); | 1154 | CSR39_HW_IF_CONFIG_REG_BIT_BOARD_TYPE); |
1155 | } | 1155 | } |
1156 | 1156 | ||
1157 | if (priv->eeprom.almgor_m_version <= 1) { | 1157 | if (priv->eeprom39.almgor_m_version <= 1) { |
1158 | iwl3945_set_bit(priv, CSR_HW_IF_CONFIG_REG, | 1158 | iwl3945_set_bit(priv, CSR_HW_IF_CONFIG_REG, |
1159 | CSR39_HW_IF_CONFIG_REG_BITS_SILICON_TYPE_A); | 1159 | CSR39_HW_IF_CONFIG_REG_BITS_SILICON_TYPE_A); |
1160 | IWL_DEBUG_INFO("Card M type A version is 0x%X\n", | 1160 | IWL_DEBUG_INFO("Card M type A version is 0x%X\n", |
1161 | priv->eeprom.almgor_m_version); | 1161 | priv->eeprom39.almgor_m_version); |
1162 | } else { | 1162 | } else { |
1163 | IWL_DEBUG_INFO("Card M type B version is 0x%X\n", | 1163 | IWL_DEBUG_INFO("Card M type B version is 0x%X\n", |
1164 | priv->eeprom.almgor_m_version); | 1164 | priv->eeprom39.almgor_m_version); |
1165 | iwl3945_set_bit(priv, CSR_HW_IF_CONFIG_REG, | 1165 | iwl3945_set_bit(priv, CSR_HW_IF_CONFIG_REG, |
1166 | CSR39_HW_IF_CONFIG_REG_BITS_SILICON_TYPE_B); | 1166 | CSR39_HW_IF_CONFIG_REG_BITS_SILICON_TYPE_B); |
1167 | } | 1167 | } |
1168 | spin_unlock_irqrestore(&priv->lock, flags); | 1168 | spin_unlock_irqrestore(&priv->lock, flags); |
1169 | 1169 | ||
1170 | if (priv->eeprom.sku_cap & EEPROM_SKU_CAP_SW_RF_KILL_ENABLE) | 1170 | if (priv->eeprom39.sku_cap & EEPROM_SKU_CAP_SW_RF_KILL_ENABLE) |
1171 | IWL_DEBUG_RF_KILL("SW RF KILL supported in EEPROM.\n"); | 1171 | IWL_DEBUG_RF_KILL("SW RF KILL supported in EEPROM.\n"); |
1172 | 1172 | ||
1173 | if (priv->eeprom.sku_cap & EEPROM_SKU_CAP_HW_RF_KILL_ENABLE) | 1173 | if (priv->eeprom39.sku_cap & EEPROM_SKU_CAP_HW_RF_KILL_ENABLE) |
1174 | IWL_DEBUG_RF_KILL("HW RF KILL supported in EEPROM.\n"); | 1174 | IWL_DEBUG_RF_KILL("HW RF KILL supported in EEPROM.\n"); |
1175 | 1175 | ||
1176 | /* Allocate the RX queue, or reset if it is already allocated */ | 1176 | /* Allocate the RX queue, or reset if it is already allocated */ |
@@ -1224,7 +1224,7 @@ void iwl3945_hw_txq_ctx_free(struct iwl3945_priv *priv) | |||
1224 | 1224 | ||
1225 | /* Tx queues */ | 1225 | /* Tx queues */ |
1226 | for (txq_id = 0; txq_id < TFD_QUEUE_MAX; txq_id++) | 1226 | for (txq_id = 0; txq_id < TFD_QUEUE_MAX; txq_id++) |
1227 | iwl3945_tx_queue_free(priv, &priv->txq[txq_id]); | 1227 | iwl3945_tx_queue_free(priv, &priv->txq39[txq_id]); |
1228 | } | 1228 | } |
1229 | 1229 | ||
1230 | void iwl3945_hw_txq_ctx_stop(struct iwl3945_priv *priv) | 1230 | void iwl3945_hw_txq_ctx_stop(struct iwl3945_priv *priv) |
@@ -1382,7 +1382,7 @@ static int iwl3945_hw_reg_txpower_get_temperature(struct iwl3945_priv *priv) | |||
1382 | /* if really really hot(?), | 1382 | /* if really really hot(?), |
1383 | * substitute the 3rd band/group's temp measured at factory */ | 1383 | * substitute the 3rd band/group's temp measured at factory */ |
1384 | if (priv->last_temperature > 100) | 1384 | if (priv->last_temperature > 100) |
1385 | temperature = priv->eeprom.groups[2].temperature; | 1385 | temperature = priv->eeprom39.groups[2].temperature; |
1386 | else /* else use most recent "sane" value from driver */ | 1386 | else /* else use most recent "sane" value from driver */ |
1387 | temperature = priv->last_temperature; | 1387 | temperature = priv->last_temperature; |
1388 | } | 1388 | } |
@@ -1677,17 +1677,17 @@ int iwl3945_hw_reg_send_txpower(struct iwl3945_priv *priv) | |||
1677 | int rate_idx, i; | 1677 | int rate_idx, i; |
1678 | const struct iwl_channel_info *ch_info = NULL; | 1678 | const struct iwl_channel_info *ch_info = NULL; |
1679 | struct iwl3945_txpowertable_cmd txpower = { | 1679 | struct iwl3945_txpowertable_cmd txpower = { |
1680 | .channel = priv->active_rxon.channel, | 1680 | .channel = priv->active39_rxon.channel, |
1681 | }; | 1681 | }; |
1682 | 1682 | ||
1683 | txpower.band = (priv->band == IEEE80211_BAND_5GHZ) ? 0 : 1; | 1683 | txpower.band = (priv->band == IEEE80211_BAND_5GHZ) ? 0 : 1; |
1684 | ch_info = iwl3945_get_channel_info(priv, | 1684 | ch_info = iwl3945_get_channel_info(priv, |
1685 | priv->band, | 1685 | priv->band, |
1686 | le16_to_cpu(priv->active_rxon.channel)); | 1686 | le16_to_cpu(priv->active39_rxon.channel)); |
1687 | if (!ch_info) { | 1687 | if (!ch_info) { |
1688 | IWL_ERROR | 1688 | IWL_ERROR |
1689 | ("Failed to get channel info for channel %d [%d]\n", | 1689 | ("Failed to get channel info for channel %d [%d]\n", |
1690 | le16_to_cpu(priv->active_rxon.channel), priv->band); | 1690 | le16_to_cpu(priv->active39_rxon.channel), priv->band); |
1691 | return -EINVAL; | 1691 | return -EINVAL; |
1692 | } | 1692 | } |
1693 | 1693 | ||
@@ -1757,7 +1757,7 @@ static int iwl3945_hw_reg_set_new_power(struct iwl3945_priv *priv, | |||
1757 | int power; | 1757 | int power; |
1758 | 1758 | ||
1759 | /* Get this chnlgrp's rate-to-max/clip-powers table */ | 1759 | /* Get this chnlgrp's rate-to-max/clip-powers table */ |
1760 | clip_pwrs = priv->clip_groups[ch_info->group_index].clip_powers; | 1760 | clip_pwrs = priv->clip39_groups[ch_info->group_index].clip_powers; |
1761 | 1761 | ||
1762 | /* Get this channel's rate-to-current-power settings table */ | 1762 | /* Get this channel's rate-to-current-power settings table */ |
1763 | power_info = ch_info->power_info; | 1763 | power_info = ch_info->power_info; |
@@ -1856,7 +1856,7 @@ static int iwl3945_hw_reg_comp_txpower_temp(struct iwl3945_priv *priv) | |||
1856 | a_band = is_channel_a_band(ch_info); | 1856 | a_band = is_channel_a_band(ch_info); |
1857 | 1857 | ||
1858 | /* Get this chnlgrp's factory calibration temperature */ | 1858 | /* Get this chnlgrp's factory calibration temperature */ |
1859 | ref_temp = (s16)priv->eeprom.groups[ch_info->group_index]. | 1859 | ref_temp = (s16)priv->eeprom39.groups[ch_info->group_index]. |
1860 | temperature; | 1860 | temperature; |
1861 | 1861 | ||
1862 | /* get power index adjustment based on current and factory | 1862 | /* get power index adjustment based on current and factory |
@@ -1882,7 +1882,7 @@ static int iwl3945_hw_reg_comp_txpower_temp(struct iwl3945_priv *priv) | |||
1882 | } | 1882 | } |
1883 | 1883 | ||
1884 | /* Get this chnlgrp's rate-to-max/clip-powers table */ | 1884 | /* Get this chnlgrp's rate-to-max/clip-powers table */ |
1885 | clip_pwrs = priv->clip_groups[ch_info->group_index].clip_powers; | 1885 | clip_pwrs = priv->clip39_groups[ch_info->group_index].clip_powers; |
1886 | 1886 | ||
1887 | /* set scan tx power, 1Mbit for CCK, 6Mbit for OFDM */ | 1887 | /* set scan tx power, 1Mbit for CCK, 6Mbit for OFDM */ |
1888 | for (scan_tbl_index = 0; | 1888 | for (scan_tbl_index = 0; |
@@ -2001,7 +2001,7 @@ static void iwl3945_bg_reg_txpower_periodic(struct work_struct *work) | |||
2001 | static u16 iwl3945_hw_reg_get_ch_grp_index(struct iwl3945_priv *priv, | 2001 | static u16 iwl3945_hw_reg_get_ch_grp_index(struct iwl3945_priv *priv, |
2002 | const struct iwl_channel_info *ch_info) | 2002 | const struct iwl_channel_info *ch_info) |
2003 | { | 2003 | { |
2004 | struct iwl3945_eeprom_txpower_group *ch_grp = &priv->eeprom.groups[0]; | 2004 | struct iwl3945_eeprom_txpower_group *ch_grp = &priv->eeprom39.groups[0]; |
2005 | u8 group; | 2005 | u8 group; |
2006 | u16 group_index = 0; /* based on factory calib frequencies */ | 2006 | u16 group_index = 0; /* based on factory calib frequencies */ |
2007 | u8 grp_channel; | 2007 | u8 grp_channel; |
@@ -2045,7 +2045,7 @@ static int iwl3945_hw_reg_get_matched_power_index(struct iwl3945_priv *priv, | |||
2045 | s32 res; | 2045 | s32 res; |
2046 | s32 denominator; | 2046 | s32 denominator; |
2047 | 2047 | ||
2048 | chnl_grp = &priv->eeprom.groups[setting_index]; | 2048 | chnl_grp = &priv->eeprom39.groups[setting_index]; |
2049 | samples = chnl_grp->samples; | 2049 | samples = chnl_grp->samples; |
2050 | for (i = 0; i < 5; i++) { | 2050 | for (i = 0; i < 5; i++) { |
2051 | if (power == samples[i].power) { | 2051 | if (power == samples[i].power) { |
@@ -2091,7 +2091,7 @@ static void iwl3945_hw_reg_init_channel_groups(struct iwl3945_priv *priv) | |||
2091 | for (i = 0; i < IWL_NUM_TX_CALIB_GROUPS; i++) { | 2091 | for (i = 0; i < IWL_NUM_TX_CALIB_GROUPS; i++) { |
2092 | s8 *clip_pwrs; /* table of power levels for each rate */ | 2092 | s8 *clip_pwrs; /* table of power levels for each rate */ |
2093 | s8 satur_pwr; /* saturation power for each chnl group */ | 2093 | s8 satur_pwr; /* saturation power for each chnl group */ |
2094 | group = &priv->eeprom.groups[i]; | 2094 | group = &priv->eeprom39.groups[i]; |
2095 | 2095 | ||
2096 | /* sanity check on factory saturation power value */ | 2096 | /* sanity check on factory saturation power value */ |
2097 | if (group->saturation_power < 40) { | 2097 | if (group->saturation_power < 40) { |
@@ -2110,7 +2110,7 @@ static void iwl3945_hw_reg_init_channel_groups(struct iwl3945_priv *priv) | |||
2110 | * power peaks, without too much distortion (clipping). | 2110 | * power peaks, without too much distortion (clipping). |
2111 | */ | 2111 | */ |
2112 | /* we'll fill in this array with h/w max power levels */ | 2112 | /* we'll fill in this array with h/w max power levels */ |
2113 | clip_pwrs = (s8 *) priv->clip_groups[i].clip_powers; | 2113 | clip_pwrs = (s8 *) priv->clip39_groups[i].clip_powers; |
2114 | 2114 | ||
2115 | /* divide factory saturation power by 2 to find -3dB level */ | 2115 | /* divide factory saturation power by 2 to find -3dB level */ |
2116 | satur_pwr = (s8) (group->saturation_power >> 1); | 2116 | satur_pwr = (s8) (group->saturation_power >> 1); |
@@ -2193,12 +2193,12 @@ int iwl3945_txpower_set_from_eeprom(struct iwl3945_priv *priv) | |||
2193 | iwl3945_hw_reg_get_ch_grp_index(priv, ch_info); | 2193 | iwl3945_hw_reg_get_ch_grp_index(priv, ch_info); |
2194 | 2194 | ||
2195 | /* Get this chnlgrp's rate->max/clip-powers table */ | 2195 | /* Get this chnlgrp's rate->max/clip-powers table */ |
2196 | clip_pwrs = priv->clip_groups[ch_info->group_index].clip_powers; | 2196 | clip_pwrs = priv->clip39_groups[ch_info->group_index].clip_powers; |
2197 | 2197 | ||
2198 | /* calculate power index *adjustment* value according to | 2198 | /* calculate power index *adjustment* value according to |
2199 | * diff between current temperature and factory temperature */ | 2199 | * diff between current temperature and factory temperature */ |
2200 | delta_index = iwl3945_hw_reg_adjust_power_by_temp(temperature, | 2200 | delta_index = iwl3945_hw_reg_adjust_power_by_temp(temperature, |
2201 | priv->eeprom.groups[ch_info->group_index]. | 2201 | priv->eeprom39.groups[ch_info->group_index]. |
2202 | temperature); | 2202 | temperature); |
2203 | 2203 | ||
2204 | IWL_DEBUG_POWER("Delta index for channel %d: %d [%d]\n", | 2204 | IWL_DEBUG_POWER("Delta index for channel %d: %d [%d]\n", |
diff --git a/drivers/net/wireless/iwlwifi/iwl-3945.h b/drivers/net/wireless/iwlwifi/iwl-3945.h index cfceee18814d..788cd9cc4b13 100644 --- a/drivers/net/wireless/iwlwifi/iwl-3945.h +++ b/drivers/net/wireless/iwlwifi/iwl-3945.h | |||
@@ -422,7 +422,7 @@ struct iwl3945_priv { | |||
422 | 422 | ||
423 | /* each calibration channel group in the EEPROM has a derived | 423 | /* each calibration channel group in the EEPROM has a derived |
424 | * clip setting for each rate. */ | 424 | * clip setting for each rate. */ |
425 | const struct iwl3945_clip_group clip_groups[5]; | 425 | const struct iwl3945_clip_group clip39_groups[5]; |
426 | 426 | ||
427 | /* thermal calibration */ | 427 | /* thermal calibration */ |
428 | s32 temperature; /* degrees Kelvin */ | 428 | s32 temperature; /* degrees Kelvin */ |
@@ -438,7 +438,7 @@ struct iwl3945_priv { | |||
438 | int one_direct_scan; | 438 | int one_direct_scan; |
439 | u8 direct_ssid_len; | 439 | u8 direct_ssid_len; |
440 | u8 direct_ssid[IW_ESSID_MAX_SIZE]; | 440 | u8 direct_ssid[IW_ESSID_MAX_SIZE]; |
441 | struct iwl3945_scan_cmd *scan; | 441 | struct iwl3945_scan_cmd *scan39; |
442 | 442 | ||
443 | /* spinlock */ | 443 | /* spinlock */ |
444 | spinlock_t lock; /* protect general shared data */ | 444 | spinlock_t lock; /* protect general shared data */ |
@@ -468,11 +468,11 @@ struct iwl3945_priv { | |||
468 | * changed via explicit cast within the | 468 | * changed via explicit cast within the |
469 | * routines that actually update the physical | 469 | * routines that actually update the physical |
470 | * hardware */ | 470 | * hardware */ |
471 | const struct iwl3945_rxon_cmd active_rxon; | 471 | const struct iwl3945_rxon_cmd active39_rxon; |
472 | struct iwl3945_rxon_cmd staging_rxon; | 472 | struct iwl3945_rxon_cmd staging39_rxon; |
473 | 473 | ||
474 | int error_recovering; | 474 | int error_recovering; |
475 | struct iwl3945_rxon_cmd recovery_rxon; | 475 | struct iwl3945_rxon_cmd recovery39_rxon; |
476 | 476 | ||
477 | /* 1st responses from initialize and runtime uCode images. | 477 | /* 1st responses from initialize and runtime uCode images. |
478 | * 4965's initialize alive response contains some calibration data. */ | 478 | * 4965's initialize alive response contains some calibration data. */ |
@@ -485,7 +485,7 @@ struct iwl3945_priv { | |||
485 | #endif | 485 | #endif |
486 | 486 | ||
487 | #ifdef CONFIG_IWL3945_LEDS | 487 | #ifdef CONFIG_IWL3945_LEDS |
488 | struct iwl3945_led led[IWL_LED_TRG_MAX]; | 488 | struct iwl3945_led led39[IWL_LED_TRG_MAX]; |
489 | unsigned long last_blink_time; | 489 | unsigned long last_blink_time; |
490 | u8 last_blink_rate; | 490 | u8 last_blink_rate; |
491 | u8 allow_blinking; | 491 | u8 allow_blinking; |
@@ -510,16 +510,16 @@ struct iwl3945_priv { | |||
510 | 510 | ||
511 | /* Rx and Tx DMA processing queues */ | 511 | /* Rx and Tx DMA processing queues */ |
512 | struct iwl_rx_queue rxq; | 512 | struct iwl_rx_queue rxq; |
513 | struct iwl3945_tx_queue txq[IWL39_MAX_NUM_QUEUES]; | 513 | struct iwl3945_tx_queue txq39[IWL39_MAX_NUM_QUEUES]; |
514 | 514 | ||
515 | unsigned long status; | 515 | unsigned long status; |
516 | 516 | ||
517 | int last_rx_rssi; /* From Rx packet statisitics */ | 517 | int last_rx_rssi; /* From Rx packet statisitics */ |
518 | int last_rx_noise; /* From beacon statistics */ | 518 | int last_rx_noise; /* From beacon statistics */ |
519 | 519 | ||
520 | struct iwl3945_power_mgr power_data; | 520 | struct iwl3945_power_mgr power_data_39; |
521 | 521 | ||
522 | struct iwl3945_notif_statistics statistics; | 522 | struct iwl3945_notif_statistics statistics_39; |
523 | unsigned long last_statistics_time; | 523 | unsigned long last_statistics_time; |
524 | 524 | ||
525 | /* context information */ | 525 | /* context information */ |
@@ -534,7 +534,7 @@ struct iwl3945_priv { | |||
534 | /*station table variables */ | 534 | /*station table variables */ |
535 | spinlock_t sta_lock; | 535 | spinlock_t sta_lock; |
536 | int num_stations; | 536 | int num_stations; |
537 | struct iwl3945_station_entry stations[IWL_STATION_COUNT]; | 537 | struct iwl3945_station_entry stations_39[IWL_STATION_COUNT]; |
538 | 538 | ||
539 | /* Indication if ieee80211_ops->open has been called */ | 539 | /* Indication if ieee80211_ops->open has been called */ |
540 | u8 is_open; | 540 | u8 is_open; |
@@ -546,7 +546,7 @@ struct iwl3945_priv { | |||
546 | u64 last_tsf; | 546 | u64 last_tsf; |
547 | 547 | ||
548 | /* eeprom */ | 548 | /* eeprom */ |
549 | struct iwl3945_eeprom eeprom; | 549 | struct iwl3945_eeprom eeprom39; |
550 | 550 | ||
551 | enum nl80211_iftype iw_mode; | 551 | enum nl80211_iftype iw_mode; |
552 | 552 | ||
@@ -607,7 +607,7 @@ struct iwl3945_priv { | |||
607 | 607 | ||
608 | static inline int iwl3945_is_associated(struct iwl3945_priv *priv) | 608 | static inline int iwl3945_is_associated(struct iwl3945_priv *priv) |
609 | { | 609 | { |
610 | return (priv->active_rxon.filter_flags & RXON_FILTER_ASSOC_MSK) ? 1 : 0; | 610 | return (priv->active39_rxon.filter_flags & RXON_FILTER_ASSOC_MSK) ? 1 : 0; |
611 | } | 611 | } |
612 | 612 | ||
613 | extern const struct iwl_channel_info *iwl3945_get_channel_info( | 613 | extern const struct iwl_channel_info *iwl3945_get_channel_info( |
diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c b/drivers/net/wireless/iwlwifi/iwl3945-base.c index b42bb8433a57..43af2595c694 100644 --- a/drivers/net/wireless/iwlwifi/iwl3945-base.c +++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c | |||
@@ -329,8 +329,8 @@ static u8 iwl3945_remove_station(struct iwl3945_priv *priv, const u8 *addr, int | |||
329 | index = priv->hw_params.bcast_sta_id; | 329 | index = priv->hw_params.bcast_sta_id; |
330 | else | 330 | else |
331 | for (i = IWL_STA_ID; i < priv->hw_params.max_stations; i++) | 331 | for (i = IWL_STA_ID; i < priv->hw_params.max_stations; i++) |
332 | if (priv->stations[i].used && | 332 | if (priv->stations_39[i].used && |
333 | !compare_ether_addr(priv->stations[i].sta.sta.addr, | 333 | !compare_ether_addr(priv->stations_39[i].sta.sta.addr, |
334 | addr)) { | 334 | addr)) { |
335 | index = i; | 335 | index = i; |
336 | break; | 336 | break; |
@@ -339,8 +339,8 @@ static u8 iwl3945_remove_station(struct iwl3945_priv *priv, const u8 *addr, int | |||
339 | if (unlikely(index == IWL_INVALID_STATION)) | 339 | if (unlikely(index == IWL_INVALID_STATION)) |
340 | goto out; | 340 | goto out; |
341 | 341 | ||
342 | if (priv->stations[index].used) { | 342 | if (priv->stations_39[index].used) { |
343 | priv->stations[index].used = 0; | 343 | priv->stations_39[index].used = 0; |
344 | priv->num_stations--; | 344 | priv->num_stations--; |
345 | } | 345 | } |
346 | 346 | ||
@@ -364,7 +364,7 @@ static void iwl3945_clear_stations_table(struct iwl3945_priv *priv) | |||
364 | spin_lock_irqsave(&priv->sta_lock, flags); | 364 | spin_lock_irqsave(&priv->sta_lock, flags); |
365 | 365 | ||
366 | priv->num_stations = 0; | 366 | priv->num_stations = 0; |
367 | memset(priv->stations, 0, sizeof(priv->stations)); | 367 | memset(priv->stations_39, 0, sizeof(priv->stations_39)); |
368 | 368 | ||
369 | spin_unlock_irqrestore(&priv->sta_lock, flags); | 369 | spin_unlock_irqrestore(&priv->sta_lock, flags); |
370 | } | 370 | } |
@@ -387,13 +387,13 @@ u8 iwl3945_add_station(struct iwl3945_priv *priv, const u8 *addr, int is_ap, u8 | |||
387 | index = priv->hw_params.bcast_sta_id; | 387 | index = priv->hw_params.bcast_sta_id; |
388 | else | 388 | else |
389 | for (i = IWL_STA_ID; i < priv->hw_params.max_stations; i++) { | 389 | for (i = IWL_STA_ID; i < priv->hw_params.max_stations; i++) { |
390 | if (!compare_ether_addr(priv->stations[i].sta.sta.addr, | 390 | if (!compare_ether_addr(priv->stations_39[i].sta.sta.addr, |
391 | addr)) { | 391 | addr)) { |
392 | index = i; | 392 | index = i; |
393 | break; | 393 | break; |
394 | } | 394 | } |
395 | 395 | ||
396 | if (!priv->stations[i].used && | 396 | if (!priv->stations_39[i].used && |
397 | index == IWL_INVALID_STATION) | 397 | index == IWL_INVALID_STATION) |
398 | index = i; | 398 | index = i; |
399 | } | 399 | } |
@@ -405,14 +405,14 @@ u8 iwl3945_add_station(struct iwl3945_priv *priv, const u8 *addr, int is_ap, u8 | |||
405 | return index; | 405 | return index; |
406 | } | 406 | } |
407 | 407 | ||
408 | if (priv->stations[index].used && | 408 | if (priv->stations_39[index].used && |
409 | !compare_ether_addr(priv->stations[index].sta.sta.addr, addr)) { | 409 | !compare_ether_addr(priv->stations_39[index].sta.sta.addr, addr)) { |
410 | spin_unlock_irqrestore(&priv->sta_lock, flags_spin); | 410 | spin_unlock_irqrestore(&priv->sta_lock, flags_spin); |
411 | return index; | 411 | return index; |
412 | } | 412 | } |
413 | 413 | ||
414 | IWL_DEBUG_ASSOC("Add STA ID %d: %pM\n", index, addr); | 414 | IWL_DEBUG_ASSOC("Add STA ID %d: %pM\n", index, addr); |
415 | station = &priv->stations[index]; | 415 | station = &priv->stations_39[index]; |
416 | station->used = 1; | 416 | station->used = 1; |
417 | priv->num_stations++; | 417 | priv->num_stations++; |
418 | 418 | ||
@@ -502,7 +502,7 @@ static inline int iwl3945_is_ready_rf(struct iwl3945_priv *priv) | |||
502 | */ | 502 | */ |
503 | static int iwl3945_enqueue_hcmd(struct iwl3945_priv *priv, struct iwl3945_host_cmd *cmd) | 503 | static int iwl3945_enqueue_hcmd(struct iwl3945_priv *priv, struct iwl3945_host_cmd *cmd) |
504 | { | 504 | { |
505 | struct iwl3945_tx_queue *txq = &priv->txq[IWL_CMD_QUEUE_NUM]; | 505 | struct iwl3945_tx_queue *txq = &priv->txq39[IWL_CMD_QUEUE_NUM]; |
506 | struct iwl_queue *q = &txq->q; | 506 | struct iwl_queue *q = &txq->q; |
507 | struct iwl3945_tfd_frame *tfd; | 507 | struct iwl3945_tfd_frame *tfd; |
508 | u32 *control_flags; | 508 | u32 *control_flags; |
@@ -678,7 +678,7 @@ cancel: | |||
678 | * TX cmd queue. Otherwise in case the cmd comes | 678 | * TX cmd queue. Otherwise in case the cmd comes |
679 | * in later, it will possibly set an invalid | 679 | * in later, it will possibly set an invalid |
680 | * address (cmd->meta.source). */ | 680 | * address (cmd->meta.source). */ |
681 | qcmd = &priv->txq[IWL_CMD_QUEUE_NUM].cmd[cmd_idx]; | 681 | qcmd = &priv->txq39[IWL_CMD_QUEUE_NUM].cmd[cmd_idx]; |
682 | qcmd->meta.flags &= ~CMD_WANT_SKB; | 682 | qcmd->meta.flags &= ~CMD_WANT_SKB; |
683 | } | 683 | } |
684 | fail: | 684 | fail: |
@@ -746,15 +746,15 @@ static int iwl3945_set_rxon_channel(struct iwl3945_priv *priv, | |||
746 | return -EINVAL; | 746 | return -EINVAL; |
747 | } | 747 | } |
748 | 748 | ||
749 | if ((le16_to_cpu(priv->staging_rxon.channel) == channel) && | 749 | if ((le16_to_cpu(priv->staging39_rxon.channel) == channel) && |
750 | (priv->band == band)) | 750 | (priv->band == band)) |
751 | return 0; | 751 | return 0; |
752 | 752 | ||
753 | priv->staging_rxon.channel = cpu_to_le16(channel); | 753 | priv->staging39_rxon.channel = cpu_to_le16(channel); |
754 | if (band == IEEE80211_BAND_5GHZ) | 754 | if (band == IEEE80211_BAND_5GHZ) |
755 | priv->staging_rxon.flags &= ~RXON_FLG_BAND_24G_MSK; | 755 | priv->staging39_rxon.flags &= ~RXON_FLG_BAND_24G_MSK; |
756 | else | 756 | else |
757 | priv->staging_rxon.flags |= RXON_FLG_BAND_24G_MSK; | 757 | priv->staging39_rxon.flags |= RXON_FLG_BAND_24G_MSK; |
758 | 758 | ||
759 | priv->band = band; | 759 | priv->band = band; |
760 | 760 | ||
@@ -774,7 +774,7 @@ static int iwl3945_check_rxon_cmd(struct iwl3945_priv *priv) | |||
774 | { | 774 | { |
775 | int error = 0; | 775 | int error = 0; |
776 | int counter = 1; | 776 | int counter = 1; |
777 | struct iwl3945_rxon_cmd *rxon = &priv->staging_rxon; | 777 | struct iwl3945_rxon_cmd *rxon = &priv->staging39_rxon; |
778 | 778 | ||
779 | if (rxon->flags & RXON_FLG_BAND_24G_MSK) { | 779 | if (rxon->flags & RXON_FLG_BAND_24G_MSK) { |
780 | error |= le32_to_cpu(rxon->flags & | 780 | error |= le32_to_cpu(rxon->flags & |
@@ -856,17 +856,17 @@ static int iwl3945_full_rxon_required(struct iwl3945_priv *priv) | |||
856 | 856 | ||
857 | /* These items are only settable from the full RXON command */ | 857 | /* These items are only settable from the full RXON command */ |
858 | if (!(iwl3945_is_associated(priv)) || | 858 | if (!(iwl3945_is_associated(priv)) || |
859 | compare_ether_addr(priv->staging_rxon.bssid_addr, | 859 | compare_ether_addr(priv->staging39_rxon.bssid_addr, |
860 | priv->active_rxon.bssid_addr) || | 860 | priv->active39_rxon.bssid_addr) || |
861 | compare_ether_addr(priv->staging_rxon.node_addr, | 861 | compare_ether_addr(priv->staging39_rxon.node_addr, |
862 | priv->active_rxon.node_addr) || | 862 | priv->active39_rxon.node_addr) || |
863 | compare_ether_addr(priv->staging_rxon.wlap_bssid_addr, | 863 | compare_ether_addr(priv->staging39_rxon.wlap_bssid_addr, |
864 | priv->active_rxon.wlap_bssid_addr) || | 864 | priv->active39_rxon.wlap_bssid_addr) || |
865 | (priv->staging_rxon.dev_type != priv->active_rxon.dev_type) || | 865 | (priv->staging39_rxon.dev_type != priv->active39_rxon.dev_type) || |
866 | (priv->staging_rxon.channel != priv->active_rxon.channel) || | 866 | (priv->staging39_rxon.channel != priv->active39_rxon.channel) || |
867 | (priv->staging_rxon.air_propagation != | 867 | (priv->staging39_rxon.air_propagation != |
868 | priv->active_rxon.air_propagation) || | 868 | priv->active39_rxon.air_propagation) || |
869 | (priv->staging_rxon.assoc_id != priv->active_rxon.assoc_id)) | 869 | (priv->staging39_rxon.assoc_id != priv->active39_rxon.assoc_id)) |
870 | return 1; | 870 | return 1; |
871 | 871 | ||
872 | /* flags, filter_flags, ofdm_basic_rates, and cck_basic_rates can | 872 | /* flags, filter_flags, ofdm_basic_rates, and cck_basic_rates can |
@@ -874,13 +874,13 @@ static int iwl3945_full_rxon_required(struct iwl3945_priv *priv) | |||
874 | * flag transitions are allowed using RXON_ASSOC */ | 874 | * flag transitions are allowed using RXON_ASSOC */ |
875 | 875 | ||
876 | /* Check if we are not switching bands */ | 876 | /* Check if we are not switching bands */ |
877 | if ((priv->staging_rxon.flags & RXON_FLG_BAND_24G_MSK) != | 877 | if ((priv->staging39_rxon.flags & RXON_FLG_BAND_24G_MSK) != |
878 | (priv->active_rxon.flags & RXON_FLG_BAND_24G_MSK)) | 878 | (priv->active39_rxon.flags & RXON_FLG_BAND_24G_MSK)) |
879 | return 1; | 879 | return 1; |
880 | 880 | ||
881 | /* Check if we are switching association toggle */ | 881 | /* Check if we are switching association toggle */ |
882 | if ((priv->staging_rxon.filter_flags & RXON_FILTER_ASSOC_MSK) != | 882 | if ((priv->staging39_rxon.filter_flags & RXON_FILTER_ASSOC_MSK) != |
883 | (priv->active_rxon.filter_flags & RXON_FILTER_ASSOC_MSK)) | 883 | (priv->active39_rxon.filter_flags & RXON_FILTER_ASSOC_MSK)) |
884 | return 1; | 884 | return 1; |
885 | 885 | ||
886 | return 0; | 886 | return 0; |
@@ -897,8 +897,8 @@ static int iwl3945_send_rxon_assoc(struct iwl3945_priv *priv) | |||
897 | .meta.flags = CMD_WANT_SKB, | 897 | .meta.flags = CMD_WANT_SKB, |
898 | .data = &rxon_assoc, | 898 | .data = &rxon_assoc, |
899 | }; | 899 | }; |
900 | const struct iwl3945_rxon_cmd *rxon1 = &priv->staging_rxon; | 900 | const struct iwl3945_rxon_cmd *rxon1 = &priv->staging39_rxon; |
901 | const struct iwl3945_rxon_cmd *rxon2 = &priv->active_rxon; | 901 | const struct iwl3945_rxon_cmd *rxon2 = &priv->active39_rxon; |
902 | 902 | ||
903 | if ((rxon1->flags == rxon2->flags) && | 903 | if ((rxon1->flags == rxon2->flags) && |
904 | (rxon1->filter_flags == rxon2->filter_flags) && | 904 | (rxon1->filter_flags == rxon2->filter_flags) && |
@@ -908,10 +908,10 @@ static int iwl3945_send_rxon_assoc(struct iwl3945_priv *priv) | |||
908 | return 0; | 908 | return 0; |
909 | } | 909 | } |
910 | 910 | ||
911 | rxon_assoc.flags = priv->staging_rxon.flags; | 911 | rxon_assoc.flags = priv->staging39_rxon.flags; |
912 | rxon_assoc.filter_flags = priv->staging_rxon.filter_flags; | 912 | rxon_assoc.filter_flags = priv->staging39_rxon.filter_flags; |
913 | rxon_assoc.ofdm_basic_rates = priv->staging_rxon.ofdm_basic_rates; | 913 | rxon_assoc.ofdm_basic_rates = priv->staging39_rxon.ofdm_basic_rates; |
914 | rxon_assoc.cck_basic_rates = priv->staging_rxon.cck_basic_rates; | 914 | rxon_assoc.cck_basic_rates = priv->staging39_rxon.cck_basic_rates; |
915 | rxon_assoc.reserved = 0; | 915 | rxon_assoc.reserved = 0; |
916 | 916 | ||
917 | rc = iwl3945_send_cmd_sync(priv, &cmd); | 917 | rc = iwl3945_send_cmd_sync(priv, &cmd); |
@@ -941,19 +941,19 @@ static int iwl3945_send_rxon_assoc(struct iwl3945_priv *priv) | |||
941 | static int iwl3945_commit_rxon(struct iwl3945_priv *priv) | 941 | static int iwl3945_commit_rxon(struct iwl3945_priv *priv) |
942 | { | 942 | { |
943 | /* cast away the const for active_rxon in this function */ | 943 | /* cast away the const for active_rxon in this function */ |
944 | struct iwl3945_rxon_cmd *active_rxon = (void *)&priv->active_rxon; | 944 | struct iwl3945_rxon_cmd *active_rxon = (void *)&priv->active39_rxon; |
945 | int rc = 0; | 945 | int rc = 0; |
946 | 946 | ||
947 | if (!iwl3945_is_alive(priv)) | 947 | if (!iwl3945_is_alive(priv)) |
948 | return -1; | 948 | return -1; |
949 | 949 | ||
950 | /* always get timestamp with Rx frame */ | 950 | /* always get timestamp with Rx frame */ |
951 | priv->staging_rxon.flags |= RXON_FLG_TSF2HOST_MSK; | 951 | priv->staging39_rxon.flags |= RXON_FLG_TSF2HOST_MSK; |
952 | 952 | ||
953 | /* select antenna */ | 953 | /* select antenna */ |
954 | priv->staging_rxon.flags &= | 954 | priv->staging39_rxon.flags &= |
955 | ~(RXON_FLG_DIS_DIV_MSK | RXON_FLG_ANT_SEL_MSK); | 955 | ~(RXON_FLG_DIS_DIV_MSK | RXON_FLG_ANT_SEL_MSK); |
956 | priv->staging_rxon.flags |= iwl3945_get_antenna_flags(priv); | 956 | priv->staging39_rxon.flags |= iwl3945_get_antenna_flags(priv); |
957 | 957 | ||
958 | rc = iwl3945_check_rxon_cmd(priv); | 958 | rc = iwl3945_check_rxon_cmd(priv); |
959 | if (rc) { | 959 | if (rc) { |
@@ -972,7 +972,7 @@ static int iwl3945_commit_rxon(struct iwl3945_priv *priv) | |||
972 | return rc; | 972 | return rc; |
973 | } | 973 | } |
974 | 974 | ||
975 | memcpy(active_rxon, &priv->staging_rxon, sizeof(*active_rxon)); | 975 | memcpy(active_rxon, &priv->staging39_rxon, sizeof(*active_rxon)); |
976 | 976 | ||
977 | return 0; | 977 | return 0; |
978 | } | 978 | } |
@@ -982,13 +982,13 @@ static int iwl3945_commit_rxon(struct iwl3945_priv *priv) | |||
982 | * we must clear the associated from the active configuration | 982 | * we must clear the associated from the active configuration |
983 | * before we apply the new config */ | 983 | * before we apply the new config */ |
984 | if (iwl3945_is_associated(priv) && | 984 | if (iwl3945_is_associated(priv) && |
985 | (priv->staging_rxon.filter_flags & RXON_FILTER_ASSOC_MSK)) { | 985 | (priv->staging39_rxon.filter_flags & RXON_FILTER_ASSOC_MSK)) { |
986 | IWL_DEBUG_INFO("Toggling associated bit on current RXON\n"); | 986 | IWL_DEBUG_INFO("Toggling associated bit on current RXON\n"); |
987 | active_rxon->filter_flags &= ~RXON_FILTER_ASSOC_MSK; | 987 | active_rxon->filter_flags &= ~RXON_FILTER_ASSOC_MSK; |
988 | 988 | ||
989 | rc = iwl3945_send_cmd_pdu(priv, REPLY_RXON, | 989 | rc = iwl3945_send_cmd_pdu(priv, REPLY_RXON, |
990 | sizeof(struct iwl3945_rxon_cmd), | 990 | sizeof(struct iwl3945_rxon_cmd), |
991 | &priv->active_rxon); | 991 | &priv->active39_rxon); |
992 | 992 | ||
993 | /* If the mask clearing failed then we set | 993 | /* If the mask clearing failed then we set |
994 | * active_rxon back to what it was previously */ | 994 | * active_rxon back to what it was previously */ |
@@ -1004,20 +1004,20 @@ static int iwl3945_commit_rxon(struct iwl3945_priv *priv) | |||
1004 | "* with%s RXON_FILTER_ASSOC_MSK\n" | 1004 | "* with%s RXON_FILTER_ASSOC_MSK\n" |
1005 | "* channel = %d\n" | 1005 | "* channel = %d\n" |
1006 | "* bssid = %pM\n", | 1006 | "* bssid = %pM\n", |
1007 | ((priv->staging_rxon.filter_flags & | 1007 | ((priv->staging39_rxon.filter_flags & |
1008 | RXON_FILTER_ASSOC_MSK) ? "" : "out"), | 1008 | RXON_FILTER_ASSOC_MSK) ? "" : "out"), |
1009 | le16_to_cpu(priv->staging_rxon.channel), | 1009 | le16_to_cpu(priv->staging39_rxon.channel), |
1010 | priv->staging_rxon.bssid_addr); | 1010 | priv->staging_rxon.bssid_addr); |
1011 | 1011 | ||
1012 | /* Apply the new configuration */ | 1012 | /* Apply the new configuration */ |
1013 | rc = iwl3945_send_cmd_pdu(priv, REPLY_RXON, | 1013 | rc = iwl3945_send_cmd_pdu(priv, REPLY_RXON, |
1014 | sizeof(struct iwl3945_rxon_cmd), &priv->staging_rxon); | 1014 | sizeof(struct iwl3945_rxon_cmd), &priv->staging39_rxon); |
1015 | if (rc) { | 1015 | if (rc) { |
1016 | IWL_ERROR("Error setting new configuration (%d).\n", rc); | 1016 | IWL_ERROR("Error setting new configuration (%d).\n", rc); |
1017 | return rc; | 1017 | return rc; |
1018 | } | 1018 | } |
1019 | 1019 | ||
1020 | memcpy(active_rxon, &priv->staging_rxon, sizeof(*active_rxon)); | 1020 | memcpy(active_rxon, &priv->staging39_rxon, sizeof(*active_rxon)); |
1021 | 1021 | ||
1022 | iwl3945_clear_stations_table(priv); | 1022 | iwl3945_clear_stations_table(priv); |
1023 | 1023 | ||
@@ -1040,7 +1040,7 @@ static int iwl3945_commit_rxon(struct iwl3945_priv *priv) | |||
1040 | * add the IWL_AP_ID to the station rate table */ | 1040 | * add the IWL_AP_ID to the station rate table */ |
1041 | if (iwl3945_is_associated(priv) && | 1041 | if (iwl3945_is_associated(priv) && |
1042 | (priv->iw_mode == NL80211_IFTYPE_STATION)) | 1042 | (priv->iw_mode == NL80211_IFTYPE_STATION)) |
1043 | if (iwl3945_add_station(priv, priv->active_rxon.bssid_addr, 1, 0) | 1043 | if (iwl3945_add_station(priv, priv->active39_rxon.bssid_addr, 1, 0) |
1044 | == IWL_INVALID_STATION) { | 1044 | == IWL_INVALID_STATION) { |
1045 | IWL_ERROR("Error adding AP address for transmit.\n"); | 1045 | IWL_ERROR("Error adding AP address for transmit.\n"); |
1046 | return -EIO; | 1046 | return -EIO; |
@@ -1238,21 +1238,21 @@ static int iwl3945_update_sta_key_info(struct iwl3945_priv *priv, | |||
1238 | return -EINVAL; | 1238 | return -EINVAL; |
1239 | } | 1239 | } |
1240 | spin_lock_irqsave(&priv->sta_lock, flags); | 1240 | spin_lock_irqsave(&priv->sta_lock, flags); |
1241 | priv->stations[sta_id].keyinfo.alg = keyconf->alg; | 1241 | priv->stations_39[sta_id].keyinfo.alg = keyconf->alg; |
1242 | priv->stations[sta_id].keyinfo.keylen = keyconf->keylen; | 1242 | priv->stations_39[sta_id].keyinfo.keylen = keyconf->keylen; |
1243 | memcpy(priv->stations[sta_id].keyinfo.key, keyconf->key, | 1243 | memcpy(priv->stations_39[sta_id].keyinfo.key, keyconf->key, |
1244 | keyconf->keylen); | 1244 | keyconf->keylen); |
1245 | 1245 | ||
1246 | memcpy(priv->stations[sta_id].sta.key.key, keyconf->key, | 1246 | memcpy(priv->stations_39[sta_id].sta.key.key, keyconf->key, |
1247 | keyconf->keylen); | 1247 | keyconf->keylen); |
1248 | priv->stations[sta_id].sta.key.key_flags = key_flags; | 1248 | priv->stations_39[sta_id].sta.key.key_flags = key_flags; |
1249 | priv->stations[sta_id].sta.sta.modify_mask = STA_MODIFY_KEY_MASK; | 1249 | priv->stations_39[sta_id].sta.sta.modify_mask = STA_MODIFY_KEY_MASK; |
1250 | priv->stations[sta_id].sta.mode = STA_CONTROL_MODIFY_MSK; | 1250 | priv->stations_39[sta_id].sta.mode = STA_CONTROL_MODIFY_MSK; |
1251 | 1251 | ||
1252 | spin_unlock_irqrestore(&priv->sta_lock, flags); | 1252 | spin_unlock_irqrestore(&priv->sta_lock, flags); |
1253 | 1253 | ||
1254 | IWL_DEBUG_INFO("hwcrypto: modify ucode station key info\n"); | 1254 | IWL_DEBUG_INFO("hwcrypto: modify ucode station key info\n"); |
1255 | iwl3945_send_add_station(priv, &priv->stations[sta_id].sta, 0); | 1255 | iwl3945_send_add_station(priv, &priv->stations_39[sta_id].sta, 0); |
1256 | return 0; | 1256 | return 0; |
1257 | } | 1257 | } |
1258 | 1258 | ||
@@ -1261,16 +1261,16 @@ static int iwl3945_clear_sta_key_info(struct iwl3945_priv *priv, u8 sta_id) | |||
1261 | unsigned long flags; | 1261 | unsigned long flags; |
1262 | 1262 | ||
1263 | spin_lock_irqsave(&priv->sta_lock, flags); | 1263 | spin_lock_irqsave(&priv->sta_lock, flags); |
1264 | memset(&priv->stations[sta_id].keyinfo, 0, sizeof(struct iwl3945_hw_key)); | 1264 | memset(&priv->stations_39[sta_id].keyinfo, 0, sizeof(struct iwl3945_hw_key)); |
1265 | memset(&priv->stations[sta_id].sta.key, 0, | 1265 | memset(&priv->stations_39[sta_id].sta.key, 0, |
1266 | sizeof(struct iwl4965_keyinfo)); | 1266 | sizeof(struct iwl4965_keyinfo)); |
1267 | priv->stations[sta_id].sta.key.key_flags = STA_KEY_FLG_NO_ENC; | 1267 | priv->stations_39[sta_id].sta.key.key_flags = STA_KEY_FLG_NO_ENC; |
1268 | priv->stations[sta_id].sta.sta.modify_mask = STA_MODIFY_KEY_MASK; | 1268 | priv->stations_39[sta_id].sta.sta.modify_mask = STA_MODIFY_KEY_MASK; |
1269 | priv->stations[sta_id].sta.mode = STA_CONTROL_MODIFY_MSK; | 1269 | priv->stations_39[sta_id].sta.mode = STA_CONTROL_MODIFY_MSK; |
1270 | spin_unlock_irqrestore(&priv->sta_lock, flags); | 1270 | spin_unlock_irqrestore(&priv->sta_lock, flags); |
1271 | 1271 | ||
1272 | IWL_DEBUG_INFO("hwcrypto: clear ucode station key info\n"); | 1272 | IWL_DEBUG_INFO("hwcrypto: clear ucode station key info\n"); |
1273 | iwl3945_send_add_station(priv, &priv->stations[sta_id].sta, 0); | 1273 | iwl3945_send_add_station(priv, &priv->stations_39[sta_id].sta, 0); |
1274 | return 0; | 1274 | return 0; |
1275 | } | 1275 | } |
1276 | 1276 | ||
@@ -1345,7 +1345,7 @@ static u8 iwl3945_rate_get_lowest_plcp(struct iwl3945_priv *priv) | |||
1345 | int rate_mask; | 1345 | int rate_mask; |
1346 | 1346 | ||
1347 | /* Set rate mask*/ | 1347 | /* Set rate mask*/ |
1348 | if (priv->staging_rxon.flags & RXON_FLG_BAND_24G_MSK) | 1348 | if (priv->staging39_rxon.flags & RXON_FLG_BAND_24G_MSK) |
1349 | rate_mask = priv->active_rate_basic & IWL_CCK_RATES_MASK; | 1349 | rate_mask = priv->active_rate_basic & IWL_CCK_RATES_MASK; |
1350 | else | 1350 | else |
1351 | rate_mask = priv->active_rate_basic & IWL_OFDM_RATES_MASK; | 1351 | rate_mask = priv->active_rate_basic & IWL_OFDM_RATES_MASK; |
@@ -1357,7 +1357,7 @@ static u8 iwl3945_rate_get_lowest_plcp(struct iwl3945_priv *priv) | |||
1357 | } | 1357 | } |
1358 | 1358 | ||
1359 | /* No valid rate was found. Assign the lowest one */ | 1359 | /* No valid rate was found. Assign the lowest one */ |
1360 | if (priv->staging_rxon.flags & RXON_FLG_BAND_24G_MSK) | 1360 | if (priv->staging39_rxon.flags & RXON_FLG_BAND_24G_MSK) |
1361 | return IWL_RATE_1M_PLCP; | 1361 | return IWL_RATE_1M_PLCP; |
1362 | else | 1362 | else |
1363 | return IWL_RATE_6M_PLCP; | 1363 | return IWL_RATE_6M_PLCP; |
@@ -1398,7 +1398,7 @@ static int iwl3945_send_beacon_cmd(struct iwl3945_priv *priv) | |||
1398 | 1398 | ||
1399 | static void get_eeprom_mac(struct iwl3945_priv *priv, u8 *mac) | 1399 | static void get_eeprom_mac(struct iwl3945_priv *priv, u8 *mac) |
1400 | { | 1400 | { |
1401 | memcpy(mac, priv->eeprom.mac_address, 6); | 1401 | memcpy(mac, priv->eeprom39.mac_address, 6); |
1402 | } | 1402 | } |
1403 | 1403 | ||
1404 | /* | 1404 | /* |
@@ -1418,15 +1418,15 @@ static inline int iwl3945_eeprom_acquire_semaphore(struct iwl3945_priv *priv) | |||
1418 | /** | 1418 | /** |
1419 | * iwl3945_eeprom_init - read EEPROM contents | 1419 | * iwl3945_eeprom_init - read EEPROM contents |
1420 | * | 1420 | * |
1421 | * Load the EEPROM contents from adapter into priv->eeprom | 1421 | * Load the EEPROM contents from adapter into priv->eeprom39 |
1422 | * | 1422 | * |
1423 | * NOTE: This routine uses the non-debug IO access functions. | 1423 | * NOTE: This routine uses the non-debug IO access functions. |
1424 | */ | 1424 | */ |
1425 | int iwl3945_eeprom_init(struct iwl3945_priv *priv) | 1425 | int iwl3945_eeprom_init(struct iwl3945_priv *priv) |
1426 | { | 1426 | { |
1427 | u16 *e = (u16 *)&priv->eeprom; | 1427 | u16 *e = (u16 *)&priv->eeprom39; |
1428 | u32 gp = iwl3945_read32(priv, CSR_EEPROM_GP); | 1428 | u32 gp = iwl3945_read32(priv, CSR_EEPROM_GP); |
1429 | int sz = sizeof(priv->eeprom); | 1429 | int sz = sizeof(priv->eeprom39); |
1430 | int ret; | 1430 | int ret; |
1431 | u16 addr; | 1431 | u16 addr; |
1432 | 1432 | ||
@@ -1434,7 +1434,7 @@ int iwl3945_eeprom_init(struct iwl3945_priv *priv) | |||
1434 | * and when adding new EEPROM maps is subject to programmer errors | 1434 | * and when adding new EEPROM maps is subject to programmer errors |
1435 | * which may be very difficult to identify without explicitly | 1435 | * which may be very difficult to identify without explicitly |
1436 | * checking the resulting size of the eeprom map. */ | 1436 | * checking the resulting size of the eeprom map. */ |
1437 | BUILD_BUG_ON(sizeof(priv->eeprom) != IWL_EEPROM_IMAGE_SIZE); | 1437 | BUILD_BUG_ON(sizeof(priv->eeprom39) != IWL_EEPROM_IMAGE_SIZE); |
1438 | 1438 | ||
1439 | if ((gp & CSR_EEPROM_GP_VALID_MSK) == CSR_EEPROM_GP_BAD_SIGNATURE) { | 1439 | if ((gp & CSR_EEPROM_GP_VALID_MSK) == CSR_EEPROM_GP_BAD_SIGNATURE) { |
1440 | IWL_ERROR("EEPROM not found, EEPROM_GP=0x%08x\n", gp); | 1440 | IWL_ERROR("EEPROM not found, EEPROM_GP=0x%08x\n", gp); |
@@ -1625,7 +1625,7 @@ static void iwl3945_reset_qos(struct iwl3945_priv *priv) | |||
1625 | if ((priv->iw_mode == NL80211_IFTYPE_ADHOC && | 1625 | if ((priv->iw_mode == NL80211_IFTYPE_ADHOC && |
1626 | (priv->active_rate & IWL_OFDM_RATES_MASK) == 0) || | 1626 | (priv->active_rate & IWL_OFDM_RATES_MASK) == 0) || |
1627 | (priv->iw_mode == NL80211_IFTYPE_STATION && | 1627 | (priv->iw_mode == NL80211_IFTYPE_STATION && |
1628 | (priv->staging_rxon.flags & RXON_FLG_SHORT_SLOT_MSK) == 0)) { | 1628 | (priv->staging39_rxon.flags & RXON_FLG_SHORT_SLOT_MSK) == 0)) { |
1629 | cw_min = 31; | 1629 | cw_min = 31; |
1630 | is_legacy = 1; | 1630 | is_legacy = 1; |
1631 | } | 1631 | } |
@@ -1769,7 +1769,7 @@ int iwl3945_power_init_handle(struct iwl3945_priv *priv) | |||
1769 | 1769 | ||
1770 | IWL_DEBUG_POWER("Initialize power \n"); | 1770 | IWL_DEBUG_POWER("Initialize power \n"); |
1771 | 1771 | ||
1772 | pow_data = &(priv->power_data); | 1772 | pow_data = &(priv->power_data_39); |
1773 | 1773 | ||
1774 | memset(pow_data, 0, sizeof(*pow_data)); | 1774 | memset(pow_data, 0, sizeof(*pow_data)); |
1775 | 1775 | ||
@@ -1813,7 +1813,7 @@ static int iwl3945_update_power_cmd(struct iwl3945_priv *priv, | |||
1813 | IWL_DEBUG_POWER("Error invalid power mode \n"); | 1813 | IWL_DEBUG_POWER("Error invalid power mode \n"); |
1814 | return -1; | 1814 | return -1; |
1815 | } | 1815 | } |
1816 | pow_data = &(priv->power_data); | 1816 | pow_data = &(priv->power_data_39); |
1817 | 1817 | ||
1818 | if (pow_data->active_index == IWL_POWER_RANGE_0) | 1818 | if (pow_data->active_index == IWL_POWER_RANGE_0) |
1819 | range = &pow_data->pwr_range_0[0]; | 1819 | range = &pow_data->pwr_range_0[0]; |
@@ -2053,7 +2053,7 @@ static int iwl3945_scan_initiate(struct iwl3945_priv *priv) | |||
2053 | 2053 | ||
2054 | static int iwl3945_set_rxon_hwcrypto(struct iwl3945_priv *priv, int hw_decrypt) | 2054 | static int iwl3945_set_rxon_hwcrypto(struct iwl3945_priv *priv, int hw_decrypt) |
2055 | { | 2055 | { |
2056 | struct iwl3945_rxon_cmd *rxon = &priv->staging_rxon; | 2056 | struct iwl3945_rxon_cmd *rxon = &priv->staging39_rxon; |
2057 | 2057 | ||
2058 | if (hw_decrypt) | 2058 | if (hw_decrypt) |
2059 | rxon->filter_flags &= ~RXON_FILTER_DIS_DECRYPT_MSK; | 2059 | rxon->filter_flags &= ~RXON_FILTER_DIS_DECRYPT_MSK; |
@@ -2067,23 +2067,23 @@ static void iwl3945_set_flags_for_phymode(struct iwl3945_priv *priv, | |||
2067 | enum ieee80211_band band) | 2067 | enum ieee80211_band band) |
2068 | { | 2068 | { |
2069 | if (band == IEEE80211_BAND_5GHZ) { | 2069 | if (band == IEEE80211_BAND_5GHZ) { |
2070 | priv->staging_rxon.flags &= | 2070 | priv->staging39_rxon.flags &= |
2071 | ~(RXON_FLG_BAND_24G_MSK | RXON_FLG_AUTO_DETECT_MSK | 2071 | ~(RXON_FLG_BAND_24G_MSK | RXON_FLG_AUTO_DETECT_MSK |
2072 | | RXON_FLG_CCK_MSK); | 2072 | | RXON_FLG_CCK_MSK); |
2073 | priv->staging_rxon.flags |= RXON_FLG_SHORT_SLOT_MSK; | 2073 | priv->staging39_rxon.flags |= RXON_FLG_SHORT_SLOT_MSK; |
2074 | } else { | 2074 | } else { |
2075 | /* Copied from iwl3945_bg_post_associate() */ | 2075 | /* Copied from iwl3945_bg_post_associate() */ |
2076 | if (priv->assoc_capability & WLAN_CAPABILITY_SHORT_SLOT_TIME) | 2076 | if (priv->assoc_capability & WLAN_CAPABILITY_SHORT_SLOT_TIME) |
2077 | priv->staging_rxon.flags |= RXON_FLG_SHORT_SLOT_MSK; | 2077 | priv->staging39_rxon.flags |= RXON_FLG_SHORT_SLOT_MSK; |
2078 | else | 2078 | else |
2079 | priv->staging_rxon.flags &= ~RXON_FLG_SHORT_SLOT_MSK; | 2079 | priv->staging39_rxon.flags &= ~RXON_FLG_SHORT_SLOT_MSK; |
2080 | 2080 | ||
2081 | if (priv->iw_mode == NL80211_IFTYPE_ADHOC) | 2081 | if (priv->iw_mode == NL80211_IFTYPE_ADHOC) |
2082 | priv->staging_rxon.flags &= ~RXON_FLG_SHORT_SLOT_MSK; | 2082 | priv->staging39_rxon.flags &= ~RXON_FLG_SHORT_SLOT_MSK; |
2083 | 2083 | ||
2084 | priv->staging_rxon.flags |= RXON_FLG_BAND_24G_MSK; | 2084 | priv->staging39_rxon.flags |= RXON_FLG_BAND_24G_MSK; |
2085 | priv->staging_rxon.flags |= RXON_FLG_AUTO_DETECT_MSK; | 2085 | priv->staging39_rxon.flags |= RXON_FLG_AUTO_DETECT_MSK; |
2086 | priv->staging_rxon.flags &= ~RXON_FLG_CCK_MSK; | 2086 | priv->staging39_rxon.flags &= ~RXON_FLG_CCK_MSK; |
2087 | } | 2087 | } |
2088 | } | 2088 | } |
2089 | 2089 | ||
@@ -2095,28 +2095,28 @@ static void iwl3945_connection_init_rx_config(struct iwl3945_priv *priv, | |||
2095 | { | 2095 | { |
2096 | const struct iwl_channel_info *ch_info; | 2096 | const struct iwl_channel_info *ch_info; |
2097 | 2097 | ||
2098 | memset(&priv->staging_rxon, 0, sizeof(priv->staging_rxon)); | 2098 | memset(&priv->staging39_rxon, 0, sizeof(priv->staging39_rxon)); |
2099 | 2099 | ||
2100 | switch (mode) { | 2100 | switch (mode) { |
2101 | case NL80211_IFTYPE_AP: | 2101 | case NL80211_IFTYPE_AP: |
2102 | priv->staging_rxon.dev_type = RXON_DEV_TYPE_AP; | 2102 | priv->staging39_rxon.dev_type = RXON_DEV_TYPE_AP; |
2103 | break; | 2103 | break; |
2104 | 2104 | ||
2105 | case NL80211_IFTYPE_STATION: | 2105 | case NL80211_IFTYPE_STATION: |
2106 | priv->staging_rxon.dev_type = RXON_DEV_TYPE_ESS; | 2106 | priv->staging39_rxon.dev_type = RXON_DEV_TYPE_ESS; |
2107 | priv->staging_rxon.filter_flags = RXON_FILTER_ACCEPT_GRP_MSK; | 2107 | priv->staging39_rxon.filter_flags = RXON_FILTER_ACCEPT_GRP_MSK; |
2108 | break; | 2108 | break; |
2109 | 2109 | ||
2110 | case NL80211_IFTYPE_ADHOC: | 2110 | case NL80211_IFTYPE_ADHOC: |
2111 | priv->staging_rxon.dev_type = RXON_DEV_TYPE_IBSS; | 2111 | priv->staging39_rxon.dev_type = RXON_DEV_TYPE_IBSS; |
2112 | priv->staging_rxon.flags = RXON_FLG_SHORT_PREAMBLE_MSK; | 2112 | priv->staging39_rxon.flags = RXON_FLG_SHORT_PREAMBLE_MSK; |
2113 | priv->staging_rxon.filter_flags = RXON_FILTER_BCON_AWARE_MSK | | 2113 | priv->staging39_rxon.filter_flags = RXON_FILTER_BCON_AWARE_MSK | |
2114 | RXON_FILTER_ACCEPT_GRP_MSK; | 2114 | RXON_FILTER_ACCEPT_GRP_MSK; |
2115 | break; | 2115 | break; |
2116 | 2116 | ||
2117 | case NL80211_IFTYPE_MONITOR: | 2117 | case NL80211_IFTYPE_MONITOR: |
2118 | priv->staging_rxon.dev_type = RXON_DEV_TYPE_SNIFFER; | 2118 | priv->staging39_rxon.dev_type = RXON_DEV_TYPE_SNIFFER; |
2119 | priv->staging_rxon.filter_flags = RXON_FILTER_PROMISC_MSK | | 2119 | priv->staging39_rxon.filter_flags = RXON_FILTER_PROMISC_MSK | |
2120 | RXON_FILTER_CTL2HOST_MSK | RXON_FILTER_ACCEPT_GRP_MSK; | 2120 | RXON_FILTER_CTL2HOST_MSK | RXON_FILTER_ACCEPT_GRP_MSK; |
2121 | break; | 2121 | break; |
2122 | default: | 2122 | default: |
@@ -2128,13 +2128,13 @@ static void iwl3945_connection_init_rx_config(struct iwl3945_priv *priv, | |||
2128 | /* TODO: Figure out when short_preamble would be set and cache from | 2128 | /* TODO: Figure out when short_preamble would be set and cache from |
2129 | * that */ | 2129 | * that */ |
2130 | if (!hw_to_local(priv->hw)->short_preamble) | 2130 | if (!hw_to_local(priv->hw)->short_preamble) |
2131 | priv->staging_rxon.flags &= ~RXON_FLG_SHORT_PREAMBLE_MSK; | 2131 | priv->staging39_rxon.flags &= ~RXON_FLG_SHORT_PREAMBLE_MSK; |
2132 | else | 2132 | else |
2133 | priv->staging_rxon.flags |= RXON_FLG_SHORT_PREAMBLE_MSK; | 2133 | priv->staging39_rxon.flags |= RXON_FLG_SHORT_PREAMBLE_MSK; |
2134 | #endif | 2134 | #endif |
2135 | 2135 | ||
2136 | ch_info = iwl3945_get_channel_info(priv, priv->band, | 2136 | ch_info = iwl3945_get_channel_info(priv, priv->band, |
2137 | le16_to_cpu(priv->active_rxon.channel)); | 2137 | le16_to_cpu(priv->active39_rxon.channel)); |
2138 | 2138 | ||
2139 | if (!ch_info) | 2139 | if (!ch_info) |
2140 | ch_info = &priv->channel_info[0]; | 2140 | ch_info = &priv->channel_info[0]; |
@@ -2146,7 +2146,7 @@ static void iwl3945_connection_init_rx_config(struct iwl3945_priv *priv, | |||
2146 | if ((mode == NL80211_IFTYPE_ADHOC) && !(is_channel_ibss(ch_info))) | 2146 | if ((mode == NL80211_IFTYPE_ADHOC) && !(is_channel_ibss(ch_info))) |
2147 | ch_info = &priv->channel_info[0]; | 2147 | ch_info = &priv->channel_info[0]; |
2148 | 2148 | ||
2149 | priv->staging_rxon.channel = cpu_to_le16(ch_info->channel); | 2149 | priv->staging39_rxon.channel = cpu_to_le16(ch_info->channel); |
2150 | if (is_channel_a_band(ch_info)) | 2150 | if (is_channel_a_band(ch_info)) |
2151 | priv->band = IEEE80211_BAND_5GHZ; | 2151 | priv->band = IEEE80211_BAND_5GHZ; |
2152 | else | 2152 | else |
@@ -2154,9 +2154,9 @@ static void iwl3945_connection_init_rx_config(struct iwl3945_priv *priv, | |||
2154 | 2154 | ||
2155 | iwl3945_set_flags_for_phymode(priv, priv->band); | 2155 | iwl3945_set_flags_for_phymode(priv, priv->band); |
2156 | 2156 | ||
2157 | priv->staging_rxon.ofdm_basic_rates = | 2157 | priv->staging39_rxon.ofdm_basic_rates = |
2158 | (IWL_OFDM_RATES_MASK >> IWL_FIRST_OFDM_RATE) & 0xFF; | 2158 | (IWL_OFDM_RATES_MASK >> IWL_FIRST_OFDM_RATE) & 0xFF; |
2159 | priv->staging_rxon.cck_basic_rates = | 2159 | priv->staging39_rxon.cck_basic_rates = |
2160 | (IWL_CCK_RATES_MASK >> IWL_FIRST_CCK_RATE) & 0xF; | 2160 | (IWL_CCK_RATES_MASK >> IWL_FIRST_CCK_RATE) & 0xF; |
2161 | } | 2161 | } |
2162 | 2162 | ||
@@ -2167,17 +2167,17 @@ static int iwl3945_set_mode(struct iwl3945_priv *priv, int mode) | |||
2167 | 2167 | ||
2168 | ch_info = iwl3945_get_channel_info(priv, | 2168 | ch_info = iwl3945_get_channel_info(priv, |
2169 | priv->band, | 2169 | priv->band, |
2170 | le16_to_cpu(priv->staging_rxon.channel)); | 2170 | le16_to_cpu(priv->staging39_rxon.channel)); |
2171 | 2171 | ||
2172 | if (!ch_info || !is_channel_ibss(ch_info)) { | 2172 | if (!ch_info || !is_channel_ibss(ch_info)) { |
2173 | IWL_ERROR("channel %d not IBSS channel\n", | 2173 | IWL_ERROR("channel %d not IBSS channel\n", |
2174 | le16_to_cpu(priv->staging_rxon.channel)); | 2174 | le16_to_cpu(priv->staging39_rxon.channel)); |
2175 | return -EINVAL; | 2175 | return -EINVAL; |
2176 | } | 2176 | } |
2177 | } | 2177 | } |
2178 | 2178 | ||
2179 | iwl3945_connection_init_rx_config(priv, mode); | 2179 | iwl3945_connection_init_rx_config(priv, mode); |
2180 | memcpy(priv->staging_rxon.node_addr, priv->mac_addr, ETH_ALEN); | 2180 | memcpy(priv->staging39_rxon.node_addr, priv->mac_addr, ETH_ALEN); |
2181 | 2181 | ||
2182 | iwl3945_clear_stations_table(priv); | 2182 | iwl3945_clear_stations_table(priv); |
2183 | 2183 | ||
@@ -2204,7 +2204,7 @@ static void iwl3945_build_tx_cmd_hwcrypto(struct iwl3945_priv *priv, | |||
2204 | int last_frag) | 2204 | int last_frag) |
2205 | { | 2205 | { |
2206 | struct iwl3945_hw_key *keyinfo = | 2206 | struct iwl3945_hw_key *keyinfo = |
2207 | &priv->stations[info->control.hw_key->hw_key_idx].keyinfo; | 2207 | &priv->stations_39[info->control.hw_key->hw_key_idx].keyinfo; |
2208 | 2208 | ||
2209 | switch (keyinfo->alg) { | 2209 | switch (keyinfo->alg) { |
2210 | case ALG_CCMP: | 2210 | case ALG_CCMP: |
@@ -2446,7 +2446,7 @@ static int iwl3945_tx_skb(struct iwl3945_priv *priv, struct sk_buff *skb) | |||
2446 | if (ieee80211_is_data_qos(fc)) { | 2446 | if (ieee80211_is_data_qos(fc)) { |
2447 | qc = ieee80211_get_qos_ctl(hdr); | 2447 | qc = ieee80211_get_qos_ctl(hdr); |
2448 | tid = qc[0] & IEEE80211_QOS_CTL_TID_MASK; | 2448 | tid = qc[0] & IEEE80211_QOS_CTL_TID_MASK; |
2449 | seq_number = priv->stations[sta_id].tid[tid].seq_number & | 2449 | seq_number = priv->stations_39[sta_id].tid[tid].seq_number & |
2450 | IEEE80211_SCTL_SEQ; | 2450 | IEEE80211_SCTL_SEQ; |
2451 | hdr->seq_ctrl = cpu_to_le16(seq_number) | | 2451 | hdr->seq_ctrl = cpu_to_le16(seq_number) | |
2452 | (hdr->seq_ctrl & | 2452 | (hdr->seq_ctrl & |
@@ -2455,7 +2455,7 @@ static int iwl3945_tx_skb(struct iwl3945_priv *priv, struct sk_buff *skb) | |||
2455 | } | 2455 | } |
2456 | 2456 | ||
2457 | /* Descriptor for chosen Tx queue */ | 2457 | /* Descriptor for chosen Tx queue */ |
2458 | txq = &priv->txq[txq_id]; | 2458 | txq = &priv->txq39[txq_id]; |
2459 | q = &txq->q; | 2459 | q = &txq->q; |
2460 | 2460 | ||
2461 | spin_lock_irqsave(&priv->lock, flags); | 2461 | spin_lock_irqsave(&priv->lock, flags); |
@@ -2554,7 +2554,7 @@ static int iwl3945_tx_skb(struct iwl3945_priv *priv, struct sk_buff *skb) | |||
2554 | if (!ieee80211_has_morefrags(hdr->frame_control)) { | 2554 | if (!ieee80211_has_morefrags(hdr->frame_control)) { |
2555 | txq->need_update = 1; | 2555 | txq->need_update = 1; |
2556 | if (qc) | 2556 | if (qc) |
2557 | priv->stations[sta_id].tid[tid].seq_number = seq_number; | 2557 | priv->stations_39[sta_id].tid[tid].seq_number = seq_number; |
2558 | } else { | 2558 | } else { |
2559 | wait_write_ptr = 1; | 2559 | wait_write_ptr = 1; |
2560 | txq->need_update = 0; | 2560 | txq->need_update = 0; |
@@ -2631,20 +2631,20 @@ static void iwl3945_set_rate(struct iwl3945_priv *priv) | |||
2631 | * OFDM | 2631 | * OFDM |
2632 | */ | 2632 | */ |
2633 | if (priv->active_rate_basic & IWL_CCK_BASIC_RATES_MASK) | 2633 | if (priv->active_rate_basic & IWL_CCK_BASIC_RATES_MASK) |
2634 | priv->staging_rxon.cck_basic_rates = | 2634 | priv->staging39_rxon.cck_basic_rates = |
2635 | ((priv->active_rate_basic & | 2635 | ((priv->active_rate_basic & |
2636 | IWL_CCK_RATES_MASK) >> IWL_FIRST_CCK_RATE) & 0xF; | 2636 | IWL_CCK_RATES_MASK) >> IWL_FIRST_CCK_RATE) & 0xF; |
2637 | else | 2637 | else |
2638 | priv->staging_rxon.cck_basic_rates = | 2638 | priv->staging39_rxon.cck_basic_rates = |
2639 | (IWL_CCK_BASIC_RATES_MASK >> IWL_FIRST_CCK_RATE) & 0xF; | 2639 | (IWL_CCK_BASIC_RATES_MASK >> IWL_FIRST_CCK_RATE) & 0xF; |
2640 | 2640 | ||
2641 | if (priv->active_rate_basic & IWL_OFDM_BASIC_RATES_MASK) | 2641 | if (priv->active_rate_basic & IWL_OFDM_BASIC_RATES_MASK) |
2642 | priv->staging_rxon.ofdm_basic_rates = | 2642 | priv->staging39_rxon.ofdm_basic_rates = |
2643 | ((priv->active_rate_basic & | 2643 | ((priv->active_rate_basic & |
2644 | (IWL_OFDM_BASIC_RATES_MASK | IWL_RATE_6M_MASK)) >> | 2644 | (IWL_OFDM_BASIC_RATES_MASK | IWL_RATE_6M_MASK)) >> |
2645 | IWL_FIRST_OFDM_RATE) & 0xFF; | 2645 | IWL_FIRST_OFDM_RATE) & 0xFF; |
2646 | else | 2646 | else |
2647 | priv->staging_rxon.ofdm_basic_rates = | 2647 | priv->staging39_rxon.ofdm_basic_rates = |
2648 | (IWL_OFDM_BASIC_RATES_MASK >> IWL_FIRST_OFDM_RATE) & 0xFF; | 2648 | (IWL_OFDM_BASIC_RATES_MASK >> IWL_FIRST_OFDM_RATE) & 0xFF; |
2649 | } | 2649 | } |
2650 | 2650 | ||
@@ -2704,7 +2704,7 @@ void iwl3945_set_decrypted_flag(struct iwl3945_priv *priv, struct sk_buff *skb, | |||
2704 | u16 fc = | 2704 | u16 fc = |
2705 | le16_to_cpu(((struct ieee80211_hdr *)skb->data)->frame_control); | 2705 | le16_to_cpu(((struct ieee80211_hdr *)skb->data)->frame_control); |
2706 | 2706 | ||
2707 | if (priv->active_rxon.filter_flags & RXON_FILTER_DIS_DECRYPT_MSK) | 2707 | if (priv->active39_rxon.filter_flags & RXON_FILTER_DIS_DECRYPT_MSK) |
2708 | return; | 2708 | return; |
2709 | 2709 | ||
2710 | if (!(fc & IEEE80211_FCTL_PROTECTED)) | 2710 | if (!(fc & IEEE80211_FCTL_PROTECTED)) |
@@ -2825,7 +2825,7 @@ static int iwl3945_get_measurement(struct iwl3945_priv *priv, | |||
2825 | spectrum.channels[0].duration = cpu_to_le32(duration * TIME_UNIT); | 2825 | spectrum.channels[0].duration = cpu_to_le32(duration * TIME_UNIT); |
2826 | spectrum.channels[0].channel = params->channel; | 2826 | spectrum.channels[0].channel = params->channel; |
2827 | spectrum.channels[0].type = type; | 2827 | spectrum.channels[0].type = type; |
2828 | if (priv->active_rxon.flags & RXON_FLG_BAND_24G_MSK) | 2828 | if (priv->active39_rxon.flags & RXON_FLG_BAND_24G_MSK) |
2829 | spectrum.flags |= RXON_FLG_BAND_24G_MSK | | 2829 | spectrum.flags |= RXON_FLG_BAND_24G_MSK | |
2830 | RXON_FLG_AUTO_DETECT_MSK | RXON_FLG_TGG_PROTECT_MSK; | 2830 | RXON_FLG_AUTO_DETECT_MSK | RXON_FLG_TGG_PROTECT_MSK; |
2831 | 2831 | ||
@@ -2926,12 +2926,12 @@ static void iwl3945_rx_reply_error(struct iwl3945_priv *priv, | |||
2926 | static void iwl3945_rx_csa(struct iwl3945_priv *priv, struct iwl_rx_mem_buffer *rxb) | 2926 | static void iwl3945_rx_csa(struct iwl3945_priv *priv, struct iwl_rx_mem_buffer *rxb) |
2927 | { | 2927 | { |
2928 | struct iwl_rx_packet *pkt = (void *)rxb->skb->data; | 2928 | struct iwl_rx_packet *pkt = (void *)rxb->skb->data; |
2929 | struct iwl3945_rxon_cmd *rxon = (void *)&priv->active_rxon; | 2929 | struct iwl3945_rxon_cmd *rxon = (void *)&priv->active39_rxon; |
2930 | struct iwl_csa_notification *csa = &(pkt->u.csa_notif); | 2930 | struct iwl_csa_notification *csa = &(pkt->u.csa_notif); |
2931 | IWL_DEBUG_11H("CSA notif: channel %d, status %d\n", | 2931 | IWL_DEBUG_11H("CSA notif: channel %d, status %d\n", |
2932 | le16_to_cpu(csa->channel), le32_to_cpu(csa->status)); | 2932 | le16_to_cpu(csa->channel), le32_to_cpu(csa->status)); |
2933 | rxon->channel = csa->channel; | 2933 | rxon->channel = csa->channel; |
2934 | priv->staging_rxon.channel = csa->channel; | 2934 | priv->staging39_rxon.channel = csa->channel; |
2935 | } | 2935 | } |
2936 | 2936 | ||
2937 | static void iwl3945_rx_spectrum_measure_notif(struct iwl3945_priv *priv, | 2937 | static void iwl3945_rx_spectrum_measure_notif(struct iwl3945_priv *priv, |
@@ -3226,7 +3226,7 @@ static void iwl3945_setup_rx_handlers(struct iwl3945_priv *priv) | |||
3226 | static void iwl3945_cmd_queue_reclaim(struct iwl3945_priv *priv, | 3226 | static void iwl3945_cmd_queue_reclaim(struct iwl3945_priv *priv, |
3227 | int txq_id, int index) | 3227 | int txq_id, int index) |
3228 | { | 3228 | { |
3229 | struct iwl3945_tx_queue *txq = &priv->txq[txq_id]; | 3229 | struct iwl3945_tx_queue *txq = &priv->txq39[txq_id]; |
3230 | struct iwl_queue *q = &txq->q; | 3230 | struct iwl_queue *q = &txq->q; |
3231 | int nfreed = 0; | 3231 | int nfreed = 0; |
3232 | 3232 | ||
@@ -3271,8 +3271,8 @@ static void iwl3945_tx_cmd_complete(struct iwl3945_priv *priv, | |||
3271 | 3271 | ||
3272 | BUG_ON(txq_id != IWL_CMD_QUEUE_NUM); | 3272 | BUG_ON(txq_id != IWL_CMD_QUEUE_NUM); |
3273 | 3273 | ||
3274 | cmd_index = get_cmd_index(&priv->txq[IWL_CMD_QUEUE_NUM].q, index, huge); | 3274 | cmd_index = get_cmd_index(&priv->txq39[IWL_CMD_QUEUE_NUM].q, index, huge); |
3275 | cmd = &priv->txq[IWL_CMD_QUEUE_NUM].cmd[cmd_index]; | 3275 | cmd = &priv->txq39[IWL_CMD_QUEUE_NUM].cmd[cmd_index]; |
3276 | 3276 | ||
3277 | /* Input error checking is done when commands are added to queue. */ | 3277 | /* Input error checking is done when commands are added to queue. */ |
3278 | if (cmd->meta.flags & CMD_WANT_SKB) { | 3278 | if (cmd->meta.flags & CMD_WANT_SKB) { |
@@ -4113,7 +4113,7 @@ static void iwl3945_irq_handle_error(struct iwl3945_priv *priv) | |||
4113 | if (priv->debug_level & IWL_DL_FW_ERRORS) { | 4113 | if (priv->debug_level & IWL_DL_FW_ERRORS) { |
4114 | iwl3945_dump_nic_error_log(priv); | 4114 | iwl3945_dump_nic_error_log(priv); |
4115 | iwl3945_dump_nic_event_log(priv); | 4115 | iwl3945_dump_nic_event_log(priv); |
4116 | iwl3945_print_rx_config_cmd(priv, &priv->staging_rxon); | 4116 | iwl3945_print_rx_config_cmd(priv, &priv->staging39_rxon); |
4117 | } | 4117 | } |
4118 | #endif | 4118 | #endif |
4119 | 4119 | ||
@@ -4128,8 +4128,8 @@ static void iwl3945_irq_handle_error(struct iwl3945_priv *priv) | |||
4128 | "Restarting adapter due to uCode error.\n"); | 4128 | "Restarting adapter due to uCode error.\n"); |
4129 | 4129 | ||
4130 | if (iwl3945_is_associated(priv)) { | 4130 | if (iwl3945_is_associated(priv)) { |
4131 | memcpy(&priv->recovery_rxon, &priv->active_rxon, | 4131 | memcpy(&priv->recovery39_rxon, &priv->active39_rxon, |
4132 | sizeof(priv->recovery_rxon)); | 4132 | sizeof(priv->recovery39_rxon)); |
4133 | priv->error_recovering = 1; | 4133 | priv->error_recovering = 1; |
4134 | } | 4134 | } |
4135 | queue_work(priv->workqueue, &priv->restart); | 4135 | queue_work(priv->workqueue, &priv->restart); |
@@ -4140,15 +4140,15 @@ static void iwl3945_error_recovery(struct iwl3945_priv *priv) | |||
4140 | { | 4140 | { |
4141 | unsigned long flags; | 4141 | unsigned long flags; |
4142 | 4142 | ||
4143 | memcpy(&priv->staging_rxon, &priv->recovery_rxon, | 4143 | memcpy(&priv->staging39_rxon, &priv->recovery39_rxon, |
4144 | sizeof(priv->staging_rxon)); | 4144 | sizeof(priv->staging39_rxon)); |
4145 | priv->staging_rxon.filter_flags &= ~RXON_FILTER_ASSOC_MSK; | 4145 | priv->staging39_rxon.filter_flags &= ~RXON_FILTER_ASSOC_MSK; |
4146 | iwl3945_commit_rxon(priv); | 4146 | iwl3945_commit_rxon(priv); |
4147 | 4147 | ||
4148 | iwl3945_add_station(priv, priv->bssid, 1, 0); | 4148 | iwl3945_add_station(priv, priv->bssid, 1, 0); |
4149 | 4149 | ||
4150 | spin_lock_irqsave(&priv->lock, flags); | 4150 | spin_lock_irqsave(&priv->lock, flags); |
4151 | priv->assoc_id = le16_to_cpu(priv->staging_rxon.assoc_id); | 4151 | priv->assoc_id = le16_to_cpu(priv->staging39_rxon.assoc_id); |
4152 | priv->error_recovering = 0; | 4152 | priv->error_recovering = 0; |
4153 | spin_unlock_irqrestore(&priv->lock, flags); | 4153 | spin_unlock_irqrestore(&priv->lock, flags); |
4154 | } | 4154 | } |
@@ -4237,12 +4237,12 @@ static void iwl3945_irq_tasklet(struct iwl3945_priv *priv) | |||
4237 | if (inta & CSR_INT_BIT_WAKEUP) { | 4237 | if (inta & CSR_INT_BIT_WAKEUP) { |
4238 | IWL_DEBUG_ISR("Wakeup interrupt\n"); | 4238 | IWL_DEBUG_ISR("Wakeup interrupt\n"); |
4239 | iwl3945_rx_queue_update_write_ptr(priv, &priv->rxq); | 4239 | iwl3945_rx_queue_update_write_ptr(priv, &priv->rxq); |
4240 | iwl3945_tx_queue_update_write_ptr(priv, &priv->txq[0]); | 4240 | iwl3945_tx_queue_update_write_ptr(priv, &priv->txq39[0]); |
4241 | iwl3945_tx_queue_update_write_ptr(priv, &priv->txq[1]); | 4241 | iwl3945_tx_queue_update_write_ptr(priv, &priv->txq39[1]); |
4242 | iwl3945_tx_queue_update_write_ptr(priv, &priv->txq[2]); | 4242 | iwl3945_tx_queue_update_write_ptr(priv, &priv->txq39[2]); |
4243 | iwl3945_tx_queue_update_write_ptr(priv, &priv->txq[3]); | 4243 | iwl3945_tx_queue_update_write_ptr(priv, &priv->txq39[3]); |
4244 | iwl3945_tx_queue_update_write_ptr(priv, &priv->txq[4]); | 4244 | iwl3945_tx_queue_update_write_ptr(priv, &priv->txq39[4]); |
4245 | iwl3945_tx_queue_update_write_ptr(priv, &priv->txq[5]); | 4245 | iwl3945_tx_queue_update_write_ptr(priv, &priv->txq39[5]); |
4246 | 4246 | ||
4247 | handled |= CSR_INT_BIT_WAKEUP; | 4247 | handled |= CSR_INT_BIT_WAKEUP; |
4248 | } | 4248 | } |
@@ -4356,7 +4356,7 @@ unplugged: | |||
4356 | * EEPROM contents to the specific channel number supported for each | 4356 | * EEPROM contents to the specific channel number supported for each |
4357 | * band. | 4357 | * band. |
4358 | * | 4358 | * |
4359 | * For example, iwl3945_priv->eeprom.band_3_channels[4] from the band_3 | 4359 | * For example, iwl3945_priv->eeprom39.band_3_channels[4] from the band_3 |
4360 | * definition below maps to physical channel 42 in the 5.2GHz spectrum. | 4360 | * definition below maps to physical channel 42 in the 5.2GHz spectrum. |
4361 | * The specific geography and calibration information for that channel | 4361 | * The specific geography and calibration information for that channel |
4362 | * is contained in the eeprom map itself. | 4362 | * is contained in the eeprom map itself. |
@@ -4412,27 +4412,27 @@ static void iwl3945_init_band_reference(const struct iwl3945_priv *priv, int ban | |||
4412 | switch (band) { | 4412 | switch (band) { |
4413 | case 1: /* 2.4GHz band */ | 4413 | case 1: /* 2.4GHz band */ |
4414 | *eeprom_ch_count = ARRAY_SIZE(iwl3945_eeprom_band_1); | 4414 | *eeprom_ch_count = ARRAY_SIZE(iwl3945_eeprom_band_1); |
4415 | *eeprom_ch_info = priv->eeprom.band_1_channels; | 4415 | *eeprom_ch_info = priv->eeprom39.band_1_channels; |
4416 | *eeprom_ch_index = iwl3945_eeprom_band_1; | 4416 | *eeprom_ch_index = iwl3945_eeprom_band_1; |
4417 | break; | 4417 | break; |
4418 | case 2: /* 4.9GHz band */ | 4418 | case 2: /* 4.9GHz band */ |
4419 | *eeprom_ch_count = ARRAY_SIZE(iwl3945_eeprom_band_2); | 4419 | *eeprom_ch_count = ARRAY_SIZE(iwl3945_eeprom_band_2); |
4420 | *eeprom_ch_info = priv->eeprom.band_2_channels; | 4420 | *eeprom_ch_info = priv->eeprom39.band_2_channels; |
4421 | *eeprom_ch_index = iwl3945_eeprom_band_2; | 4421 | *eeprom_ch_index = iwl3945_eeprom_band_2; |
4422 | break; | 4422 | break; |
4423 | case 3: /* 5.2GHz band */ | 4423 | case 3: /* 5.2GHz band */ |
4424 | *eeprom_ch_count = ARRAY_SIZE(iwl3945_eeprom_band_3); | 4424 | *eeprom_ch_count = ARRAY_SIZE(iwl3945_eeprom_band_3); |
4425 | *eeprom_ch_info = priv->eeprom.band_3_channels; | 4425 | *eeprom_ch_info = priv->eeprom39.band_3_channels; |
4426 | *eeprom_ch_index = iwl3945_eeprom_band_3; | 4426 | *eeprom_ch_index = iwl3945_eeprom_band_3; |
4427 | break; | 4427 | break; |
4428 | case 4: /* 5.5GHz band */ | 4428 | case 4: /* 5.5GHz band */ |
4429 | *eeprom_ch_count = ARRAY_SIZE(iwl3945_eeprom_band_4); | 4429 | *eeprom_ch_count = ARRAY_SIZE(iwl3945_eeprom_band_4); |
4430 | *eeprom_ch_info = priv->eeprom.band_4_channels; | 4430 | *eeprom_ch_info = priv->eeprom39.band_4_channels; |
4431 | *eeprom_ch_index = iwl3945_eeprom_band_4; | 4431 | *eeprom_ch_index = iwl3945_eeprom_band_4; |
4432 | break; | 4432 | break; |
4433 | case 5: /* 5.7GHz band */ | 4433 | case 5: /* 5.7GHz band */ |
4434 | *eeprom_ch_count = ARRAY_SIZE(iwl3945_eeprom_band_5); | 4434 | *eeprom_ch_count = ARRAY_SIZE(iwl3945_eeprom_band_5); |
4435 | *eeprom_ch_info = priv->eeprom.band_5_channels; | 4435 | *eeprom_ch_info = priv->eeprom39.band_5_channels; |
4436 | *eeprom_ch_index = iwl3945_eeprom_band_5; | 4436 | *eeprom_ch_index = iwl3945_eeprom_band_5; |
4437 | break; | 4437 | break; |
4438 | default: | 4438 | default: |
@@ -4490,9 +4490,9 @@ static int iwl3945_init_channel_map(struct iwl3945_priv *priv) | |||
4490 | return 0; | 4490 | return 0; |
4491 | } | 4491 | } |
4492 | 4492 | ||
4493 | if (priv->eeprom.version < 0x2f) { | 4493 | if (priv->eeprom39.version < 0x2f) { |
4494 | IWL_WARNING("Unsupported EEPROM version: 0x%04X\n", | 4494 | IWL_WARNING("Unsupported EEPROM version: 0x%04X\n", |
4495 | priv->eeprom.version); | 4495 | priv->eeprom39.version); |
4496 | return -EINVAL; | 4496 | return -EINVAL; |
4497 | } | 4497 | } |
4498 | 4498 | ||
@@ -5626,15 +5626,15 @@ static void iwl3945_alive_start(struct iwl3945_priv *priv) | |||
5626 | 5626 | ||
5627 | if (iwl3945_is_associated(priv)) { | 5627 | if (iwl3945_is_associated(priv)) { |
5628 | struct iwl3945_rxon_cmd *active_rxon = | 5628 | struct iwl3945_rxon_cmd *active_rxon = |
5629 | (struct iwl3945_rxon_cmd *)(&priv->active_rxon); | 5629 | (struct iwl3945_rxon_cmd *)(&priv->active39_rxon); |
5630 | 5630 | ||
5631 | memcpy(&priv->staging_rxon, &priv->active_rxon, | 5631 | memcpy(&priv->staging39_rxon, &priv->active39_rxon, |
5632 | sizeof(priv->staging_rxon)); | 5632 | sizeof(priv->staging39_rxon)); |
5633 | active_rxon->filter_flags &= ~RXON_FILTER_ASSOC_MSK; | 5633 | active_rxon->filter_flags &= ~RXON_FILTER_ASSOC_MSK; |
5634 | } else { | 5634 | } else { |
5635 | /* Initialize our rx_config data */ | 5635 | /* Initialize our rx_config data */ |
5636 | iwl3945_connection_init_rx_config(priv, priv->iw_mode); | 5636 | iwl3945_connection_init_rx_config(priv, priv->iw_mode); |
5637 | memcpy(priv->staging_rxon.node_addr, priv->mac_addr, ETH_ALEN); | 5637 | memcpy(priv->staging39_rxon.node_addr, priv->mac_addr, ETH_ALEN); |
5638 | } | 5638 | } |
5639 | 5639 | ||
5640 | /* Configure Bluetooth device coexistence support */ | 5640 | /* Configure Bluetooth device coexistence support */ |
@@ -6027,15 +6027,15 @@ static void iwl3945_bg_request_scan(struct work_struct *data) | |||
6027 | goto done; | 6027 | goto done; |
6028 | } | 6028 | } |
6029 | 6029 | ||
6030 | if (!priv->scan) { | 6030 | if (!priv->scan39) { |
6031 | priv->scan = kmalloc(sizeof(struct iwl3945_scan_cmd) + | 6031 | priv->scan39 = kmalloc(sizeof(struct iwl3945_scan_cmd) + |
6032 | IWL_MAX_SCAN_SIZE, GFP_KERNEL); | 6032 | IWL_MAX_SCAN_SIZE, GFP_KERNEL); |
6033 | if (!priv->scan) { | 6033 | if (!priv->scan39) { |
6034 | rc = -ENOMEM; | 6034 | rc = -ENOMEM; |
6035 | goto done; | 6035 | goto done; |
6036 | } | 6036 | } |
6037 | } | 6037 | } |
6038 | scan = priv->scan; | 6038 | scan = priv->scan39; |
6039 | memset(scan, 0, sizeof(struct iwl3945_scan_cmd) + IWL_MAX_SCAN_SIZE); | 6039 | memset(scan, 0, sizeof(struct iwl3945_scan_cmd) + IWL_MAX_SCAN_SIZE); |
6040 | 6040 | ||
6041 | scan->quiet_plcp_th = IWL_PLCP_QUIET_THRESH; | 6041 | scan->quiet_plcp_th = IWL_PLCP_QUIET_THRESH; |
@@ -6210,7 +6210,7 @@ static void iwl3945_post_associate(struct iwl3945_priv *priv) | |||
6210 | 6210 | ||
6211 | 6211 | ||
6212 | IWL_DEBUG_ASSOC("Associated as %d to: %pM\n", | 6212 | IWL_DEBUG_ASSOC("Associated as %d to: %pM\n", |
6213 | priv->assoc_id, priv->active_rxon.bssid_addr); | 6213 | priv->assoc_id, priv->active39_rxon.bssid_addr); |
6214 | 6214 | ||
6215 | if (test_bit(STATUS_EXIT_PENDING, &priv->status)) | 6215 | if (test_bit(STATUS_EXIT_PENDING, &priv->status)) |
6216 | return; | 6216 | return; |
@@ -6222,7 +6222,7 @@ static void iwl3945_post_associate(struct iwl3945_priv *priv) | |||
6222 | 6222 | ||
6223 | conf = ieee80211_get_hw_conf(priv->hw); | 6223 | conf = ieee80211_get_hw_conf(priv->hw); |
6224 | 6224 | ||
6225 | priv->staging_rxon.filter_flags &= ~RXON_FILTER_ASSOC_MSK; | 6225 | priv->staging39_rxon.filter_flags &= ~RXON_FILTER_ASSOC_MSK; |
6226 | iwl3945_commit_rxon(priv); | 6226 | iwl3945_commit_rxon(priv); |
6227 | 6227 | ||
6228 | memset(&priv->rxon_timing, 0, sizeof(struct iwl_rxon_time_cmd)); | 6228 | memset(&priv->rxon_timing, 0, sizeof(struct iwl_rxon_time_cmd)); |
@@ -6233,26 +6233,26 @@ static void iwl3945_post_associate(struct iwl3945_priv *priv) | |||
6233 | IWL_WARNING("REPLY_RXON_TIMING failed - " | 6233 | IWL_WARNING("REPLY_RXON_TIMING failed - " |
6234 | "Attempting to continue.\n"); | 6234 | "Attempting to continue.\n"); |
6235 | 6235 | ||
6236 | priv->staging_rxon.filter_flags |= RXON_FILTER_ASSOC_MSK; | 6236 | priv->staging39_rxon.filter_flags |= RXON_FILTER_ASSOC_MSK; |
6237 | 6237 | ||
6238 | priv->staging_rxon.assoc_id = cpu_to_le16(priv->assoc_id); | 6238 | priv->staging39_rxon.assoc_id = cpu_to_le16(priv->assoc_id); |
6239 | 6239 | ||
6240 | IWL_DEBUG_ASSOC("assoc id %d beacon interval %d\n", | 6240 | IWL_DEBUG_ASSOC("assoc id %d beacon interval %d\n", |
6241 | priv->assoc_id, priv->beacon_int); | 6241 | priv->assoc_id, priv->beacon_int); |
6242 | 6242 | ||
6243 | if (priv->assoc_capability & WLAN_CAPABILITY_SHORT_PREAMBLE) | 6243 | if (priv->assoc_capability & WLAN_CAPABILITY_SHORT_PREAMBLE) |
6244 | priv->staging_rxon.flags |= RXON_FLG_SHORT_PREAMBLE_MSK; | 6244 | priv->staging39_rxon.flags |= RXON_FLG_SHORT_PREAMBLE_MSK; |
6245 | else | 6245 | else |
6246 | priv->staging_rxon.flags &= ~RXON_FLG_SHORT_PREAMBLE_MSK; | 6246 | priv->staging39_rxon.flags &= ~RXON_FLG_SHORT_PREAMBLE_MSK; |
6247 | 6247 | ||
6248 | if (priv->staging_rxon.flags & RXON_FLG_BAND_24G_MSK) { | 6248 | if (priv->staging39_rxon.flags & RXON_FLG_BAND_24G_MSK) { |
6249 | if (priv->assoc_capability & WLAN_CAPABILITY_SHORT_SLOT_TIME) | 6249 | if (priv->assoc_capability & WLAN_CAPABILITY_SHORT_SLOT_TIME) |
6250 | priv->staging_rxon.flags |= RXON_FLG_SHORT_SLOT_MSK; | 6250 | priv->staging39_rxon.flags |= RXON_FLG_SHORT_SLOT_MSK; |
6251 | else | 6251 | else |
6252 | priv->staging_rxon.flags &= ~RXON_FLG_SHORT_SLOT_MSK; | 6252 | priv->staging39_rxon.flags &= ~RXON_FLG_SHORT_SLOT_MSK; |
6253 | 6253 | ||
6254 | if (priv->iw_mode == NL80211_IFTYPE_ADHOC) | 6254 | if (priv->iw_mode == NL80211_IFTYPE_ADHOC) |
6255 | priv->staging_rxon.flags &= ~RXON_FLG_SHORT_SLOT_MSK; | 6255 | priv->staging39_rxon.flags &= ~RXON_FLG_SHORT_SLOT_MSK; |
6256 | 6256 | ||
6257 | } | 6257 | } |
6258 | 6258 | ||
@@ -6359,7 +6359,7 @@ static int iwl3945_mac_start(struct ieee80211_hw *hw) | |||
6359 | /* we should be verifying the device is ready to be opened */ | 6359 | /* we should be verifying the device is ready to be opened */ |
6360 | mutex_lock(&priv->mutex); | 6360 | mutex_lock(&priv->mutex); |
6361 | 6361 | ||
6362 | memset(&priv->staging_rxon, 0, sizeof(struct iwl3945_rxon_cmd)); | 6362 | memset(&priv->staging39_rxon, 0, sizeof(struct iwl3945_rxon_cmd)); |
6363 | /* fetch ucode file from disk, alloc and copy to bus-master buffers ... | 6363 | /* fetch ucode file from disk, alloc and copy to bus-master buffers ... |
6364 | * ucode filename and max sizes are card-specific. */ | 6364 | * ucode filename and max sizes are card-specific. */ |
6365 | 6365 | ||
@@ -6576,8 +6576,8 @@ static int iwl3945_mac_config(struct ieee80211_hw *hw, u32 changed) | |||
6576 | 6576 | ||
6577 | iwl3945_set_rate(priv); | 6577 | iwl3945_set_rate(priv); |
6578 | 6578 | ||
6579 | if (memcmp(&priv->active_rxon, | 6579 | if (memcmp(&priv->active39_rxon, |
6580 | &priv->staging_rxon, sizeof(priv->staging_rxon))) | 6580 | &priv->staging39_rxon, sizeof(priv->staging39_rxon))) |
6581 | iwl3945_commit_rxon(priv); | 6581 | iwl3945_commit_rxon(priv); |
6582 | else | 6582 | else |
6583 | IWL_DEBUG_INFO("No re-sending same RXON configuration.\n"); | 6583 | IWL_DEBUG_INFO("No re-sending same RXON configuration.\n"); |
@@ -6601,7 +6601,7 @@ static void iwl3945_config_ap(struct iwl3945_priv *priv) | |||
6601 | if (!(iwl3945_is_associated(priv))) { | 6601 | if (!(iwl3945_is_associated(priv))) { |
6602 | 6602 | ||
6603 | /* RXON - unassoc (to set timing command) */ | 6603 | /* RXON - unassoc (to set timing command) */ |
6604 | priv->staging_rxon.filter_flags &= ~RXON_FILTER_ASSOC_MSK; | 6604 | priv->staging39_rxon.filter_flags &= ~RXON_FILTER_ASSOC_MSK; |
6605 | iwl3945_commit_rxon(priv); | 6605 | iwl3945_commit_rxon(priv); |
6606 | 6606 | ||
6607 | /* RXON Timing */ | 6607 | /* RXON Timing */ |
@@ -6614,29 +6614,29 @@ static void iwl3945_config_ap(struct iwl3945_priv *priv) | |||
6614 | "Attempting to continue.\n"); | 6614 | "Attempting to continue.\n"); |
6615 | 6615 | ||
6616 | /* FIXME: what should be the assoc_id for AP? */ | 6616 | /* FIXME: what should be the assoc_id for AP? */ |
6617 | priv->staging_rxon.assoc_id = cpu_to_le16(priv->assoc_id); | 6617 | priv->staging39_rxon.assoc_id = cpu_to_le16(priv->assoc_id); |
6618 | if (priv->assoc_capability & WLAN_CAPABILITY_SHORT_PREAMBLE) | 6618 | if (priv->assoc_capability & WLAN_CAPABILITY_SHORT_PREAMBLE) |
6619 | priv->staging_rxon.flags |= | 6619 | priv->staging39_rxon.flags |= |
6620 | RXON_FLG_SHORT_PREAMBLE_MSK; | 6620 | RXON_FLG_SHORT_PREAMBLE_MSK; |
6621 | else | 6621 | else |
6622 | priv->staging_rxon.flags &= | 6622 | priv->staging39_rxon.flags &= |
6623 | ~RXON_FLG_SHORT_PREAMBLE_MSK; | 6623 | ~RXON_FLG_SHORT_PREAMBLE_MSK; |
6624 | 6624 | ||
6625 | if (priv->staging_rxon.flags & RXON_FLG_BAND_24G_MSK) { | 6625 | if (priv->staging39_rxon.flags & RXON_FLG_BAND_24G_MSK) { |
6626 | if (priv->assoc_capability & | 6626 | if (priv->assoc_capability & |
6627 | WLAN_CAPABILITY_SHORT_SLOT_TIME) | 6627 | WLAN_CAPABILITY_SHORT_SLOT_TIME) |
6628 | priv->staging_rxon.flags |= | 6628 | priv->staging39_rxon.flags |= |
6629 | RXON_FLG_SHORT_SLOT_MSK; | 6629 | RXON_FLG_SHORT_SLOT_MSK; |
6630 | else | 6630 | else |
6631 | priv->staging_rxon.flags &= | 6631 | priv->staging39_rxon.flags &= |
6632 | ~RXON_FLG_SHORT_SLOT_MSK; | 6632 | ~RXON_FLG_SHORT_SLOT_MSK; |
6633 | 6633 | ||
6634 | if (priv->iw_mode == NL80211_IFTYPE_ADHOC) | 6634 | if (priv->iw_mode == NL80211_IFTYPE_ADHOC) |
6635 | priv->staging_rxon.flags &= | 6635 | priv->staging39_rxon.flags &= |
6636 | ~RXON_FLG_SHORT_SLOT_MSK; | 6636 | ~RXON_FLG_SHORT_SLOT_MSK; |
6637 | } | 6637 | } |
6638 | /* restore RXON assoc */ | 6638 | /* restore RXON assoc */ |
6639 | priv->staging_rxon.filter_flags |= RXON_FILTER_ASSOC_MSK; | 6639 | priv->staging39_rxon.filter_flags |= RXON_FILTER_ASSOC_MSK; |
6640 | iwl3945_commit_rxon(priv); | 6640 | iwl3945_commit_rxon(priv); |
6641 | iwl3945_add_station(priv, iwl_bcast_addr, 0, 0); | 6641 | iwl3945_add_station(priv, iwl_bcast_addr, 0, 0); |
6642 | } | 6642 | } |
@@ -6717,7 +6717,7 @@ static int iwl3945_mac_config_interface(struct ieee80211_hw *hw, | |||
6717 | mutex_unlock(&priv->mutex); | 6717 | mutex_unlock(&priv->mutex); |
6718 | return -EAGAIN; | 6718 | return -EAGAIN; |
6719 | } | 6719 | } |
6720 | memcpy(priv->staging_rxon.bssid_addr, conf->bssid, ETH_ALEN); | 6720 | memcpy(priv->staging39_rxon.bssid_addr, conf->bssid, ETH_ALEN); |
6721 | 6721 | ||
6722 | /* TODO: Audit driver for usage of these members and see | 6722 | /* TODO: Audit driver for usage of these members and see |
6723 | * if mac80211 deprecates them (priv->bssid looks like it | 6723 | * if mac80211 deprecates them (priv->bssid looks like it |
@@ -6731,12 +6731,12 @@ static int iwl3945_mac_config_interface(struct ieee80211_hw *hw, | |||
6731 | rc = iwl3945_commit_rxon(priv); | 6731 | rc = iwl3945_commit_rxon(priv); |
6732 | if ((priv->iw_mode == NL80211_IFTYPE_STATION) && rc) | 6732 | if ((priv->iw_mode == NL80211_IFTYPE_STATION) && rc) |
6733 | iwl3945_add_station(priv, | 6733 | iwl3945_add_station(priv, |
6734 | priv->active_rxon.bssid_addr, 1, 0); | 6734 | priv->active39_rxon.bssid_addr, 1, 0); |
6735 | } | 6735 | } |
6736 | 6736 | ||
6737 | } else { | 6737 | } else { |
6738 | iwl3945_scan_cancel_timeout(priv, 100); | 6738 | iwl3945_scan_cancel_timeout(priv, 100); |
6739 | priv->staging_rxon.filter_flags &= ~RXON_FILTER_ASSOC_MSK; | 6739 | priv->staging39_rxon.filter_flags &= ~RXON_FILTER_ASSOC_MSK; |
6740 | iwl3945_commit_rxon(priv); | 6740 | iwl3945_commit_rxon(priv); |
6741 | } | 6741 | } |
6742 | 6742 | ||
@@ -6753,7 +6753,7 @@ static void iwl3945_configure_filter(struct ieee80211_hw *hw, | |||
6753 | int mc_count, struct dev_addr_list *mc_list) | 6753 | int mc_count, struct dev_addr_list *mc_list) |
6754 | { | 6754 | { |
6755 | struct iwl3945_priv *priv = hw->priv; | 6755 | struct iwl3945_priv *priv = hw->priv; |
6756 | __le32 *filter_flags = &priv->staging_rxon.filter_flags; | 6756 | __le32 *filter_flags = &priv->staging39_rxon.filter_flags; |
6757 | 6757 | ||
6758 | IWL_DEBUG_MAC80211("Enter: changed: 0x%x, total: 0x%x\n", | 6758 | IWL_DEBUG_MAC80211("Enter: changed: 0x%x, total: 0x%x\n", |
6759 | changed_flags, *total_flags); | 6759 | changed_flags, *total_flags); |
@@ -6804,7 +6804,7 @@ static void iwl3945_mac_remove_interface(struct ieee80211_hw *hw, | |||
6804 | 6804 | ||
6805 | if (iwl3945_is_ready_rf(priv)) { | 6805 | if (iwl3945_is_ready_rf(priv)) { |
6806 | iwl3945_scan_cancel_timeout(priv, 100); | 6806 | iwl3945_scan_cancel_timeout(priv, 100); |
6807 | priv->staging_rxon.filter_flags &= ~RXON_FILTER_ASSOC_MSK; | 6807 | priv->staging39_rxon.filter_flags &= ~RXON_FILTER_ASSOC_MSK; |
6808 | iwl3945_commit_rxon(priv); | 6808 | iwl3945_commit_rxon(priv); |
6809 | } | 6809 | } |
6810 | if (priv->vif == conf->vif) { | 6810 | if (priv->vif == conf->vif) { |
@@ -6831,17 +6831,17 @@ static void iwl3945_bss_info_changed(struct ieee80211_hw *hw, | |||
6831 | IWL_DEBUG_MAC80211("ERP_PREAMBLE %d\n", | 6831 | IWL_DEBUG_MAC80211("ERP_PREAMBLE %d\n", |
6832 | bss_conf->use_short_preamble); | 6832 | bss_conf->use_short_preamble); |
6833 | if (bss_conf->use_short_preamble) | 6833 | if (bss_conf->use_short_preamble) |
6834 | priv->staging_rxon.flags |= RXON_FLG_SHORT_PREAMBLE_MSK; | 6834 | priv->staging39_rxon.flags |= RXON_FLG_SHORT_PREAMBLE_MSK; |
6835 | else | 6835 | else |
6836 | priv->staging_rxon.flags &= ~RXON_FLG_SHORT_PREAMBLE_MSK; | 6836 | priv->staging39_rxon.flags &= ~RXON_FLG_SHORT_PREAMBLE_MSK; |
6837 | } | 6837 | } |
6838 | 6838 | ||
6839 | if (changes & BSS_CHANGED_ERP_CTS_PROT) { | 6839 | if (changes & BSS_CHANGED_ERP_CTS_PROT) { |
6840 | IWL_DEBUG_MAC80211("ERP_CTS %d\n", bss_conf->use_cts_prot); | 6840 | IWL_DEBUG_MAC80211("ERP_CTS %d\n", bss_conf->use_cts_prot); |
6841 | if (bss_conf->use_cts_prot && (priv->band != IEEE80211_BAND_5GHZ)) | 6841 | if (bss_conf->use_cts_prot && (priv->band != IEEE80211_BAND_5GHZ)) |
6842 | priv->staging_rxon.flags |= RXON_FLG_TGG_PROTECT_MSK; | 6842 | priv->staging39_rxon.flags |= RXON_FLG_TGG_PROTECT_MSK; |
6843 | else | 6843 | else |
6844 | priv->staging_rxon.flags &= ~RXON_FLG_TGG_PROTECT_MSK; | 6844 | priv->staging39_rxon.flags &= ~RXON_FLG_TGG_PROTECT_MSK; |
6845 | } | 6845 | } |
6846 | 6846 | ||
6847 | if (changes & BSS_CHANGED_ASSOC) { | 6847 | if (changes & BSS_CHANGED_ASSOC) { |
@@ -7048,7 +7048,7 @@ static int iwl3945_mac_get_tx_stats(struct ieee80211_hw *hw, | |||
7048 | spin_lock_irqsave(&priv->lock, flags); | 7048 | spin_lock_irqsave(&priv->lock, flags); |
7049 | 7049 | ||
7050 | for (i = 0; i < AC_NUM; i++) { | 7050 | for (i = 0; i < AC_NUM; i++) { |
7051 | txq = &priv->txq[i]; | 7051 | txq = &priv->txq39[i]; |
7052 | q = &txq->q; | 7052 | q = &txq->q; |
7053 | avail = iwl_queue_space(q); | 7053 | avail = iwl_queue_space(q); |
7054 | 7054 | ||
@@ -7103,7 +7103,7 @@ static void iwl3945_mac_reset_tsf(struct ieee80211_hw *hw) | |||
7103 | */ | 7103 | */ |
7104 | if (priv->iw_mode != NL80211_IFTYPE_AP) { | 7104 | if (priv->iw_mode != NL80211_IFTYPE_AP) { |
7105 | iwl3945_scan_cancel_timeout(priv, 100); | 7105 | iwl3945_scan_cancel_timeout(priv, 100); |
7106 | priv->staging_rxon.filter_flags &= ~RXON_FILTER_ASSOC_MSK; | 7106 | priv->staging39_rxon.filter_flags &= ~RXON_FILTER_ASSOC_MSK; |
7107 | iwl3945_commit_rxon(priv); | 7107 | iwl3945_commit_rxon(priv); |
7108 | } | 7108 | } |
7109 | 7109 | ||
@@ -7250,7 +7250,7 @@ static ssize_t show_flags(struct device *d, | |||
7250 | { | 7250 | { |
7251 | struct iwl3945_priv *priv = (struct iwl3945_priv *)d->driver_data; | 7251 | struct iwl3945_priv *priv = (struct iwl3945_priv *)d->driver_data; |
7252 | 7252 | ||
7253 | return sprintf(buf, "0x%04X\n", priv->active_rxon.flags); | 7253 | return sprintf(buf, "0x%04X\n", priv->active39_rxon.flags); |
7254 | } | 7254 | } |
7255 | 7255 | ||
7256 | static ssize_t store_flags(struct device *d, | 7256 | static ssize_t store_flags(struct device *d, |
@@ -7261,14 +7261,14 @@ static ssize_t store_flags(struct device *d, | |||
7261 | u32 flags = simple_strtoul(buf, NULL, 0); | 7261 | u32 flags = simple_strtoul(buf, NULL, 0); |
7262 | 7262 | ||
7263 | mutex_lock(&priv->mutex); | 7263 | mutex_lock(&priv->mutex); |
7264 | if (le32_to_cpu(priv->staging_rxon.flags) != flags) { | 7264 | if (le32_to_cpu(priv->staging39_rxon.flags) != flags) { |
7265 | /* Cancel any currently running scans... */ | 7265 | /* Cancel any currently running scans... */ |
7266 | if (iwl3945_scan_cancel_timeout(priv, 100)) | 7266 | if (iwl3945_scan_cancel_timeout(priv, 100)) |
7267 | IWL_WARNING("Could not cancel scan.\n"); | 7267 | IWL_WARNING("Could not cancel scan.\n"); |
7268 | else { | 7268 | else { |
7269 | IWL_DEBUG_INFO("Committing rxon.flags = 0x%04X\n", | 7269 | IWL_DEBUG_INFO("Committing rxon.flags = 0x%04X\n", |
7270 | flags); | 7270 | flags); |
7271 | priv->staging_rxon.flags = cpu_to_le32(flags); | 7271 | priv->staging39_rxon.flags = cpu_to_le32(flags); |
7272 | iwl3945_commit_rxon(priv); | 7272 | iwl3945_commit_rxon(priv); |
7273 | } | 7273 | } |
7274 | } | 7274 | } |
@@ -7285,7 +7285,7 @@ static ssize_t show_filter_flags(struct device *d, | |||
7285 | struct iwl3945_priv *priv = (struct iwl3945_priv *)d->driver_data; | 7285 | struct iwl3945_priv *priv = (struct iwl3945_priv *)d->driver_data; |
7286 | 7286 | ||
7287 | return sprintf(buf, "0x%04X\n", | 7287 | return sprintf(buf, "0x%04X\n", |
7288 | le32_to_cpu(priv->active_rxon.filter_flags)); | 7288 | le32_to_cpu(priv->active39_rxon.filter_flags)); |
7289 | } | 7289 | } |
7290 | 7290 | ||
7291 | static ssize_t store_filter_flags(struct device *d, | 7291 | static ssize_t store_filter_flags(struct device *d, |
@@ -7296,14 +7296,14 @@ static ssize_t store_filter_flags(struct device *d, | |||
7296 | u32 filter_flags = simple_strtoul(buf, NULL, 0); | 7296 | u32 filter_flags = simple_strtoul(buf, NULL, 0); |
7297 | 7297 | ||
7298 | mutex_lock(&priv->mutex); | 7298 | mutex_lock(&priv->mutex); |
7299 | if (le32_to_cpu(priv->staging_rxon.filter_flags) != filter_flags) { | 7299 | if (le32_to_cpu(priv->staging39_rxon.filter_flags) != filter_flags) { |
7300 | /* Cancel any currently running scans... */ | 7300 | /* Cancel any currently running scans... */ |
7301 | if (iwl3945_scan_cancel_timeout(priv, 100)) | 7301 | if (iwl3945_scan_cancel_timeout(priv, 100)) |
7302 | IWL_WARNING("Could not cancel scan.\n"); | 7302 | IWL_WARNING("Could not cancel scan.\n"); |
7303 | else { | 7303 | else { |
7304 | IWL_DEBUG_INFO("Committing rxon.filter_flags = " | 7304 | IWL_DEBUG_INFO("Committing rxon.filter_flags = " |
7305 | "0x%04X\n", filter_flags); | 7305 | "0x%04X\n", filter_flags); |
7306 | priv->staging_rxon.filter_flags = | 7306 | priv->staging39_rxon.filter_flags = |
7307 | cpu_to_le32(filter_flags); | 7307 | cpu_to_le32(filter_flags); |
7308 | iwl3945_commit_rxon(priv); | 7308 | iwl3945_commit_rxon(priv); |
7309 | } | 7309 | } |
@@ -7356,7 +7356,7 @@ static ssize_t store_measurement(struct device *d, | |||
7356 | { | 7356 | { |
7357 | struct iwl3945_priv *priv = dev_get_drvdata(d); | 7357 | struct iwl3945_priv *priv = dev_get_drvdata(d); |
7358 | struct ieee80211_measurement_params params = { | 7358 | struct ieee80211_measurement_params params = { |
7359 | .channel = le16_to_cpu(priv->active_rxon.channel), | 7359 | .channel = le16_to_cpu(priv->active39_rxon.channel), |
7360 | .start_time = cpu_to_le64(priv->last_tsf), | 7360 | .start_time = cpu_to_le64(priv->last_tsf), |
7361 | .duration = cpu_to_le16(1), | 7361 | .duration = cpu_to_le16(1), |
7362 | }; | 7362 | }; |
@@ -7518,7 +7518,7 @@ static ssize_t show_statistics(struct device *d, | |||
7518 | struct iwl3945_priv *priv = dev_get_drvdata(d); | 7518 | struct iwl3945_priv *priv = dev_get_drvdata(d); |
7519 | u32 size = sizeof(struct iwl3945_notif_statistics); | 7519 | u32 size = sizeof(struct iwl3945_notif_statistics); |
7520 | u32 len = 0, ofs = 0; | 7520 | u32 len = 0, ofs = 0; |
7521 | u8 *data = (u8 *)&priv->statistics; | 7521 | u8 *data = (u8 *)&priv->statistics_39; |
7522 | int rc = 0; | 7522 | int rc = 0; |
7523 | 7523 | ||
7524 | if (!iwl3945_is_alive(priv)) | 7524 | if (!iwl3945_is_alive(priv)) |
@@ -7860,7 +7860,7 @@ static int iwl3945_pci_probe(struct pci_dev *pdev, const struct pci_device_id *e | |||
7860 | priv->ibss_beacon = NULL; | 7860 | priv->ibss_beacon = NULL; |
7861 | 7861 | ||
7862 | spin_lock_init(&priv->lock); | 7862 | spin_lock_init(&priv->lock); |
7863 | spin_lock_init(&priv->power_data.lock); | 7863 | spin_lock_init(&priv->power_data_39.lock); |
7864 | spin_lock_init(&priv->sta_lock); | 7864 | spin_lock_init(&priv->sta_lock); |
7865 | spin_lock_init(&priv->hcmd_lock); | 7865 | spin_lock_init(&priv->hcmd_lock); |
7866 | 7866 | ||
@@ -8040,7 +8040,7 @@ static void __devexit iwl3945_pci_remove(struct pci_dev *pdev) | |||
8040 | 8040 | ||
8041 | iwl3945_free_channel_map(priv); | 8041 | iwl3945_free_channel_map(priv); |
8042 | iwl3945_free_geos(priv); | 8042 | iwl3945_free_geos(priv); |
8043 | kfree(priv->scan); | 8043 | kfree(priv->scan39); |
8044 | if (priv->ibss_beacon) | 8044 | if (priv->ibss_beacon) |
8045 | dev_kfree_skb(priv->ibss_beacon); | 8045 | dev_kfree_skb(priv->ibss_beacon); |
8046 | 8046 | ||