aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl-4965.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-4965.h')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-4965.h41
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 */
40extern 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 */
49extern 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 {
461struct iwl4965_hw_key { 461struct 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 */
581struct iwl4965_driver_hw_info { 580struct 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);
642extern int iwl4965_rx_queue_update_write_ptr(struct iwl_priv *priv, 642extern int iwl4965_rx_queue_update_write_ptr(struct iwl_priv *priv,
643 struct iwl4965_rx_queue *q); 643 struct iwl4965_rx_queue *q);
644extern int iwl4965_send_statistics_request(struct iwl_priv *priv);
645extern void iwl4965_set_decrypted_flag(struct iwl_priv *priv, struct sk_buff *skb, 644extern 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);
679extern void iwl4965_hw_setup_deferred_work(struct iwl_priv *priv); 678extern void iwl4965_hw_setup_deferred_work(struct iwl_priv *priv);
680extern void iwl4965_hw_cancel_deferred_work(struct iwl_priv *priv); 679extern void iwl4965_hw_cancel_deferred_work(struct iwl_priv *priv);
681extern int iwl4965_hw_rxq_stop(struct iwl_priv *priv); 680extern int iwl4965_hw_rxq_stop(struct iwl_priv *priv);
682extern int iwl4965_hw_set_hw_setting(struct iwl_priv *priv); 681extern int iwl4965_hw_set_hw_params(struct iwl_priv *priv);
683extern int iwl4965_hw_nic_init(struct iwl_priv *priv); 682extern int iwl4965_hw_nic_init(struct iwl_priv *priv);
684extern int iwl4965_hw_nic_stop_master(struct iwl_priv *priv); 683extern int iwl4965_hw_nic_stop_master(struct iwl_priv *priv);
685extern void iwl4965_hw_txq_ctx_free(struct iwl_priv *priv); 684extern 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
945struct iwl_priv { 946struct 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