diff options
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-dev.h')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-dev.h | 183 |
1 files changed, 59 insertions, 124 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-dev.h b/drivers/net/wireless/iwlwifi/iwl-dev.h index 9966d4e384ce..0468fcc1ea98 100644 --- a/drivers/net/wireless/iwlwifi/iwl-dev.h +++ b/drivers/net/wireless/iwlwifi/iwl-dev.h | |||
@@ -19,7 +19,7 @@ | |||
19 | * file called LICENSE. | 19 | * file called LICENSE. |
20 | * | 20 | * |
21 | * Contact Information: | 21 | * Contact Information: |
22 | * James P. Ketrenos <ipw2100-admin@linux.intel.com> | 22 | * Intel Linux Wireless <ilw@linux.intel.com> |
23 | * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 | 23 | * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 |
24 | * | 24 | * |
25 | *****************************************************************************/ | 25 | *****************************************************************************/ |
@@ -54,6 +54,7 @@ extern struct iwl_cfg iwl5100_agn_cfg; | |||
54 | extern struct iwl_cfg iwl5350_agn_cfg; | 54 | extern struct iwl_cfg iwl5350_agn_cfg; |
55 | extern struct iwl_cfg iwl5100_bg_cfg; | 55 | extern struct iwl_cfg iwl5100_bg_cfg; |
56 | extern struct iwl_cfg iwl5100_abg_cfg; | 56 | extern struct iwl_cfg iwl5100_abg_cfg; |
57 | extern struct iwl_cfg iwl5150_agn_cfg; | ||
57 | 58 | ||
58 | /* CT-KILL constants */ | 59 | /* CT-KILL constants */ |
59 | #define CT_KILL_THRESHOLD 110 /* in Celsius */ | 60 | #define CT_KILL_THRESHOLD 110 /* in Celsius */ |
@@ -113,11 +114,9 @@ struct iwl_queue { | |||
113 | * space less than this */ | 114 | * space less than this */ |
114 | } __attribute__ ((packed)); | 115 | } __attribute__ ((packed)); |
115 | 116 | ||
116 | #define MAX_NUM_OF_TBS (20) | ||
117 | |||
118 | /* One for each TFD */ | 117 | /* One for each TFD */ |
119 | struct iwl_tx_info { | 118 | struct iwl_tx_info { |
120 | struct sk_buff *skb[MAX_NUM_OF_TBS]; | 119 | struct sk_buff *skb[IWL_NUM_OF_TBS - 1]; |
121 | }; | 120 | }; |
122 | 121 | ||
123 | /** | 122 | /** |
@@ -135,12 +134,13 @@ struct iwl_tx_info { | |||
135 | */ | 134 | */ |
136 | struct iwl_tx_queue { | 135 | struct iwl_tx_queue { |
137 | struct iwl_queue q; | 136 | struct iwl_queue q; |
138 | struct iwl_tfd_frame *bd; | 137 | struct iwl_tfd *tfds; |
139 | struct iwl_cmd *cmd[TFD_TX_CMD_SLOTS]; | 138 | struct iwl_cmd *cmd[TFD_TX_CMD_SLOTS]; |
140 | struct iwl_tx_info *txb; | 139 | struct iwl_tx_info *txb; |
141 | int need_update; | 140 | u8 need_update; |
142 | int sched_retry; | 141 | u8 sched_retry; |
143 | int active; | 142 | u8 active; |
143 | u8 swq_id; | ||
144 | }; | 144 | }; |
145 | 145 | ||
146 | #define IWL_NUM_SCAN_RATES (2) | 146 | #define IWL_NUM_SCAN_RATES (2) |
@@ -186,12 +186,6 @@ struct iwl_channel_info { | |||
186 | u8 fat_extension_channel; /* HT_IE_EXT_CHANNEL_* */ | 186 | u8 fat_extension_channel; /* HT_IE_EXT_CHANNEL_* */ |
187 | }; | 187 | }; |
188 | 188 | ||
189 | struct iwl4965_clip_group { | ||
190 | /* maximum power level to prevent clipping for each rate, derived by | ||
191 | * us from this band's saturation power in EEPROM */ | ||
192 | const s8 clip_powers[IWL_MAX_RATES]; | ||
193 | }; | ||
194 | |||
195 | 189 | ||
196 | #define IWL_TX_FIFO_AC0 0 | 190 | #define IWL_TX_FIFO_AC0 0 |
197 | #define IWL_TX_FIFO_AC1 1 | 191 | #define IWL_TX_FIFO_AC1 1 |
@@ -253,7 +247,8 @@ struct iwl_cmd_meta { | |||
253 | /* The CMD_SIZE_HUGE flag bit indicates that the command | 247 | /* The CMD_SIZE_HUGE flag bit indicates that the command |
254 | * structure is stored at the end of the shared queue memory. */ | 248 | * structure is stored at the end of the shared queue memory. */ |
255 | u32 flags; | 249 | u32 flags; |
256 | 250 | DECLARE_PCI_UNMAP_ADDR(mapping) | |
251 | DECLARE_PCI_UNMAP_LEN(len) | ||
257 | } __attribute__ ((packed)); | 252 | } __attribute__ ((packed)); |
258 | 253 | ||
259 | #define IWL_CMD_MAX_PAYLOAD 320 | 254 | #define IWL_CMD_MAX_PAYLOAD 320 |
@@ -269,24 +264,16 @@ struct iwl_cmd { | |||
269 | struct iwl_cmd_meta meta; /* driver data */ | 264 | struct iwl_cmd_meta meta; /* driver data */ |
270 | struct iwl_cmd_header hdr; /* uCode API */ | 265 | struct iwl_cmd_header hdr; /* uCode API */ |
271 | union { | 266 | union { |
272 | struct iwl_addsta_cmd addsta; | ||
273 | struct iwl_led_cmd led; | ||
274 | u32 flags; | 267 | u32 flags; |
275 | u8 val8; | 268 | u8 val8; |
276 | u16 val16; | 269 | u16 val16; |
277 | u32 val32; | 270 | u32 val32; |
278 | struct iwl4965_bt_cmd bt; | ||
279 | struct iwl4965_rxon_time_cmd rxon_time; | ||
280 | struct iwl_powertable_cmd powertable; | ||
281 | struct iwl_qosparam_cmd qosparam; | ||
282 | struct iwl_tx_cmd tx; | 271 | struct iwl_tx_cmd tx; |
283 | struct iwl4965_rxon_assoc_cmd rxon_assoc; | ||
284 | struct iwl_rem_sta_cmd rm_sta; | ||
285 | u8 *indirect; | ||
286 | u8 payload[IWL_CMD_MAX_PAYLOAD]; | 272 | u8 payload[IWL_CMD_MAX_PAYLOAD]; |
287 | } __attribute__ ((packed)) cmd; | 273 | } __attribute__ ((packed)) cmd; |
288 | } __attribute__ ((packed)); | 274 | } __attribute__ ((packed)); |
289 | 275 | ||
276 | |||
290 | struct iwl_host_cmd { | 277 | struct iwl_host_cmd { |
291 | u8 id; | 278 | u8 id; |
292 | u16 len; | 279 | u16 len; |
@@ -309,7 +296,6 @@ struct iwl_host_cmd { | |||
309 | 296 | ||
310 | /** | 297 | /** |
311 | * struct iwl_rx_queue - Rx queue | 298 | * struct iwl_rx_queue - Rx queue |
312 | * @processed: Internal index to last handled Rx packet | ||
313 | * @read: Shared index to newest available Rx buffer | 299 | * @read: Shared index to newest available Rx buffer |
314 | * @write: Shared index to oldest written Rx packet | 300 | * @write: Shared index to oldest written Rx packet |
315 | * @free_count: Number of pre-allocated buffers in rx_free | 301 | * @free_count: Number of pre-allocated buffers in rx_free |
@@ -324,26 +310,19 @@ struct iwl_rx_queue { | |||
324 | dma_addr_t dma_addr; | 310 | dma_addr_t dma_addr; |
325 | struct iwl_rx_mem_buffer pool[RX_QUEUE_SIZE + RX_FREE_BUFFERS]; | 311 | struct iwl_rx_mem_buffer pool[RX_QUEUE_SIZE + RX_FREE_BUFFERS]; |
326 | struct iwl_rx_mem_buffer *queue[RX_QUEUE_SIZE]; | 312 | struct iwl_rx_mem_buffer *queue[RX_QUEUE_SIZE]; |
327 | u32 processed; | ||
328 | u32 read; | 313 | u32 read; |
329 | u32 write; | 314 | u32 write; |
330 | u32 free_count; | 315 | u32 free_count; |
331 | struct list_head rx_free; | 316 | struct list_head rx_free; |
332 | struct list_head rx_used; | 317 | struct list_head rx_used; |
333 | int need_update; | 318 | int need_update; |
319 | struct iwl_rb_status *rb_stts; | ||
320 | dma_addr_t rb_stts_dma; | ||
334 | spinlock_t lock; | 321 | spinlock_t lock; |
335 | }; | 322 | }; |
336 | 323 | ||
337 | #define IWL_SUPPORTED_RATES_IE_LEN 8 | 324 | #define IWL_SUPPORTED_RATES_IE_LEN 8 |
338 | 325 | ||
339 | #define SCAN_INTERVAL 100 | ||
340 | |||
341 | #define MAX_A_CHANNELS 252 | ||
342 | #define MIN_A_CHANNELS 7 | ||
343 | |||
344 | #define MAX_B_CHANNELS 14 | ||
345 | #define MIN_B_CHANNELS 1 | ||
346 | |||
347 | #define MAX_TID_COUNT 9 | 326 | #define MAX_TID_COUNT 9 |
348 | 327 | ||
349 | #define IWL_INVALID_RATE 0xFF | 328 | #define IWL_INVALID_RATE 0xFF |
@@ -413,9 +392,8 @@ struct iwl_ht_info { | |||
413 | u8 max_amsdu_size; | 392 | u8 max_amsdu_size; |
414 | u8 ampdu_factor; | 393 | u8 ampdu_factor; |
415 | u8 mpdu_density; | 394 | u8 mpdu_density; |
416 | u8 supp_mcs_set[16]; | 395 | struct ieee80211_mcs_info mcs; |
417 | /* BSS related data */ | 396 | /* BSS related data */ |
418 | u8 control_channel; | ||
419 | u8 extension_chan_offset; | 397 | u8 extension_chan_offset; |
420 | u8 tx_chan_width; | 398 | u8 tx_chan_width; |
421 | u8 ht_protection; | 399 | u8 ht_protection; |
@@ -444,7 +422,6 @@ union iwl_qos_capabity { | |||
444 | 422 | ||
445 | /* QoS structures */ | 423 | /* QoS structures */ |
446 | struct iwl_qos_info { | 424 | struct iwl_qos_info { |
447 | int qos_enable; | ||
448 | int qos_active; | 425 | int qos_active; |
449 | union iwl_qos_capabity qos_cap; | 426 | union iwl_qos_capabity qos_cap; |
450 | struct iwl_qosparam_cmd def_qos_parm; | 427 | struct iwl_qosparam_cmd def_qos_parm; |
@@ -470,7 +447,7 @@ struct fw_desc { | |||
470 | 447 | ||
471 | /* uCode file layout */ | 448 | /* uCode file layout */ |
472 | struct iwl_ucode { | 449 | struct iwl_ucode { |
473 | __le32 ver; /* major/minor/subminor */ | 450 | __le32 ver; /* major/minor/API/serial */ |
474 | __le32 inst_size; /* bytes of runtime instructions */ | 451 | __le32 inst_size; /* bytes of runtime instructions */ |
475 | __le32 data_size; /* bytes of runtime data */ | 452 | __le32 data_size; /* bytes of runtime data */ |
476 | __le32 init_size; /* bytes of initialization instructions */ | 453 | __le32 init_size; /* bytes of initialization instructions */ |
@@ -511,11 +488,15 @@ struct iwl_sensitivity_ranges { | |||
511 | }; | 488 | }; |
512 | 489 | ||
513 | 490 | ||
514 | #define IWL_FAT_CHANNEL_52 BIT(IEEE80211_BAND_5GHZ) | 491 | #define KELVIN_TO_CELSIUS(x) ((x)-273) |
492 | #define CELSIUS_TO_KELVIN(x) ((x)+273) | ||
493 | |||
515 | 494 | ||
516 | /** | 495 | /** |
517 | * struct iwl_hw_params | 496 | * struct iwl_hw_params |
518 | * @max_txq_num: Max # Tx queues supported | 497 | * @max_txq_num: Max # Tx queues supported |
498 | * @dma_chnl_num: Number of Tx DMA/FIFO channels | ||
499 | * @scd_bc_tbls_size: size of scheduler byte count tables | ||
519 | * @tx/rx_chains_num: Number of TX/RX chains | 500 | * @tx/rx_chains_num: Number of TX/RX chains |
520 | * @valid_tx/rx_ant: usable antennas | 501 | * @valid_tx/rx_ant: usable antennas |
521 | * @max_rxq_size: Max # Rx frames in Rx queue (must be power-of-2) | 502 | * @max_rxq_size: Max # Rx frames in Rx queue (must be power-of-2) |
@@ -528,11 +509,13 @@ struct iwl_sensitivity_ranges { | |||
528 | * @sw_crypto: 0 for hw, 1 for sw | 509 | * @sw_crypto: 0 for hw, 1 for sw |
529 | * @max_xxx_size: for ucode uses | 510 | * @max_xxx_size: for ucode uses |
530 | * @ct_kill_threshold: temperature threshold | 511 | * @ct_kill_threshold: temperature threshold |
512 | * @calib_init_cfg: setup initial calibrations for the hw | ||
531 | * @struct iwl_sensitivity_ranges: range of sensitivity values | 513 | * @struct iwl_sensitivity_ranges: range of sensitivity values |
532 | * @first_ampdu_q: first HW queue available for ampdu | ||
533 | */ | 514 | */ |
534 | struct iwl_hw_params { | 515 | struct iwl_hw_params { |
535 | u16 max_txq_num; | 516 | u8 max_txq_num; |
517 | u8 dma_chnl_num; | ||
518 | u16 scd_bc_tbls_size; | ||
536 | u8 tx_chains_num; | 519 | u8 tx_chains_num; |
537 | u8 rx_chains_num; | 520 | u8 rx_chains_num; |
538 | u8 valid_tx_ant; | 521 | u8 valid_tx_ant; |
@@ -549,22 +532,10 @@ struct iwl_hw_params { | |||
549 | u32 max_data_size; | 532 | u32 max_data_size; |
550 | u32 max_bsm_size; | 533 | u32 max_bsm_size; |
551 | u32 ct_kill_threshold; /* value in hw-dependent units */ | 534 | u32 ct_kill_threshold; /* value in hw-dependent units */ |
535 | u32 calib_init_cfg; | ||
552 | const struct iwl_sensitivity_ranges *sens; | 536 | const struct iwl_sensitivity_ranges *sens; |
553 | u8 first_ampdu_q; | ||
554 | }; | 537 | }; |
555 | 538 | ||
556 | #define HT_SHORT_GI_20MHZ (1 << 0) | ||
557 | #define HT_SHORT_GI_40MHZ (1 << 1) | ||
558 | |||
559 | |||
560 | #define IWL_RX_HDR(x) ((struct iwl4965_rx_frame_hdr *)(\ | ||
561 | x->u.rx_frame.stats.payload + \ | ||
562 | x->u.rx_frame.stats.phy_count)) | ||
563 | #define IWL_RX_END(x) ((struct iwl4965_rx_frame_end *)(\ | ||
564 | IWL_RX_HDR(x)->payload + \ | ||
565 | le16_to_cpu(IWL_RX_HDR(x)->len))) | ||
566 | #define IWL_RX_STATS(x) (&x->u.rx_frame.stats) | ||
567 | #define IWL_RX_DATA(x) (IWL_RX_HDR(x)->payload) | ||
568 | 539 | ||
569 | /****************************************************************************** | 540 | /****************************************************************************** |
570 | * | 541 | * |
@@ -581,13 +552,8 @@ struct iwl_hw_params { | |||
581 | * iwl4965_mac_ <-- mac80211 callback | 552 | * iwl4965_mac_ <-- mac80211 callback |
582 | * | 553 | * |
583 | ****************************************************************************/ | 554 | ****************************************************************************/ |
584 | struct iwl_addsta_cmd; | 555 | extern void iwl_update_chain_flags(struct iwl_priv *priv); |
585 | extern int iwl_send_add_sta(struct iwl_priv *priv, | 556 | extern int iwl_set_pwr_src(struct iwl_priv *priv, enum iwl_pwr_src src); |
586 | struct iwl_addsta_cmd *sta, u8 flags); | ||
587 | extern u8 iwl_add_station_flags(struct iwl_priv *priv, const u8 *addr, | ||
588 | int is_ap, u8 flags, struct ieee80211_ht_info *ht_info); | ||
589 | extern void iwl4965_update_chain_flags(struct iwl_priv *priv); | ||
590 | extern int iwl4965_set_pwr_src(struct iwl_priv *priv, enum iwl_pwr_src src); | ||
591 | extern const u8 iwl_bcast_addr[ETH_ALEN]; | 557 | extern const u8 iwl_bcast_addr[ETH_ALEN]; |
592 | extern int iwl_rxq_stop(struct iwl_priv *priv); | 558 | extern int iwl_rxq_stop(struct iwl_priv *priv); |
593 | extern void iwl_txq_ctx_stop(struct iwl_priv *priv); | 559 | extern void iwl_txq_ctx_stop(struct iwl_priv *priv); |
@@ -611,19 +577,15 @@ static inline u8 get_cmd_index(struct iwl_queue *q, u32 index, int is_huge) | |||
611 | } | 577 | } |
612 | 578 | ||
613 | 579 | ||
614 | struct iwl_priv; | 580 | struct iwl_dma_ptr { |
615 | 581 | dma_addr_t dma; | |
616 | 582 | void *addr; | |
617 | /* Structures, enum, and defines specific to the 4965 */ | ||
618 | |||
619 | #define IWL_KW_SIZE 0x1000 /*4k */ | ||
620 | |||
621 | struct iwl_kw { | ||
622 | dma_addr_t dma_addr; | ||
623 | void *v_addr; | ||
624 | size_t size; | 583 | size_t size; |
625 | }; | 584 | }; |
626 | 585 | ||
586 | #define HT_SHORT_GI_20MHZ (1 << 0) | ||
587 | #define HT_SHORT_GI_40MHZ (1 << 1) | ||
588 | |||
627 | #define IWL_CHANNEL_WIDTH_20MHZ 0 | 589 | #define IWL_CHANNEL_WIDTH_20MHZ 0 |
628 | #define IWL_CHANNEL_WIDTH_40MHZ 1 | 590 | #define IWL_CHANNEL_WIDTH_40MHZ 1 |
629 | 591 | ||
@@ -638,7 +600,6 @@ struct iwl_kw { | |||
638 | #define TX_POWER_IWL_ILLEGAL_VOLTAGE -10000 | 600 | #define TX_POWER_IWL_ILLEGAL_VOLTAGE -10000 |
639 | 601 | ||
640 | /* Sensitivity and chain noise calibration */ | 602 | /* Sensitivity and chain noise calibration */ |
641 | #define INTERFERENCE_DATA_AVAILABLE __constant_cpu_to_le32(1) | ||
642 | #define INITIALIZATION_VALUE 0xFFFF | 603 | #define INITIALIZATION_VALUE 0xFFFF |
643 | #define CAL_NUM_OF_BEACONS 20 | 604 | #define CAL_NUM_OF_BEACONS 20 |
644 | #define MAXIMUM_ALLOWED_PATHLOSS 15 | 605 | #define MAXIMUM_ALLOWED_PATHLOSS 15 |
@@ -691,13 +652,20 @@ enum iwl4965_calib_enabled_state { | |||
691 | IWL_CALIB_ENABLED = 1, | 652 | IWL_CALIB_ENABLED = 1, |
692 | }; | 653 | }; |
693 | 654 | ||
694 | struct statistics_general_data { | 655 | |
695 | u32 beacon_silence_rssi_a; | 656 | /* |
696 | u32 beacon_silence_rssi_b; | 657 | * enum iwl_calib |
697 | u32 beacon_silence_rssi_c; | 658 | * defines the order in which results of initial calibrations |
698 | u32 beacon_energy_a; | 659 | * should be sent to the runtime uCode |
699 | u32 beacon_energy_b; | 660 | */ |
700 | u32 beacon_energy_c; | 661 | enum iwl_calib { |
662 | IWL_CALIB_XTAL, | ||
663 | IWL_CALIB_DC, | ||
664 | IWL_CALIB_LO, | ||
665 | IWL_CALIB_TX_IQ, | ||
666 | IWL_CALIB_TX_IQ_PERD, | ||
667 | IWL_CALIB_BASE_BAND, | ||
668 | IWL_CALIB_MAX | ||
701 | }; | 669 | }; |
702 | 670 | ||
703 | /* Opaque calibration results */ | 671 | /* Opaque calibration results */ |
@@ -766,7 +734,6 @@ enum { | |||
766 | 734 | ||
767 | 735 | ||
768 | #define IWL_MAX_NUM_QUEUES 20 /* FIXME: do dynamic allocation */ | 736 | #define IWL_MAX_NUM_QUEUES 20 /* FIXME: do dynamic allocation */ |
769 | #define IWL_CALIB_MAX 3 | ||
770 | 737 | ||
771 | struct iwl_priv { | 738 | struct iwl_priv { |
772 | 739 | ||
@@ -790,7 +757,7 @@ struct iwl_priv { | |||
790 | 757 | ||
791 | #ifdef CONFIG_IWLAGN_SPECTRUM_MEASUREMENT | 758 | #ifdef CONFIG_IWLAGN_SPECTRUM_MEASUREMENT |
792 | /* spectrum measurement report caching */ | 759 | /* spectrum measurement report caching */ |
793 | struct iwl4965_spectrum_notification measure_report; | 760 | struct iwl_spectrum_notification measure_report; |
794 | u8 measurement_status; | 761 | u8 measurement_status; |
795 | #endif | 762 | #endif |
796 | /* ucode beacon time */ | 763 | /* ucode beacon time */ |
@@ -801,10 +768,6 @@ struct iwl_priv { | |||
801 | struct iwl_channel_info *channel_info; /* channel info array */ | 768 | struct iwl_channel_info *channel_info; /* channel info array */ |
802 | u8 channel_count; /* # of channels */ | 769 | u8 channel_count; /* # of channels */ |
803 | 770 | ||
804 | /* each calibration channel group in the EEPROM has a derived | ||
805 | * clip setting for each rate. */ | ||
806 | const struct iwl4965_clip_group clip_groups[5]; | ||
807 | |||
808 | /* thermal calibration */ | 771 | /* thermal calibration */ |
809 | s32 temperature; /* degrees Kelvin */ | 772 | s32 temperature; /* degrees Kelvin */ |
810 | s32 last_temperature; | 773 | s32 last_temperature; |
@@ -818,12 +781,13 @@ struct iwl_priv { | |||
818 | unsigned long scan_start; | 781 | unsigned long scan_start; |
819 | unsigned long scan_pass_start; | 782 | unsigned long scan_pass_start; |
820 | unsigned long scan_start_tsf; | 783 | unsigned long scan_start_tsf; |
784 | struct iwl_scan_cmd *scan; | ||
821 | int scan_bands; | 785 | int scan_bands; |
822 | int one_direct_scan; | 786 | int one_direct_scan; |
823 | u8 direct_ssid_len; | 787 | u8 direct_ssid_len; |
824 | u8 direct_ssid[IW_ESSID_MAX_SIZE]; | 788 | u8 direct_ssid[IW_ESSID_MAX_SIZE]; |
825 | struct iwl_scan_cmd *scan; | 789 | u8 scan_tx_ant[IEEE80211_NUM_BANDS]; |
826 | u32 scan_tx_ant[IEEE80211_NUM_BANDS]; | 790 | u8 mgmt_tx_ant; |
827 | 791 | ||
828 | /* spinlock */ | 792 | /* spinlock */ |
829 | spinlock_t lock; /* protect general shared data */ | 793 | spinlock_t lock; /* protect general shared data */ |
@@ -840,6 +804,8 @@ struct iwl_priv { | |||
840 | u8 rev_id; | 804 | u8 rev_id; |
841 | 805 | ||
842 | /* uCode images, save to reload in case of failure */ | 806 | /* uCode images, save to reload in case of failure */ |
807 | u32 ucode_ver; /* version of ucode, copy of | ||
808 | iwl_ucode.ver */ | ||
843 | struct fw_desc ucode_code; /* runtime inst */ | 809 | struct fw_desc ucode_code; /* runtime inst */ |
844 | struct fw_desc ucode_data; /* runtime data original */ | 810 | struct fw_desc ucode_data; /* runtime data original */ |
845 | struct fw_desc ucode_data_backup; /* runtime data save/restore */ | 811 | struct fw_desc ucode_data_backup; /* runtime data save/restore */ |
@@ -850,7 +816,7 @@ struct iwl_priv { | |||
850 | u8 ucode_write_complete; /* the image write is complete */ | 816 | u8 ucode_write_complete; /* the image write is complete */ |
851 | 817 | ||
852 | 818 | ||
853 | struct iwl4965_rxon_time_cmd rxon_timing; | 819 | struct iwl_rxon_time_cmd rxon_timing; |
854 | 820 | ||
855 | /* We declare this const so it can only be | 821 | /* We declare this const so it can only be |
856 | * changed via explicit cast within the | 822 | * changed via explicit cast within the |
@@ -882,7 +848,6 @@ struct iwl_priv { | |||
882 | u16 active_rate_basic; | 848 | u16 active_rate_basic; |
883 | 849 | ||
884 | u8 assoc_station_added; | 850 | u8 assoc_station_added; |
885 | u8 use_ant_b_for_management_frame; /* Tx antenna selection */ | ||
886 | u8 start_calib; | 851 | u8 start_calib; |
887 | struct iwl_sensitivity_data sensitivity_data; | 852 | struct iwl_sensitivity_data sensitivity_data; |
888 | struct iwl_chain_noise_data chain_noise_data; | 853 | struct iwl_chain_noise_data chain_noise_data; |
@@ -903,12 +868,14 @@ struct iwl_priv { | |||
903 | struct iwl_rx_queue rxq; | 868 | struct iwl_rx_queue rxq; |
904 | struct iwl_tx_queue txq[IWL_MAX_NUM_QUEUES]; | 869 | struct iwl_tx_queue txq[IWL_MAX_NUM_QUEUES]; |
905 | unsigned long txq_ctx_active_msk; | 870 | unsigned long txq_ctx_active_msk; |
906 | struct iwl_kw kw; /* keep warm address */ | 871 | struct iwl_dma_ptr kw; /* keep warm address */ |
872 | struct iwl_dma_ptr scd_bc_tbls; | ||
873 | |||
907 | u32 scd_base_addr; /* scheduler sram base address */ | 874 | u32 scd_base_addr; /* scheduler sram base address */ |
908 | 875 | ||
909 | unsigned long status; | 876 | unsigned long status; |
910 | 877 | ||
911 | int last_rx_rssi; /* From Rx packet statisitics */ | 878 | int last_rx_rssi; /* From Rx packet statistics */ |
912 | int last_rx_noise; /* From beacon statistics */ | 879 | int last_rx_noise; /* From beacon statistics */ |
913 | 880 | ||
914 | /* counts mgmt, ctl, and data packets */ | 881 | /* counts mgmt, ctl, and data packets */ |
@@ -923,8 +890,6 @@ struct iwl_priv { | |||
923 | unsigned long last_statistics_time; | 890 | unsigned long last_statistics_time; |
924 | 891 | ||
925 | /* context information */ | 892 | /* context information */ |
926 | u8 essid[IW_ESSID_MAX_SIZE]; | ||
927 | u8 essid_len; | ||
928 | u16 rates_mask; | 893 | u16 rates_mask; |
929 | 894 | ||
930 | u32 power_mode; | 895 | u32 power_mode; |
@@ -965,11 +930,7 @@ struct iwl_priv { | |||
965 | struct ieee80211_vif *vif; | 930 | struct ieee80211_vif *vif; |
966 | 931 | ||
967 | struct iwl_hw_params hw_params; | 932 | struct iwl_hw_params hw_params; |
968 | /* driver/uCode shared Tx Byte Counts and Rx status */ | 933 | |
969 | void *shared_virt; | ||
970 | int rb_closed_offset; | ||
971 | /* Physical Pointer to Tx Byte Counts and Rx status */ | ||
972 | dma_addr_t shared_phys; | ||
973 | 934 | ||
974 | /* Current association information needed to configure the | 935 | /* Current association information needed to configure the |
975 | * hardware */ | 936 | * hardware */ |
@@ -992,7 +953,6 @@ struct iwl_priv { | |||
992 | struct work_struct report_work; | 953 | struct work_struct report_work; |
993 | struct work_struct request_scan; | 954 | struct work_struct request_scan; |
994 | struct work_struct beacon_update; | 955 | struct work_struct beacon_update; |
995 | struct work_struct set_monitor; | ||
996 | 956 | ||
997 | struct tasklet_struct irq_tasklet; | 957 | struct tasklet_struct irq_tasklet; |
998 | 958 | ||
@@ -1004,9 +964,6 @@ struct iwl_priv { | |||
1004 | s8 tx_power_user_lmt; | 964 | s8 tx_power_user_lmt; |
1005 | s8 tx_power_channel_lmt; | 965 | s8 tx_power_channel_lmt; |
1006 | 966 | ||
1007 | #ifdef CONFIG_PM | ||
1008 | u32 pm_state[16]; | ||
1009 | #endif | ||
1010 | 967 | ||
1011 | #ifdef CONFIG_IWLWIFI_DEBUG | 968 | #ifdef CONFIG_IWLWIFI_DEBUG |
1012 | /* debugging info */ | 969 | /* debugging info */ |
@@ -1091,26 +1048,4 @@ static inline int is_channel_ibss(const struct iwl_channel_info *ch) | |||
1091 | return ((ch->flags & EEPROM_CHANNEL_IBSS)) ? 1 : 0; | 1048 | return ((ch->flags & EEPROM_CHANNEL_IBSS)) ? 1 : 0; |
1092 | } | 1049 | } |
1093 | 1050 | ||
1094 | #ifdef CONFIG_IWLWIFI_DEBUG | ||
1095 | static inline void iwl_print_hex_dump(struct iwl_priv *priv, int level, | ||
1096 | void *p, u32 len) | ||
1097 | { | ||
1098 | if (!(priv->debug_level & level)) | ||
1099 | return; | ||
1100 | |||
1101 | print_hex_dump(KERN_DEBUG, "iwl data: ", DUMP_PREFIX_OFFSET, 16, 1, | ||
1102 | p, len, 1); | ||
1103 | } | ||
1104 | #else | ||
1105 | static inline void iwl_print_hex_dump(struct iwl_priv *priv, int level, | ||
1106 | void *p, u32 len) | ||
1107 | { | ||
1108 | } | ||
1109 | #endif | ||
1110 | |||
1111 | extern const struct iwl_channel_info *iwl_get_channel_info( | ||
1112 | const struct iwl_priv *priv, enum ieee80211_band band, u16 channel); | ||
1113 | |||
1114 | /* Requires full declaration of iwl_priv before including */ | ||
1115 | |||
1116 | #endif /* __iwl_dev_h__ */ | 1051 | #endif /* __iwl_dev_h__ */ |