1 --- a/drivers/net/wireless/ath/ath9k/eeprom.c
2 +++ b/drivers/net/wireless/ath/ath9k/eeprom.c
3 @@ -240,16 +240,16 @@ u16 ath9k_hw_get_max_edge_power(u16 freq
4 for (i = 0; (i < num_band_edges) &&
5 (pRdEdgesPower[i].bChannel != AR5416_BCHAN_UNUSED); i++) {
6 if (freq == ath9k_hw_fbin2freq(pRdEdgesPower[i].bChannel, is2GHz)) {
7 - twiceMaxEdgePower = pRdEdgesPower[i].tPower;
8 + twiceMaxEdgePower = CTL_EDGE_TPOWER(pRdEdgesPower[i].ctl);
11 (freq < ath9k_hw_fbin2freq(pRdEdgesPower[i].bChannel,
13 if (ath9k_hw_fbin2freq(pRdEdgesPower[i - 1].bChannel,
15 - pRdEdgesPower[i - 1].flag) {
16 + CTL_EDGE_FLAGS(pRdEdgesPower[i - 1].ctl)) {
18 - pRdEdgesPower[i - 1].tPower;
19 + CTL_EDGE_TPOWER(pRdEdgesPower[i - 1].ctl);
23 --- a/drivers/net/wireless/ath/ath9k/eeprom.h
24 +++ b/drivers/net/wireless/ath/ath9k/eeprom.h
27 #define AR9287_CHECKSUM_LOCATION (AR9287_EEP_START_LOC + 1)
29 +#define CTL_EDGE_TPOWER(_ctl) ((_ctl) & 0x3f)
30 +#define CTL_EDGE_FLAGS(_ctl) (((_ctl) >> 6) & 0x03)
35 @@ -535,18 +538,10 @@ struct cal_target_power_ht {
40 -#ifdef __BIG_ENDIAN_BITFIELD
41 -struct cal_ctl_edges {
43 - u8 flag:2, tPower:6;
46 struct cal_ctl_edges {
48 - u8 tPower:6, flag:2;
53 struct cal_data_op_loop_ar9287 {
55 --- a/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
56 +++ b/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
58 #define SUB_NUM_CTL_MODES_AT_5G_40 2 /* excluding HT40, EXT-OFDM */
59 #define SUB_NUM_CTL_MODES_AT_2G_40 3 /* excluding HT40, EXT-OFDM, EXT-CCK */
61 +#define CTL(_tpower, _flag) ((_tpower) | ((_flag) << 6))
63 static int ar9003_hw_power_interpolate(int32_t x,
64 int32_t *px, int32_t *py, u_int16_t np);
65 static const struct ar9300_eeprom ar9300_default = {
66 @@ -296,21 +298,21 @@ static const struct ar9300_eeprom ar9300
70 - { { {60, 0}, {60, 1}, {60, 0}, {60, 0} } },
71 - { { {60, 0}, {60, 1}, {60, 0}, {60, 0} } },
72 - { { {60, 1}, {60, 0}, {60, 0}, {60, 1} } },
74 - { { {60, 1}, {60, 0}, {0, 0}, {0, 0} } },
75 - { { {60, 0}, {60, 1}, {60, 0}, {60, 0} } },
76 - { { {60, 0}, {60, 1}, {60, 0}, {60, 0} } },
78 - { { {60, 0}, {60, 1}, {60, 1}, {60, 0} } },
79 - { { {60, 0}, {60, 1}, {60, 0}, {60, 0} } },
80 - { { {60, 0}, {60, 1}, {60, 0}, {60, 0} } },
82 - { { {60, 0}, {60, 1}, {60, 0}, {60, 0} } },
83 - { { {60, 0}, {60, 1}, {60, 1}, {60, 1} } },
84 - { { {60, 0}, {60, 1}, {60, 1}, {60, 1} } },
85 + { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
86 + { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
87 + { { CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 1) } },
89 + { { CTL(60, 1), CTL(60, 0), CTL(0, 0), CTL(0, 0) } },
90 + { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
91 + { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
93 + { { CTL(60, 0), CTL(60, 1), CTL(60, 1), CTL(60, 0) } },
94 + { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
95 + { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
97 + { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
98 + { { CTL(60, 0), CTL(60, 1), CTL(60, 1), CTL(60, 1) } },
99 + { { CTL(60, 0), CTL(60, 1), CTL(60, 1), CTL(60, 1) } },
102 /* 4 idle,t1,t2,b (4 bits per setting) */
103 @@ -582,56 +584,56 @@ static const struct ar9300_eeprom ar9300
107 - {60, 1}, {60, 1}, {60, 1}, {60, 1},
108 - {60, 1}, {60, 1}, {60, 1}, {60, 0},
109 + CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 1),
110 + CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 0),
115 - {60, 1}, {60, 1}, {60, 1}, {60, 1},
116 - {60, 1}, {60, 1}, {60, 1}, {60, 0},
117 + CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 1),
118 + CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 0),
123 - {60, 0}, {60, 1}, {60, 0}, {60, 1},
124 - {60, 1}, {60, 1}, {60, 1}, {60, 1},
125 + CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 1),
126 + CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 1),
131 - {60, 0}, {60, 1}, {60, 1}, {60, 0},
132 - {60, 1}, {60, 0}, {60, 0}, {60, 0},
133 + CTL(60, 0), CTL(60, 1), CTL(60, 1), CTL(60, 0),
134 + CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 0),
139 - {60, 1}, {60, 1}, {60, 1}, {60, 0},
140 - {60, 0}, {60, 0}, {60, 0}, {60, 0},
141 + CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 0),
142 + CTL(60, 0), CTL(60, 0), CTL(60, 0), CTL(60, 0),
147 - {60, 1}, {60, 1}, {60, 1}, {60, 1},
148 - {60, 1}, {60, 0}, {60, 0}, {60, 0},
149 + CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 1),
150 + CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 0),
155 - {60, 1}, {60, 1}, {60, 1}, {60, 1},
156 - {60, 1}, {60, 1}, {60, 1}, {60, 1},
157 + CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 1),
158 + CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 1),
163 - {60, 1}, {60, 1}, {60, 0}, {60, 1},
164 - {60, 1}, {60, 1}, {60, 1}, {60, 0},
165 + CTL(60, 1), CTL(60, 1), CTL(60, 0), CTL(60, 1),
166 + CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 0),
171 - {60, 1}, {60, 0}, {60, 1}, {60, 1},
172 - {60, 1}, {60, 1}, {60, 0}, {60, 1},
173 + CTL(60, 1), CTL(60, 0), CTL(60, 1), CTL(60, 1),
174 + CTL(60, 1), CTL(60, 1), CTL(60, 0), CTL(60, 1),
178 @@ -873,21 +875,21 @@ static const struct ar9300_eeprom ar9300
182 - { { {60, 0}, {60, 1}, {60, 0}, {60, 0} } },
183 - { { {60, 0}, {60, 1}, {60, 0}, {60, 0} } },
184 - { { {60, 1}, {60, 0}, {60, 0}, {60, 1} } },
186 - { { {60, 1}, {60, 0}, {0, 0}, {0, 0} } },
187 - { { {60, 0}, {60, 1}, {60, 0}, {60, 0} } },
188 - { { {60, 0}, {60, 1}, {60, 0}, {60, 0} } },
190 - { { {60, 0}, {60, 1}, {60, 1}, {60, 0} } },
191 - { { {60, 0}, {60, 1}, {60, 0}, {60, 0} } },
192 - { { {60, 0}, {60, 1}, {60, 0}, {60, 0} } },
194 - { { {60, 0}, {60, 1}, {60, 0}, {60, 0} } },
195 - { { {60, 0}, {60, 1}, {60, 1}, {60, 1} } },
196 - { { {60, 0}, {60, 1}, {60, 1}, {60, 1} } },
197 + { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
198 + { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
199 + { { CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 1) } },
201 + { { CTL(60, 1), CTL(60, 0), CTL(0, 0), CTL(0, 0) } },
202 + { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
203 + { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
205 + { { CTL(60, 0), CTL(60, 1), CTL(60, 1), CTL(60, 0) } },
206 + { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
207 + { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
209 + { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
210 + { { CTL(60, 0), CTL(60, 1), CTL(60, 1), CTL(60, 1) } },
211 + { { CTL(60, 0), CTL(60, 1), CTL(60, 1), CTL(60, 1) } },
214 /* 4 idle,t1,t2,b (4 bits per setting) */
215 @@ -1159,56 +1161,56 @@ static const struct ar9300_eeprom ar9300
219 - {60, 1}, {60, 1}, {60, 1}, {60, 1},
220 - {60, 1}, {60, 1}, {60, 1}, {60, 0},
221 + CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 1),
222 + CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 0),
227 - {60, 1}, {60, 1}, {60, 1}, {60, 1},
228 - {60, 1}, {60, 1}, {60, 1}, {60, 0},
229 + CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 1),
230 + CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 0),
235 - {60, 0}, {60, 1}, {60, 0}, {60, 1},
236 - {60, 1}, {60, 1}, {60, 1}, {60, 1},
237 + CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 1),
238 + CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 1),
243 - {60, 0}, {60, 1}, {60, 1}, {60, 0},
244 - {60, 1}, {60, 0}, {60, 0}, {60, 0},
245 + CTL(60, 0), CTL(60, 1), CTL(60, 1), CTL(60, 0),
246 + CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 0),
251 - {60, 1}, {60, 1}, {60, 1}, {60, 0},
252 - {60, 0}, {60, 0}, {60, 0}, {60, 0},
253 + CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 0),
254 + CTL(60, 0), CTL(60, 0), CTL(60, 0), CTL(60, 0),
259 - {60, 1}, {60, 1}, {60, 1}, {60, 1},
260 - {60, 1}, {60, 0}, {60, 0}, {60, 0},
261 + CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 1),
262 + CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 0),
267 - {60, 1}, {60, 1}, {60, 1}, {60, 1},
268 - {60, 1}, {60, 1}, {60, 1}, {60, 1},
269 + CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 1),
270 + CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 1),
275 - {60, 1}, {60, 1}, {60, 0}, {60, 1},
276 - {60, 1}, {60, 1}, {60, 1}, {60, 0},
277 + CTL(60, 1), CTL(60, 1), CTL(60, 0), CTL(60, 1),
278 + CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 0),
283 - {60, 1}, {60, 0}, {60, 1}, {60, 1},
284 - {60, 1}, {60, 1}, {60, 0}, {60, 1},
285 + CTL(60, 1), CTL(60, 0), CTL(60, 1), CTL(60, 1),
286 + CTL(60, 1), CTL(60, 1), CTL(60, 0), CTL(60, 1),
290 @@ -1451,21 +1453,21 @@ static const struct ar9300_eeprom ar9300
294 - { { {60, 0}, {60, 1}, {60, 0}, {60, 0} } },
295 - { { {60, 0}, {60, 1}, {60, 0}, {60, 0} } },
296 - { { {60, 1}, {60, 0}, {60, 0}, {60, 1} } },
298 - { { {60, 1}, {60, 0}, {0, 0}, {0, 0} } },
299 - { { {60, 0}, {60, 1}, {60, 0}, {60, 0} } },
300 - { { {60, 0}, {60, 1}, {60, 0}, {60, 0} } },
302 - { { {60, 0}, {60, 1}, {60, 1}, {60, 0} } },
303 - { { {60, 0}, {60, 1}, {60, 0}, {60, 0} } },
304 - { { {60, 0}, {60, 1}, {60, 0}, {60, 0} } },
306 - { { {60, 0}, {60, 1}, {60, 0}, {60, 0} } },
307 - { { {60, 0}, {60, 1}, {60, 1}, {60, 1} } },
308 - { { {60, 0}, {60, 1}, {60, 1}, {60, 1} } },
309 + { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
310 + { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
311 + { { CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 1) } },
313 + { { CTL(60, 1), CTL(60, 0), CTL(0, 0), CTL(0, 0) } },
314 + { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
315 + { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
317 + { { CTL(60, 0), CTL(60, 1), CTL(60, 1), CTL(60, 0) } },
318 + { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
319 + { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
321 + { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
322 + { { CTL(60, 0), CTL(60, 1), CTL(60, 1), CTL(60, 1) } },
323 + { { CTL(60, 0), CTL(60, 1), CTL(60, 1), CTL(60, 1) } },
326 /* 4 idle,t1,t2,b (4 bits per setting) */
327 @@ -1737,56 +1739,56 @@ static const struct ar9300_eeprom ar9300
331 - {60, 1}, {60, 1}, {60, 1}, {60, 1},
332 - {60, 1}, {60, 1}, {60, 1}, {60, 0},
333 + CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 1),
334 + CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 0),
339 - {60, 1}, {60, 1}, {60, 1}, {60, 1},
340 - {60, 1}, {60, 1}, {60, 1}, {60, 0},
341 + CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 1),
342 + CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 0),
347 - {60, 0}, {60, 1}, {60, 0}, {60, 1},
348 - {60, 1}, {60, 1}, {60, 1}, {60, 1},
349 + CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 1),
350 + CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 1),
355 - {60, 0}, {60, 1}, {60, 1}, {60, 0},
356 - {60, 1}, {60, 0}, {60, 0}, {60, 0},
357 + CTL(60, 0), CTL(60, 1), CTL(60, 1), CTL(60, 0),
358 + CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 0),
363 - {60, 1}, {60, 1}, {60, 1}, {60, 0},
364 - {60, 0}, {60, 0}, {60, 0}, {60, 0},
365 + CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 0),
366 + CTL(60, 0), CTL(60, 0), CTL(60, 0), CTL(60, 0),
371 - {60, 1}, {60, 1}, {60, 1}, {60, 1},
372 - {60, 1}, {60, 0}, {60, 0}, {60, 0},
373 + CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 1),
374 + CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 0),
379 - {60, 1}, {60, 1}, {60, 1}, {60, 1},
380 - {60, 1}, {60, 1}, {60, 1}, {60, 1},
381 + CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 1),
382 + CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 1),
387 - {60, 1}, {60, 1}, {60, 0}, {60, 1},
388 - {60, 1}, {60, 1}, {60, 1}, {60, 0},
389 + CTL(60, 1), CTL(60, 1), CTL(60, 0), CTL(60, 1),
390 + CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 0),
395 - {60, 1}, {60, 0}, {60, 1}, {60, 1},
396 - {60, 1}, {60, 1}, {60, 0}, {60, 1},
397 + CTL(60, 1), CTL(60, 0), CTL(60, 1), CTL(60, 1),
398 + CTL(60, 1), CTL(60, 1), CTL(60, 0), CTL(60, 1),
402 @@ -2029,21 +2031,21 @@ static const struct ar9300_eeprom ar9300
406 - { { {60, 0}, {60, 1}, {60, 0}, {60, 0} } },
407 - { { {60, 0}, {60, 1}, {60, 0}, {60, 0} } },
408 - { { {60, 1}, {60, 0}, {60, 0}, {60, 1} } },
410 - { { {60, 1}, {60, 0}, {0, 0}, {0, 0} } },
411 - { { {60, 0}, {60, 1}, {60, 0}, {60, 0} } },
412 - { { {60, 0}, {60, 1}, {60, 0}, {60, 0} } },
414 - { { {60, 0}, {60, 1}, {60, 1}, {60, 0} } },
415 - { { {60, 0}, {60, 1}, {60, 0}, {60, 0} } },
416 - { { {60, 0}, {60, 1}, {60, 0}, {60, 0} } },
418 - { { {60, 0}, {60, 1}, {60, 0}, {60, 0} } },
419 - { { {60, 0}, {60, 1}, {60, 1}, {60, 1} } },
420 - { { {60, 0}, {60, 1}, {60, 1}, {60, 1} } },
421 + { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
422 + { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
423 + { { CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 1) } },
425 + { { CTL(60, 1), CTL(60, 0), CTL(0, 0), CTL(0, 0) } },
426 + { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
427 + { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
429 + { { CTL(60, 0), CTL(60, 1), CTL(60, 1), CTL(60, 0) } },
430 + { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
431 + { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
433 + { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
434 + { { CTL(60, 0), CTL(60, 1), CTL(60, 1), CTL(60, 1) } },
435 + { { CTL(60, 0), CTL(60, 1), CTL(60, 1), CTL(60, 1) } },
438 /* 4 idle,t1,t2,b (4 bits per setting) */
439 @@ -2315,56 +2317,56 @@ static const struct ar9300_eeprom ar9300
443 - {60, 1}, {60, 1}, {60, 1}, {60, 1},
444 - {60, 1}, {60, 1}, {60, 1}, {60, 0},
445 + CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 1),
446 + CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 0),
451 - {60, 1}, {60, 1}, {60, 1}, {60, 1},
452 - {60, 1}, {60, 1}, {60, 1}, {60, 0},
453 + CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 1),
454 + CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 0),
459 - {60, 0}, {60, 1}, {60, 0}, {60, 1},
460 - {60, 1}, {60, 1}, {60, 1}, {60, 1},
461 + CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 1),
462 + CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 1),
467 - {60, 0}, {60, 1}, {60, 1}, {60, 0},
468 - {60, 1}, {60, 0}, {60, 0}, {60, 0},
469 + CTL(60, 0), CTL(60, 1), CTL(60, 1), CTL(60, 0),
470 + CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 0),
475 - {60, 1}, {60, 1}, {60, 1}, {60, 0},
476 - {60, 0}, {60, 0}, {60, 0}, {60, 0},
477 + CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 0),
478 + CTL(60, 0), CTL(60, 0), CTL(60, 0), CTL(60, 0),
483 - {60, 1}, {60, 1}, {60, 1}, {60, 1},
484 - {60, 1}, {60, 0}, {60, 0}, {60, 0},
485 + CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 1),
486 + CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 0),
491 - {60, 1}, {60, 1}, {60, 1}, {60, 1},
492 - {60, 1}, {60, 1}, {60, 1}, {60, 1},
493 + CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 1),
494 + CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 1),
499 - {60, 1}, {60, 1}, {60, 0}, {60, 1},
500 - {60, 1}, {60, 1}, {60, 1}, {60, 0},
501 + CTL(60, 1), CTL(60, 1), CTL(60, 0), CTL(60, 1),
502 + CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 0),
507 - {60, 1}, {60, 0}, {60, 1}, {60, 1},
508 - {60, 1}, {60, 1}, {60, 0}, {60, 1},
509 + CTL(60, 1), CTL(60, 0), CTL(60, 1), CTL(60, 1),
510 + CTL(60, 1), CTL(60, 1), CTL(60, 0), CTL(60, 1),
514 @@ -2606,21 +2608,21 @@ static const struct ar9300_eeprom ar9300
518 - { { {60, 0}, {60, 1}, {60, 0}, {60, 0} } },
519 - { { {60, 0}, {60, 1}, {60, 0}, {60, 0} } },
520 - { { {60, 1}, {60, 0}, {60, 0}, {60, 1} } },
522 - { { {60, 1}, {60, 0}, {0, 0}, {0, 0} } },
523 - { { {60, 0}, {60, 1}, {60, 0}, {60, 0} } },
524 - { { {60, 0}, {60, 1}, {60, 0}, {60, 0} } },
526 - { { {60, 0}, {60, 1}, {60, 1}, {60, 0} } },
527 - { { {60, 0}, {60, 1}, {60, 0}, {60, 0} } },
528 - { { {60, 0}, {60, 1}, {60, 0}, {60, 0} } },
530 - { { {60, 0}, {60, 1}, {60, 0}, {60, 0} } },
531 - { { {60, 0}, {60, 1}, {60, 1}, {60, 1} } },
532 - { { {60, 0}, {60, 1}, {60, 1}, {60, 1} } },
533 + { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
534 + { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
535 + { { CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 1) } },
537 + { { CTL(60, 1), CTL(60, 0), CTL(0, 0), CTL(0, 0) } },
538 + { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
539 + { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
541 + { { CTL(60, 0), CTL(60, 1), CTL(60, 1), CTL(60, 0) } },
542 + { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
543 + { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
545 + { { CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 0) } },
546 + { { CTL(60, 0), CTL(60, 1), CTL(60, 1), CTL(60, 1) } },
547 + { { CTL(60, 0), CTL(60, 1), CTL(60, 1), CTL(60, 1) } },
550 /* 4 idle,t1,t2,b (4 bits per setting) */
551 @@ -2892,56 +2894,56 @@ static const struct ar9300_eeprom ar9300
555 - {60, 1}, {60, 1}, {60, 1}, {60, 1},
556 - {60, 1}, {60, 1}, {60, 1}, {60, 0},
557 + CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 1),
558 + CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 0),
563 - {60, 1}, {60, 1}, {60, 1}, {60, 1},
564 - {60, 1}, {60, 1}, {60, 1}, {60, 0},
565 + CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 1),
566 + CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 0),
571 - {60, 0}, {60, 1}, {60, 0}, {60, 1},
572 - {60, 1}, {60, 1}, {60, 1}, {60, 1},
573 + CTL(60, 0), CTL(60, 1), CTL(60, 0), CTL(60, 1),
574 + CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 1),
579 - {60, 0}, {60, 1}, {60, 1}, {60, 0},
580 - {60, 1}, {60, 0}, {60, 0}, {60, 0},
581 + CTL(60, 0), CTL(60, 1), CTL(60, 1), CTL(60, 0),
582 + CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 0),
587 - {60, 1}, {60, 1}, {60, 1}, {60, 0},
588 - {60, 0}, {60, 0}, {60, 0}, {60, 0},
589 + CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 0),
590 + CTL(60, 0), CTL(60, 0), CTL(60, 0), CTL(60, 0),
595 - {60, 1}, {60, 1}, {60, 1}, {60, 1},
596 - {60, 1}, {60, 0}, {60, 0}, {60, 0},
597 + CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 1),
598 + CTL(60, 1), CTL(60, 0), CTL(60, 0), CTL(60, 0),
603 - {60, 1}, {60, 1}, {60, 1}, {60, 1},
604 - {60, 1}, {60, 1}, {60, 1}, {60, 1},
605 + CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 1),
606 + CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 1),
611 - {60, 1}, {60, 1}, {60, 0}, {60, 1},
612 - {60, 1}, {60, 1}, {60, 1}, {60, 0},
613 + CTL(60, 1), CTL(60, 1), CTL(60, 0), CTL(60, 1),
614 + CTL(60, 1), CTL(60, 1), CTL(60, 1), CTL(60, 0),
619 - {60, 1}, {60, 0}, {60, 1}, {60, 1},
620 - {60, 1}, {60, 1}, {60, 0}, {60, 1},
621 + CTL(60, 1), CTL(60, 0), CTL(60, 1), CTL(60, 1),
622 + CTL(60, 1), CTL(60, 1), CTL(60, 0), CTL(60, 1),
626 @@ -4363,9 +4365,9 @@ static u16 ar9003_hw_get_direct_edge_pow
627 struct cal_ctl_data_5g *ctl_5g = eep->ctlPowerData_5G;
630 - return ctl_2g[idx].ctlEdges[edge].tPower;
631 + return CTL_EDGE_TPOWER(ctl_2g[idx].ctlEdges[edge]);
633 - return ctl_5g[idx].ctlEdges[edge].tPower;
634 + return CTL_EDGE_TPOWER(ctl_5g[idx].ctlEdges[edge]);
637 static u16 ar9003_hw_get_indirect_edge_power(struct ar9300_eeprom *eep,
638 @@ -4383,12 +4385,12 @@ static u16 ar9003_hw_get_indirect_edge_p
641 if (ath9k_hw_fbin2freq(ctl_freqbin[edge - 1], 1) < freq &&
642 - ctl_2g[idx].ctlEdges[edge - 1].flag)
643 - return ctl_2g[idx].ctlEdges[edge - 1].tPower;
644 + CTL_EDGE_FLAGS(ctl_2g[idx].ctlEdges[edge - 1]))
645 + return CTL_EDGE_TPOWER(ctl_2g[idx].ctlEdges[edge - 1]);
647 if (ath9k_hw_fbin2freq(ctl_freqbin[edge - 1], 0) < freq &&
648 - ctl_5g[idx].ctlEdges[edge - 1].flag)
649 - return ctl_5g[idx].ctlEdges[edge - 1].tPower;
650 + CTL_EDGE_FLAGS(ctl_5g[idx].ctlEdges[edge - 1]))
651 + return CTL_EDGE_TPOWER(ctl_5g[idx].ctlEdges[edge - 1]);
654 return AR9300_MAX_RATE_POWER;
655 --- a/drivers/net/wireless/ath/ath9k/ar9003_eeprom.h
656 +++ b/drivers/net/wireless/ath/ath9k/ar9003_eeprom.h
657 @@ -270,17 +270,12 @@ struct cal_tgt_pow_ht {
661 -struct cal_ctl_edge_pwr {
666 struct cal_ctl_data_2g {
667 - struct cal_ctl_edge_pwr ctlEdges[AR9300_NUM_BAND_EDGES_2G];
668 + u8 ctlEdges[AR9300_NUM_BAND_EDGES_2G];
671 struct cal_ctl_data_5g {
672 - struct cal_ctl_edge_pwr ctlEdges[AR9300_NUM_BAND_EDGES_5G];
673 + u8 ctlEdges[AR9300_NUM_BAND_EDGES_5G];
676 struct ar9300_BaseExtension_1 {