diff options
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-dev.h')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-dev.h | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-dev.h b/drivers/net/wireless/iwlwifi/iwl-dev.h index f63209aaeaf6..73318a953191 100644 --- a/drivers/net/wireless/iwlwifi/iwl-dev.h +++ b/drivers/net/wireless/iwlwifi/iwl-dev.h | |||
@@ -156,6 +156,12 @@ struct iwl4965_channel_tgh_info { | |||
156 | 156 | ||
157 | #define IWL4965_MAX_RATE (33) | 157 | #define IWL4965_MAX_RATE (33) |
158 | 158 | ||
159 | struct iwl3945_clip_group { | ||
160 | /* maximum power level to prevent clipping for each rate, derived by | ||
161 | * us from this band's saturation power in EEPROM */ | ||
162 | const s8 clip_powers[IWL_MAX_RATES]; | ||
163 | }; | ||
164 | |||
159 | /* current Tx power values to use, one for each rate for each channel. | 165 | /* current Tx power values to use, one for each rate for each channel. |
160 | * requested power is limited by: | 166 | * requested power is limited by: |
161 | * -- regulatory EEPROM limits for this channel | 167 | * -- regulatory EEPROM limits for this channel |
@@ -218,6 +224,27 @@ struct iwl_channel_info { | |||
218 | struct iwl3945_scan_power_info scan_pwr_info[IWL_NUM_SCAN_RATES]; | 224 | struct iwl3945_scan_power_info scan_pwr_info[IWL_NUM_SCAN_RATES]; |
219 | }; | 225 | }; |
220 | 226 | ||
227 | /** | ||
228 | * struct iwl3945_tx_queue - Tx Queue for DMA | ||
229 | * @q: generic Rx/Tx queue descriptor | ||
230 | * @bd: base of circular buffer of TFDs | ||
231 | * @cmd: array of command/Tx buffers | ||
232 | * @dma_addr_cmd: physical address of cmd/tx buffer array | ||
233 | * @txb: array of per-TFD driver data | ||
234 | * @need_update: indicates need to update read/write index | ||
235 | * | ||
236 | * A Tx queue consists of circular buffer of BDs (a.k.a. TFDs, transmit frame | ||
237 | * descriptors) and required locking structures. | ||
238 | */ | ||
239 | struct iwl3945_tx_queue { | ||
240 | struct iwl_queue q; | ||
241 | struct iwl3945_tfd_frame *bd; | ||
242 | struct iwl3945_cmd *cmd; | ||
243 | dma_addr_t dma_addr_cmd; | ||
244 | struct iwl3945_tx_info *txb; | ||
245 | int need_update; | ||
246 | int active; | ||
247 | }; | ||
221 | 248 | ||
222 | #define IWL_TX_FIFO_AC0 0 | 249 | #define IWL_TX_FIFO_AC0 0 |
223 | #define IWL_TX_FIFO_AC1 1 | 250 | #define IWL_TX_FIFO_AC1 1 |
@@ -462,6 +489,24 @@ struct iwl_qos_info { | |||
462 | #define STA_PS_STATUS_WAKE 0 | 489 | #define STA_PS_STATUS_WAKE 0 |
463 | #define STA_PS_STATUS_SLEEP 1 | 490 | #define STA_PS_STATUS_SLEEP 1 |
464 | 491 | ||
492 | struct iwl3945_tid_data { | ||
493 | u16 seq_number; | ||
494 | }; | ||
495 | |||
496 | struct iwl3945_hw_key { | ||
497 | enum ieee80211_key_alg alg; | ||
498 | int keylen; | ||
499 | u8 key[32]; | ||
500 | }; | ||
501 | |||
502 | struct iwl3945_station_entry { | ||
503 | struct iwl3945_addsta_cmd sta; | ||
504 | struct iwl3945_tid_data tid[MAX_TID_COUNT]; | ||
505 | u8 used; | ||
506 | u8 ps_status; | ||
507 | struct iwl3945_hw_key keyinfo; | ||
508 | }; | ||
509 | |||
465 | struct iwl_station_entry { | 510 | struct iwl_station_entry { |
466 | struct iwl_addsta_cmd sta; | 511 | struct iwl_addsta_cmd sta; |
467 | struct iwl_tid_data tid[MAX_TID_COUNT]; | 512 | struct iwl_tid_data tid[MAX_TID_COUNT]; |
@@ -800,6 +845,10 @@ struct iwl_priv { | |||
800 | struct iwl_channel_info *channel_info; /* channel info array */ | 845 | struct iwl_channel_info *channel_info; /* channel info array */ |
801 | u8 channel_count; /* # of channels */ | 846 | u8 channel_count; /* # of channels */ |
802 | 847 | ||
848 | /* each calibration channel group in the EEPROM has a derived | ||
849 | * clip setting for each rate. 3945 only.*/ | ||
850 | const struct iwl3945_clip_group clip39_groups[5]; | ||
851 | |||
803 | /* thermal calibration */ | 852 | /* thermal calibration */ |
804 | s32 temperature; /* degrees Kelvin */ | 853 | s32 temperature; /* degrees Kelvin */ |
805 | s32 last_temperature; | 854 | s32 last_temperature; |