1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22#define AR5K_EEPROM_PCIE_OFFSET 0x02
23#define AR5K_EEPROM_PCIE_SERDES_SECTION 0x40
24
25#define AR5K_EEPROM_MAGIC 0x003d
26#define AR5K_EEPROM_MAGIC_VALUE 0x5aa5
27
28#define AR5K_EEPROM_IS_HB63 0x000b
29
30#define AR5K_EEPROM_RFKILL 0x0f
31#define AR5K_EEPROM_RFKILL_GPIO_SEL 0x0000001c
32#define AR5K_EEPROM_RFKILL_GPIO_SEL_S 2
33#define AR5K_EEPROM_RFKILL_POLARITY 0x00000002
34#define AR5K_EEPROM_RFKILL_POLARITY_S 1
35
36#define AR5K_EEPROM_REG_DOMAIN 0x00bf
37
38
39#define AR5K_EEPROM_SIZE_LOWER 0x1b
40#define AR5K_EEPROM_SIZE_UPPER 0x1c
41#define AR5K_EEPROM_SIZE_UPPER_MASK 0xfff0
42#define AR5K_EEPROM_SIZE_UPPER_SHIFT 4
43#define AR5K_EEPROM_SIZE_ENDLOC_SHIFT 12
44
45#define AR5K_EEPROM_CHECKSUM 0x00c0
46#define AR5K_EEPROM_INFO_BASE 0x00c0
47#define AR5K_EEPROM_INFO_MAX (0x400 - AR5K_EEPROM_INFO_BASE)
48#define AR5K_EEPROM_INFO_CKSUM 0xffff
49#define AR5K_EEPROM_INFO(_n) (AR5K_EEPROM_INFO_BASE + (_n))
50
51#define AR5K_EEPROM_VERSION AR5K_EEPROM_INFO(1)
52#define AR5K_EEPROM_VERSION_3_0 0x3000
53#define AR5K_EEPROM_VERSION_3_1 0x3001
54#define AR5K_EEPROM_VERSION_3_2 0x3002
55#define AR5K_EEPROM_VERSION_3_3 0x3003
56#define AR5K_EEPROM_VERSION_3_4 0x3004
57#define AR5K_EEPROM_VERSION_4_0 0x4000
58#define AR5K_EEPROM_VERSION_4_1 0x4001
59#define AR5K_EEPROM_VERSION_4_2 0x4002
60#define AR5K_EEPROM_VERSION_4_3 0x4003
61#define AR5K_EEPROM_VERSION_4_4 0x4004
62#define AR5K_EEPROM_VERSION_4_5 0x4005
63#define AR5K_EEPROM_VERSION_4_6 0x4006
64#define AR5K_EEPROM_VERSION_4_7 0x3007
65#define AR5K_EEPROM_VERSION_4_9 0x4009
66#define AR5K_EEPROM_VERSION_5_0 0x5000
67#define AR5K_EEPROM_VERSION_5_1 0x5001
68#define AR5K_EEPROM_VERSION_5_3 0x5003
69
70#define AR5K_EEPROM_MODE_11A 0
71#define AR5K_EEPROM_MODE_11B 1
72#define AR5K_EEPROM_MODE_11G 2
73
74#define AR5K_EEPROM_HDR AR5K_EEPROM_INFO(2)
75#define AR5K_EEPROM_HDR_11A(_v) (((_v) >> AR5K_EEPROM_MODE_11A) & 0x1)
76#define AR5K_EEPROM_HDR_11B(_v) (((_v) >> AR5K_EEPROM_MODE_11B) & 0x1)
77#define AR5K_EEPROM_HDR_11G(_v) (((_v) >> AR5K_EEPROM_MODE_11G) & 0x1)
78#define AR5K_EEPROM_HDR_T_2GHZ_DIS(_v) (((_v) >> 3) & 0x1)
79#define AR5K_EEPROM_HDR_T_5GHZ_DBM(_v) (((_v) >> 4) & 0x7f)
80#define AR5K_EEPROM_HDR_DEVICE(_v) (((_v) >> 11) & 0x7)
81#define AR5K_EEPROM_HDR_RFKILL(_v) (((_v) >> 14) & 0x1)
82#define AR5K_EEPROM_HDR_T_5GHZ_DIS(_v) (((_v) >> 15) & 0x1)
83
84
85#define AR5K_EEPROM_OFF(_v, _v3_0, _v3_3) \
86 (((_v) >= AR5K_EEPROM_VERSION_3_3) ? _v3_3 : _v3_0)
87
88#define AR5K_EEPROM_ANT_GAIN(_v) AR5K_EEPROM_OFF(_v, 0x00c4, 0x00c3)
89#define AR5K_EEPROM_ANT_GAIN_5GHZ(_v) ((s8)(((_v) >> 8) & 0xff))
90#define AR5K_EEPROM_ANT_GAIN_2GHZ(_v) ((s8)((_v) & 0xff))
91
92
93#define AR5K_EEPROM_MISC0 AR5K_EEPROM_INFO(4)
94#define AR5K_EEPROM_EARSTART(_v) ((_v) & 0xfff)
95#define AR5K_EEPROM_HDR_XR2_DIS(_v) (((_v) >> 12) & 0x1)
96#define AR5K_EEPROM_HDR_XR5_DIS(_v) (((_v) >> 13) & 0x1)
97#define AR5K_EEPROM_EEMAP(_v) (((_v) >> 14) & 0x3)
98
99#define AR5K_EEPROM_MISC1 AR5K_EEPROM_INFO(5)
100#define AR5K_EEPROM_TARGET_PWRSTART(_v) ((_v) & 0xfff)
101#define AR5K_EEPROM_HAS32KHZCRYSTAL(_v) (((_v) >> 14) & 0x1)
102#define AR5K_EEPROM_HAS32KHZCRYSTAL_OLD(_v) (((_v) >> 15) & 0x1)
103
104#define AR5K_EEPROM_MISC2 AR5K_EEPROM_INFO(6)
105#define AR5K_EEPROM_EEP_FILE_VERSION(_v) (((_v) >> 8) & 0xff)
106#define AR5K_EEPROM_EAR_FILE_VERSION(_v) ((_v) & 0xff)
107
108#define AR5K_EEPROM_MISC3 AR5K_EEPROM_INFO(7)
109#define AR5K_EEPROM_ART_BUILD_NUM(_v) (((_v) >> 10) & 0x3f)
110#define AR5K_EEPROM_EAR_FILE_ID(_v) ((_v) & 0xff)
111
112#define AR5K_EEPROM_MISC4 AR5K_EEPROM_INFO(8)
113#define AR5K_EEPROM_CAL_DATA_START(_v) (((_v) >> 4) & 0xfff)
114#define AR5K_EEPROM_MASK_R0(_v) (((_v) >> 2) & 0x3)
115#define AR5K_EEPROM_MASK_R1(_v) ((_v) & 0x3)
116
117#define AR5K_EEPROM_MISC5 AR5K_EEPROM_INFO(9)
118#define AR5K_EEPROM_COMP_DIS(_v) ((_v) & 0x1)
119#define AR5K_EEPROM_AES_DIS(_v) (((_v) >> 1) & 0x1)
120#define AR5K_EEPROM_FF_DIS(_v) (((_v) >> 2) & 0x1)
121#define AR5K_EEPROM_BURST_DIS(_v) (((_v) >> 3) & 0x1)
122#define AR5K_EEPROM_MAX_QCU(_v) (((_v) >> 4) & 0xf)
123#define AR5K_EEPROM_HEAVY_CLIP_EN(_v) (((_v) >> 8) & 0x1)
124#define AR5K_EEPROM_KEY_CACHE_SIZE(_v) (((_v) >> 12) & 0xf)
125
126#define AR5K_EEPROM_MISC6 AR5K_EEPROM_INFO(10)
127#define AR5K_EEPROM_TX_CHAIN_DIS ((_v) & 0x7)
128#define AR5K_EEPROM_RX_CHAIN_DIS (((_v) >> 3) & 0x7)
129#define AR5K_EEPROM_FCC_MID_EN (((_v) >> 6) & 0x1)
130#define AR5K_EEPROM_JAP_U1EVEN_EN (((_v) >> 7) & 0x1)
131#define AR5K_EEPROM_JAP_U2_EN (((_v) >> 8) & 0x1)
132#define AR5K_EEPROM_JAP_MID_EN (((_v) >> 9) & 0x1)
133#define AR5K_EEPROM_JAP_U1ODD_EN (((_v) >> 10) & 0x1)
134#define AR5K_EEPROM_JAP_11A_NEW_EN (((_v) >> 11) & 0x1)
135
136
137#define AR5K_EEPROM_MODES_11A(_v) AR5K_EEPROM_OFF(_v, 0x00c5, 0x00d4)
138#define AR5K_EEPROM_MODES_11B(_v) AR5K_EEPROM_OFF(_v, 0x00d0, 0x00f2)
139#define AR5K_EEPROM_MODES_11G(_v) AR5K_EEPROM_OFF(_v, 0x00da, 0x010d)
140#define AR5K_EEPROM_CTL(_v) AR5K_EEPROM_OFF(_v, 0x00e4, 0x0128)
141#define AR5K_EEPROM_GROUPS_START(_v) AR5K_EEPROM_OFF(_v, 0x0100, 0x0150)
142#define AR5K_EEPROM_GROUP1_OFFSET 0x0
143#define AR5K_EEPROM_GROUP2_OFFSET 0x5
144#define AR5K_EEPROM_GROUP3_OFFSET 0x37
145#define AR5K_EEPROM_GROUP4_OFFSET 0x46
146#define AR5K_EEPROM_GROUP5_OFFSET 0x55
147#define AR5K_EEPROM_GROUP6_OFFSET 0x65
148#define AR5K_EEPROM_GROUP7_OFFSET 0x69
149#define AR5K_EEPROM_GROUP8_OFFSET 0x6f
150
151#define AR5K_EEPROM_TARGET_PWR_OFF_11A(_v) AR5K_EEPROM_OFF(_v, AR5K_EEPROM_GROUPS_START(_v) + \
152 AR5K_EEPROM_GROUP5_OFFSET, 0x0000)
153#define AR5K_EEPROM_TARGET_PWR_OFF_11B(_v) AR5K_EEPROM_OFF(_v, AR5K_EEPROM_GROUPS_START(_v) + \
154 AR5K_EEPROM_GROUP6_OFFSET, 0x0010)
155#define AR5K_EEPROM_TARGET_PWR_OFF_11G(_v) AR5K_EEPROM_OFF(_v, AR5K_EEPROM_GROUPS_START(_v) + \
156 AR5K_EEPROM_GROUP7_OFFSET, 0x0014)
157
158
159#define AR5K_EEPROM_OBDB0_2GHZ 0x00ec
160#define AR5K_EEPROM_OBDB1_2GHZ 0x00ed
161
162#define AR5K_EEPROM_PROTECT 0x003f
163#define AR5K_EEPROM_PROTECT_RD_0_31 0x0001
164#define AR5K_EEPROM_PROTECT_WR_0_31 0x0002
165#define AR5K_EEPROM_PROTECT_RD_32_63 0x0004
166#define AR5K_EEPROM_PROTECT_WR_32_63 0x0008
167#define AR5K_EEPROM_PROTECT_RD_64_127 0x0010
168#define AR5K_EEPROM_PROTECT_WR_64_127 0x0020
169#define AR5K_EEPROM_PROTECT_RD_128_191 0x0040
170#define AR5K_EEPROM_PROTECT_WR_128_191 0x0080
171#define AR5K_EEPROM_PROTECT_RD_192_207 0x0100
172#define AR5K_EEPROM_PROTECT_WR_192_207 0x0200
173#define AR5K_EEPROM_PROTECT_RD_208_223 0x0400
174#define AR5K_EEPROM_PROTECT_WR_208_223 0x0800
175#define AR5K_EEPROM_PROTECT_RD_224_239 0x1000
176#define AR5K_EEPROM_PROTECT_WR_224_239 0x2000
177#define AR5K_EEPROM_PROTECT_RD_240_255 0x4000
178#define AR5K_EEPROM_PROTECT_WR_240_255 0x8000
179
180
181#define AR5K_EEPROM_EEP_SCALE 100
182#define AR5K_EEPROM_EEP_DELTA 10
183#define AR5K_EEPROM_N_MODES 3
184#define AR5K_EEPROM_N_5GHZ_CHAN 10
185#define AR5K_EEPROM_N_5GHZ_RATE_CHAN 8
186#define AR5K_EEPROM_N_2GHZ_CHAN 3
187#define AR5K_EEPROM_N_2GHZ_CHAN_2413 4
188#define AR5K_EEPROM_N_2GHZ_CHAN_MAX 4
189#define AR5K_EEPROM_MAX_CHAN 10
190#define AR5K_EEPROM_N_PWR_POINTS_5111 11
191#define AR5K_EEPROM_N_PCDAC 11
192#define AR5K_EEPROM_N_PHASE_CAL 5
193#define AR5K_EEPROM_N_TEST_FREQ 8
194#define AR5K_EEPROM_N_EDGES 8
195#define AR5K_EEPROM_N_INTERCEPTS 11
196#define AR5K_EEPROM_FREQ_M(_v) AR5K_EEPROM_OFF(_v, 0x7f, 0xff)
197#define AR5K_EEPROM_PCDAC_M 0x3f
198#define AR5K_EEPROM_PCDAC_START 1
199#define AR5K_EEPROM_PCDAC_STOP 63
200#define AR5K_EEPROM_PCDAC_STEP 1
201#define AR5K_EEPROM_NON_EDGE_M 0x40
202#define AR5K_EEPROM_CHANNEL_POWER 8
203#define AR5K_EEPROM_N_OBDB 4
204#define AR5K_EEPROM_OBDB_DIS 0xffff
205#define AR5K_EEPROM_CHANNEL_DIS 0xff
206#define AR5K_EEPROM_SCALE_OC_DELTA(_x) (((_x) * 2) / 10)
207#define AR5K_EEPROM_N_CTLS(_v) AR5K_EEPROM_OFF(_v, 16, 32)
208#define AR5K_EEPROM_MAX_CTLS 32
209#define AR5K_EEPROM_N_PD_CURVES 4
210#define AR5K_EEPROM_N_XPD0_POINTS 4
211#define AR5K_EEPROM_N_XPD3_POINTS 3
212#define AR5K_EEPROM_N_PD_GAINS 4
213#define AR5K_EEPROM_N_PD_POINTS 5
214#define AR5K_EEPROM_N_INTERCEPT_10_2GHZ 35
215#define AR5K_EEPROM_N_INTERCEPT_10_5GHZ 55
216#define AR5K_EEPROM_POWER_M 0x3f
217#define AR5K_EEPROM_POWER_MIN 0
218#define AR5K_EEPROM_POWER_MAX 3150
219#define AR5K_EEPROM_POWER_STEP 50
220#define AR5K_EEPROM_POWER_TABLE_SIZE 64
221#define AR5K_EEPROM_N_POWER_LOC_11B 4
222#define AR5K_EEPROM_N_POWER_LOC_11G 6
223#define AR5K_EEPROM_I_GAIN 10
224#define AR5K_EEPROM_CCK_OFDM_DELTA 15
225#define AR5K_EEPROM_N_IQ_CAL 2
226
227enum ath5k_eeprom_freq_bands {
228 AR5K_EEPROM_BAND_5GHZ = 0,
229 AR5K_EEPROM_BAND_2GHZ = 1,
230 AR5K_EEPROM_N_FREQ_BANDS,
231};
232
233#define AR5K_EEPROM_N_SPUR_CHANS 5
234
235#define AR5K_EEPROM_5413_SPUR_CHAN_1 1640
236
237#define AR5K_EEPROM_5413_SPUR_CHAN_2 1200
238#define AR5K_EEPROM_SPUR_CHAN_MASK 0x3FFF
239#define AR5K_EEPROM_NO_SPUR 0x8000
240#define AR5K_SPUR_CHAN_WIDTH 87
241#define AR5K_SPUR_SYMBOL_WIDTH_BASE_100Hz 3125
242#define AR5K_SPUR_SYMBOL_WIDTH_TURBO_100Hz 6250
243
244#define AR5K_EEPROM_READ(_o, _v) do { \
245 if (!ath5k_hw_nvram_read(ah, (_o), &(_v))) \
246 return -EIO; \
247} while (0)
248
249#define AR5K_EEPROM_READ_HDR(_o, _v) \
250 AR5K_EEPROM_READ(_o, ah->ah_capabilities.cap_eeprom._v); \
251
252enum ath5k_ant_table {
253 AR5K_ANT_CTL = 0,
254 AR5K_ANT_SWTABLE_A = 1,
255 AR5K_ANT_SWTABLE_B = 2,
256 AR5K_ANT_MAX,
257};
258
259enum ath5k_ctl_mode {
260 AR5K_CTL_11A = 0,
261 AR5K_CTL_11B = 1,
262 AR5K_CTL_11G = 2,
263 AR5K_CTL_TURBO = 3,
264 AR5K_CTL_TURBOG = 4,
265 AR5K_CTL_2GHT20 = 5,
266 AR5K_CTL_5GHT20 = 6,
267 AR5K_CTL_2GHT40 = 7,
268 AR5K_CTL_5GHT40 = 8,
269 AR5K_CTL_MODE_M = 15,
270};
271
272
273struct ath5k_chan_pcal_info_rf5111 {
274
275
276 u8 pwr[AR5K_EEPROM_N_PWR_POINTS_5111];
277
278
279 u8 pcdac[AR5K_EEPROM_N_PWR_POINTS_5111];
280
281 u8 pcdac_min;
282
283 u8 pcdac_max;
284};
285
286struct ath5k_chan_pcal_info_rf5112 {
287
288
289
290 s8 pwr_x0[AR5K_EEPROM_N_XPD0_POINTS];
291 s8 pwr_x3[AR5K_EEPROM_N_XPD3_POINTS];
292
293
294 u8 pcdac_x0[AR5K_EEPROM_N_XPD0_POINTS];
295 u8 pcdac_x3[AR5K_EEPROM_N_XPD3_POINTS];
296};
297
298struct ath5k_chan_pcal_info_rf2413 {
299
300 s8 pwr_i[AR5K_EEPROM_N_PD_GAINS];
301 u8 pddac_i[AR5K_EEPROM_N_PD_GAINS];
302
303
304 s8 pwr[AR5K_EEPROM_N_PD_GAINS]
305 [AR5K_EEPROM_N_PD_POINTS];
306 u8 pddac[AR5K_EEPROM_N_PD_GAINS]
307 [AR5K_EEPROM_N_PD_POINTS];
308};
309
310enum ath5k_powertable_type {
311 AR5K_PWRTABLE_PWR_TO_PCDAC = 0,
312 AR5K_PWRTABLE_LINEAR_PCDAC = 1,
313 AR5K_PWRTABLE_PWR_TO_PDADC = 2,
314};
315
316struct ath5k_pdgain_info {
317 u8 pd_points;
318 u8 *pd_step;
319
320
321 s16 *pd_pwr;
322};
323
324struct ath5k_chan_pcal_info {
325
326 u16 freq;
327
328 s16 max_pwr;
329 s16 min_pwr;
330 union {
331 struct ath5k_chan_pcal_info_rf5111 rf5111_info;
332 struct ath5k_chan_pcal_info_rf5112 rf5112_info;
333 struct ath5k_chan_pcal_info_rf2413 rf2413_info;
334 };
335
336
337
338 struct ath5k_pdgain_info *pd_curves;
339};
340
341
342
343
344struct ath5k_rate_pcal_info {
345 u16 freq;
346
347
348 u16 target_power_6to24;
349
350
351 u16 target_power_36;
352
353
354 u16 target_power_48;
355
356
357 u16 target_power_54;
358};
359
360
361struct ath5k_edge_power {
362 u16 freq;
363 u16 edge;
364 bool flag;
365};
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410struct ath5k_eeprom_info {
411
412
413 u16 ee_magic;
414 u16 ee_protect;
415 u16 ee_regdomain;
416 u16 ee_version;
417 u16 ee_header;
418 u16 ee_ant_gain;
419 u8 ee_rfkill_pin;
420 bool ee_rfkill_pol;
421 bool ee_is_hb63;
422 bool ee_serdes;
423 u16 ee_misc0;
424 u16 ee_misc1;
425 u16 ee_misc2;
426 u16 ee_misc3;
427 u16 ee_misc4;
428 u16 ee_misc5;
429 u16 ee_misc6;
430 u16 ee_cck_ofdm_gain_delta;
431 u16 ee_cck_ofdm_power_delta;
432 u16 ee_scaled_cck_delta;
433
434
435 u16 ee_i_cal[AR5K_EEPROM_N_MODES];
436 u16 ee_q_cal[AR5K_EEPROM_N_MODES];
437 u16 ee_fixed_bias[AR5K_EEPROM_N_MODES];
438 u16 ee_turbo_max_power[AR5K_EEPROM_N_MODES];
439 u16 ee_xr_power[AR5K_EEPROM_N_MODES];
440 u16 ee_switch_settling[AR5K_EEPROM_N_MODES];
441 u16 ee_atn_tx_rx[AR5K_EEPROM_N_MODES];
442 u16 ee_ant_control[AR5K_EEPROM_N_MODES][AR5K_EEPROM_N_PCDAC];
443 u16 ee_ob[AR5K_EEPROM_N_MODES][AR5K_EEPROM_N_OBDB];
444 u16 ee_db[AR5K_EEPROM_N_MODES][AR5K_EEPROM_N_OBDB];
445 u16 ee_tx_end2xlna_enable[AR5K_EEPROM_N_MODES];
446 u16 ee_tx_end2xpa_disable[AR5K_EEPROM_N_MODES];
447 u16 ee_tx_frm2xpa_enable[AR5K_EEPROM_N_MODES];
448 u16 ee_thr_62[AR5K_EEPROM_N_MODES];
449 u16 ee_xlna_gain[AR5K_EEPROM_N_MODES];
450 u16 ee_xpd[AR5K_EEPROM_N_MODES];
451 u16 ee_x_gain[AR5K_EEPROM_N_MODES];
452 u16 ee_i_gain[AR5K_EEPROM_N_MODES];
453 u16 ee_margin_tx_rx[AR5K_EEPROM_N_MODES];
454 u16 ee_switch_settling_turbo[AR5K_EEPROM_N_MODES];
455 u16 ee_margin_tx_rx_turbo[AR5K_EEPROM_N_MODES];
456 u16 ee_atn_tx_rx_turbo[AR5K_EEPROM_N_MODES];
457
458
459 u16 ee_false_detect[AR5K_EEPROM_N_MODES];
460
461
462 u8 ee_pd_gains[AR5K_EEPROM_N_MODES];
463
464 u8 ee_pdc_to_idx[AR5K_EEPROM_N_MODES][AR5K_EEPROM_N_PD_GAINS];
465
466 u8 ee_n_piers[AR5K_EEPROM_N_MODES];
467 struct ath5k_chan_pcal_info ee_pwr_cal_a[AR5K_EEPROM_N_5GHZ_CHAN];
468 struct ath5k_chan_pcal_info ee_pwr_cal_b[AR5K_EEPROM_N_2GHZ_CHAN_MAX];
469 struct ath5k_chan_pcal_info ee_pwr_cal_g[AR5K_EEPROM_N_2GHZ_CHAN_MAX];
470
471
472 u8 ee_rate_target_pwr_num[AR5K_EEPROM_N_MODES];
473 struct ath5k_rate_pcal_info ee_rate_tpwr_a[AR5K_EEPROM_N_5GHZ_CHAN];
474 struct ath5k_rate_pcal_info ee_rate_tpwr_b[AR5K_EEPROM_N_2GHZ_CHAN_MAX];
475 struct ath5k_rate_pcal_info ee_rate_tpwr_g[AR5K_EEPROM_N_2GHZ_CHAN_MAX];
476
477
478 u8 ee_ctls;
479 u8 ee_ctl[AR5K_EEPROM_MAX_CTLS];
480 struct ath5k_edge_power ee_ctl_pwr[AR5K_EEPROM_N_EDGES * AR5K_EEPROM_MAX_CTLS];
481
482
483 s16 ee_noise_floor_thr[AR5K_EEPROM_N_MODES];
484 s8 ee_adc_desired_size[AR5K_EEPROM_N_MODES];
485 s8 ee_pga_desired_size[AR5K_EEPROM_N_MODES];
486 s8 ee_adc_desired_size_turbo[AR5K_EEPROM_N_MODES];
487 s8 ee_pga_desired_size_turbo[AR5K_EEPROM_N_MODES];
488 s8 ee_pd_gain_overlap;
489
490
491 u16 ee_spur_chans[AR5K_EEPROM_N_SPUR_CHANS][AR5K_EEPROM_N_FREQ_BANDS];
492
493
494 u32 ee_antenna[AR5K_EEPROM_N_MODES][AR5K_ANT_MAX];
495};
496