diff options
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-4965.h')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-4965.h | 41 |
1 files changed, 25 insertions, 16 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-4965.h b/drivers/net/wireless/iwlwifi/iwl-4965.h index 65e536782706..9ed13cb0a2a9 100644 --- a/drivers/net/wireless/iwlwifi/iwl-4965.h +++ b/drivers/net/wireless/iwlwifi/iwl-4965.h | |||
@@ -36,9 +36,6 @@ | |||
36 | #include <linux/kernel.h> | 36 | #include <linux/kernel.h> |
37 | #include <net/ieee80211_radiotap.h> | 37 | #include <net/ieee80211_radiotap.h> |
38 | 38 | ||
39 | /* Hardware specific file defines the PCI IDs table for that hardware module */ | ||
40 | extern struct pci_device_id iwl4965_hw_card_ids[]; | ||
41 | |||
42 | #define DRV_NAME "iwl4965" | 39 | #define DRV_NAME "iwl4965" |
43 | #include "iwl-rfkill.h" | 40 | #include "iwl-rfkill.h" |
44 | #include "iwl-eeprom.h" | 41 | #include "iwl-eeprom.h" |
@@ -48,6 +45,9 @@ extern struct pci_device_id iwl4965_hw_card_ids[]; | |||
48 | #include "iwl-debug.h" | 45 | #include "iwl-debug.h" |
49 | #include "iwl-led.h" | 46 | #include "iwl-led.h" |
50 | 47 | ||
48 | /* configuration for the iwl4965 */ | ||
49 | extern struct iwl_cfg iwl4965_agn_cfg; | ||
50 | |||
51 | /* Change firmware file name, using "-" and incrementing number, | 51 | /* Change firmware file name, using "-" and incrementing number, |
52 | * *only* when uCode interface or architecture changes so that it | 52 | * *only* when uCode interface or architecture changes so that it |
53 | * is not compatible with earlier drivers. | 53 | * is not compatible with earlier drivers. |
@@ -461,6 +461,7 @@ struct iwl4965_tid_data { | |||
461 | struct iwl4965_hw_key { | 461 | struct iwl4965_hw_key { |
462 | enum ieee80211_key_alg alg; | 462 | enum ieee80211_key_alg alg; |
463 | int keylen; | 463 | int keylen; |
464 | u8 keyidx; | ||
464 | struct ieee80211_key_conf *conf; | 465 | struct ieee80211_key_conf *conf; |
465 | u8 key[32]; | 466 | u8 key[32]; |
466 | }; | 467 | }; |
@@ -566,7 +567,7 @@ struct iwl4965_ibss_seq { | |||
566 | }; | 567 | }; |
567 | 568 | ||
568 | /** | 569 | /** |
569 | * struct iwl4965_driver_hw_info | 570 | * struct iwl_hw_params |
570 | * @max_txq_num: Max # Tx queues supported | 571 | * @max_txq_num: Max # Tx queues supported |
571 | * @tx_cmd_len: Size of Tx command (but not including frame itself) | 572 | * @tx_cmd_len: Size of Tx command (but not including frame itself) |
572 | * @tx_ant_num: Number of TX antennas | 573 | * @tx_ant_num: Number of TX antennas |
@@ -575,21 +576,20 @@ struct iwl4965_ibss_seq { | |||
575 | * @max_rxq_log: Log-base-2 of max_rxq_size | 576 | * @max_rxq_log: Log-base-2 of max_rxq_size |
576 | * @max_stations: | 577 | * @max_stations: |
577 | * @bcast_sta_id: | 578 | * @bcast_sta_id: |
578 | * @shared_virt: Pointer to driver/uCode shared Tx Byte Counts and Rx status | ||
579 | * @shared_phys: Physical Pointer to Tx Byte Counts and Rx status | ||
580 | */ | 579 | */ |
581 | struct iwl4965_driver_hw_info { | 580 | struct iwl_hw_params { |
582 | u16 max_txq_num; | 581 | u16 max_txq_num; |
583 | u16 tx_cmd_len; | 582 | u16 tx_cmd_len; |
584 | u16 tx_ant_num; | 583 | u8 tx_chains_num; |
584 | u8 rx_chains_num; | ||
585 | u8 valid_tx_ant; | ||
586 | u8 valid_rx_ant; | ||
585 | u16 max_rxq_size; | 587 | u16 max_rxq_size; |
588 | u16 max_rxq_log; | ||
586 | u32 rx_buf_size; | 589 | u32 rx_buf_size; |
587 | u32 max_pkt_size; | 590 | u32 max_pkt_size; |
588 | u16 max_rxq_log; | ||
589 | u8 max_stations; | 591 | u8 max_stations; |
590 | u8 bcast_sta_id; | 592 | u8 bcast_sta_id; |
591 | void *shared_virt; | ||
592 | dma_addr_t shared_phys; | ||
593 | }; | 593 | }; |
594 | 594 | ||
595 | #define HT_SHORT_GI_20MHZ_ONLY (1 << 0) | 595 | #define HT_SHORT_GI_20MHZ_ONLY (1 << 0) |
@@ -641,7 +641,6 @@ extern unsigned int iwl4965_fill_beacon_frame(struct iwl_priv *priv, | |||
641 | const u8 *dest, int left); | 641 | const u8 *dest, int left); |
642 | extern int iwl4965_rx_queue_update_write_ptr(struct iwl_priv *priv, | 642 | extern int iwl4965_rx_queue_update_write_ptr(struct iwl_priv *priv, |
643 | struct iwl4965_rx_queue *q); | 643 | struct iwl4965_rx_queue *q); |
644 | extern int iwl4965_send_statistics_request(struct iwl_priv *priv); | ||
645 | extern void iwl4965_set_decrypted_flag(struct iwl_priv *priv, struct sk_buff *skb, | 644 | extern void iwl4965_set_decrypted_flag(struct iwl_priv *priv, struct sk_buff *skb, |
646 | u32 decrypt_res, | 645 | u32 decrypt_res, |
647 | struct ieee80211_rx_status *stats); | 646 | struct ieee80211_rx_status *stats); |
@@ -679,7 +678,7 @@ extern void iwl4965_hw_rx_handler_setup(struct iwl_priv *priv); | |||
679 | extern void iwl4965_hw_setup_deferred_work(struct iwl_priv *priv); | 678 | extern void iwl4965_hw_setup_deferred_work(struct iwl_priv *priv); |
680 | extern void iwl4965_hw_cancel_deferred_work(struct iwl_priv *priv); | 679 | extern void iwl4965_hw_cancel_deferred_work(struct iwl_priv *priv); |
681 | extern int iwl4965_hw_rxq_stop(struct iwl_priv *priv); | 680 | extern int iwl4965_hw_rxq_stop(struct iwl_priv *priv); |
682 | extern int iwl4965_hw_set_hw_setting(struct iwl_priv *priv); | 681 | extern int iwl4965_hw_set_hw_params(struct iwl_priv *priv); |
683 | extern int iwl4965_hw_nic_init(struct iwl_priv *priv); | 682 | extern int iwl4965_hw_nic_init(struct iwl_priv *priv); |
684 | extern int iwl4965_hw_nic_stop_master(struct iwl_priv *priv); | 683 | extern int iwl4965_hw_nic_stop_master(struct iwl_priv *priv); |
685 | extern void iwl4965_hw_txq_ctx_free(struct iwl_priv *priv); | 684 | extern void iwl4965_hw_txq_ctx_free(struct iwl_priv *priv); |
@@ -942,6 +941,8 @@ enum { | |||
942 | 941 | ||
943 | #endif | 942 | #endif |
944 | 943 | ||
944 | #define IWL_MAX_NUM_QUEUES 20 /* FIXME: do dynamic allocation */ | ||
945 | |||
945 | struct iwl_priv { | 946 | struct iwl_priv { |
946 | 947 | ||
947 | /* ieee device used by generic ieee processing code */ | 948 | /* ieee device used by generic ieee processing code */ |
@@ -1033,7 +1034,7 @@ struct iwl_priv { | |||
1033 | * 4965's initialize alive response contains some calibration data. */ | 1034 | * 4965's initialize alive response contains some calibration data. */ |
1034 | struct iwl4965_init_alive_resp card_alive_init; | 1035 | struct iwl4965_init_alive_resp card_alive_init; |
1035 | struct iwl4965_alive_resp card_alive; | 1036 | struct iwl4965_alive_resp card_alive; |
1036 | #ifdef CONFIG_IWLCORE_RFKILL | 1037 | #ifdef CONFIG_IWLWIFI_RFKILL |
1037 | struct iwl_rfkill_mngr rfkill_mngr; | 1038 | struct iwl_rfkill_mngr rfkill_mngr; |
1038 | #endif | 1039 | #endif |
1039 | 1040 | ||
@@ -1112,6 +1113,10 @@ struct iwl_priv { | |||
1112 | spinlock_t sta_lock; | 1113 | spinlock_t sta_lock; |
1113 | int num_stations; | 1114 | int num_stations; |
1114 | struct iwl4965_station_entry stations[IWL_STATION_COUNT]; | 1115 | struct iwl4965_station_entry stations[IWL_STATION_COUNT]; |
1116 | struct iwl_wep_key wep_keys[WEP_KEYS_MAX]; | ||
1117 | u8 default_wep_key; | ||
1118 | u8 key_mapping_key; | ||
1119 | unsigned long ucode_key_table; | ||
1115 | 1120 | ||
1116 | /* Indication if ieee80211_ops->open has been called */ | 1121 | /* Indication if ieee80211_ops->open has been called */ |
1117 | u8 is_open; | 1122 | u8 is_open; |
@@ -1142,9 +1147,14 @@ struct iwl_priv { | |||
1142 | /* Last Rx'd beacon timestamp */ | 1147 | /* Last Rx'd beacon timestamp */ |
1143 | u64 timestamp; | 1148 | u64 timestamp; |
1144 | u16 beacon_int; | 1149 | u16 beacon_int; |
1145 | struct iwl4965_driver_hw_info hw_setting; | ||
1146 | struct ieee80211_vif *vif; | 1150 | struct ieee80211_vif *vif; |
1147 | 1151 | ||
1152 | struct iwl_hw_params hw_params; | ||
1153 | /* driver/uCode shared Tx Byte Counts and Rx status */ | ||
1154 | void *shared_virt; | ||
1155 | /* Physical Pointer to Tx Byte Counts and Rx status */ | ||
1156 | dma_addr_t shared_phys; | ||
1157 | |||
1148 | /* Current association information needed to configure the | 1158 | /* Current association information needed to configure the |
1149 | * hardware */ | 1159 | * hardware */ |
1150 | u16 assoc_id; | 1160 | u16 assoc_id; |
@@ -1200,7 +1210,6 @@ struct iwl_priv { | |||
1200 | #ifdef CONFIG_IWL4965_SENSITIVITY | 1210 | #ifdef CONFIG_IWL4965_SENSITIVITY |
1201 | struct work_struct sensitivity_work; | 1211 | struct work_struct sensitivity_work; |
1202 | #endif | 1212 | #endif |
1203 | struct work_struct statistics_work; | ||
1204 | struct timer_list statistics_periodic; | 1213 | struct timer_list statistics_periodic; |
1205 | }; /*iwl_priv */ | 1214 | }; /*iwl_priv */ |
1206 | 1215 | ||