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.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-dev.h b/drivers/net/wireless/iwlwifi/iwl-dev.h
index 73a0b6c53e18..f63209aaeaf6 100644
--- a/drivers/net/wireless/iwlwifi/iwl-dev.h
+++ b/drivers/net/wireless/iwlwifi/iwl-dev.h
@@ -39,6 +39,7 @@
39#include "iwl-rfkill.h" 39#include "iwl-rfkill.h"
40#include "iwl-eeprom.h" 40#include "iwl-eeprom.h"
41#include "iwl-4965-hw.h" 41#include "iwl-4965-hw.h"
42#include "iwl-3945-hw.h"
42#include "iwl-csr.h" 43#include "iwl-csr.h"
43#include "iwl-prph.h" 44#include "iwl-prph.h"
44#include "iwl-debug.h" 45#include "iwl-debug.h"
@@ -153,6 +154,30 @@ struct iwl4965_channel_tgh_info {
153 s64 last_radar_time; 154 s64 last_radar_time;
154}; 155};
155 156
157#define IWL4965_MAX_RATE (33)
158
159/* current Tx power values to use, one for each rate for each channel.
160 * requested power is limited by:
161 * -- regulatory EEPROM limits for this channel
162 * -- hardware capabilities (clip-powers)
163 * -- spectrum management
164 * -- user preference (e.g. iwconfig)
165 * when requested power is set, base power index must also be set. */
166struct iwl3945_channel_power_info {
167 struct iwl3945_tx_power tpc; /* actual radio and DSP gain settings */
168 s8 power_table_index; /* actual (compenst'd) index into gain table */
169 s8 base_power_index; /* gain index for power at factory temp. */
170 s8 requested_power; /* power (dBm) requested for this chnl/rate */
171};
172
173/* current scan Tx power values to use, one for each scan rate for each
174 * channel. */
175struct iwl3945_scan_power_info {
176 struct iwl3945_tx_power tpc; /* actual radio and DSP gain settings */
177 s8 power_table_index; /* actual (compenst'd) index into gain table */
178 s8 requested_power; /* scan pwr (dBm) requested for chnl/rate */
179};
180
156/* 181/*
157 * One for each channel, holds all channel setup data 182 * One for each channel, holds all channel setup data
158 * Some of the fields (e.g. eeprom and flags/max_power_avg) are redundant 183 * Some of the fields (e.g. eeprom and flags/max_power_avg) are redundant
@@ -183,6 +208,14 @@ struct iwl_channel_info {
183 s8 fat_scan_power; /* (dBm) eeprom, direct scans, any rate */ 208 s8 fat_scan_power; /* (dBm) eeprom, direct scans, any rate */
184 u8 fat_flags; /* flags copied from EEPROM */ 209 u8 fat_flags; /* flags copied from EEPROM */
185 u8 fat_extension_channel; /* HT_IE_EXT_CHANNEL_* */ 210 u8 fat_extension_channel; /* HT_IE_EXT_CHANNEL_* */
211
212 /* Radio/DSP gain settings for each "normal" data Tx rate.
213 * These include, in addition to RF and DSP gain, a few fields for
214 * remembering/modifying gain settings (indexes). */
215 struct iwl3945_channel_power_info power_info[IWL4965_MAX_RATE];
216
217 /* Radio/DSP gain settings for each scan rate, for directed scans. */
218 struct iwl3945_scan_power_info scan_pwr_info[IWL_NUM_SCAN_RATES];
186}; 219};
187 220
188 221