staging: ath6kl: Remove A_BOOL and TRUE/FALSE
[linux-2.6/kvm.git] / drivers / staging / ath6kl / os / linux / include / athdrv_linux.h
blob15b6b0832af4281e8c727cfd62b883e1f7198b88
1 //------------------------------------------------------------------------------
2 // Copyright (c) 2004-2010 Atheros Communications Inc.
3 // All rights reserved.
4 //
5 //
6 //
7 // Permission to use, copy, modify, and/or distribute this software for any
8 // purpose with or without fee is hereby granted, provided that the above
9 // copyright notice and this permission notice appear in all copies.
11 // THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
12 // WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
13 // MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
14 // ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
15 // WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
16 // ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
17 // OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
21 // Author(s): ="Atheros"
22 //------------------------------------------------------------------------------
24 #ifndef _ATHDRV_LINUX_H
25 #define _ATHDRV_LINUX_H
27 #ifdef __cplusplus
28 extern "C" {
29 #endif
33 * There are two types of ioctl's here: Standard ioctls and
34 * eXtended ioctls. All extended ioctls (XIOCTL) are multiplexed
35 * off of the single ioctl command, AR6000_IOCTL_EXTENDED. The
36 * arguments for every XIOCTL starts with a 32-bit command word
37 * that is used to select which extended ioctl is in use. After
38 * the command word are command-specific arguments.
41 /* Linux standard Wireless Extensions, private ioctl interfaces */
42 #define IEEE80211_IOCTL_SETPARAM (SIOCIWFIRSTPRIV+0)
43 #define IEEE80211_IOCTL_SETKEY (SIOCIWFIRSTPRIV+1)
44 #define IEEE80211_IOCTL_DELKEY (SIOCIWFIRSTPRIV+2)
45 #define IEEE80211_IOCTL_SETMLME (SIOCIWFIRSTPRIV+3)
46 #define IEEE80211_IOCTL_ADDPMKID (SIOCIWFIRSTPRIV+4)
47 #define IEEE80211_IOCTL_SETOPTIE (SIOCIWFIRSTPRIV+5)
48 //#define IEEE80211_IOCTL_GETPARAM (SIOCIWFIRSTPRIV+6)
49 //#define IEEE80211_IOCTL_SETWMMPARAMS (SIOCIWFIRSTPRIV+7)
50 //#define IEEE80211_IOCTL_GETWMMPARAMS (SIOCIWFIRSTPRIV+8)
51 //#define IEEE80211_IOCTL_GETOPTIE (SIOCIWFIRSTPRIV+9)
52 //#define IEEE80211_IOCTL_SETAUTHALG (SIOCIWFIRSTPRIV+10)
53 #define IEEE80211_IOCTL_LASTONE (SIOCIWFIRSTPRIV+10)
57 /* ====WMI Ioctls==== */
60 * Many ioctls simply provide WMI services to application code:
61 * an application makes such an ioctl call with a set of arguments
62 * that are packaged into the corresponding WMI message, and sent
63 * to the Target.
66 #define AR6000_IOCTL_WMI_GETREV (SIOCIWFIRSTPRIV+11)
68 * arguments:
69 * ar6000_version *revision
72 #define AR6000_IOCTL_WMI_SETPWR (SIOCIWFIRSTPRIV+12)
74 * arguments:
75 * WMI_POWER_MODE_CMD pwrModeCmd (see include/wmi.h)
76 * uses: WMI_SET_POWER_MODE_CMDID
79 #define AR6000_IOCTL_WMI_SETSCAN (SIOCIWFIRSTPRIV+13)
81 * arguments:
82 * WMI_SCAN_PARAMS_CMD scanParams (see include/wmi.h)
83 * uses: WMI_SET_SCAN_PARAMS_CMDID
86 #define AR6000_IOCTL_WMI_SETLISTENINT (SIOCIWFIRSTPRIV+14)
88 * arguments:
89 * UINT32 listenInterval
90 * uses: WMI_SET_LISTEN_INT_CMDID
93 #define AR6000_IOCTL_WMI_SETBSSFILTER (SIOCIWFIRSTPRIV+15)
95 * arguments:
96 * WMI_BSS_FILTER filter (see include/wmi.h)
97 * uses: WMI_SET_BSS_FILTER_CMDID
100 #define AR6000_IOCTL_WMI_SET_CHANNELPARAMS (SIOCIWFIRSTPRIV+16)
102 * arguments:
103 * WMI_CHANNEL_PARAMS_CMD chParams
104 * uses: WMI_SET_CHANNEL_PARAMS_CMDID
107 #define AR6000_IOCTL_WMI_SET_PROBEDSSID (SIOCIWFIRSTPRIV+17)
109 * arguments:
110 * WMI_PROBED_SSID_CMD probedSsids (see include/wmi.h)
111 * uses: WMI_SETPROBED_SSID_CMDID
114 #define AR6000_IOCTL_WMI_SET_PMPARAMS (SIOCIWFIRSTPRIV+18)
116 * arguments:
117 * WMI_POWER_PARAMS_CMD powerParams (see include/wmi.h)
118 * uses: WMI_SET_POWER_PARAMS_CMDID
121 #define AR6000_IOCTL_WMI_SET_BADAP (SIOCIWFIRSTPRIV+19)
123 * arguments:
124 * WMI_ADD_BAD_AP_CMD badAPs (see include/wmi.h)
125 * uses: WMI_ADD_BAD_AP_CMDID
128 #define AR6000_IOCTL_WMI_GET_QOS_QUEUE (SIOCIWFIRSTPRIV+20)
130 * arguments:
131 * ar6000_queuereq queueRequest (see below)
134 #define AR6000_IOCTL_WMI_CREATE_QOS (SIOCIWFIRSTPRIV+21)
136 * arguments:
137 * WMI_CREATE_PSTREAM createPstreamCmd (see include/wmi.h)
138 * uses: WMI_CREATE_PSTREAM_CMDID
141 #define AR6000_IOCTL_WMI_DELETE_QOS (SIOCIWFIRSTPRIV+22)
143 * arguments:
144 * WMI_DELETE_PSTREAM_CMD deletePstreamCmd (see include/wmi.h)
145 * uses: WMI_DELETE_PSTREAM_CMDID
148 #define AR6000_IOCTL_WMI_SET_SNRTHRESHOLD (SIOCIWFIRSTPRIV+23)
150 * arguments:
151 * WMI_SNR_THRESHOLD_PARAMS_CMD thresholdParams (see include/wmi.h)
152 * uses: WMI_SNR_THRESHOLD_PARAMS_CMDID
155 #define AR6000_IOCTL_WMI_SET_ERROR_REPORT_BITMASK (SIOCIWFIRSTPRIV+24)
157 * arguments:
158 * WMI_TARGET_ERROR_REPORT_BITMASK errorReportBitMask (see include/wmi.h)
159 * uses: WMI_TARGET_ERROR_REPORT_BITMASK_CMDID
162 #define AR6000_IOCTL_WMI_GET_TARGET_STATS (SIOCIWFIRSTPRIV+25)
164 * arguments:
165 * TARGET_STATS *targetStats (see below)
166 * uses: WMI_GET_STATISTICS_CMDID
169 #define AR6000_IOCTL_WMI_SET_ASSOC_INFO (SIOCIWFIRSTPRIV+26)
171 * arguments:
172 * WMI_SET_ASSOC_INFO_CMD setAssocInfoCmd
173 * uses: WMI_SET_ASSOC_INFO_CMDID
176 #define AR6000_IOCTL_WMI_SET_ACCESS_PARAMS (SIOCIWFIRSTPRIV+27)
178 * arguments:
179 * WMI_SET_ACCESS_PARAMS_CMD setAccessParams (see include/wmi.h)
180 * uses: WMI_SET_ACCESS_PARAMS_CMDID
183 #define AR6000_IOCTL_WMI_SET_BMISS_TIME (SIOCIWFIRSTPRIV+28)
185 * arguments:
186 * UINT32 beaconMissTime
187 * uses: WMI_SET_BMISS_TIME_CMDID
190 #define AR6000_IOCTL_WMI_SET_DISC_TIMEOUT (SIOCIWFIRSTPRIV+29)
192 * arguments:
193 * WMI_DISC_TIMEOUT_CMD disconnectTimeoutCmd (see include/wmi.h)
194 * uses: WMI_SET_DISC_TIMEOUT_CMDID
197 #define AR6000_IOCTL_WMI_SET_IBSS_PM_CAPS (SIOCIWFIRSTPRIV+30)
199 * arguments:
200 * WMI_IBSS_PM_CAPS_CMD ibssPowerMgmtCapsCmd
201 * uses: WMI_SET_IBSS_PM_CAPS_CMDID
205 * There is a very small space available for driver-private
206 * wireless ioctls. In order to circumvent this limitation,
207 * we multiplex a bunch of ioctls (XIOCTLs) on top of a
208 * single AR6000_IOCTL_EXTENDED ioctl.
210 #define AR6000_IOCTL_EXTENDED (SIOCIWFIRSTPRIV+31)
213 /* ====BMI Extended Ioctls==== */
215 #define AR6000_XIOCTL_BMI_DONE 1
217 * arguments:
218 * UINT32 cmd (AR6000_XIOCTL_BMI_DONE)
219 * uses: BMI_DONE
222 #define AR6000_XIOCTL_BMI_READ_MEMORY 2
224 * arguments:
225 * union {
226 * struct {
227 * UINT32 cmd (AR6000_XIOCTL_BMI_READ_MEMORY)
228 * UINT32 address
229 * UINT32 length
231 * char results[length]
233 * uses: BMI_READ_MEMORY
236 #define AR6000_XIOCTL_BMI_WRITE_MEMORY 3
238 * arguments:
239 * UINT32 cmd (AR6000_XIOCTL_BMI_WRITE_MEMORY)
240 * UINT32 address
241 * UINT32 length
242 * char data[length]
243 * uses: BMI_WRITE_MEMORY
246 #define AR6000_XIOCTL_BMI_EXECUTE 4
248 * arguments:
249 * UINT32 cmd (AR6000_XIOCTL_BMI_EXECUTE)
250 * UINT32 TargetAddress
251 * UINT32 parameter
252 * uses: BMI_EXECUTE
255 #define AR6000_XIOCTL_BMI_SET_APP_START 5
257 * arguments:
258 * UINT32 cmd (AR6000_XIOCTL_BMI_SET_APP_START)
259 * UINT32 TargetAddress
260 * uses: BMI_SET_APP_START
263 #define AR6000_XIOCTL_BMI_READ_SOC_REGISTER 6
265 * arguments:
266 * union {
267 * struct {
268 * UINT32 cmd (AR6000_XIOCTL_BMI_READ_SOC_REGISTER)
269 * UINT32 TargetAddress, 32-bit aligned
271 * UINT32 result
273 * uses: BMI_READ_SOC_REGISTER
276 #define AR6000_XIOCTL_BMI_WRITE_SOC_REGISTER 7
278 * arguments:
279 * struct {
280 * UINT32 cmd (AR6000_XIOCTL_BMI_WRITE_SOC_REGISTER)
281 * UINT32 TargetAddress, 32-bit aligned
282 * UINT32 newValue
284 * uses: BMI_WRITE_SOC_REGISTER
287 #define AR6000_XIOCTL_BMI_TEST 8
289 * arguments:
290 * UINT32 cmd (AR6000_XIOCTL_BMI_TEST)
291 * UINT32 address
292 * UINT32 length
293 * UINT32 count
298 /* Historical Host-side DataSet support */
299 #define AR6000_XIOCTL_UNUSED9 9
300 #define AR6000_XIOCTL_UNUSED10 10
301 #define AR6000_XIOCTL_UNUSED11 11
303 /* ====Misc Extended Ioctls==== */
305 #define AR6000_XIOCTL_FORCE_TARGET_RESET 12
307 * arguments:
308 * UINT32 cmd (AR6000_XIOCTL_FORCE_TARGET_RESET)
312 #ifdef HTC_RAW_INTERFACE
313 /* HTC Raw Interface Ioctls */
314 #define AR6000_XIOCTL_HTC_RAW_OPEN 13
316 * arguments:
317 * UINT32 cmd (AR6000_XIOCTL_HTC_RAW_OPEN)
320 #define AR6000_XIOCTL_HTC_RAW_CLOSE 14
322 * arguments:
323 * UINT32 cmd (AR6000_XIOCTL_HTC_RAW_CLOSE)
326 #define AR6000_XIOCTL_HTC_RAW_READ 15
328 * arguments:
329 * union {
330 * struct {
331 * UINT32 cmd (AR6000_XIOCTL_HTC_RAW_READ)
332 * UINT32 mailboxID
333 * UINT32 length
335 * results[length]
339 #define AR6000_XIOCTL_HTC_RAW_WRITE 16
341 * arguments:
342 * UINT32 cmd (AR6000_XIOCTL_HTC_RAW_WRITE)
343 * UINT32 mailboxID
344 * UINT32 length
345 * char buffer[length]
347 #endif /* HTC_RAW_INTERFACE */
349 #define AR6000_XIOCTL_CHECK_TARGET_READY 17
351 * arguments:
352 * UINT32 cmd (AR6000_XIOCTL_CHECK_TARGET_READY)
357 /* ====GPIO (General Purpose I/O) Extended Ioctls==== */
359 #define AR6000_XIOCTL_GPIO_OUTPUT_SET 18
361 * arguments:
362 * UINT32 cmd (AR6000_XIOCTL_GPIO_OUTPUT_SET)
363 * ar6000_gpio_output_set_cmd_s (see below)
364 * uses: WMIX_GPIO_OUTPUT_SET_CMDID
367 #define AR6000_XIOCTL_GPIO_INPUT_GET 19
369 * arguments:
370 * UINT32 cmd (AR6000_XIOCTL_GPIO_INPUT_GET)
371 * uses: WMIX_GPIO_INPUT_GET_CMDID
374 #define AR6000_XIOCTL_GPIO_REGISTER_SET 20
376 * arguments:
377 * UINT32 cmd (AR6000_XIOCTL_GPIO_REGISTER_SET)
378 * ar6000_gpio_register_cmd_s (see below)
379 * uses: WMIX_GPIO_REGISTER_SET_CMDID
382 #define AR6000_XIOCTL_GPIO_REGISTER_GET 21
384 * arguments:
385 * UINT32 cmd (AR6000_XIOCTL_GPIO_REGISTER_GET)
386 * ar6000_gpio_register_cmd_s (see below)
387 * uses: WMIX_GPIO_REGISTER_GET_CMDID
390 #define AR6000_XIOCTL_GPIO_INTR_ACK 22
392 * arguments:
393 * UINT32 cmd (AR6000_XIOCTL_GPIO_INTR_ACK)
394 * ar6000_cpio_intr_ack_cmd_s (see below)
395 * uses: WMIX_GPIO_INTR_ACK_CMDID
398 #define AR6000_XIOCTL_GPIO_INTR_WAIT 23
400 * arguments:
401 * UINT32 cmd (AR6000_XIOCTL_GPIO_INTR_WAIT)
406 /* ====more wireless commands==== */
408 #define AR6000_XIOCTL_SET_ADHOC_BSSID 24
410 * arguments:
411 * UINT32 cmd (AR6000_XIOCTL_SET_ADHOC_BSSID)
412 * WMI_SET_ADHOC_BSSID_CMD setAdHocBssidCmd (see include/wmi.h)
415 #define AR6000_XIOCTL_SET_OPT_MODE 25
417 * arguments:
418 * UINT32 cmd (AR6000_XIOCTL_SET_OPT_MODE)
419 * WMI_SET_OPT_MODE_CMD setOptModeCmd (see include/wmi.h)
420 * uses: WMI_SET_OPT_MODE_CMDID
423 #define AR6000_XIOCTL_OPT_SEND_FRAME 26
425 * arguments:
426 * UINT32 cmd (AR6000_XIOCTL_OPT_SEND_FRAME)
427 * WMI_OPT_TX_FRAME_CMD optTxFrameCmd (see include/wmi.h)
428 * uses: WMI_OPT_TX_FRAME_CMDID
431 #define AR6000_XIOCTL_SET_BEACON_INTVAL 27
433 * arguments:
434 * UINT32 cmd (AR6000_XIOCTL_SET_BEACON_INTVAL)
435 * WMI_BEACON_INT_CMD beaconIntCmd (see include/wmi.h)
436 * uses: WMI_SET_BEACON_INT_CMDID
440 #define IEEE80211_IOCTL_SETAUTHALG 28
443 #define AR6000_XIOCTL_SET_VOICE_PKT_SIZE 29
445 * arguments:
446 * UINT32 cmd (AR6000_XIOCTL_SET_VOICE_PKT_SIZE)
447 * WMI_SET_VOICE_PKT_SIZE_CMD setVoicePktSizeCmd (see include/wmi.h)
448 * uses: WMI_SET_VOICE_PKT_SIZE_CMDID
452 #define AR6000_XIOCTL_SET_MAX_SP 30
454 * arguments:
455 * UINT32 cmd (AR6000_XIOCTL_SET_MAX_SP)
456 * WMI_SET_MAX_SP_LEN_CMD maxSPLen(see include/wmi.h)
457 * uses: WMI_SET_MAX_SP_LEN_CMDID
460 #define AR6000_XIOCTL_WMI_GET_ROAM_TBL 31
462 #define AR6000_XIOCTL_WMI_SET_ROAM_CTRL 32
464 #define AR6000_XIOCTRL_WMI_SET_POWERSAVE_TIMERS 33
468 * arguments:
469 * UINT32 cmd (AR6000_XIOCTRL_WMI_SET_POWERSAVE_TIMERS)
470 * WMI_SET_POWERSAVE_TIMERS_CMD powerSaveTimers(see include/wmi.h)
471 * WMI_SET_POWERSAVE_TIMERS_CMDID
474 #define AR6000_XIOCTRL_WMI_GET_POWER_MODE 34
476 * arguments:
477 * UINT32 cmd (AR6000_XIOCTRL_WMI_GET_POWER_MODE)
480 #define AR6000_XIOCTRL_WMI_SET_WLAN_STATE 35
481 typedef enum {
482 WLAN_DISABLED,
483 WLAN_ENABLED
484 } AR6000_WLAN_STATE;
486 * arguments:
487 * enable/disable
490 #define AR6000_XIOCTL_WMI_GET_ROAM_DATA 36
492 #define AR6000_XIOCTL_WMI_SETRETRYLIMITS 37
494 * arguments:
495 * WMI_SET_RETRY_LIMITS_CMD ibssSetRetryLimitsCmd
496 * uses: WMI_SET_RETRY_LIMITS_CMDID
499 #ifdef CONFIG_HOST_TCMD_SUPPORT
500 /* ====extended commands for radio test ==== */
502 #define AR6000_XIOCTL_TCMD_CONT_TX 38
504 * arguments:
505 * UINT32 cmd (AR6000_XIOCTL_TCMD_CONT_TX)
506 * WMI_TCMD_CONT_TX_CMD contTxCmd (see include/wmi.h)
507 * uses: WMI_TCMD_CONT_TX_CMDID
510 #define AR6000_XIOCTL_TCMD_CONT_RX 39
512 * arguments:
513 * UINT32 cmd (AR6000_XIOCTL_TCMD_CONT_RX)
514 * WMI_TCMD_CONT_RX_CMD rxCmd (see include/wmi.h)
515 * uses: WMI_TCMD_CONT_RX_CMDID
518 #define AR6000_XIOCTL_TCMD_PM 40
520 * arguments:
521 * UINT32 cmd (AR6000_XIOCTL_TCMD_PM)
522 * WMI_TCMD_PM_CMD pmCmd (see include/wmi.h)
523 * uses: WMI_TCMD_PM_CMDID
526 #endif /* CONFIG_HOST_TCMD_SUPPORT */
528 #define AR6000_XIOCTL_WMI_STARTSCAN 41
530 * arguments:
531 * UINT32 cmd (AR6000_XIOCTL_WMI_STARTSCAN)
532 * UINT8 scanType
533 * UINT8 scanConnected
534 * u32 forceFgScan
535 * uses: WMI_START_SCAN_CMDID
538 #define AR6000_XIOCTL_WMI_SETFIXRATES 42
540 #define AR6000_XIOCTL_WMI_GETFIXRATES 43
543 #define AR6000_XIOCTL_WMI_SET_RSSITHRESHOLD 44
545 * arguments:
546 * WMI_RSSI_THRESHOLD_PARAMS_CMD thresholdParams (see include/wmi.h)
547 * uses: WMI_RSSI_THRESHOLD_PARAMS_CMDID
550 #define AR6000_XIOCTL_WMI_CLR_RSSISNR 45
552 * arguments:
553 * WMI_CLR_RSSISNR_CMD thresholdParams (see include/wmi.h)
554 * uses: WMI_CLR_RSSISNR_CMDID
557 #define AR6000_XIOCTL_WMI_SET_LQTHRESHOLD 46
559 * arguments:
560 * WMI_LQ_THRESHOLD_PARAMS_CMD thresholdParams (see include/wmi.h)
561 * uses: WMI_LQ_THRESHOLD_PARAMS_CMDID
564 #define AR6000_XIOCTL_WMI_SET_RTS 47
566 * arguments:
567 * WMI_SET_RTS_MODE_CMD (see include/wmi.h)
568 * uses: WMI_SET_RTS_MODE_CMDID
571 #define AR6000_XIOCTL_WMI_SET_LPREAMBLE 48
573 #define AR6000_XIOCTL_WMI_SET_AUTHMODE 49
575 * arguments:
576 * UINT32 cmd (AR6000_XIOCTL_WMI_SET_AUTHMODE)
577 * UINT8 mode
578 * uses: WMI_SET_RECONNECT_AUTH_MODE_CMDID
581 #define AR6000_XIOCTL_WMI_SET_REASSOCMODE 50
584 * arguments:
585 * UINT32 cmd (AR6000_XIOCTL_WMI_SET_WMM)
586 * UINT8 mode
587 * uses: WMI_SET_WMM_CMDID
589 #define AR6000_XIOCTL_WMI_SET_WMM 51
592 * arguments:
593 * UINT32 cmd (AR6000_XIOCTL_WMI_SET_HB_CHALLENGE_RESP_PARAMS)
594 * UINT32 frequency
595 * UINT8 threshold
597 #define AR6000_XIOCTL_WMI_SET_HB_CHALLENGE_RESP_PARAMS 52
600 * arguments:
601 * UINT32 cmd (AR6000_XIOCTL_WMI_GET_HB_CHALLENGE_RESP)
602 * UINT32 cookie
604 #define AR6000_XIOCTL_WMI_GET_HB_CHALLENGE_RESP 53
607 * arguments:
608 * UINT32 cmd (AR6000_XIOCTL_WMI_GET_RD)
609 * UINT32 regDomain
611 #define AR6000_XIOCTL_WMI_GET_RD 54
613 #define AR6000_XIOCTL_DIAG_READ 55
615 #define AR6000_XIOCTL_DIAG_WRITE 56
618 * arguments cmd (AR6000_XIOCTL_SET_TXOP)
619 * WMI_TXOP_CFG txopEnable
621 #define AR6000_XIOCTL_WMI_SET_TXOP 57
623 #ifdef USER_KEYS
625 * arguments:
626 * UINT32 cmd (AR6000_XIOCTL_USER_SETKEYS)
627 * UINT32 keyOpCtrl
628 * uses AR6000_USER_SETKEYS_INFO
630 #define AR6000_XIOCTL_USER_SETKEYS 58
631 #endif /* USER_KEYS */
633 #define AR6000_XIOCTL_WMI_SET_KEEPALIVE 59
635 * arguments:
636 * UINT8 cmd (AR6000_XIOCTL_WMI_SET_KEEPALIVE)
637 * UINT8 keepaliveInterval
638 * uses: WMI_SET_KEEPALIVE_CMDID
641 #define AR6000_XIOCTL_WMI_GET_KEEPALIVE 60
643 * arguments:
644 * UINT8 cmd (AR6000_XIOCTL_WMI_GET_KEEPALIVE)
645 * UINT8 keepaliveInterval
646 * u32 configured
647 * uses: WMI_GET_KEEPALIVE_CMDID
650 /* ====ROM Patching Extended Ioctls==== */
652 #define AR6000_XIOCTL_BMI_ROMPATCH_INSTALL 61
654 * arguments:
655 * union {
656 * struct {
657 * UINT32 cmd (AR6000_XIOCTL_BMI_ROMPATCH_INSTALL)
658 * UINT32 ROM Address
659 * UINT32 RAM Address
660 * UINT32 number of bytes
661 * UINT32 activate? (0 or 1)
663 * A_UINT32 resulting rompatch ID
665 * uses: BMI_ROMPATCH_INSTALL
668 #define AR6000_XIOCTL_BMI_ROMPATCH_UNINSTALL 62
670 * arguments:
671 * struct {
672 * UINT32 cmd (AR6000_XIOCTL_BMI_ROMPATCH_UNINSTALL)
673 * UINT32 rompatch ID
675 * uses: BMI_ROMPATCH_UNINSTALL
678 #define AR6000_XIOCTL_BMI_ROMPATCH_ACTIVATE 63
680 * arguments:
681 * struct {
682 * UINT32 cmd (AR6000_XIOCTL_BMI_ROMPATCH_ACTIVATE)
683 * UINT32 rompatch count
684 * UINT32 rompatch IDs[rompatch count]
686 * uses: BMI_ROMPATCH_ACTIVATE
689 #define AR6000_XIOCTL_BMI_ROMPATCH_DEACTIVATE 64
691 * arguments:
692 * struct {
693 * UINT32 cmd (AR6000_XIOCTL_BMI_ROMPATCH_DEACTIVATE)
694 * UINT32 rompatch count
695 * UINT32 rompatch IDs[rompatch count]
697 * uses: BMI_ROMPATCH_DEACTIVATE
700 #define AR6000_XIOCTL_WMI_SET_APPIE 65
702 * arguments:
703 * struct {
704 * UINT32 cmd (AR6000_XIOCTL_WMI_SET_APPIE)
705 * UINT32 app_frmtype;
706 * UINT32 app_buflen;
707 * UINT8 app_buf[];
710 #define AR6000_XIOCTL_WMI_SET_MGMT_FRM_RX_FILTER 66
712 * arguments:
713 * A_UINT32 filter_type;
716 #define AR6000_XIOCTL_DBGLOG_CFG_MODULE 67
718 #define AR6000_XIOCTL_DBGLOG_GET_DEBUG_LOGS 68
720 #define AR6000_XIOCTL_WMI_SET_WSC_STATUS 70
722 * arguments:
723 * A_UINT32 wsc_status;
724 * (WSC_REG_INACTIVE or WSC_REG_ACTIVE)
728 * arguments:
729 * struct {
730 * A_UINT8 streamType;
731 * A_UINT8 status;
733 * uses: WMI_SET_BT_STATUS_CMDID
735 #define AR6000_XIOCTL_WMI_SET_BT_STATUS 71
738 * arguments:
739 * struct {
740 * A_UINT8 paramType;
741 * union {
742 * A_UINT8 noSCOPkts;
743 * BT_PARAMS_A2DP a2dpParams;
744 * BT_COEX_REGS regs;
745 * };
747 * uses: WMI_SET_BT_PARAM_CMDID
749 #define AR6000_XIOCTL_WMI_SET_BT_PARAMS 72
751 #define AR6000_XIOCTL_WMI_SET_HOST_SLEEP_MODE 73
752 #define AR6000_XIOCTL_WMI_SET_WOW_MODE 74
753 #define AR6000_XIOCTL_WMI_GET_WOW_LIST 75
754 #define AR6000_XIOCTL_WMI_ADD_WOW_PATTERN 76
755 #define AR6000_XIOCTL_WMI_DEL_WOW_PATTERN 77
759 #define AR6000_XIOCTL_TARGET_INFO 78
761 * arguments:
762 * UINT32 cmd (AR6000_XIOCTL_TARGET_INFO)
763 * A_UINT32 TargetVersion (returned)
764 * A_UINT32 TargetType (returned)
765 * (See also bmi_msg.h target_ver and target_type)
768 #define AR6000_XIOCTL_DUMP_HTC_CREDIT_STATE 79
770 * arguments:
771 * none
774 #define AR6000_XIOCTL_TRAFFIC_ACTIVITY_CHANGE 80
776 * This ioctl is used to emulate traffic activity
777 * timeouts. Activity/inactivity will trigger the driver
778 * to re-balance credits.
780 * arguments:
781 * ar6000_traffic_activity_change
784 #define AR6000_XIOCTL_WMI_SET_CONNECT_CTRL_FLAGS 81
786 * This ioctl is used to set the connect control flags
788 * arguments:
789 * A_UINT32 connectCtrlFlags
792 #define AR6000_XIOCTL_WMI_SET_AKMP_PARAMS 82
794 * This IOCTL sets any Authentication,Key Management and Protection
795 * related parameters. This is used along with the information set in
796 * Connect Command.
797 * Currently this enables Multiple PMKIDs to an AP.
799 * arguments:
800 * struct {
801 * A_UINT32 akmpInfo;
803 * uses: WMI_SET_AKMP_PARAMS_CMD
806 #define AR6000_XIOCTL_WMI_GET_PMKID_LIST 83
808 #define AR6000_XIOCTL_WMI_SET_PMKID_LIST 84
810 * This IOCTL is used to set a list of PMKIDs. This list of
811 * PMKIDs is used in the [Re]AssocReq Frame. This list is used
812 * only if the MultiPMKID option is enabled via the
813 * AR6000_XIOCTL_WMI_SET_AKMP_PARAMS IOCTL.
815 * arguments:
816 * struct {
817 * A_UINT32 numPMKID;
818 * WMI_PMKID pmkidList[WMI_MAX_PMKID_CACHE];
820 * uses: WMI_SET_PMKIDLIST_CMD
823 #define AR6000_XIOCTL_WMI_SET_PARAMS 85
824 #define AR6000_XIOCTL_WMI_SET_MCAST_FILTER 86
825 #define AR6000_XIOCTL_WMI_DEL_MCAST_FILTER 87
828 /* Historical DSETPATCH support for INI patches */
829 #define AR6000_XIOCTL_UNUSED90 90
832 /* Support LZ-compressed firmware download */
833 #define AR6000_XIOCTL_BMI_LZ_STREAM_START 91
835 * arguments:
836 * UINT32 cmd (AR6000_XIOCTL_BMI_LZ_STREAM_START)
837 * UINT32 address
838 * uses: BMI_LZ_STREAM_START
841 #define AR6000_XIOCTL_BMI_LZ_DATA 92
843 * arguments:
844 * UINT32 cmd (AR6000_XIOCTL_BMI_LZ_DATA)
845 * UINT32 length
846 * char data[length]
847 * uses: BMI_LZ_DATA
850 #define AR6000_XIOCTL_PROF_CFG 93
852 * arguments:
853 * A_UINT32 period
854 * A_UINT32 nbins
857 #define AR6000_XIOCTL_PROF_ADDR_SET 94
859 * arguments:
860 * A_UINT32 Target address
863 #define AR6000_XIOCTL_PROF_START 95
865 #define AR6000_XIOCTL_PROF_STOP 96
867 #define AR6000_XIOCTL_PROF_COUNT_GET 97
869 #define AR6000_XIOCTL_WMI_ABORT_SCAN 98
872 * AP mode
874 #define AR6000_XIOCTL_AP_GET_STA_LIST 99
876 #define AR6000_XIOCTL_AP_HIDDEN_SSID 100
878 #define AR6000_XIOCTL_AP_SET_NUM_STA 101
880 #define AR6000_XIOCTL_AP_SET_ACL_MAC 102
882 #define AR6000_XIOCTL_AP_GET_ACL_LIST 103
884 #define AR6000_XIOCTL_AP_COMMIT_CONFIG 104
886 #define IEEE80211_IOCTL_GETWPAIE 105
888 #define AR6000_XIOCTL_AP_CONN_INACT_TIME 106
890 #define AR6000_XIOCTL_AP_PROT_SCAN_TIME 107
892 #define AR6000_XIOCTL_AP_SET_COUNTRY 108
894 #define AR6000_XIOCTL_AP_SET_DTIM 109
899 #define AR6000_XIOCTL_WMI_TARGET_EVENT_REPORT 110
901 #define AR6000_XIOCTL_SET_IP 111
903 #define AR6000_XIOCTL_AP_SET_ACL_POLICY 112
905 #define AR6000_XIOCTL_AP_INTRA_BSS_COMM 113
907 #define AR6000_XIOCTL_DUMP_MODULE_DEBUG_INFO 114
909 #define AR6000_XIOCTL_MODULE_DEBUG_SET_MASK 115
911 #define AR6000_XIOCTL_MODULE_DEBUG_GET_MASK 116
913 #define AR6000_XIOCTL_DUMP_RCV_AGGR_STATS 117
915 #define AR6000_XIOCTL_SET_HT_CAP 118
917 #define AR6000_XIOCTL_SET_HT_OP 119
919 #define AR6000_XIOCTL_AP_GET_STAT 120
921 #define AR6000_XIOCTL_SET_TX_SELECT_RATES 121
923 #define AR6000_XIOCTL_SETUP_AGGR 122
925 #define AR6000_XIOCTL_ALLOW_AGGR 123
927 #define AR6000_XIOCTL_AP_GET_HIDDEN_SSID 124
929 #define AR6000_XIOCTL_AP_GET_COUNTRY 125
931 #define AR6000_XIOCTL_AP_GET_WMODE 126
933 #define AR6000_XIOCTL_AP_GET_DTIM 127
935 #define AR6000_XIOCTL_AP_GET_BINTVL 128
937 #define AR6000_XIOCTL_AP_GET_RTS 129
939 #define AR6000_XIOCTL_DELE_AGGR 130
941 #define AR6000_XIOCTL_FETCH_TARGET_REGS 131
943 #define AR6000_XIOCTL_HCI_CMD 132
945 #define AR6000_XIOCTL_ACL_DATA 133
947 #define AR6000_XIOCTL_WLAN_CONN_PRECEDENCE 134
949 #define AR6000_XIOCTL_AP_SET_11BG_RATESET 135
952 * arguments:
953 * WMI_AP_PS_CMD apPsCmd
954 * uses: WMI_AP_PS_CMDID
957 #define AR6000_XIOCTL_WMI_SET_AP_PS 136
959 #define AR6000_XIOCTL_WMI_MCAST_FILTER 137
961 #define AR6000_XIOCTL_WMI_SET_BTCOEX_FE_ANT 138
963 #define AR6000_XIOCTL_WMI_SET_BTCOEX_COLOCATED_BT_DEV 139
965 #define AR6000_XIOCTL_WMI_SET_BTCOEX_BTINQUIRY_PAGE_CONFIG 140
967 #define AR6000_XIOCTL_WMI_SET_BTCOEX_SCO_CONFIG 141
969 #define AR6000_XIOCTL_WMI_SET_BTCOEX_A2DP_CONFIG 142
971 #define AR6000_XIOCTL_WMI_SET_BTCOEX_ACLCOEX_CONFIG 143
973 #define AR6000_XIOCTL_WMI_SET_BTCOEX_DEBUG 144
975 #define AR6000_XIOCTL_WMI_SET_BT_OPERATING_STATUS 145
977 #define AR6000_XIOCTL_WMI_GET_BTCOEX_CONFIG 146
979 #define AR6000_XIOCTL_WMI_GET_BTCOEX_STATS 147
981 * arguments:
982 * UINT32 cmd (AR6000_XIOCTL_WMI_SET_QOS_SUPP)
983 * UINT8 mode
984 * uses: WMI_SET_QOS_SUPP_CMDID
986 #define AR6000_XIOCTL_WMI_SET_QOS_SUPP 148
988 #define AR6000_XIOCTL_GET_WLAN_SLEEP_STATE 149
990 #define AR6000_XIOCTL_SET_BT_HW_POWER_STATE 150
992 #define AR6000_XIOCTL_GET_BT_HW_POWER_STATE 151
994 #define AR6000_XIOCTL_ADD_AP_INTERFACE 152
996 #define AR6000_XIOCTL_REMOVE_AP_INTERFACE 153
998 #define AR6000_XIOCTL_WMI_SET_TX_SGI_PARAM 154
1001 /* used by AR6000_IOCTL_WMI_GETREV */
1002 struct ar6000_version {
1003 A_UINT32 host_ver;
1004 A_UINT32 target_ver;
1005 A_UINT32 wlan_ver;
1006 A_UINT32 abi_ver;
1009 /* used by AR6000_IOCTL_WMI_GET_QOS_QUEUE */
1010 struct ar6000_queuereq {
1011 A_UINT8 trafficClass;
1012 A_UINT16 activeTsids;
1015 /* used by AR6000_IOCTL_WMI_GET_TARGET_STATS */
1016 typedef struct targetStats_t {
1017 A_UINT64 tx_packets;
1018 A_UINT64 tx_bytes;
1019 A_UINT64 tx_unicast_pkts;
1020 A_UINT64 tx_unicast_bytes;
1021 A_UINT64 tx_multicast_pkts;
1022 A_UINT64 tx_multicast_bytes;
1023 A_UINT64 tx_broadcast_pkts;
1024 A_UINT64 tx_broadcast_bytes;
1025 A_UINT64 tx_rts_success_cnt;
1026 A_UINT64 tx_packet_per_ac[4];
1028 A_UINT64 tx_errors;
1029 A_UINT64 tx_failed_cnt;
1030 A_UINT64 tx_retry_cnt;
1031 A_UINT64 tx_mult_retry_cnt;
1032 A_UINT64 tx_rts_fail_cnt;
1034 A_UINT64 rx_packets;
1035 A_UINT64 rx_bytes;
1036 A_UINT64 rx_unicast_pkts;
1037 A_UINT64 rx_unicast_bytes;
1038 A_UINT64 rx_multicast_pkts;
1039 A_UINT64 rx_multicast_bytes;
1040 A_UINT64 rx_broadcast_pkts;
1041 A_UINT64 rx_broadcast_bytes;
1042 A_UINT64 rx_fragment_pkt;
1044 A_UINT64 rx_errors;
1045 A_UINT64 rx_crcerr;
1046 A_UINT64 rx_key_cache_miss;
1047 A_UINT64 rx_decrypt_err;
1048 A_UINT64 rx_duplicate_frames;
1050 A_UINT64 tkip_local_mic_failure;
1051 A_UINT64 tkip_counter_measures_invoked;
1052 A_UINT64 tkip_replays;
1053 A_UINT64 tkip_format_errors;
1054 A_UINT64 ccmp_format_errors;
1055 A_UINT64 ccmp_replays;
1057 A_UINT64 power_save_failure_cnt;
1059 A_UINT64 cs_bmiss_cnt;
1060 A_UINT64 cs_lowRssi_cnt;
1061 A_UINT64 cs_connect_cnt;
1062 A_UINT64 cs_disconnect_cnt;
1064 A_INT32 tx_unicast_rate;
1065 A_INT32 rx_unicast_rate;
1067 A_UINT32 lq_val;
1069 A_UINT32 wow_num_pkts_dropped;
1070 A_UINT16 wow_num_events_discarded;
1072 A_INT16 noise_floor_calibation;
1073 A_INT16 cs_rssi;
1074 A_INT16 cs_aveBeacon_rssi;
1075 A_UINT8 cs_aveBeacon_snr;
1076 A_UINT8 cs_lastRoam_msec;
1077 A_UINT8 cs_snr;
1079 A_UINT8 wow_num_host_pkt_wakeups;
1080 A_UINT8 wow_num_host_event_wakeups;
1082 A_UINT32 arp_received;
1083 A_UINT32 arp_matched;
1084 A_UINT32 arp_replied;
1085 }TARGET_STATS;
1087 typedef struct targetStats_cmd_t {
1088 TARGET_STATS targetStats;
1089 int clearStats;
1090 } TARGET_STATS_CMD;
1092 /* used by AR6000_XIOCTL_USER_SETKEYS */
1095 * Setting this bit to 1 doesnot initialize the RSC on the firmware
1097 #define AR6000_XIOCTL_USER_SETKEYS_RSC_CTRL 1
1098 #define AR6000_USER_SETKEYS_RSC_UNCHANGED 0x00000002
1100 typedef struct {
1101 A_UINT32 keyOpCtrl; /* Bit Map of Key Mgmt Ctrl Flags */
1102 } AR6000_USER_SETKEYS_INFO;
1105 /* used by AR6000_XIOCTL_GPIO_OUTPUT_SET */
1106 struct ar6000_gpio_output_set_cmd_s {
1107 A_UINT32 set_mask;
1108 A_UINT32 clear_mask;
1109 A_UINT32 enable_mask;
1110 A_UINT32 disable_mask;
1114 * used by AR6000_XIOCTL_GPIO_REGISTER_GET and AR6000_XIOCTL_GPIO_REGISTER_SET
1116 struct ar6000_gpio_register_cmd_s {
1117 A_UINT32 gpioreg_id;
1118 A_UINT32 value;
1121 /* used by AR6000_XIOCTL_GPIO_INTR_ACK */
1122 struct ar6000_gpio_intr_ack_cmd_s {
1123 A_UINT32 ack_mask;
1126 /* used by AR6000_XIOCTL_GPIO_INTR_WAIT */
1127 struct ar6000_gpio_intr_wait_cmd_s {
1128 A_UINT32 intr_mask;
1129 A_UINT32 input_values;
1132 /* used by the AR6000_XIOCTL_DBGLOG_CFG_MODULE */
1133 typedef struct ar6000_dbglog_module_config_s {
1134 A_UINT32 valid;
1135 A_UINT16 mmask;
1136 A_UINT16 tsr;
1137 u32 rep;
1138 A_UINT16 size;
1139 } DBGLOG_MODULE_CONFIG;
1141 typedef struct user_rssi_thold_t {
1142 A_INT16 tag;
1143 A_INT16 rssi;
1144 } USER_RSSI_THOLD;
1146 typedef struct user_rssi_params_t {
1147 A_UINT8 weight;
1148 A_UINT32 pollTime;
1149 USER_RSSI_THOLD tholds[12];
1150 } USER_RSSI_PARAMS;
1152 typedef struct ar6000_get_btcoex_config_cmd_t{
1153 A_UINT32 btProfileType;
1154 A_UINT32 linkId;
1155 }AR6000_GET_BTCOEX_CONFIG_CMD;
1157 typedef struct ar6000_btcoex_config_t {
1158 AR6000_GET_BTCOEX_CONFIG_CMD configCmd;
1159 A_UINT32 * configEvent;
1160 } AR6000_BTCOEX_CONFIG;
1162 typedef struct ar6000_btcoex_stats_t {
1163 A_UINT32 * statsEvent;
1164 }AR6000_BTCOEX_STATS;
1166 * Host driver may have some config parameters. Typically, these
1167 * config params are one time config parameters. These could
1168 * correspond to any of the underlying modules. Host driver exposes
1169 * an api for the underlying modules to get this config.
1171 #define AR6000_DRIVER_CFG_BASE 0x8000
1173 /* Should driver perform wlan node caching? */
1174 #define AR6000_DRIVER_CFG_GET_WLANNODECACHING 0x8001
1175 /*Should we log raw WMI msgs */
1176 #define AR6000_DRIVER_CFG_LOG_RAW_WMI_MSGS 0x8002
1178 /* used by AR6000_XIOCTL_DIAG_READ & AR6000_XIOCTL_DIAG_WRITE */
1179 struct ar6000_diag_window_cmd_s {
1180 unsigned int addr;
1181 unsigned int value;
1185 struct ar6000_traffic_activity_change {
1186 A_UINT32 StreamID; /* stream ID to indicate activity change */
1187 A_UINT32 Active; /* active (1) or inactive (0) */
1190 /* Used with AR6000_XIOCTL_PROF_COUNT_GET */
1191 struct prof_count_s {
1192 A_UINT32 addr; /* bin start address */
1193 A_UINT32 count; /* hit count */
1197 /* used by AR6000_XIOCTL_MODULE_DEBUG_SET_MASK */
1198 /* AR6000_XIOCTL_MODULE_DEBUG_GET_MASK */
1199 /* AR6000_XIOCTL_DUMP_MODULE_DEBUG_INFO */
1200 struct drv_debug_module_s {
1201 A_CHAR modulename[128]; /* name of module */
1202 A_UINT32 mask; /* new mask to set .. or .. current mask */
1206 /* All HCI related rx events are sent up to the host app
1207 * via a wmi event id. It can contain ACL data or HCI event,
1208 * based on which it will be de-multiplexed.
1210 typedef enum {
1211 PAL_HCI_EVENT = 0,
1212 PAL_HCI_RX_DATA,
1213 } WMI_PAL_EVENT_INFO;
1216 #ifdef __cplusplus
1218 #endif
1219 #endif