1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 #ifndef _AR5K_AR5212_VAR_H
25 #define _AR5K_AR5212_VAR_H
26
27 #include <dev/ic/ar5xxx.h>
28
29
30
31
32
33 #define AR5K_AR5212_MAGIC 0x0000145c
34 #define AR5K_AR5212_TX_NUM_QUEUES 10
35
36 #if BYTE_ORDER == BIG_ENDIAN
37 #define AR5K_AR5212_INIT_CFG ( \
38 AR5K_AR5212_CFG_SWTD | AR5K_AR5212_CFG_SWRD \
39 )
40 #else
41 #define AR5K_AR5212_INIT_CFG 0x00000000
42 #endif
43
44
45
46
47
48
49 struct ar5k_ar5212_rx_desc {
50
51
52
53 u_int32_t rx_control_0;
54
55 #define AR5K_AR5212_DESC_RX_CTL0 0x00000000
56
57
58
59
60 u_int32_t rx_control_1;
61
62 #define AR5K_AR5212_DESC_RX_CTL1_BUF_LEN 0x00000fff
63 #define AR5K_AR5212_DESC_RX_CTL1_INTREQ 0x00002000
64 } __packed;
65
66 struct ar5k_ar5212_rx_status {
67
68
69
70 u_int32_t rx_status_0;
71
72 #define AR5K_AR5212_DESC_RX_STATUS0_DATA_LEN 0x00000fff
73 #define AR5K_AR5212_DESC_RX_STATUS0_MORE 0x00001000
74 #define AR5K_AR5212_DESC_RX_STATUS0_DECOMP_CRC_ERROR 0x00002000
75 #define AR5K_AR5212_DESC_RX_STATUS0_RECEIVE_RATE 0x000f8000
76 #define AR5K_AR5212_DESC_RX_STATUS0_RECEIVE_RATE_S 15
77 #define AR5K_AR5212_DESC_RX_STATUS0_RECEIVE_SIGNAL 0x0ff00000
78 #define AR5K_AR5212_DESC_RX_STATUS0_RECEIVE_SIGNAL_S 20
79 #define AR5K_AR5212_DESC_RX_STATUS0_RECEIVE_ANTENNA 0xf0000000
80 #define AR5K_AR5212_DESC_RX_STATUS0_RECEIVE_ANTENNA_S 28
81
82
83
84
85 u_int32_t rx_status_1;
86
87 #define AR5K_AR5212_DESC_RX_STATUS1_DONE 0x00000001
88 #define AR5K_AR5212_DESC_RX_STATUS1_FRAME_RECEIVE_OK 0x00000002
89 #define AR5K_AR5212_DESC_RX_STATUS1_CRC_ERROR 0x00000004
90 #define AR5K_AR5212_DESC_RX_STATUS1_DECRYPT_CRC_ERROR 0x00000008
91 #define AR5K_AR5212_DESC_RX_STATUS1_PHY_ERROR 0x00000010
92 #define AR5K_AR5212_DESC_RX_STATUS1_MIC_ERROR 0x00000020
93 #define AR5K_AR5212_DESC_RX_STATUS1_KEY_INDEX_VALID 0x00000100
94 #define AR5K_AR5212_DESC_RX_STATUS1_KEY_INDEX 0x0000fe00
95 #define AR5K_AR5212_DESC_RX_STATUS1_KEY_INDEX_S 9
96 #define AR5K_AR5212_DESC_RX_STATUS1_RECEIVE_TIMESTAMP 0x7fff0000
97 #define AR5K_AR5212_DESC_RX_STATUS1_RECEIVE_TIMESTAMP_S 16
98 #define AR5K_AR5212_DESC_RX_STATUS1_KEY_CACHE_MISS 0x80000000
99 } __packed;
100
101 struct ar5k_ar5212_rx_error {
102
103
104
105 u_int32_t rx_error_0;
106
107 #define AR5K_AR5212_DESC_RX_ERROR0 0x00000000
108
109
110
111
112 u_int32_t rx_error_1;
113
114 #define AR5K_AR5212_DESC_RX_ERROR1_PHY_ERROR_CODE 0x0000ff00
115 #define AR5K_AR5212_DESC_RX_ERROR1_PHY_ERROR_CODE_S 8
116 } __packed;
117
118 #define AR5K_AR5212_DESC_RX_PHY_ERROR_NONE 0x00
119 #define AR5K_AR5212_DESC_RX_PHY_ERROR_TIMING 0x20
120 #define AR5K_AR5212_DESC_RX_PHY_ERROR_PARITY 0x40
121 #define AR5K_AR5212_DESC_RX_PHY_ERROR_RATE 0x60
122 #define AR5K_AR5212_DESC_RX_PHY_ERROR_LENGTH 0x80
123 #define AR5K_AR5212_DESC_RX_PHY_ERROR_64QAM 0xa0
124 #define AR5K_AR5212_DESC_RX_PHY_ERROR_SERVICE 0xc0
125 #define AR5K_AR5212_DESC_RX_PHY_ERROR_TRANSMITOVR 0xe0
126
127 struct ar5k_ar5212_tx_desc {
128
129
130
131 u_int32_t tx_control_0;
132
133 #define AR5K_AR5212_DESC_TX_CTL0_FRAME_LEN 0x00000fff
134 #define AR5K_AR5212_DESC_TX_CTL0_XMIT_POWER 0x003f0000
135 #define AR5K_AR5212_DESC_TX_CTL0_XMIT_POWER_S 16
136 #define AR5K_AR5212_DESC_TX_CTL0_RTSENA 0x00400000
137 #define AR5K_AR5212_DESC_TX_CTL0_VEOL 0x00800000
138 #define AR5K_AR5212_DESC_TX_CTL0_CLRDMASK 0x01000000
139 #define AR5K_AR5212_DESC_TX_CTL0_ANT_MODE_XMIT 0x1e000000
140 #define AR5K_AR5212_DESC_TX_CTL0_ANT_MODE_XMIT_S 25
141 #define AR5K_AR5212_DESC_TX_CTL0_INTREQ 0x20000000
142 #define AR5K_AR5212_DESC_TX_CTL0_ENCRYPT_KEY_VALID 0x40000000
143 #define AR5K_AR5212_DESC_TX_CTL0_CTSENA 0x80000000
144
145
146
147
148 u_int32_t tx_control_1;
149
150 #define AR5K_AR5212_DESC_TX_CTL1_BUF_LEN 0x00000fff
151 #define AR5K_AR5212_DESC_TX_CTL1_MORE 0x00001000
152 #define AR5K_AR5212_DESC_TX_CTL1_ENCRYPT_KEY_INDEX 0x000fe000
153 #define AR5K_AR5212_DESC_TX_CTL1_ENCRYPT_KEY_INDEX_S 13
154 #define AR5K_AR5212_DESC_TX_CTL1_FRAME_TYPE 0x00f00000
155 #define AR5K_AR5212_DESC_TX_CTL1_FRAME_TYPE_S 20
156 #define AR5K_AR5212_DESC_TX_CTL1_NOACK 0x01000000
157 #define AR5K_AR5212_DESC_TX_CTL1_COMP_PROC 0x06000000
158 #define AR5K_AR5212_DESC_TX_CTL1_COMP_PROC_S 25
159 #define AR5K_AR5212_DESC_TX_CTL1_COMP_IV_LEN 0x18000000
160 #define AR5K_AR5212_DESC_TX_CTL1_COMP_IV_LEN_S 27
161 #define AR5K_AR5212_DESC_TX_CTL1_COMP_ICV_LEN 0x60000000
162 #define AR5K_AR5212_DESC_TX_CTL1_COMP_ICV_LEN_S 29
163
164
165
166
167 u_int32_t tx_control_2;
168
169 #define AR5K_AR5212_DESC_TX_CTL2_RTS_DURATION 0x00007fff
170 #define AR5K_AR5212_DESC_TX_CTL2_DURATION_UPDATE_ENABLE 0x00008000
171 #define AR5K_AR5212_DESC_TX_CTL2_XMIT_TRIES0 0x000f0000
172 #define AR5K_AR5212_DESC_TX_CTL2_XMIT_TRIES0_S 16
173 #define AR5K_AR5212_DESC_TX_CTL2_XMIT_TRIES1 0x00f00000
174 #define AR5K_AR5212_DESC_TX_CTL2_XMIT_TRIES1_S 20
175 #define AR5K_AR5212_DESC_TX_CTL2_XMIT_TRIES2 0x0f000000
176 #define AR5K_AR5212_DESC_TX_CTL2_XMIT_TRIES2_S 24
177 #define AR5K_AR5212_DESC_TX_CTL2_XMIT_TRIES3 0xf0000000
178 #define AR5K_AR5212_DESC_TX_CTL2_XMIT_TRIES3_S 28
179
180
181
182
183 u_int32_t tx_control_3;
184
185 #define AR5K_AR5212_DESC_TX_CTL3_XMIT_RATE0 0x0000001f
186 #define AR5K_AR5212_DESC_TX_CTL3_XMIT_RATE1 0x000003e0
187 #define AR5K_AR5212_DESC_TX_CTL3_XMIT_RATE1_S 5
188 #define AR5K_AR5212_DESC_TX_CTL3_XMIT_RATE2 0x00007c00
189 #define AR5K_AR5212_DESC_TX_CTL3_XMIT_RATE2_S 10
190 #define AR5K_AR5212_DESC_TX_CTL3_XMIT_RATE3 0x000f8000
191 #define AR5K_AR5212_DESC_TX_CTL3_XMIT_RATE3_S 15
192 #define AR5K_AR5212_DESC_TX_CTL3_RTS_CTS_RATE 0x01f00000
193 #define AR5K_AR5212_DESC_TX_CTL3_RTS_CTS_RATE_S 20
194 } __packed;
195
196 struct ar5k_ar5212_tx_status {
197
198
199
200 u_int32_t tx_status_0;
201
202 #define AR5K_AR5212_DESC_TX_STATUS0_FRAME_XMIT_OK 0x00000001
203 #define AR5K_AR5212_DESC_TX_STATUS0_EXCESSIVE_RETRIES 0x00000002
204 #define AR5K_AR5212_DESC_TX_STATUS0_FIFO_UNDERRUN 0x00000004
205 #define AR5K_AR5212_DESC_TX_STATUS0_FILTERED 0x00000008
206 #define AR5K_AR5212_DESC_TX_STATUS0_RTS_FAIL_COUNT 0x000000f0
207 #define AR5K_AR5212_DESC_TX_STATUS0_RTS_FAIL_COUNT_S 4
208 #define AR5K_AR5212_DESC_TX_STATUS0_DATA_FAIL_COUNT 0x00000f00
209 #define AR5K_AR5212_DESC_TX_STATUS0_DATA_FAIL_COUNT_S 8
210 #define AR5K_AR5212_DESC_TX_STATUS0_VIRT_COLL_COUNT 0x0000f000
211 #define AR5K_AR5212_DESC_TX_STATUS0_VIRT_COLL_COUNT_S 12
212 #define AR5K_AR5212_DESC_TX_STATUS0_SEND_TIMESTAMP 0xffff0000
213 #define AR5K_AR5212_DESC_TX_STATUS0_SEND_TIMESTAMP_S 16
214
215
216
217
218 u_int32_t tx_status_1;
219
220 #define AR5K_AR5212_DESC_TX_STATUS1_DONE 0x00000001
221 #define AR5K_AR5212_DESC_TX_STATUS1_SEQ_NUM 0x00001ffe
222 #define AR5K_AR5212_DESC_TX_STATUS1_SEQ_NUM_S 1
223 #define AR5K_AR5212_DESC_TX_STATUS1_ACK_SIG_STRENGTH 0x001fe000
224 #define AR5K_AR5212_DESC_TX_STATUS1_ACK_SIG_STRENGTH_S 13
225 #define AR5K_AR5212_DESC_TX_STATUS1_FINAL_TS_INDEX 0x00600000
226 #define AR5K_AR5212_DESC_TX_STATUS1_FINAL_TS_INDEX_S 21
227 #define AR5K_AR5212_DESC_TX_STATUS1_COMP_SUCCESS 0x00800000
228 #define AR5K_AR5212_DESC_TX_STATUS1_XMIT_ANTENNA 0x01000000
229 } __packed;
230
231
232
233
234 extern ar5k_attach_t ar5k_ar5212_attach;
235
236
237
238
239
240
241 struct ar5k_ar5212_ini {
242 u_int8_t ini_flags;
243 u_int16_t ini_register;
244 u_int32_t ini_value;
245
246 #define AR5K_INI_FLAG_511X 0x00
247 #define AR5K_INI_FLAG_5111 0x01
248 #define AR5K_INI_FLAG_5112 0x02
249 #define AR5K_INI_FLAG_BOTH (AR5K_INI_FLAG_5111 | AR5K_INI_FLAG_5112)
250 };
251
252 #define AR5K_AR5212_INI { \
253 { AR5K_INI_FLAG_BOTH, 0x000c, 0x00000000 }, \
254 { AR5K_INI_FLAG_BOTH, 0x0034, 0x00000005 }, \
255 { AR5K_INI_FLAG_BOTH, 0x0040, 0x00000000 }, \
256 { AR5K_INI_FLAG_BOTH, 0x0044, 0x00000008 }, \
257 { AR5K_INI_FLAG_BOTH, 0x0048, 0x00000008 }, \
258 { AR5K_INI_FLAG_BOTH, 0x004c, 0x00000010 }, \
259 { AR5K_INI_FLAG_BOTH, 0x0050, 0x00000000 }, \
260 { AR5K_INI_FLAG_BOTH, 0x0054, 0x0000001f }, \
261 { AR5K_INI_FLAG_BOTH, 0x0800, 0x00000000 }, \
262 { AR5K_INI_FLAG_BOTH, 0x0804, 0x00000000 }, \
263 { AR5K_INI_FLAG_BOTH, 0x0808, 0x00000000 }, \
264 { AR5K_INI_FLAG_BOTH, 0x080c, 0x00000000 }, \
265 { AR5K_INI_FLAG_BOTH, 0x0810, 0x00000000 }, \
266 { AR5K_INI_FLAG_BOTH, 0x0814, 0x00000000 }, \
267 { AR5K_INI_FLAG_BOTH, 0x0818, 0x00000000 }, \
268 { AR5K_INI_FLAG_BOTH, 0x081c, 0x00000000 }, \
269 { AR5K_INI_FLAG_BOTH, 0x0820, 0x00000000 }, \
270 { AR5K_INI_FLAG_BOTH, 0x0824, 0x00000000 }, \
271 { AR5K_INI_FLAG_BOTH, 0x1230, 0x00000000 }, \
272 { AR5K_INI_FLAG_BOTH, 0x1270, 0x00000000 }, \
273 { AR5K_INI_FLAG_BOTH, 0x1038, 0x00000000 }, \
274 { AR5K_INI_FLAG_BOTH, 0x1078, 0x00000000 }, \
275 { AR5K_INI_FLAG_BOTH, 0x10b8, 0x00000000 }, \
276 { AR5K_INI_FLAG_BOTH, 0x10f8, 0x00000000 }, \
277 { AR5K_INI_FLAG_BOTH, 0x1138, 0x00000000 }, \
278 { AR5K_INI_FLAG_BOTH, 0x1178, 0x00000000 }, \
279 { AR5K_INI_FLAG_BOTH, 0x11b8, 0x00000000 }, \
280 { AR5K_INI_FLAG_BOTH, 0x11f8, 0x00000000 }, \
281 { AR5K_INI_FLAG_BOTH, 0x1238, 0x00000000 }, \
282 { AR5K_INI_FLAG_BOTH, 0x1278, 0x00000000 }, \
283 { AR5K_INI_FLAG_BOTH, 0x12b8, 0x00000000 }, \
284 { AR5K_INI_FLAG_BOTH, 0x12f8, 0x00000000 }, \
285 { AR5K_INI_FLAG_BOTH, 0x1338, 0x00000000 }, \
286 { AR5K_INI_FLAG_BOTH, 0x1378, 0x00000000 }, \
287 { AR5K_INI_FLAG_BOTH, 0x13b8, 0x00000000 }, \
288 { AR5K_INI_FLAG_BOTH, 0x13f8, 0x00000000 }, \
289 { AR5K_INI_FLAG_BOTH, 0x1438, 0x00000000 }, \
290 { AR5K_INI_FLAG_BOTH, 0x1478, 0x00000000 }, \
291 { AR5K_INI_FLAG_BOTH, 0x14b8, 0x00000000 }, \
292 { AR5K_INI_FLAG_BOTH, 0x14f8, 0x00000000 }, \
293 { AR5K_INI_FLAG_BOTH, 0x1538, 0x00000000 }, \
294 { AR5K_INI_FLAG_BOTH, 0x1578, 0x00000000 }, \
295 { AR5K_INI_FLAG_BOTH, 0x15b8, 0x00000000 }, \
296 { AR5K_INI_FLAG_BOTH, 0x15f8, 0x00000000 }, \
297 { AR5K_INI_FLAG_BOTH, 0x1638, 0x00000000 }, \
298 { AR5K_INI_FLAG_BOTH, 0x1678, 0x00000000 }, \
299 { AR5K_INI_FLAG_BOTH, 0x16b8, 0x00000000 }, \
300 { AR5K_INI_FLAG_BOTH, 0x16f8, 0x00000000 }, \
301 { AR5K_INI_FLAG_BOTH, 0x1738, 0x00000000 }, \
302 { AR5K_INI_FLAG_BOTH, 0x1778, 0x00000000 }, \
303 { AR5K_INI_FLAG_BOTH, 0x17b8, 0x00000000 }, \
304 { AR5K_INI_FLAG_BOTH, 0x17f8, 0x00000000 }, \
305 { AR5K_INI_FLAG_BOTH, 0x103c, 0x00000000 }, \
306 { AR5K_INI_FLAG_BOTH, 0x107c, 0x00000000 }, \
307 { AR5K_INI_FLAG_BOTH, 0x10bc, 0x00000000 }, \
308 { AR5K_INI_FLAG_BOTH, 0x10fc, 0x00000000 }, \
309 { AR5K_INI_FLAG_BOTH, 0x113c, 0x00000000 }, \
310 { AR5K_INI_FLAG_BOTH, 0x117c, 0x00000000 }, \
311 { AR5K_INI_FLAG_BOTH, 0x11bc, 0x00000000 }, \
312 { AR5K_INI_FLAG_BOTH, 0x11fc, 0x00000000 }, \
313 { AR5K_INI_FLAG_BOTH, 0x123c, 0x00000000 }, \
314 { AR5K_INI_FLAG_BOTH, 0x127c, 0x00000000 }, \
315 { AR5K_INI_FLAG_BOTH, 0x12bc, 0x00000000 }, \
316 { AR5K_INI_FLAG_BOTH, 0x12fc, 0x00000000 }, \
317 { AR5K_INI_FLAG_BOTH, 0x133c, 0x00000000 }, \
318 { AR5K_INI_FLAG_BOTH, 0x137c, 0x00000000 }, \
319 { AR5K_INI_FLAG_BOTH, 0x13bc, 0x00000000 }, \
320 { AR5K_INI_FLAG_BOTH, 0x13fc, 0x00000000 }, \
321 { AR5K_INI_FLAG_BOTH, 0x143c, 0x00000000 }, \
322 { AR5K_INI_FLAG_BOTH, 0x147c, 0x00000000 }, \
323 { AR5K_INI_FLAG_BOTH, 0x8004, 0x00000000 }, \
324 { AR5K_INI_FLAG_BOTH, 0x8008, 0x00000000 }, \
325 { AR5K_INI_FLAG_BOTH, 0x800c, 0x00000000 }, \
326 { AR5K_INI_FLAG_BOTH, 0x8018, 0x00000000 }, \
327 { AR5K_INI_FLAG_BOTH, 0x8020, 0x00000000 }, \
328 { AR5K_INI_FLAG_BOTH, 0x8024, 0x00000000 }, \
329 { AR5K_INI_FLAG_BOTH, 0x8028, 0x00000030 }, \
330 { AR5K_INI_FLAG_BOTH, 0x802c, 0x0007ffff }, \
331 { AR5K_INI_FLAG_BOTH, 0x8030, 0x01ffffff }, \
332 { AR5K_INI_FLAG_BOTH, 0x8034, 0x00000031 }, \
333 { AR5K_INI_FLAG_BOTH, 0x8038, 0x00000000 }, \
334 { AR5K_INI_FLAG_BOTH, 0x803c, 0x00000000 }, \
335 { AR5K_INI_FLAG_BOTH, 0x8048, 0x00000000 }, \
336 { AR5K_INI_FLAG_BOTH, 0x8054, 0x00000000 }, \
337 { AR5K_INI_FLAG_BOTH, 0x8058, 0x00000000 }, \
338 { AR5K_INI_FLAG_BOTH, 0x805c, 0xffffc7ff }, \
339 { AR5K_INI_FLAG_BOTH, 0x8080, 0x00000000 }, \
340 { AR5K_INI_FLAG_BOTH, 0x8084, 0x00000000 }, \
341 { AR5K_INI_FLAG_BOTH, 0x8088, 0x00000000 }, \
342 { AR5K_INI_FLAG_BOTH, 0x808c, 0x00000000 }, \
343 { AR5K_INI_FLAG_BOTH, 0x8090, 0x00000000 }, \
344 { AR5K_INI_FLAG_BOTH, 0x8094, 0x00000000 }, \
345 { AR5K_INI_FLAG_BOTH, 0x8098, 0x00000000 }, \
346 { AR5K_INI_FLAG_BOTH, 0x80c0, 0x2a82301a }, \
347 { AR5K_INI_FLAG_BOTH, 0x80c4, 0x05dc01e0 }, \
348 { AR5K_INI_FLAG_BOTH, 0x80c8, 0x1f402710 }, \
349 { AR5K_INI_FLAG_BOTH, 0x80cc, 0x01f40000 }, \
350 { AR5K_INI_FLAG_BOTH, 0x80d0, 0x00001e1c }, \
351 { AR5K_INI_FLAG_BOTH, 0x80d4, 0x0002aaaa }, \
352 { AR5K_INI_FLAG_BOTH, 0x80d8, 0x02005555 }, \
353 { AR5K_INI_FLAG_BOTH, 0x80dc, 0x00000000 }, \
354 { AR5K_INI_FLAG_BOTH, 0x80e0, 0xffffffff }, \
355 { AR5K_INI_FLAG_BOTH, 0x80e4, 0x0000ffff }, \
356 { AR5K_INI_FLAG_BOTH, 0x80e8, 0x00000000 }, \
357 { AR5K_INI_FLAG_BOTH, 0x80ec, 0x00000000 }, \
358 { AR5K_INI_FLAG_BOTH, 0x80f0, 0x00000000 }, \
359 { AR5K_INI_FLAG_BOTH, 0x80f4, 0x00000000 }, \
360 { AR5K_INI_FLAG_BOTH, 0x80f8, 0x00000000 }, \
361 { AR5K_INI_FLAG_BOTH, 0x80fc, 0x00000088 }, \
362 { AR5K_INI_FLAG_BOTH, 0x8700, 0x00000000 }, \
363 { AR5K_INI_FLAG_BOTH, 0x8704, 0x0000008c }, \
364 { AR5K_INI_FLAG_BOTH, 0x8708, 0x000000e4 }, \
365 { AR5K_INI_FLAG_BOTH, 0x870c, 0x000002d5 }, \
366 { AR5K_INI_FLAG_BOTH, 0x8710, 0x00000000 }, \
367 { AR5K_INI_FLAG_BOTH, 0x8714, 0x00000000 }, \
368 { AR5K_INI_FLAG_BOTH, 0x8718, 0x000000a0 }, \
369 { AR5K_INI_FLAG_BOTH, 0x871c, 0x000001c9 }, \
370 { AR5K_INI_FLAG_BOTH, 0x8720, 0x0000002c }, \
371 { AR5K_INI_FLAG_BOTH, 0x8724, 0x0000002c }, \
372 { AR5K_INI_FLAG_BOTH, 0x8728, 0x00000030 }, \
373 { AR5K_INI_FLAG_BOTH, 0x872c, 0x0000003c }, \
374 { AR5K_INI_FLAG_BOTH, 0x8730, 0x0000002c }, \
375 { AR5K_INI_FLAG_BOTH, 0x8734, 0x0000002c }, \
376 { AR5K_INI_FLAG_BOTH, 0x8738, 0x00000030 }, \
377 { AR5K_INI_FLAG_BOTH, 0x873c, 0x0000003c }, \
378 { AR5K_INI_FLAG_BOTH, 0x8740, 0x00000000 }, \
379 { AR5K_INI_FLAG_BOTH, 0x8744, 0x00000000 }, \
380 { AR5K_INI_FLAG_BOTH, 0x8748, 0x00000000 }, \
381 { AR5K_INI_FLAG_BOTH, 0x874c, 0x00000000 }, \
382 { AR5K_INI_FLAG_BOTH, 0x8750, 0x00000000 }, \
383 { AR5K_INI_FLAG_BOTH, 0x8754, 0x00000000 }, \
384 { AR5K_INI_FLAG_BOTH, 0x8758, 0x00000000 }, \
385 { AR5K_INI_FLAG_BOTH, 0x875c, 0x00000000 }, \
386 { AR5K_INI_FLAG_BOTH, 0x8760, 0x000000d5 }, \
387 { AR5K_INI_FLAG_BOTH, 0x8764, 0x000000df }, \
388 { AR5K_INI_FLAG_BOTH, 0x8768, 0x00000102 }, \
389 { AR5K_INI_FLAG_BOTH, 0x876c, 0x0000013a }, \
390 { AR5K_INI_FLAG_BOTH, 0x8770, 0x00000075 }, \
391 { AR5K_INI_FLAG_BOTH, 0x8774, 0x0000007f }, \
392 { AR5K_INI_FLAG_BOTH, 0x8778, 0x000000a2 }, \
393 { AR5K_INI_FLAG_BOTH, 0x877c, 0x00000000 }, \
394 { AR5K_INI_FLAG_BOTH, 0x8100, 0x00010002 }, \
395 { AR5K_INI_FLAG_BOTH, 0x8104, 0x00000001 }, \
396 { AR5K_INI_FLAG_BOTH, 0x8108, 0x000000c0 }, \
397 { AR5K_INI_FLAG_BOTH, 0x810c, 0x00000000 }, \
398 { AR5K_INI_FLAG_BOTH, 0x8110, 0x00000168 }, \
399 { AR5K_INI_FLAG_BOTH, 0x8114, 0x00000000 }, \
400 { AR5K_INI_FLAG_BOTH, 0x87c0, 0x03020100 }, \
401 { AR5K_INI_FLAG_BOTH, 0x87c4, 0x07060504 }, \
402 { AR5K_INI_FLAG_BOTH, 0x87c8, 0x0b0a0908 }, \
403 { AR5K_INI_FLAG_BOTH, 0x87cc, 0x0f0e0d0c }, \
404 { AR5K_INI_FLAG_BOTH, 0x87d0, 0x13121110 }, \
405 { AR5K_INI_FLAG_BOTH, 0x87d4, 0x17161514 }, \
406 { AR5K_INI_FLAG_BOTH, 0x87d8, 0x1b1a1918 }, \
407 { AR5K_INI_FLAG_BOTH, 0x87dc, 0x1f1e1d1c }, \
408 { AR5K_INI_FLAG_BOTH, 0x87e0, 0x03020100 }, \
409 { AR5K_INI_FLAG_BOTH, 0x87e4, 0x07060504 }, \
410 { AR5K_INI_FLAG_BOTH, 0x87e8, 0x0b0a0908 }, \
411 { AR5K_INI_FLAG_BOTH, 0x87ec, 0x0f0e0d0c }, \
412 { AR5K_INI_FLAG_BOTH, 0x87f0, 0x13121110 }, \
413 { AR5K_INI_FLAG_BOTH, 0x87f4, 0x17161514 }, \
414 { AR5K_INI_FLAG_BOTH, 0x87f8, 0x1b1a1918 }, \
415 { AR5K_INI_FLAG_BOTH, 0x87fc, 0x1f1e1d1c }, \
416 \
417 { AR5K_INI_FLAG_BOTH, 0x9808, 0x00000000 }, \
418 { AR5K_INI_FLAG_BOTH, 0x980c, 0xad848e19 }, \
419 { AR5K_INI_FLAG_BOTH, 0x9810, 0x7d28e000 }, \
420 { AR5K_INI_FLAG_BOTH, 0x9814, 0x9c0a9f6b }, \
421 { AR5K_INI_FLAG_BOTH, 0x981c, 0x00000000 }, \
422 { AR5K_INI_FLAG_BOTH, 0x982c, 0x00022ffe }, \
423 { AR5K_INI_FLAG_BOTH, 0x983c, 0x00020100 }, \
424 { AR5K_INI_FLAG_BOTH, 0x9840, 0x206a017a }, \
425 { AR5K_INI_FLAG_BOTH, 0x984c, 0x1284613c }, \
426 { AR5K_INI_FLAG_BOTH, 0x9854, 0x00000859 }, \
427 { AR5K_INI_FLAG_BOTH, 0x9900, 0x00000000 }, \
428 { AR5K_INI_FLAG_BOTH, 0x9904, 0x00000000 }, \
429 { AR5K_INI_FLAG_BOTH, 0x9908, 0x00000000 }, \
430 { AR5K_INI_FLAG_BOTH, 0x990c, 0x00800000 }, \
431 { AR5K_INI_FLAG_BOTH, 0x9910, 0x00000001 }, \
432 { AR5K_INI_FLAG_BOTH, 0x991c, 0x0000092a }, \
433 { AR5K_INI_FLAG_BOTH, 0x9920, 0x05100000 }, \
434 { AR5K_INI_FLAG_BOTH, 0x9928, 0x00000001 }, \
435 { AR5K_INI_FLAG_BOTH, 0x992c, 0x00000004 }, \
436 { AR5K_INI_FLAG_BOTH, 0x9934, 0x1e1f2022 }, \
437 { AR5K_INI_FLAG_BOTH, 0x9938, 0x0a0b0c0d }, \
438 { AR5K_INI_FLAG_BOTH, 0x993c, 0x0000003f }, \
439 { AR5K_INI_FLAG_BOTH, 0x9940, 0x00000004 }, \
440 { AR5K_INI_FLAG_BOTH, 0x9948, 0x9280b212 }, \
441 { AR5K_INI_FLAG_BOTH, 0x9954, 0x5d50e188 }, \
442 { AR5K_INI_FLAG_BOTH, 0x9958, 0x000000ff }, \
443 { AR5K_INI_FLAG_BOTH, 0x995c, 0x004b6a8e }, \
444 { AR5K_INI_FLAG_BOTH, 0x9968, 0x000003ce }, \
445 { AR5K_INI_FLAG_BOTH, 0x9970, 0x192fb515 }, \
446 { AR5K_INI_FLAG_BOTH, 0x9974, 0x00000000 }, \
447 { AR5K_INI_FLAG_BOTH, 0x9978, 0x00000001 }, \
448 { AR5K_INI_FLAG_BOTH, 0x997c, 0x00000000 }, \
449 { AR5K_INI_FLAG_BOTH, 0xa184, 0x10ff10ff }, \
450 { AR5K_INI_FLAG_BOTH, 0xa188, 0x10ff10ff }, \
451 { AR5K_INI_FLAG_BOTH, 0xa18c, 0x10ff10ff }, \
452 { AR5K_INI_FLAG_BOTH, 0xa190, 0x10ff10ff }, \
453 { AR5K_INI_FLAG_BOTH, 0xa194, 0x10ff10ff }, \
454 { AR5K_INI_FLAG_BOTH, 0xa198, 0x10ff10ff }, \
455 { AR5K_INI_FLAG_BOTH, 0xa19c, 0x10ff10ff }, \
456 { AR5K_INI_FLAG_BOTH, 0xa1a0, 0x10ff10ff }, \
457 { AR5K_INI_FLAG_BOTH, 0xa1a4, 0x10ff10ff }, \
458 { AR5K_INI_FLAG_BOTH, 0xa1a8, 0x10ff10ff }, \
459 { AR5K_INI_FLAG_BOTH, 0xa1ac, 0x10ff10ff }, \
460 { AR5K_INI_FLAG_BOTH, 0xa1b0, 0x10ff10ff }, \
461 { AR5K_INI_FLAG_BOTH, 0xa1b4, 0x10ff10ff }, \
462 { AR5K_INI_FLAG_BOTH, 0xa1b8, 0x10ff10ff }, \
463 { AR5K_INI_FLAG_BOTH, 0xa1bc, 0x10ff10ff }, \
464 { AR5K_INI_FLAG_BOTH, 0xa1c0, 0x10ff10ff }, \
465 { AR5K_INI_FLAG_BOTH, 0xa1c4, 0x10ff10ff }, \
466 { AR5K_INI_FLAG_BOTH, 0xa1c8, 0x10ff10ff }, \
467 { AR5K_INI_FLAG_BOTH, 0xa1cc, 0x10ff10ff }, \
468 { AR5K_INI_FLAG_BOTH, 0xa1d0, 0x10ff10ff }, \
469 { AR5K_INI_FLAG_BOTH, 0xa1d4, 0x10ff10ff }, \
470 { AR5K_INI_FLAG_BOTH, 0xa1d8, 0x10ff10ff }, \
471 { AR5K_INI_FLAG_BOTH, 0xa1dc, 0x10ff10ff }, \
472 { AR5K_INI_FLAG_BOTH, 0xa1e0, 0x10ff10ff }, \
473 { AR5K_INI_FLAG_BOTH, 0xa1e4, 0x10ff10ff }, \
474 { AR5K_INI_FLAG_BOTH, 0xa1e8, 0x10ff10ff }, \
475 { AR5K_INI_FLAG_BOTH, 0xa1ec, 0x10ff10ff }, \
476 { AR5K_INI_FLAG_BOTH, 0xa1f0, 0x10ff10ff }, \
477 { AR5K_INI_FLAG_BOTH, 0xa1f4, 0x10ff10ff }, \
478 { AR5K_INI_FLAG_BOTH, 0xa1f8, 0x10ff10ff }, \
479 { AR5K_INI_FLAG_BOTH, 0xa1fc, 0x10ff10ff }, \
480 { AR5K_INI_FLAG_BOTH, 0xa210, 0x0080a333 }, \
481 { AR5K_INI_FLAG_BOTH, 0xa214, 0x00206c10 }, \
482 { AR5K_INI_FLAG_BOTH, 0xa218, 0x009c4060 }, \
483 { AR5K_INI_FLAG_BOTH, 0xa21c, 0x1483800a }, \
484 { AR5K_INI_FLAG_BOTH, 0xa220, 0x01831061 }, \
485 { AR5K_INI_FLAG_BOTH, 0xa224, 0x00000400 }, \
486 { AR5K_INI_FLAG_BOTH, 0xa228, 0x000001b5 }, \
487 { AR5K_INI_FLAG_BOTH, 0xa22c, 0x00000000 }, \
488 { AR5K_INI_FLAG_BOTH, 0xa234, 0x20202020 }, \
489 { AR5K_INI_FLAG_BOTH, 0xa238, 0x20202020 }, \
490 { AR5K_INI_FLAG_BOTH, 0xa23c, 0x13c889af }, \
491 { AR5K_INI_FLAG_BOTH, 0xa240, 0x38490a20 }, \
492 { AR5K_INI_FLAG_BOTH, 0xa244, 0x00007bb6 }, \
493 { AR5K_INI_FLAG_BOTH, 0xa248, 0x0fff3ffc }, \
494 { AR5K_INI_FLAG_BOTH, 0x9b00, 0x00000000 }, \
495 { AR5K_INI_FLAG_BOTH, 0x9b28, 0x0000000c }, \
496 { AR5K_INI_FLAG_BOTH, 0x9b38, 0x00000012 }, \
497 { AR5K_INI_FLAG_BOTH, 0x9b64, 0x00000021 }, \
498 { AR5K_INI_FLAG_BOTH, 0x9b8c, 0x0000002d }, \
499 { AR5K_INI_FLAG_BOTH, 0x9b9c, 0x00000033 }, \
500 \
501 { AR5K_INI_FLAG_5111, 0x9930, 0x00004883 }, \
502 { AR5K_INI_FLAG_5111, 0xa204, 0x00000000 }, \
503 { AR5K_INI_FLAG_5111, 0xa208, 0xd03e6788 }, \
504 { AR5K_INI_FLAG_5111, 0xa20c, 0x6448416a }, \
505 { AR5K_INI_FLAG_5111, 0x9b04, 0x00000020 }, \
506 { AR5K_INI_FLAG_5111, 0x9b08, 0x00000010 }, \
507 { AR5K_INI_FLAG_5111, 0x9b0c, 0x00000030 }, \
508 { AR5K_INI_FLAG_5111, 0x9b10, 0x00000008 }, \
509 { AR5K_INI_FLAG_5111, 0x9b14, 0x00000028 }, \
510 { AR5K_INI_FLAG_5111, 0x9b18, 0x00000004 }, \
511 { AR5K_INI_FLAG_5111, 0x9b1c, 0x00000024 }, \
512 { AR5K_INI_FLAG_5111, 0x9b20, 0x00000014 }, \
513 { AR5K_INI_FLAG_5111, 0x9b24, 0x00000034 }, \
514 { AR5K_INI_FLAG_5111, 0x9b2c, 0x0000002c }, \
515 { AR5K_INI_FLAG_5111, 0x9b30, 0x00000002 }, \
516 { AR5K_INI_FLAG_5111, 0x9b34, 0x00000022 }, \
517 { AR5K_INI_FLAG_5111, 0x9b3c, 0x00000032 }, \
518 { AR5K_INI_FLAG_5111, 0x9b40, 0x0000000a }, \
519 { AR5K_INI_FLAG_5111, 0x9b44, 0x0000002a }, \
520 { AR5K_INI_FLAG_5111, 0x9b48, 0x00000006 }, \
521 { AR5K_INI_FLAG_5111, 0x9b4c, 0x00000026 }, \
522 { AR5K_INI_FLAG_5111, 0x9b50, 0x00000016 }, \
523 { AR5K_INI_FLAG_5111, 0x9b54, 0x00000036 }, \
524 { AR5K_INI_FLAG_5111, 0x9b58, 0x0000000e }, \
525 { AR5K_INI_FLAG_5111, 0x9b5c, 0x0000002e }, \
526 { AR5K_INI_FLAG_5111, 0x9b60, 0x00000001 }, \
527 { AR5K_INI_FLAG_5111, 0x9b68, 0x00000011 }, \
528 { AR5K_INI_FLAG_5111, 0x9b6c, 0x00000031 }, \
529 { AR5K_INI_FLAG_5111, 0x9b70, 0x00000009 }, \
530 { AR5K_INI_FLAG_5111, 0x9b74, 0x00000029 }, \
531 { AR5K_INI_FLAG_5111, 0x9b78, 0x00000005 }, \
532 { AR5K_INI_FLAG_5111, 0x9b7c, 0x00000025 }, \
533 { AR5K_INI_FLAG_5111, 0x9b80, 0x00000015 }, \
534 { AR5K_INI_FLAG_5111, 0x9b84, 0x00000035 }, \
535 { AR5K_INI_FLAG_5111, 0x9b88, 0x0000000d }, \
536 { AR5K_INI_FLAG_5111, 0x9b90, 0x00000003 }, \
537 { AR5K_INI_FLAG_5111, 0x9b94, 0x00000023 }, \
538 { AR5K_INI_FLAG_5111, 0x9b98, 0x00000013 }, \
539 { AR5K_INI_FLAG_5111, 0x9ba0, 0x0000000b }, \
540 { AR5K_INI_FLAG_5111, 0x9ba4, 0x0000002b }, \
541 { AR5K_INI_FLAG_5111, 0x9ba8, 0x0000002b }, \
542 { AR5K_INI_FLAG_5111, 0x9bac, 0x0000002b }, \
543 { AR5K_INI_FLAG_5111, 0x9bb0, 0x0000002b }, \
544 { AR5K_INI_FLAG_5111, 0x9bb4, 0x0000002b }, \
545 { AR5K_INI_FLAG_5111, 0x9bb8, 0x0000002b }, \
546 { AR5K_INI_FLAG_5111, 0x9bbc, 0x0000002b }, \
547 { AR5K_INI_FLAG_5111, 0x9bc0, 0x0000002b }, \
548 { AR5K_INI_FLAG_5111, 0x9bc4, 0x0000002b }, \
549 { AR5K_INI_FLAG_5111, 0x9bc8, 0x0000002b }, \
550 { AR5K_INI_FLAG_5111, 0x9bcc, 0x0000002b }, \
551 { AR5K_INI_FLAG_5111, 0x9bd0, 0x0000002b }, \
552 { AR5K_INI_FLAG_5111, 0x9bd4, 0x0000002b }, \
553 { AR5K_INI_FLAG_5111, 0x9bd8, 0x0000002b }, \
554 { AR5K_INI_FLAG_5111, 0x9bdc, 0x0000002b }, \
555 { AR5K_INI_FLAG_5111, 0x9be0, 0x0000002b }, \
556 { AR5K_INI_FLAG_5111, 0x9be4, 0x0000002b }, \
557 { AR5K_INI_FLAG_5111, 0x9be8, 0x0000002b }, \
558 { AR5K_INI_FLAG_5111, 0x9bec, 0x0000002b }, \
559 { AR5K_INI_FLAG_5111, 0x9bf0, 0x0000002b }, \
560 { AR5K_INI_FLAG_5111, 0x9bf4, 0x0000002b }, \
561 { AR5K_INI_FLAG_5111, 0x9bf8, 0x00000002 }, \
562 { AR5K_INI_FLAG_5111, 0x9bfc, 0x00000016 }, \
563 \
564 { AR5K_INI_FLAG_5112, 0x9930, 0x00004882 }, \
565 { AR5K_INI_FLAG_5112, 0x9b04, 0x00000001 }, \
566 { AR5K_INI_FLAG_5112, 0x9b08, 0x00000002 }, \
567 { AR5K_INI_FLAG_5112, 0x9b0c, 0x00000003 }, \
568 { AR5K_INI_FLAG_5112, 0x9b10, 0x00000004 }, \
569 { AR5K_INI_FLAG_5112, 0x9b14, 0x00000005 }, \
570 { AR5K_INI_FLAG_5112, 0x9b18, 0x00000008 }, \
571 { AR5K_INI_FLAG_5112, 0x9b1c, 0x00000009 }, \
572 { AR5K_INI_FLAG_5112, 0x9b20, 0x0000000a }, \
573 { AR5K_INI_FLAG_5112, 0x9b24, 0x0000000b }, \
574 { AR5K_INI_FLAG_5112, 0x9b2c, 0x0000000d }, \
575 { AR5K_INI_FLAG_5112, 0x9b30, 0x00000010 }, \
576 { AR5K_INI_FLAG_5112, 0x9b34, 0x00000011 }, \
577 { AR5K_INI_FLAG_5112, 0x9b3c, 0x00000013 }, \
578 { AR5K_INI_FLAG_5112, 0x9b40, 0x00000014 }, \
579 { AR5K_INI_FLAG_5112, 0x9b44, 0x00000015 }, \
580 { AR5K_INI_FLAG_5112, 0x9b48, 0x00000018 }, \
581 { AR5K_INI_FLAG_5112, 0x9b4c, 0x00000019 }, \
582 { AR5K_INI_FLAG_5112, 0x9b50, 0x0000001a }, \
583 { AR5K_INI_FLAG_5112, 0x9b54, 0x0000001b }, \
584 { AR5K_INI_FLAG_5112, 0x9b58, 0x0000001c }, \
585 { AR5K_INI_FLAG_5112, 0x9b5c, 0x0000001d }, \
586 { AR5K_INI_FLAG_5112, 0x9b60, 0x00000020 }, \
587 { AR5K_INI_FLAG_5112, 0x9b68, 0x00000022 }, \
588 { AR5K_INI_FLAG_5112, 0x9b6c, 0x00000023 }, \
589 { AR5K_INI_FLAG_5112, 0x9b70, 0x00000024 }, \
590 { AR5K_INI_FLAG_5112, 0x9b74, 0x00000025 }, \
591 { AR5K_INI_FLAG_5112, 0x9b78, 0x00000028 }, \
592 { AR5K_INI_FLAG_5112, 0x9b7c, 0x00000029 }, \
593 { AR5K_INI_FLAG_5112, 0x9b80, 0x0000002a }, \
594 { AR5K_INI_FLAG_5112, 0x9b84, 0x0000002b }, \
595 { AR5K_INI_FLAG_5112, 0x9b88, 0x0000002c }, \
596 { AR5K_INI_FLAG_5112, 0x9b90, 0x00000030 }, \
597 { AR5K_INI_FLAG_5112, 0x9b94, 0x00000031 }, \
598 { AR5K_INI_FLAG_5112, 0x9b98, 0x00000032 }, \
599 { AR5K_INI_FLAG_5112, 0x9ba0, 0x00000034 }, \
600 { AR5K_INI_FLAG_5112, 0x9ba4, 0x00000035 }, \
601 { AR5K_INI_FLAG_5112, 0x9ba8, 0x00000035 }, \
602 { AR5K_INI_FLAG_5112, 0x9bac, 0x00000035 }, \
603 { AR5K_INI_FLAG_5112, 0x9bb0, 0x00000035 }, \
604 { AR5K_INI_FLAG_5112, 0x9bb4, 0x00000035 }, \
605 { AR5K_INI_FLAG_5112, 0x9bb8, 0x00000035 }, \
606 { AR5K_INI_FLAG_5112, 0x9bbc, 0x00000035 }, \
607 { AR5K_INI_FLAG_5112, 0x9bc0, 0x00000035 }, \
608 { AR5K_INI_FLAG_5112, 0x9bc4, 0x00000035 }, \
609 { AR5K_INI_FLAG_5112, 0x9bc8, 0x00000035 }, \
610 { AR5K_INI_FLAG_5112, 0x9bcc, 0x00000035 }, \
611 { AR5K_INI_FLAG_5112, 0x9bd0, 0x00000035 }, \
612 { AR5K_INI_FLAG_5112, 0x9bd4, 0x00000035 }, \
613 { AR5K_INI_FLAG_5112, 0x9bd8, 0x00000035 }, \
614 { AR5K_INI_FLAG_5112, 0x9bdc, 0x00000035 }, \
615 { AR5K_INI_FLAG_5112, 0x9be0, 0x00000035 }, \
616 { AR5K_INI_FLAG_5112, 0x9be4, 0x00000035 }, \
617 { AR5K_INI_FLAG_5112, 0x9be8, 0x00000035 }, \
618 { AR5K_INI_FLAG_5112, 0x9bec, 0x00000035 }, \
619 { AR5K_INI_FLAG_5112, 0x9bf0, 0x00000035 }, \
620 { AR5K_INI_FLAG_5112, 0x9bf4, 0x00000035 }, \
621 { AR5K_INI_FLAG_5112, 0x9bf8, 0x00000010 }, \
622 { AR5K_INI_FLAG_5112, 0x9bfc, 0x0000001a }, \
623 }
624
625 struct ar5k_ar5212_ini_mode {
626 u_int16_t mode_register;
627 u_int8_t mode_flags;
628 u_int32_t mode_value[2][5];
629 };
630
631 #define AR5K_AR5212_INI_MODE { \
632 { 0x0030, AR5K_INI_FLAG_511X, { \
633 { 0, }, \
634 { 0x00008107, 0x00008107, 0x00008107, 0x00008107, 0x00008107 } \
635 } }, \
636 { 0x1040, AR5K_INI_FLAG_511X, { \
637 { 0, }, \
638 { 0x002ffc0f, 0x002ffc0f, 0x002ffc1f, 0x002ffc0f, 0x002ffc0f } \
639 } }, \
640 { 0x1044, AR5K_INI_FLAG_511X, { \
641 { 0, }, \
642 { 0x002ffc0f, 0x002ffc0f, 0x002ffc1f, 0x002ffc0f, 0x002ffc0f } \
643 } }, \
644 { 0x1048, AR5K_INI_FLAG_511X, { \
645 { 0, }, \
646 { 0x002ffc0f, 0x002ffc0f, 0x002ffc1f, 0x002ffc0f, 0x002ffc0f } \
647 } }, \
648 { 0x104c, AR5K_INI_FLAG_511X, { \
649 { 0, }, \
650 { 0x002ffc0f, 0x002ffc0f, 0x002ffc1f, 0x002ffc0f, 0x002ffc0f } \
651 } }, \
652 { 0x1050, AR5K_INI_FLAG_511X, { \
653 { 0, }, \
654 { 0x002ffc0f, 0x002ffc0f, 0x002ffc1f, 0x002ffc0f, 0x002ffc0f } \
655 } }, \
656 { 0x1054, AR5K_INI_FLAG_511X, { \
657 { 0, }, \
658 { 0x002ffc0f, 0x002ffc0f, 0x002ffc1f, 0x002ffc0f, 0x002ffc0f } \
659 } }, \
660 { 0x1058, AR5K_INI_FLAG_511X, { \
661 { 0, }, \
662 { 0x002ffc0f, 0x002ffc0f, 0x002ffc1f, 0x002ffc0f, 0x002ffc0f } \
663 } }, \
664 { 0x105c, AR5K_INI_FLAG_511X, { \
665 { 0, }, \
666 { 0x002ffc0f, 0x002ffc0f, 0x002ffc1f, 0x002ffc0f, 0x002ffc0f } \
667 } }, \
668 { 0x1060, AR5K_INI_FLAG_511X, { \
669 { 0, }, \
670 { 0x002ffc0f, 0x002ffc0f, 0x002ffc1f, 0x002ffc0f, 0x002ffc0f } \
671 } }, \
672 { 0x1064, AR5K_INI_FLAG_511X, { \
673 { 0, }, \
674 { 0x002ffc0f, 0x002ffc0f, 0x002ffc1f, 0x002ffc0f, 0x002ffc0f } \
675 } }, \
676 { 0x1030, AR5K_INI_FLAG_511X, { \
677 { 0, }, \
678 { 0x00000230, 0x000001e0, 0x000000b0, 0x00000160, 0x000001e0 } \
679 } }, \
680 { 0x1070, AR5K_INI_FLAG_511X, { \
681 { 0, }, \
682 { 0x00000168, 0x000001e0, 0x000001b8, 0x0000018c, 0x000001e0 } \
683 } }, \
684 { 0x10b0, AR5K_INI_FLAG_511X, { \
685 { 0, }, \
686 { 0x00000e60, 0x00001180, 0x00001f1c, 0x00003e38, 0x00001180 } \
687 } }, \
688 { 0x10f0, AR5K_INI_FLAG_511X, { \
689 { 0, }, \
690 { 0x0000a0e0, 0x00014068, 0x00005880, 0x0000b0e0, 0x00014068 } \
691 } }, \
692 { 0x8014, AR5K_INI_FLAG_511X, { \
693 { 0, }, \
694 { 0x03e803e8, 0x06e006e0, 0x04200420, 0x08400840, 0x06e006e0 } \
695 } }, \
696 { 0x9804, AR5K_INI_FLAG_511X, { \
697 { 0, }, \
698 { 0x00000000, 0x00000003, 0x00000000, 0x00000000, 0x00000003 } \
699 } }, \
700 { 0x9820, AR5K_INI_FLAG_511X, { \
701 { 0, }, \
702 { 0x02020200, 0x02020200, 0x02010200, 0x02020200, 0x02020200 } \
703 } }, \
704 { 0x9834, AR5K_INI_FLAG_511X, { \
705 { 0, }, \
706 { 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e } \
707 } }, \
708 { 0x9838, AR5K_INI_FLAG_511X, { \
709 { 0, }, \
710 { 0x00000007, 0x00000007, 0x0000000b, 0x0000000b, 0x0000000b } \
711 } }, \
712 { 0x9844, AR5K_INI_FLAG_511X, { \
713 { 0, }, \
714 { 0x1372161c, 0x13721c25, 0x13721728, 0x137216a2, 0x13721c25 } \
715 } }, \
716 { 0x9850, AR5K_INI_FLAG_511X, { \
717 { 0, }, \
718 { 0x0de8b4e0, 0x0de8b4e0, 0x0de8b4e0, 0x0de8b4e0, 0x0de8b4e0 } \
719 } }, \
720 { 0x9858, AR5K_INI_FLAG_511X, { \
721 { 0, }, \
722 { 0x7e800d2e, 0x7e800d2e, 0x7ee84d2e, 0x7ee84d2e, 0x7e800d2e } \
723 } }, \
724 { 0x9860, AR5K_INI_FLAG_511X, { \
725 { 0, }, \
726 { 0x00009d10, 0x00009d10, 0x00009d18, 0x00009d10, 0x00009d10 } \
727 } }, \
728 { 0x9864, AR5K_INI_FLAG_511X, { \
729 { 0, }, \
730 { 0x0001ce00, 0x0001ce00, 0x0001ce00, 0x0001ce00, 0x0001ce00 } \
731 } }, \
732 { 0x9868, AR5K_INI_FLAG_511X, { \
733 { 0, }, \
734 { 0x409a4190, 0x409a4190, 0x409a4190, 0x409a4190, 0x409a4190 } \
735 } }, \
736 { 0x9918, AR5K_INI_FLAG_511X, { \
737 { 0, }, \
738 { 0x000001b8, 0x000001b8, 0x00000084, 0x00000108, 0x000001b8 } \
739 } }, \
740 { 0x9924, AR5K_INI_FLAG_511X, { \
741 { 0, }, \
742 { 0x10058a05, 0x10058a05, 0x10058a05, 0x10058a05, 0x10058a05 } \
743 } }, \
744 { 0xa180, AR5K_INI_FLAG_511X, { \
745 { 0, }, \
746 { 0x10ff14ff, 0x10ff14ff, 0x10ff10ff, 0x10ff19ff, 0x10ff19ff } \
747 } }, \
748 { 0xa230, AR5K_INI_FLAG_511X, { \
749 { 0, }, \
750 { 0x00000000, 0x00000000, 0x00000000, 0x00000108, 0x00000000 } \
751 } }, \
752 { 0x801c, AR5K_INI_FLAG_BOTH, { \
753 { 0x128d8fa7, 0x09880fcf, 0x04e00f95, 0x128d8fab, 0x09880fcf }, \
754 { 0x128d93a7, 0x098813cf, 0x04e01395, 0x128d93ab, 0x098813cf } \
755 } }, \
756 { 0x9824, AR5K_INI_FLAG_BOTH, { \
757 { 0x00000e0e, 0x00000e0e, 0x00000707, 0x00000e0e, 0x00000e0e }, \
758 { 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e } \
759 } }, \
760 { 0x9828, AR5K_INI_FLAG_BOTH, { \
761 { 0x0a020001, 0x0a020001, 0x05010100, 0x0a020001, 0x0a020001 }, \
762 { 0x0a020001, 0x0a020001, 0x05020100, 0x0a020001, 0x0a020001 } \
763 } }, \
764 { 0x9848, AR5K_INI_FLAG_BOTH, { \
765 { 0x0018da5a, 0x0018da5a, 0x0018ca69, 0x0018ca69, 0x0018ca69 }, \
766 { 0x0018da6d, 0x0018da6d, 0x0018ca75, 0x0018ca75, 0x0018ca75 } \
767 } }, \
768 { 0x985c, AR5K_INI_FLAG_BOTH, { \
769 { 0x3137665e, 0x3137665e, 0x3137665e, 0x3137665e, 0x3137615e }, \
770 { 0x3137665e, 0x3137665e, 0x3137665e, 0x3137665e, 0x3137665e } \
771 } }, \
772 { 0x986c, AR5K_INI_FLAG_BOTH, { \
773 { 0x050cb081, 0x050cb081, 0x050cb081, 0x050cb080, 0x050cb080 }, \
774 { 0x050cb081, 0x050cb081, 0x050cb081, 0x050cb081, 0x050cb081 } \
775 } }, \
776 { 0x9914, AR5K_INI_FLAG_BOTH, { \
777 { 0x00002710, 0x00002710, 0x0000157c, 0x00002af8, 0x00002710 }, \
778 { 0x000007d0, 0x000007d0, 0x0000044c, 0x00000898, 0x000007d0 } \
779 } }, \
780 { 0x9944, AR5K_INI_FLAG_BOTH, { \
781 { 0xffb81020, 0xffb81020, 0xffb80d20, 0xffb81020, 0xffb81020 }, \
782 { 0xffb81020, 0xffb81020, 0xffb80d10, 0xffb81010, 0xffb81010 } \
783 } }, \
784 { 0xa204, AR5K_INI_FLAG_5112, { \
785 { 0, }, \
786 { 0x00000000, 0x00000000, 0x00000004, 0x00000004, 0x00000004 } \
787 } }, \
788 { 0xa208, AR5K_INI_FLAG_5112, { \
789 { 0, }, \
790 { 0xd6be6788, 0xd6be6788, 0xd03e6788, 0xd03e6788, 0xd03e6788 } \
791 } }, \
792 { 0xa20c, AR5K_INI_FLAG_5112, { \
793 { 0, }, \
794 { 0x642c0140, 0x642c0140, 0x6442c160, 0x6442c160, 0x6442c160 } \
795 } }, \
796 }
797
798 #endif