bump to 2.6.30-rc6
[openwrt/openwrt.git] / target / linux / s3c24xx / files-2.6.30 / drivers / ar6000 / ar6000 / athdrv_linux.h
1 /*
2 * Copyright (c) 2004-2006 Atheros Communications Inc.
3 * All rights reserved.
4 *
5 *
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as
9 * published by the Free Software Foundation;
10 *
11 * Software distributed under the License is distributed on an "AS
12 * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
13 * implied. See the License for the specific language governing
14 * rights and limitations under the License.
15 *
16 *
17 *
18 */
19
20 #ifndef _ATHDRV_LINUX_H
21 #define _ATHDRV_LINUX_H
22
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26
27
28 /*
29 * There are two types of ioctl's here: Standard ioctls and
30 * eXtended ioctls. All extended ioctls (XIOCTL) are multiplexed
31 * off of the single ioctl command, AR6000_IOCTL_EXTENDED. The
32 * arguments for every XIOCTL starts with a 32-bit command word
33 * that is used to select which extended ioctl is in use. After
34 * the command word are command-specific arguments.
35 */
36
37 /* Linux standard Wireless Extensions, private ioctl interfaces */
38 #define IEEE80211_IOCTL_SETPARAM (SIOCIWFIRSTPRIV+0)
39 #define IEEE80211_IOCTL_GETPARAM (SIOCIWFIRSTPRIV+1)
40 #define IEEE80211_IOCTL_SETKEY (SIOCIWFIRSTPRIV+2)
41 #define IEEE80211_IOCTL_SETWMMPARAMS (SIOCIWFIRSTPRIV+3)
42 #define IEEE80211_IOCTL_DELKEY (SIOCIWFIRSTPRIV+4)
43 #define IEEE80211_IOCTL_GETWMMPARAMS (SIOCIWFIRSTPRIV+5)
44 #define IEEE80211_IOCTL_SETOPTIE (SIOCIWFIRSTPRIV+6)
45 #define IEEE80211_IOCTL_SETMLME (SIOCIWFIRSTPRIV+7)
46 //#define IEEE80211_IOCTL_GETOPTIE (SIOCIWFIRSTPRIV+7)
47 #define IEEE80211_IOCTL_ADDPMKID (SIOCIWFIRSTPRIV+8)
48 //#define IEEE80211_IOCTL_SETAUTHALG (SIOCIWFIRSTPRIV+10)
49 #define IEEE80211_IOCTL_LASTONE (SIOCIWFIRSTPRIV+9)
50
51
52
53 /* ====WMI Ioctls==== */
54 /*
55 *
56 * Many ioctls simply provide WMI services to application code:
57 * an application makes such an ioctl call with a set of arguments
58 * that are packaged into the corresponding WMI message, and sent
59 * to the Target.
60 */
61
62 #define AR6000_IOCTL_WMI_GETREV (SIOCIWFIRSTPRIV+10)
63 /*
64 * arguments:
65 * ar6000_version *revision
66 */
67
68 #define AR6000_IOCTL_WMI_SETPWR (SIOCIWFIRSTPRIV+11)
69 /*
70 * arguments:
71 * WMI_POWER_MODE_CMD pwrModeCmd (see include/wmi.h)
72 * uses: WMI_SET_POWER_MODE_CMDID
73 */
74
75 #define AR6000_IOCTL_WMI_SETSCAN (SIOCIWFIRSTPRIV+12)
76 /*
77 * arguments:
78 * WMI_SCAN_PARAMS_CMD scanParams (see include/wmi.h)
79 * uses: WMI_SET_SCAN_PARAMS_CMDID
80 */
81
82 #define AR6000_IOCTL_WMI_SETLISTENINT (SIOCIWFIRSTPRIV+13)
83 /*
84 * arguments:
85 * UINT32 listenInterval
86 * uses: WMI_SET_LISTEN_INT_CMDID
87 */
88
89 #define AR6000_IOCTL_WMI_SETBSSFILTER (SIOCIWFIRSTPRIV+14)
90 /*
91 * arguments:
92 * WMI_BSS_FILTER filter (see include/wmi.h)
93 * uses: WMI_SET_BSS_FILTER_CMDID
94 */
95
96 #define AR6000_IOCTL_WMI_SET_CHANNELPARAMS (SIOCIWFIRSTPRIV+16)
97 /*
98 * arguments:
99 * WMI_CHANNEL_PARAMS_CMD chParams
100 * uses: WMI_SET_CHANNEL_PARAMS_CMDID
101 */
102
103 #define AR6000_IOCTL_WMI_SET_PROBEDSSID (SIOCIWFIRSTPRIV+17)
104 /*
105 * arguments:
106 * WMI_PROBED_SSID_CMD probedSsids (see include/wmi.h)
107 * uses: WMI_SETPROBED_SSID_CMDID
108 */
109
110 #define AR6000_IOCTL_WMI_SET_PMPARAMS (SIOCIWFIRSTPRIV+18)
111 /*
112 * arguments:
113 * WMI_POWER_PARAMS_CMD powerParams (see include/wmi.h)
114 * uses: WMI_SET_POWER_PARAMS_CMDID
115 */
116
117 #define AR6000_IOCTL_WMI_SET_BADAP (SIOCIWFIRSTPRIV+19)
118 /*
119 * arguments:
120 * WMI_ADD_BAD_AP_CMD badAPs (see include/wmi.h)
121 * uses: WMI_ADD_BAD_AP_CMDID
122 */
123
124 #define AR6000_IOCTL_WMI_GET_QOS_QUEUE (SIOCIWFIRSTPRIV+20)
125 /*
126 * arguments:
127 * ar6000_queuereq queueRequest (see below)
128 */
129
130 #define AR6000_IOCTL_WMI_CREATE_QOS (SIOCIWFIRSTPRIV+21)
131 /*
132 * arguments:
133 * WMI_CREATE_PSTREAM createPstreamCmd (see include/wmi.h)
134 * uses: WMI_CREATE_PSTREAM_CMDID
135 */
136
137 #define AR6000_IOCTL_WMI_DELETE_QOS (SIOCIWFIRSTPRIV+22)
138 /*
139 * arguments:
140 * WMI_DELETE_PSTREAM_CMD deletePstreamCmd (see include/wmi.h)
141 * uses: WMI_DELETE_PSTREAM_CMDID
142 */
143
144 #define AR6000_IOCTL_WMI_SET_SNRTHRESHOLD (SIOCIWFIRSTPRIV+23)
145 /*
146 * arguments:
147 * WMI_SNR_THRESHOLD_PARAMS_CMD thresholdParams (see include/wmi.h)
148 * uses: WMI_SNR_THRESHOLD_PARAMS_CMDID
149 */
150
151 #define AR6000_IOCTL_WMI_SET_ERROR_REPORT_BITMASK (SIOCIWFIRSTPRIV+24)
152 /*
153 * arguments:
154 * WMI_TARGET_ERROR_REPORT_BITMASK errorReportBitMask (see include/wmi.h)
155 * uses: WMI_TARGET_ERROR_REPORT_BITMASK_CMDID
156 */
157
158 #define AR6000_IOCTL_WMI_GET_TARGET_STATS (SIOCIWFIRSTPRIV+25)
159 /*
160 * arguments:
161 * TARGET_STATS *targetStats (see below)
162 * uses: WMI_GET_STATISTICS_CMDID
163 */
164
165 #define AR6000_IOCTL_WMI_SET_ASSOC_INFO (SIOCIWFIRSTPRIV+26)
166 /*
167 * arguments:
168 * WMI_SET_ASSOC_INFO_CMD setAssocInfoCmd
169 * uses: WMI_SET_ASSOC_INFO_CMDID
170 */
171
172 #define AR6000_IOCTL_WMI_SET_ACCESS_PARAMS (SIOCIWFIRSTPRIV+27)
173 /*
174 * arguments:
175 * WMI_SET_ACCESS_PARAMS_CMD setAccessParams (see include/wmi.h)
176 * uses: WMI_SET_ACCESS_PARAMS_CMDID
177 */
178
179 #define AR6000_IOCTL_WMI_SET_BMISS_TIME (SIOCIWFIRSTPRIV+28)
180 /*
181 * arguments:
182 * UINT32 beaconMissTime
183 * uses: WMI_SET_BMISS_TIME_CMDID
184 */
185
186 #define AR6000_IOCTL_WMI_SET_DISC_TIMEOUT (SIOCIWFIRSTPRIV+29)
187 /*
188 * arguments:
189 * WMI_DISC_TIMEOUT_CMD disconnectTimeoutCmd (see include/wmi.h)
190 * uses: WMI_SET_DISC_TIMEOUT_CMDID
191 */
192
193 #define AR6000_IOCTL_WMI_SET_IBSS_PM_CAPS (SIOCIWFIRSTPRIV+30)
194 /*
195 * arguments:
196 * WMI_IBSS_PM_CAPS_CMD ibssPowerMgmtCapsCmd
197 * uses: WMI_SET_IBSS_PM_CAPS_CMDID
198 */
199
200 /*
201 * There is a very small space available for driver-private
202 * wireless ioctls. In order to circumvent this limitation,
203 * we multiplex a bunch of ioctls (XIOCTLs) on top of a
204 * single AR6000_IOCTL_EXTENDED ioctl.
205 */
206 #define AR6000_IOCTL_EXTENDED (SIOCIWFIRSTPRIV+31)
207
208
209 /* ====BMI Extended Ioctls==== */
210
211 #define AR6000_XIOCTL_BMI_DONE 1
212 /*
213 * arguments:
214 * UINT32 cmd (AR6000_XIOCTL_BMI_DONE)
215 * uses: BMI_DONE
216 */
217
218 #define AR6000_XIOCTL_BMI_READ_MEMORY 2
219 /*
220 * arguments:
221 * union {
222 * struct {
223 * UINT32 cmd (AR6000_XIOCTL_BMI_READ_MEMORY)
224 * UINT32 address
225 * UINT32 length
226 * }
227 * char results[length]
228 * }
229 * uses: BMI_READ_MEMORY
230 */
231
232 #define AR6000_XIOCTL_BMI_WRITE_MEMORY 3
233 /*
234 * arguments:
235 * UINT32 cmd (AR6000_XIOCTL_BMI_WRITE_MEMORY)
236 * UINT32 address
237 * UINT32 length
238 * char data[length]
239 * uses: BMI_WRITE_MEMORY
240 */
241
242 #define AR6000_XIOCTL_BMI_EXECUTE 4
243 /*
244 * arguments:
245 * UINT32 cmd (AR6000_XIOCTL_BMI_EXECUTE)
246 * UINT32 TargetAddress
247 * UINT32 parameter
248 * uses: BMI_EXECUTE
249 */
250
251 #define AR6000_XIOCTL_BMI_SET_APP_START 5
252 /*
253 * arguments:
254 * UINT32 cmd (AR6000_XIOCTL_BMI_SET_APP_START)
255 * UINT32 TargetAddress
256 * uses: BMI_SET_APP_START
257 */
258
259 #define AR6000_XIOCTL_BMI_READ_SOC_REGISTER 6
260 /*
261 * arguments:
262 * union {
263 * struct {
264 * UINT32 cmd (AR6000_XIOCTL_BMI_READ_SOC_REGISTER)
265 * UINT32 TargetAddress, 32-bit aligned
266 * }
267 * UINT32 result
268 * }
269 * uses: BMI_READ_SOC_REGISTER
270 */
271
272 #define AR6000_XIOCTL_BMI_WRITE_SOC_REGISTER 7
273 /*
274 * arguments:
275 * struct {
276 * UINT32 cmd (AR6000_XIOCTL_BMI_WRITE_SOC_REGISTER)
277 * UINT32 TargetAddress, 32-bit aligned
278 * UINT32 newValue
279 * }
280 * uses: BMI_WRITE_SOC_REGISTER
281 */
282
283 #define AR6000_XIOCTL_BMI_TEST 8
284 /*
285 * arguments:
286 * UINT32 cmd (AR6000_XIOCTL_BMI_TEST)
287 * UINT32 address
288 * UINT32 length
289 * UINT32 count
290 */
291
292
293
294 /* Historical Host-side DataSet support */
295 #define AR6000_XIOCTL_UNUSED9 9
296 #define AR6000_XIOCTL_UNUSED10 10
297 #define AR6000_XIOCTL_UNUSED11 11
298
299 /* ====Misc Extended Ioctls==== */
300
301 #define AR6000_XIOCTL_FORCE_TARGET_RESET 12
302 /*
303 * arguments:
304 * UINT32 cmd (AR6000_XIOCTL_FORCE_TARGET_RESET)
305 */
306
307
308 #ifdef HTC_RAW_INTERFACE
309 /* HTC Raw Interface Ioctls */
310 #define AR6000_XIOCTL_HTC_RAW_OPEN 13
311 /*
312 * arguments:
313 * UINT32 cmd (AR6000_XIOCTL_HTC_RAW_OPEN)
314 */
315
316 #define AR6000_XIOCTL_HTC_RAW_CLOSE 14
317 /*
318 * arguments:
319 * UINT32 cmd (AR6000_XIOCTL_HTC_RAW_CLOSE)
320 */
321
322 #define AR6000_XIOCTL_HTC_RAW_READ 15
323 /*
324 * arguments:
325 * union {
326 * struct {
327 * UINT32 cmd (AR6000_XIOCTL_HTC_RAW_READ)
328 * UINT32 mailboxID
329 * UINT32 length
330 * }
331 * results[length]
332 * }
333 */
334
335 #define AR6000_XIOCTL_HTC_RAW_WRITE 16
336 /*
337 * arguments:
338 * UINT32 cmd (AR6000_XIOCTL_HTC_RAW_WRITE)
339 * UINT32 mailboxID
340 * UINT32 length
341 * char buffer[length]
342 */
343 #endif /* HTC_RAW_INTERFACE */
344
345 #define AR6000_XIOCTL_CHECK_TARGET_READY 17
346 /*
347 * arguments:
348 * UINT32 cmd (AR6000_XIOCTL_CHECK_TARGET_READY)
349 */
350
351
352
353 /* ====GPIO (General Purpose I/O) Extended Ioctls==== */
354
355 #define AR6000_XIOCTL_GPIO_OUTPUT_SET 18
356 /*
357 * arguments:
358 * UINT32 cmd (AR6000_XIOCTL_GPIO_OUTPUT_SET)
359 * ar6000_gpio_output_set_cmd_s (see below)
360 * uses: WMIX_GPIO_OUTPUT_SET_CMDID
361 */
362
363 #define AR6000_XIOCTL_GPIO_INPUT_GET 19
364 /*
365 * arguments:
366 * UINT32 cmd (AR6000_XIOCTL_GPIO_INPUT_GET)
367 * uses: WMIX_GPIO_INPUT_GET_CMDID
368 */
369
370 #define AR6000_XIOCTL_GPIO_REGISTER_SET 20
371 /*
372 * arguments:
373 * UINT32 cmd (AR6000_XIOCTL_GPIO_REGISTER_SET)
374 * ar6000_gpio_register_cmd_s (see below)
375 * uses: WMIX_GPIO_REGISTER_SET_CMDID
376 */
377
378 #define AR6000_XIOCTL_GPIO_REGISTER_GET 21
379 /*
380 * arguments:
381 * UINT32 cmd (AR6000_XIOCTL_GPIO_REGISTER_GET)
382 * ar6000_gpio_register_cmd_s (see below)
383 * uses: WMIX_GPIO_REGISTER_GET_CMDID
384 */
385
386 #define AR6000_XIOCTL_GPIO_INTR_ACK 22
387 /*
388 * arguments:
389 * UINT32 cmd (AR6000_XIOCTL_GPIO_INTR_ACK)
390 * ar6000_cpio_intr_ack_cmd_s (see below)
391 * uses: WMIX_GPIO_INTR_ACK_CMDID
392 */
393
394 #define AR6000_XIOCTL_GPIO_INTR_WAIT 23
395 /*
396 * arguments:
397 * UINT32 cmd (AR6000_XIOCTL_GPIO_INTR_WAIT)
398 */
399
400
401
402 /* ====more wireless commands==== */
403
404 #define AR6000_XIOCTL_SET_ADHOC_BSSID 24
405 /*
406 * arguments:
407 * UINT32 cmd (AR6000_XIOCTL_SET_ADHOC_BSSID)
408 * WMI_SET_ADHOC_BSSID_CMD setAdHocBssidCmd (see include/wmi.h)
409 */
410
411 #define AR6000_XIOCTL_SET_OPT_MODE 25
412 /*
413 * arguments:
414 * UINT32 cmd (AR6000_XIOCTL_SET_OPT_MODE)
415 * WMI_SET_OPT_MODE_CMD setOptModeCmd (see include/wmi.h)
416 * uses: WMI_SET_OPT_MODE_CMDID
417 */
418
419 #define AR6000_XIOCTL_OPT_SEND_FRAME 26
420 /*
421 * arguments:
422 * UINT32 cmd (AR6000_XIOCTL_OPT_SEND_FRAME)
423 * WMI_OPT_TX_FRAME_CMD optTxFrameCmd (see include/wmi.h)
424 * uses: WMI_OPT_TX_FRAME_CMDID
425 */
426
427 #define AR6000_XIOCTL_SET_ADHOC_BEACON_INTVAL 27
428 /*
429 * arguments:
430 * UINT32 cmd (AR6000_XIOCTL_SET_ADHOC_BEACON_INTVAL)
431 * WMI_BEACON_INT_CMD beaconIntCmd (see include/wmi.h)
432 * uses: WMI_SET_BEACON_INT_CMDID
433 */
434
435
436 #define IEEE80211_IOCTL_SETAUTHALG 28
437
438
439 #define AR6000_XIOCTL_SET_VOICE_PKT_SIZE 29
440 /*
441 * arguments:
442 * UINT32 cmd (AR6000_XIOCTL_SET_VOICE_PKT_SIZE)
443 * WMI_SET_VOICE_PKT_SIZE_CMD setVoicePktSizeCmd (see include/wmi.h)
444 * uses: WMI_SET_VOICE_PKT_SIZE_CMDID
445 */
446
447
448 #define AR6000_XIOCTL_SET_MAX_SP 30
449 /*
450 * arguments:
451 * UINT32 cmd (AR6000_XIOCTL_SET_MAX_SP)
452 * WMI_SET_MAX_SP_LEN_CMD maxSPLen(see include/wmi.h)
453 * uses: WMI_SET_MAX_SP_LEN_CMDID
454 */
455
456 #define AR6000_XIOCTL_WMI_GET_ROAM_TBL 31
457
458 #define AR6000_XIOCTL_WMI_SET_ROAM_CTRL 32
459
460 #define AR6000_XIOCTRL_WMI_SET_POWERSAVE_TIMERS 33
461
462
463 /*
464 * arguments:
465 * UINT32 cmd (AR6000_XIOCTRL_WMI_SET_POWERSAVE_TIMERS)
466 * WMI_SET_POWERSAVE_TIMERS_CMD powerSaveTimers(see include/wmi.h)
467 * WMI_SET_POWERSAVE_TIMERS_CMDID
468 */
469
470 #define AR6000_XIOCTRL_WMI_GET_POWER_MODE 34
471 /*
472 * arguments:
473 * UINT32 cmd (AR6000_XIOCTRL_WMI_GET_POWER_MODE)
474 */
475
476 #define AR6000_XIOCTRL_WMI_SET_WLAN_STATE 35
477 typedef enum {
478 WLAN_DISABLED,
479 WLAN_ENABLED
480 } AR6000_WLAN_STATE;
481 /*
482 * arguments:
483 * enable/disable
484 */
485
486 #define AR6000_XIOCTL_WMI_GET_ROAM_DATA 36
487
488 #define AR6000_XIOCTL_WMI_SETRETRYLIMITS 37
489 /*
490 * arguments:
491 * WMI_SET_RETRY_LIMITS_CMD ibssSetRetryLimitsCmd
492 * uses: WMI_SET_RETRY_LIMITS_CMDID
493 */
494
495 #ifdef CONFIG_HOST_TCMD_SUPPORT
496 /* ====extended commands for radio test ==== */
497
498 #define AR6000_XIOCTL_TCMD_CONT_TX 38
499 /*
500 * arguments:
501 * UINT32 cmd (AR6000_XIOCTL_TCMD_CONT_TX)
502 * WMI_TCMD_CONT_TX_CMD contTxCmd (see include/wmi.h)
503 * uses: WMI_TCMD_CONT_TX_CMDID
504 */
505
506 #define AR6000_XIOCTL_TCMD_CONT_RX 39
507 /*
508 * arguments:
509 * UINT32 cmd (AR6000_XIOCTL_TCMD_CONT_RX)
510 * WMI_TCMD_CONT_RX_CMD rxCmd (see include/wmi.h)
511 * uses: WMI_TCMD_CONT_RX_CMDID
512 */
513
514 #define AR6000_XIOCTL_TCMD_PM 40
515 /*
516 * arguments:
517 * UINT32 cmd (AR6000_XIOCTL_TCMD_PM)
518 * WMI_TCMD_PM_CMD pmCmd (see include/wmi.h)
519 * uses: WMI_TCMD_PM_CMDID
520 */
521
522 #endif /* CONFIG_HOST_TCMD_SUPPORT */
523
524 #define AR6000_XIOCTL_WMI_STARTSCAN 41
525 /*
526 * arguments:
527 * UINT32 cmd (AR6000_XIOCTL_WMI_STARTSCAN)
528 * UINT8 scanType
529 * UINT8 scanConnected
530 * A_BOOL forceFgScan
531 * uses: WMI_START_SCAN_CMDID
532 */
533
534 #define AR6000_XIOCTL_WMI_SETFIXRATES 42
535
536 #define AR6000_XIOCTL_WMI_GETFIXRATES 43
537
538
539 #define AR6000_XIOCTL_WMI_SET_RSSITHRESHOLD 44
540 /*
541 * arguments:
542 * WMI_RSSI_THRESHOLD_PARAMS_CMD thresholdParams (see include/wmi.h)
543 * uses: WMI_RSSI_THRESHOLD_PARAMS_CMDID
544 */
545
546 #define AR6000_XIOCTL_WMI_CLR_RSSISNR 45
547 /*
548 * arguments:
549 * WMI_CLR_RSSISNR_CMD thresholdParams (see include/wmi.h)
550 * uses: WMI_CLR_RSSISNR_CMDID
551 */
552
553 #define AR6000_XIOCTL_WMI_SET_LQTHRESHOLD 46
554 /*
555 * arguments:
556 * WMI_LQ_THRESHOLD_PARAMS_CMD thresholdParams (see include/wmi.h)
557 * uses: WMI_LQ_THRESHOLD_PARAMS_CMDID
558 */
559
560 #define AR6000_XIOCTL_WMI_SET_RTS 47
561 /*
562 * arguments:
563 * WMI_SET_RTS_MODE_CMD (see include/wmi.h)
564 * uses: WMI_SET_RTS_MODE_CMDID
565 */
566
567 #define AR6000_XIOCTL_WMI_SET_LPREAMBLE 48
568
569 #define AR6000_XIOCTL_WMI_SET_AUTHMODE 49
570 /*
571 * arguments:
572 * UINT32 cmd (AR6000_XIOCTL_WMI_SET_AUTHMODE)
573 * UINT8 mode
574 * uses: WMI_SET_RECONNECT_AUTH_MODE_CMDID
575 */
576
577 #define AR6000_XIOCTL_WMI_SET_REASSOCMODE 50
578
579 /*
580 * arguments:
581 * UINT32 cmd (AR6000_XIOCTL_WMI_SET_WMM)
582 * UINT8 mode
583 * uses: WMI_SET_WMM_CMDID
584 */
585 #define AR6000_XIOCTL_WMI_SET_WMM 51
586
587 /*
588 * arguments:
589 * UINT32 cmd (AR6000_XIOCTL_WMI_SET_HB_CHALLENGE_RESP_PARAMS)
590 * UINT32 frequency
591 * UINT8 threshold
592 */
593 #define AR6000_XIOCTL_WMI_SET_HB_CHALLENGE_RESP_PARAMS 52
594
595 /*
596 * arguments:
597 * UINT32 cmd (AR6000_XIOCTL_WMI_GET_HB_CHALLENGE_RESP)
598 * UINT32 cookie
599 */
600 #define AR6000_XIOCTL_WMI_GET_HB_CHALLENGE_RESP 53
601
602 /*
603 * arguments:
604 * UINT32 cmd (AR6000_XIOCTL_WMI_GET_RD)
605 * UINT32 regDomain
606 */
607 #define AR6000_XIOCTL_WMI_GET_RD 54
608
609 #define AR6000_XIOCTL_DIAG_READ 55
610
611 #define AR6000_XIOCTL_DIAG_WRITE 56
612
613 /*
614 * arguments cmd (AR6000_XIOCTL_SET_TXOP)
615 * WMI_TXOP_CFG txopEnable
616 */
617 #define AR6000_XIOCTL_WMI_SET_TXOP 57
618
619 #ifdef USER_KEYS
620 /*
621 * arguments:
622 * UINT32 cmd (AR6000_XIOCTL_USER_SETKEYS)
623 * UINT32 keyOpCtrl
624 * uses AR6000_USER_SETKEYS_INFO
625 */
626 #define AR6000_XIOCTL_USER_SETKEYS 58
627 #endif /* USER_KEYS */
628
629 #define AR6000_XIOCTL_WMI_SET_KEEPALIVE 59
630 /*
631 * arguments:
632 * UINT8 cmd (AR6000_XIOCTL_WMI_SET_KEEPALIVE)
633 * UINT8 keepaliveInterval
634 * uses: WMI_SET_KEEPALIVE_CMDID
635 */
636
637 #define AR6000_XIOCTL_WMI_GET_KEEPALIVE 60
638 /*
639 * arguments:
640 * UINT8 cmd (AR6000_XIOCTL_WMI_GET_KEEPALIVE)
641 * UINT8 keepaliveInterval
642 * A_BOOL configured
643 * uses: WMI_GET_KEEPALIVE_CMDID
644 */
645
646 /* ====ROM Patching Extended Ioctls==== */
647
648 #define AR6000_XIOCTL_BMI_ROMPATCH_INSTALL 61
649 /*
650 * arguments:
651 * union {
652 * struct {
653 * UINT32 cmd (AR6000_XIOCTL_BMI_ROMPATCH_INSTALL)
654 * UINT32 ROM Address
655 * UINT32 RAM Address
656 * UINT32 number of bytes
657 * UINT32 activate? (0 or 1)
658 * }
659 * A_UINT32 resulting rompatch ID
660 * }
661 * uses: BMI_ROMPATCH_INSTALL
662 */
663
664 #define AR6000_XIOCTL_BMI_ROMPATCH_UNINSTALL 62
665 /*
666 * arguments:
667 * struct {
668 * UINT32 cmd (AR6000_XIOCTL_BMI_ROMPATCH_UNINSTALL)
669 * UINT32 rompatch ID
670 * }
671 * uses: BMI_ROMPATCH_UNINSTALL
672 */
673
674 #define AR6000_XIOCTL_BMI_ROMPATCH_ACTIVATE 63
675 /*
676 * arguments:
677 * struct {
678 * UINT32 cmd (AR6000_XIOCTL_BMI_ROMPATCH_ACTIVATE)
679 * UINT32 rompatch count
680 * UINT32 rompatch IDs[rompatch count]
681 * }
682 * uses: BMI_ROMPATCH_ACTIVATE
683 */
684
685 #define AR6000_XIOCTL_BMI_ROMPATCH_DEACTIVATE 64
686 /*
687 * arguments:
688 * struct {
689 * UINT32 cmd (AR6000_XIOCTL_BMI_ROMPATCH_DEACTIVATE)
690 * UINT32 rompatch count
691 * UINT32 rompatch IDs[rompatch count]
692 * }
693 * uses: BMI_ROMPATCH_DEACTIVATE
694 */
695
696 #define AR6000_XIOCTL_WMI_SET_APPIE 65
697 /*
698 * arguments:
699 * struct {
700 * UINT32 cmd (AR6000_XIOCTL_WMI_SET_APPIE)
701 * UINT32 app_frmtype;
702 * UINT32 app_buflen;
703 * UINT8 app_buf[];
704 * }
705 */
706 #define AR6000_XIOCTL_WMI_SET_MGMT_FRM_RX_FILTER 66
707 /*
708 * arguments:
709 * A_UINT32 filter_type;
710 */
711
712 #define AR6000_XIOCTL_DBGLOG_CFG_MODULE 67
713
714 #define AR6000_XIOCTL_DBGLOG_GET_DEBUG_LOGS 68
715
716 #define AR6000_XIOCTL_WMI_SET_WSC_STATUS 70
717 /*
718 * arguments:
719 * A_UINT32 wsc_status;
720 * (WSC_REG_INACTIVE or WSC_REG_ACTIVE)
721 */
722
723 /*
724 * arguments:
725 * struct {
726 * A_UINT8 streamType;
727 * A_UINT8 status;
728 * }
729 * uses: WMI_SET_BT_STATUS_CMDID
730 */
731 #define AR6000_XIOCTL_WMI_SET_BT_STATUS 71
732
733 /*
734 * arguments:
735 * struct {
736 * A_UINT8 paramType;
737 * union {
738 * A_UINT8 noSCOPkts;
739 * BT_PARAMS_A2DP a2dpParams;
740 * BT_COEX_REGS regs;
741 * };
742 * }
743 * uses: WMI_SET_BT_PARAM_CMDID
744 */
745 #define AR6000_XIOCTL_WMI_SET_BT_PARAMS 72
746
747 #define AR6000_XIOCTL_WMI_SET_HOST_SLEEP_MODE 73
748 #define AR6000_XIOCTL_WMI_SET_WOW_MODE 74
749 #define AR6000_XIOCTL_WMI_GET_WOW_LIST 75
750 #define AR6000_XIOCTL_WMI_ADD_WOW_PATTERN 76
751 #define AR6000_XIOCTL_WMI_DEL_WOW_PATTERN 77
752
753
754
755 #define AR6000_XIOCTL_TARGET_INFO 78
756 /*
757 * arguments:
758 * UINT32 cmd (AR6000_XIOCTL_TARGET_INFO)
759 * A_UINT32 TargetVersion (returned)
760 * A_UINT32 TargetType (returned)
761 * (See also bmi_msg.h target_ver and target_type)
762 */
763
764 #define AR6000_XIOCTL_DUMP_HTC_CREDIT_STATE 79
765 /*
766 * arguments:
767 * none
768 */
769
770 #define AR6000_XIOCTL_TRAFFIC_ACTIVITY_CHANGE 80
771 /*
772 * This ioctl is used to emulate traffic activity
773 * timeouts. Activity/inactivity will trigger the driver
774 * to re-balance credits.
775 *
776 * arguments:
777 * ar6000_traffic_activity_change
778 */
779
780 #define AR6000_XIOCTL_WMI_SET_CONNECT_CTRL_FLAGS 81
781 /*
782 * This ioctl is used to set the connect control flags
783 *
784 * arguments:
785 * A_UINT32 connectCtrlFlags
786 */
787
788 #define AR6000_XIOCTL_WMI_SET_AKMP_PARAMS 82
789 /*
790 * This IOCTL sets any Authentication,Key Management and Protection
791 * related parameters. This is used along with the information set in
792 * Connect Command.
793 * Currently this enables Multiple PMKIDs to an AP.
794 *
795 * arguments:
796 * struct {
797 * A_UINT32 akmpInfo;
798 * }
799 * uses: WMI_SET_AKMP_PARAMS_CMD
800 */
801
802 #define AR6000_XIOCTL_WMI_GET_PMKID_LIST 83
803
804 #define AR6000_XIOCTL_WMI_SET_PMKID_LIST 84
805 /*
806 * This IOCTL is used to set a list of PMKIDs. This list of
807 * PMKIDs is used in the [Re]AssocReq Frame. This list is used
808 * only if the MultiPMKID option is enabled via the
809 * AR6000_XIOCTL_WMI_SET_AKMP_PARAMS IOCTL.
810 *
811 * arguments:
812 * struct {
813 * A_UINT32 numPMKID;
814 * WMI_PMKID pmkidList[WMI_MAX_PMKID_CACHE];
815 * }
816 * uses: WMI_SET_PMKIDLIST_CMD
817 */
818
819 /* Historical DSETPATCH support for INI patches */
820 #define AR6000_XIOCTL_UNUSED90 90
821
822
823
824 /* used by AR6000_IOCTL_WMI_GETREV */
825 struct ar6000_version {
826 A_UINT32 host_ver;
827 A_UINT32 target_ver;
828 };
829
830 /* used by AR6000_IOCTL_WMI_GET_QOS_QUEUE */
831 struct ar6000_queuereq {
832 A_UINT8 trafficClass;
833 A_UINT16 activeTsids;
834 };
835
836 /* used by AR6000_IOCTL_WMI_GET_TARGET_STATS */
837 typedef struct targetStats_t {
838 A_UINT64 tx_packets;
839 A_UINT64 tx_bytes;
840 A_UINT64 tx_unicast_pkts;
841 A_UINT64 tx_unicast_bytes;
842 A_UINT64 tx_multicast_pkts;
843 A_UINT64 tx_multicast_bytes;
844 A_UINT64 tx_broadcast_pkts;
845 A_UINT64 tx_broadcast_bytes;
846 A_UINT64 tx_rts_success_cnt;
847 A_UINT64 tx_packet_per_ac[4];
848
849 A_UINT64 tx_errors;
850 A_UINT64 tx_failed_cnt;
851 A_UINT64 tx_retry_cnt;
852 A_UINT64 tx_rts_fail_cnt;
853 A_INT32 tx_unicast_rate;
854 A_UINT64 rx_packets;
855 A_UINT64 rx_bytes;
856 A_UINT64 rx_unicast_pkts;
857 A_UINT64 rx_unicast_bytes;
858 A_UINT64 rx_multicast_pkts;
859 A_UINT64 rx_multicast_bytes;
860 A_UINT64 rx_broadcast_pkts;
861 A_UINT64 rx_broadcast_bytes;
862 A_UINT64 rx_fragment_pkt;
863
864 A_UINT64 rx_errors;
865 A_UINT64 rx_crcerr;
866 A_UINT64 rx_key_cache_miss;
867 A_UINT64 rx_decrypt_err;
868 A_UINT64 rx_duplicate_frames;
869 A_INT32 rx_unicast_rate;
870
871 A_UINT64 tkip_local_mic_failure;
872 A_UINT64 tkip_counter_measures_invoked;
873 A_UINT64 tkip_replays;
874 A_UINT64 tkip_format_errors;
875 A_UINT64 ccmp_format_errors;
876 A_UINT64 ccmp_replays;
877
878 A_UINT64 power_save_failure_cnt;
879 A_INT16 noise_floor_calibation;
880
881 A_UINT64 cs_bmiss_cnt;
882 A_UINT64 cs_lowRssi_cnt;
883 A_UINT64 cs_connect_cnt;
884 A_UINT64 cs_disconnect_cnt;
885 A_UINT8 cs_aveBeacon_snr;
886 A_INT16 cs_aveBeacon_rssi;
887 A_UINT8 cs_lastRoam_msec;
888 A_UINT8 cs_snr;
889 A_INT16 cs_rssi;
890
891 A_UINT32 lq_val;
892
893 A_UINT32 wow_num_pkts_dropped;
894 A_UINT8 wow_num_host_pkt_wakeups;
895 A_UINT8 wow_num_host_event_wakeups;
896 A_UINT16 wow_num_events_discarded;
897
898 }TARGET_STATS;
899
900 typedef struct targetStats_cmd_t {
901 TARGET_STATS targetStats;
902 int clearStats;
903 } TARGET_STATS_CMD;
904
905 /* used by AR6000_XIOCTL_USER_SETKEYS */
906
907 /*
908 * Setting this bit to 1 doesnot initialize the RSC on the firmware
909 */
910 #define AR6000_XIOCTL_USER_SETKEYS_RSC_CTRL 1
911 #define AR6000_USER_SETKEYS_RSC_UNCHANGED 0x00000002
912
913 typedef struct {
914 A_UINT32 keyOpCtrl; /* Bit Map of Key Mgmt Ctrl Flags */
915 } AR6000_USER_SETKEYS_INFO;
916
917
918 /* used by AR6000_XIOCTL_GPIO_OUTPUT_SET */
919 struct ar6000_gpio_output_set_cmd_s {
920 A_UINT32 set_mask;
921 A_UINT32 clear_mask;
922 A_UINT32 enable_mask;
923 A_UINT32 disable_mask;
924 };
925
926 /*
927 * used by AR6000_XIOCTL_GPIO_REGISTER_GET and AR6000_XIOCTL_GPIO_REGISTER_SET
928 */
929 struct ar6000_gpio_register_cmd_s {
930 A_UINT32 gpioreg_id;
931 A_UINT32 value;
932 };
933
934 /* used by AR6000_XIOCTL_GPIO_INTR_ACK */
935 struct ar6000_gpio_intr_ack_cmd_s {
936 A_UINT32 ack_mask;
937 };
938
939 /* used by AR6000_XIOCTL_GPIO_INTR_WAIT */
940 struct ar6000_gpio_intr_wait_cmd_s {
941 A_UINT32 intr_mask;
942 A_UINT32 input_values;
943 };
944
945 /* used by the AR6000_XIOCTL_DBGLOG_CFG_MODULE */
946 typedef struct ar6000_dbglog_module_config_s {
947 A_UINT32 valid;
948 A_UINT16 mmask;
949 A_UINT16 tsr;
950 A_BOOL rep;
951 A_UINT16 size;
952 } DBGLOG_MODULE_CONFIG;
953
954 typedef struct user_rssi_thold_t {
955 A_INT16 tag;
956 A_INT16 rssi;
957 } USER_RSSI_THOLD;
958
959 typedef struct user_rssi_params_t {
960 A_UINT8 weight;
961 A_UINT32 pollTime;
962 USER_RSSI_THOLD tholds[12];
963 } USER_RSSI_PARAMS;
964
965 /*
966 * Host driver may have some config parameters. Typically, these
967 * config params are one time config parameters. These could
968 * correspond to any of the underlying modules. Host driver exposes
969 * an api for the underlying modules to get this config.
970 */
971 #define AR6000_DRIVER_CFG_BASE 0x8000
972
973 /* Should driver perform wlan node caching? */
974 #define AR6000_DRIVER_CFG_GET_WLANNODECACHING 0x8001
975 /*Should we log raw WMI msgs */
976 #define AR6000_DRIVER_CFG_LOG_RAW_WMI_MSGS 0x8002
977
978 /* used by AR6000_XIOCTL_DIAG_READ & AR6000_XIOCTL_DIAG_WRITE */
979 struct ar6000_diag_window_cmd_s {
980 unsigned int addr;
981 unsigned int value;
982 };
983
984
985 struct ar6000_traffic_activity_change {
986 A_UINT32 StreamID; /* stream ID to indicate activity change */
987 A_UINT32 Active; /* active (1) or inactive (0) */
988 };
989
990 #ifdef __cplusplus
991 }
992 #endif
993 #endif