aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl-dev.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-dev.h')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-dev.h49
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
159struct 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 */
239struct 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
492struct iwl3945_tid_data {
493 u16 seq_number;
494};
495
496struct iwl3945_hw_key {
497 enum ieee80211_key_alg alg;
498 int keylen;
499 u8 key[32];
500};
501
502struct 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
465struct iwl_station_entry { 510struct 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;