2 * Copyright (c) 2004-2006 Atheros Communications Inc.
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;
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.
20 #ifndef _ATHDRV_LINUX_H
21 #define _ATHDRV_LINUX_H
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.
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)
53 /* ====WMI Ioctls==== */
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
62 #define AR6000_IOCTL_WMI_GETREV (SIOCIWFIRSTPRIV+10)
65 * ar6000_version *revision
68 #define AR6000_IOCTL_WMI_SETPWR (SIOCIWFIRSTPRIV+11)
71 * WMI_POWER_MODE_CMD pwrModeCmd (see include/wmi.h)
72 * uses: WMI_SET_POWER_MODE_CMDID
75 #define AR6000_IOCTL_WMI_SETSCAN (SIOCIWFIRSTPRIV+12)
78 * WMI_SCAN_PARAMS_CMD scanParams (see include/wmi.h)
79 * uses: WMI_SET_SCAN_PARAMS_CMDID
82 #define AR6000_IOCTL_WMI_SETLISTENINT (SIOCIWFIRSTPRIV+13)
85 * UINT32 listenInterval
86 * uses: WMI_SET_LISTEN_INT_CMDID
89 #define AR6000_IOCTL_WMI_SETBSSFILTER (SIOCIWFIRSTPRIV+14)
92 * WMI_BSS_FILTER filter (see include/wmi.h)
93 * uses: WMI_SET_BSS_FILTER_CMDID
96 #define AR6000_IOCTL_WMI_SET_CHANNELPARAMS (SIOCIWFIRSTPRIV+16)
99 * WMI_CHANNEL_PARAMS_CMD chParams
100 * uses: WMI_SET_CHANNEL_PARAMS_CMDID
103 #define AR6000_IOCTL_WMI_SET_PROBEDSSID (SIOCIWFIRSTPRIV+17)
106 * WMI_PROBED_SSID_CMD probedSsids (see include/wmi.h)
107 * uses: WMI_SETPROBED_SSID_CMDID
110 #define AR6000_IOCTL_WMI_SET_PMPARAMS (SIOCIWFIRSTPRIV+18)
113 * WMI_POWER_PARAMS_CMD powerParams (see include/wmi.h)
114 * uses: WMI_SET_POWER_PARAMS_CMDID
117 #define AR6000_IOCTL_WMI_SET_BADAP (SIOCIWFIRSTPRIV+19)
120 * WMI_ADD_BAD_AP_CMD badAPs (see include/wmi.h)
121 * uses: WMI_ADD_BAD_AP_CMDID
124 #define AR6000_IOCTL_WMI_GET_QOS_QUEUE (SIOCIWFIRSTPRIV+20)
127 * ar6000_queuereq queueRequest (see below)
130 #define AR6000_IOCTL_WMI_CREATE_QOS (SIOCIWFIRSTPRIV+21)
133 * WMI_CREATE_PSTREAM createPstreamCmd (see include/wmi.h)
134 * uses: WMI_CREATE_PSTREAM_CMDID
137 #define AR6000_IOCTL_WMI_DELETE_QOS (SIOCIWFIRSTPRIV+22)
140 * WMI_DELETE_PSTREAM_CMD deletePstreamCmd (see include/wmi.h)
141 * uses: WMI_DELETE_PSTREAM_CMDID
144 #define AR6000_IOCTL_WMI_SET_SNRTHRESHOLD (SIOCIWFIRSTPRIV+23)
147 * WMI_SNR_THRESHOLD_PARAMS_CMD thresholdParams (see include/wmi.h)
148 * uses: WMI_SNR_THRESHOLD_PARAMS_CMDID
151 #define AR6000_IOCTL_WMI_SET_ERROR_REPORT_BITMASK (SIOCIWFIRSTPRIV+24)
154 * WMI_TARGET_ERROR_REPORT_BITMASK errorReportBitMask (see include/wmi.h)
155 * uses: WMI_TARGET_ERROR_REPORT_BITMASK_CMDID
158 #define AR6000_IOCTL_WMI_GET_TARGET_STATS (SIOCIWFIRSTPRIV+25)
161 * TARGET_STATS *targetStats (see below)
162 * uses: WMI_GET_STATISTICS_CMDID
165 #define AR6000_IOCTL_WMI_SET_ASSOC_INFO (SIOCIWFIRSTPRIV+26)
168 * WMI_SET_ASSOC_INFO_CMD setAssocInfoCmd
169 * uses: WMI_SET_ASSOC_INFO_CMDID
172 #define AR6000_IOCTL_WMI_SET_ACCESS_PARAMS (SIOCIWFIRSTPRIV+27)
175 * WMI_SET_ACCESS_PARAMS_CMD setAccessParams (see include/wmi.h)
176 * uses: WMI_SET_ACCESS_PARAMS_CMDID
179 #define AR6000_IOCTL_WMI_SET_BMISS_TIME (SIOCIWFIRSTPRIV+28)
182 * UINT32 beaconMissTime
183 * uses: WMI_SET_BMISS_TIME_CMDID
186 #define AR6000_IOCTL_WMI_SET_DISC_TIMEOUT (SIOCIWFIRSTPRIV+29)
189 * WMI_DISC_TIMEOUT_CMD disconnectTimeoutCmd (see include/wmi.h)
190 * uses: WMI_SET_DISC_TIMEOUT_CMDID
193 #define AR6000_IOCTL_WMI_SET_IBSS_PM_CAPS (SIOCIWFIRSTPRIV+30)
196 * WMI_IBSS_PM_CAPS_CMD ibssPowerMgmtCapsCmd
197 * uses: WMI_SET_IBSS_PM_CAPS_CMDID
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.
206 #define AR6000_IOCTL_EXTENDED (SIOCIWFIRSTPRIV+31)
209 /* ====BMI Extended Ioctls==== */
211 #define AR6000_XIOCTL_BMI_DONE 1
214 * UINT32 cmd (AR6000_XIOCTL_BMI_DONE)
218 #define AR6000_XIOCTL_BMI_READ_MEMORY 2
223 * UINT32 cmd (AR6000_XIOCTL_BMI_READ_MEMORY)
227 * char results[length]
229 * uses: BMI_READ_MEMORY
232 #define AR6000_XIOCTL_BMI_WRITE_MEMORY 3
235 * UINT32 cmd (AR6000_XIOCTL_BMI_WRITE_MEMORY)
239 * uses: BMI_WRITE_MEMORY
242 #define AR6000_XIOCTL_BMI_EXECUTE 4
245 * UINT32 cmd (AR6000_XIOCTL_BMI_EXECUTE)
246 * UINT32 TargetAddress
251 #define AR6000_XIOCTL_BMI_SET_APP_START 5
254 * UINT32 cmd (AR6000_XIOCTL_BMI_SET_APP_START)
255 * UINT32 TargetAddress
256 * uses: BMI_SET_APP_START
259 #define AR6000_XIOCTL_BMI_READ_SOC_REGISTER 6
264 * UINT32 cmd (AR6000_XIOCTL_BMI_READ_SOC_REGISTER)
265 * UINT32 TargetAddress, 32-bit aligned
269 * uses: BMI_READ_SOC_REGISTER
272 #define AR6000_XIOCTL_BMI_WRITE_SOC_REGISTER 7
276 * UINT32 cmd (AR6000_XIOCTL_BMI_WRITE_SOC_REGISTER)
277 * UINT32 TargetAddress, 32-bit aligned
280 * uses: BMI_WRITE_SOC_REGISTER
283 #define AR6000_XIOCTL_BMI_TEST 8
286 * UINT32 cmd (AR6000_XIOCTL_BMI_TEST)
294 /* Historical Host-side DataSet support */
295 #define AR6000_XIOCTL_UNUSED9 9
296 #define AR6000_XIOCTL_UNUSED10 10
297 #define AR6000_XIOCTL_UNUSED11 11
299 /* ====Misc Extended Ioctls==== */
301 #define AR6000_XIOCTL_FORCE_TARGET_RESET 12
304 * UINT32 cmd (AR6000_XIOCTL_FORCE_TARGET_RESET)
308 #ifdef HTC_RAW_INTERFACE
309 /* HTC Raw Interface Ioctls */
310 #define AR6000_XIOCTL_HTC_RAW_OPEN 13
313 * UINT32 cmd (AR6000_XIOCTL_HTC_RAW_OPEN)
316 #define AR6000_XIOCTL_HTC_RAW_CLOSE 14
319 * UINT32 cmd (AR6000_XIOCTL_HTC_RAW_CLOSE)
322 #define AR6000_XIOCTL_HTC_RAW_READ 15
327 * UINT32 cmd (AR6000_XIOCTL_HTC_RAW_READ)
335 #define AR6000_XIOCTL_HTC_RAW_WRITE 16
338 * UINT32 cmd (AR6000_XIOCTL_HTC_RAW_WRITE)
341 * char buffer[length]
343 #endif /* HTC_RAW_INTERFACE */
345 #define AR6000_XIOCTL_CHECK_TARGET_READY 17
348 * UINT32 cmd (AR6000_XIOCTL_CHECK_TARGET_READY)
353 /* ====GPIO (General Purpose I/O) Extended Ioctls==== */
355 #define AR6000_XIOCTL_GPIO_OUTPUT_SET 18
358 * UINT32 cmd (AR6000_XIOCTL_GPIO_OUTPUT_SET)
359 * ar6000_gpio_output_set_cmd_s (see below)
360 * uses: WMIX_GPIO_OUTPUT_SET_CMDID
363 #define AR6000_XIOCTL_GPIO_INPUT_GET 19
366 * UINT32 cmd (AR6000_XIOCTL_GPIO_INPUT_GET)
367 * uses: WMIX_GPIO_INPUT_GET_CMDID
370 #define AR6000_XIOCTL_GPIO_REGISTER_SET 20
373 * UINT32 cmd (AR6000_XIOCTL_GPIO_REGISTER_SET)
374 * ar6000_gpio_register_cmd_s (see below)
375 * uses: WMIX_GPIO_REGISTER_SET_CMDID
378 #define AR6000_XIOCTL_GPIO_REGISTER_GET 21
381 * UINT32 cmd (AR6000_XIOCTL_GPIO_REGISTER_GET)
382 * ar6000_gpio_register_cmd_s (see below)
383 * uses: WMIX_GPIO_REGISTER_GET_CMDID
386 #define AR6000_XIOCTL_GPIO_INTR_ACK 22
389 * UINT32 cmd (AR6000_XIOCTL_GPIO_INTR_ACK)
390 * ar6000_cpio_intr_ack_cmd_s (see below)
391 * uses: WMIX_GPIO_INTR_ACK_CMDID
394 #define AR6000_XIOCTL_GPIO_INTR_WAIT 23
397 * UINT32 cmd (AR6000_XIOCTL_GPIO_INTR_WAIT)
402 /* ====more wireless commands==== */
404 #define AR6000_XIOCTL_SET_ADHOC_BSSID 24
407 * UINT32 cmd (AR6000_XIOCTL_SET_ADHOC_BSSID)
408 * WMI_SET_ADHOC_BSSID_CMD setAdHocBssidCmd (see include/wmi.h)
411 #define AR6000_XIOCTL_SET_OPT_MODE 25
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
419 #define AR6000_XIOCTL_OPT_SEND_FRAME 26
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
427 #define AR6000_XIOCTL_SET_ADHOC_BEACON_INTVAL 27
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
436 #define IEEE80211_IOCTL_SETAUTHALG 28
439 #define AR6000_XIOCTL_SET_VOICE_PKT_SIZE 29
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
448 #define AR6000_XIOCTL_SET_MAX_SP 30
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
456 #define AR6000_XIOCTL_WMI_GET_ROAM_TBL 31
458 #define AR6000_XIOCTL_WMI_SET_ROAM_CTRL 32
460 #define AR6000_XIOCTRL_WMI_SET_POWERSAVE_TIMERS 33
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
470 #define AR6000_XIOCTRL_WMI_GET_POWER_MODE 34
473 * UINT32 cmd (AR6000_XIOCTRL_WMI_GET_POWER_MODE)
476 #define AR6000_XIOCTRL_WMI_SET_WLAN_STATE 35
486 #define AR6000_XIOCTL_WMI_GET_ROAM_DATA 36
488 #define AR6000_XIOCTL_WMI_SETRETRYLIMITS 37
491 * WMI_SET_RETRY_LIMITS_CMD ibssSetRetryLimitsCmd
492 * uses: WMI_SET_RETRY_LIMITS_CMDID
495 #ifdef CONFIG_HOST_TCMD_SUPPORT
496 /* ====extended commands for radio test ==== */
498 #define AR6000_XIOCTL_TCMD_CONT_TX 38
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
506 #define AR6000_XIOCTL_TCMD_CONT_RX 39
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
514 #define AR6000_XIOCTL_TCMD_PM 40
517 * UINT32 cmd (AR6000_XIOCTL_TCMD_PM)
518 * WMI_TCMD_PM_CMD pmCmd (see include/wmi.h)
519 * uses: WMI_TCMD_PM_CMDID
522 #endif /* CONFIG_HOST_TCMD_SUPPORT */
524 #define AR6000_XIOCTL_WMI_STARTSCAN 41
527 * UINT32 cmd (AR6000_XIOCTL_WMI_STARTSCAN)
529 * UINT8 scanConnected
531 * uses: WMI_START_SCAN_CMDID
534 #define AR6000_XIOCTL_WMI_SETFIXRATES 42
536 #define AR6000_XIOCTL_WMI_GETFIXRATES 43
539 #define AR6000_XIOCTL_WMI_SET_RSSITHRESHOLD 44
542 * WMI_RSSI_THRESHOLD_PARAMS_CMD thresholdParams (see include/wmi.h)
543 * uses: WMI_RSSI_THRESHOLD_PARAMS_CMDID
546 #define AR6000_XIOCTL_WMI_CLR_RSSISNR 45
549 * WMI_CLR_RSSISNR_CMD thresholdParams (see include/wmi.h)
550 * uses: WMI_CLR_RSSISNR_CMDID
553 #define AR6000_XIOCTL_WMI_SET_LQTHRESHOLD 46
556 * WMI_LQ_THRESHOLD_PARAMS_CMD thresholdParams (see include/wmi.h)
557 * uses: WMI_LQ_THRESHOLD_PARAMS_CMDID
560 #define AR6000_XIOCTL_WMI_SET_RTS 47
563 * WMI_SET_RTS_MODE_CMD (see include/wmi.h)
564 * uses: WMI_SET_RTS_MODE_CMDID
567 #define AR6000_XIOCTL_WMI_SET_LPREAMBLE 48
569 #define AR6000_XIOCTL_WMI_SET_AUTHMODE 49
572 * UINT32 cmd (AR6000_XIOCTL_WMI_SET_AUTHMODE)
574 * uses: WMI_SET_RECONNECT_AUTH_MODE_CMDID
577 #define AR6000_XIOCTL_WMI_SET_REASSOCMODE 50
581 * UINT32 cmd (AR6000_XIOCTL_WMI_SET_WMM)
583 * uses: WMI_SET_WMM_CMDID
585 #define AR6000_XIOCTL_WMI_SET_WMM 51
589 * UINT32 cmd (AR6000_XIOCTL_WMI_SET_HB_CHALLENGE_RESP_PARAMS)
593 #define AR6000_XIOCTL_WMI_SET_HB_CHALLENGE_RESP_PARAMS 52
597 * UINT32 cmd (AR6000_XIOCTL_WMI_GET_HB_CHALLENGE_RESP)
600 #define AR6000_XIOCTL_WMI_GET_HB_CHALLENGE_RESP 53
604 * UINT32 cmd (AR6000_XIOCTL_WMI_GET_RD)
607 #define AR6000_XIOCTL_WMI_GET_RD 54
609 #define AR6000_XIOCTL_DIAG_READ 55
611 #define AR6000_XIOCTL_DIAG_WRITE 56
614 * arguments cmd (AR6000_XIOCTL_SET_TXOP)
615 * WMI_TXOP_CFG txopEnable
617 #define AR6000_XIOCTL_WMI_SET_TXOP 57
622 * UINT32 cmd (AR6000_XIOCTL_USER_SETKEYS)
624 * uses AR6000_USER_SETKEYS_INFO
626 #define AR6000_XIOCTL_USER_SETKEYS 58
627 #endif /* USER_KEYS */
629 #define AR6000_XIOCTL_WMI_SET_KEEPALIVE 59
632 * UINT8 cmd (AR6000_XIOCTL_WMI_SET_KEEPALIVE)
633 * UINT8 keepaliveInterval
634 * uses: WMI_SET_KEEPALIVE_CMDID
637 #define AR6000_XIOCTL_WMI_GET_KEEPALIVE 60
640 * UINT8 cmd (AR6000_XIOCTL_WMI_GET_KEEPALIVE)
641 * UINT8 keepaliveInterval
643 * uses: WMI_GET_KEEPALIVE_CMDID
646 /* ====ROM Patching Extended Ioctls==== */
648 #define AR6000_XIOCTL_BMI_ROMPATCH_INSTALL 61
653 * UINT32 cmd (AR6000_XIOCTL_BMI_ROMPATCH_INSTALL)
656 * UINT32 number of bytes
657 * UINT32 activate? (0 or 1)
659 * A_UINT32 resulting rompatch ID
661 * uses: BMI_ROMPATCH_INSTALL
664 #define AR6000_XIOCTL_BMI_ROMPATCH_UNINSTALL 62
668 * UINT32 cmd (AR6000_XIOCTL_BMI_ROMPATCH_UNINSTALL)
671 * uses: BMI_ROMPATCH_UNINSTALL
674 #define AR6000_XIOCTL_BMI_ROMPATCH_ACTIVATE 63
678 * UINT32 cmd (AR6000_XIOCTL_BMI_ROMPATCH_ACTIVATE)
679 * UINT32 rompatch count
680 * UINT32 rompatch IDs[rompatch count]
682 * uses: BMI_ROMPATCH_ACTIVATE
685 #define AR6000_XIOCTL_BMI_ROMPATCH_DEACTIVATE 64
689 * UINT32 cmd (AR6000_XIOCTL_BMI_ROMPATCH_DEACTIVATE)
690 * UINT32 rompatch count
691 * UINT32 rompatch IDs[rompatch count]
693 * uses: BMI_ROMPATCH_DEACTIVATE
696 #define AR6000_XIOCTL_WMI_SET_APPIE 65
700 * UINT32 cmd (AR6000_XIOCTL_WMI_SET_APPIE)
701 * UINT32 app_frmtype;
706 #define AR6000_XIOCTL_WMI_SET_MGMT_FRM_RX_FILTER 66
709 * A_UINT32 filter_type;
712 #define AR6000_XIOCTL_DBGLOG_CFG_MODULE 67
714 #define AR6000_XIOCTL_DBGLOG_GET_DEBUG_LOGS 68
716 #define AR6000_XIOCTL_WMI_SET_WSC_STATUS 70
719 * A_UINT32 wsc_status;
720 * (WSC_REG_INACTIVE or WSC_REG_ACTIVE)
726 * A_UINT8 streamType;
729 * uses: WMI_SET_BT_STATUS_CMDID
731 #define AR6000_XIOCTL_WMI_SET_BT_STATUS 71
739 * BT_PARAMS_A2DP a2dpParams;
743 * uses: WMI_SET_BT_PARAM_CMDID
745 #define AR6000_XIOCTL_WMI_SET_BT_PARAMS 72
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
755 #define AR6000_XIOCTL_TARGET_INFO 78
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)
764 #define AR6000_XIOCTL_DUMP_HTC_CREDIT_STATE 79
770 #define AR6000_XIOCTL_TRAFFIC_ACTIVITY_CHANGE 80
772 * This ioctl is used to emulate traffic activity
773 * timeouts. Activity/inactivity will trigger the driver
774 * to re-balance credits.
777 * ar6000_traffic_activity_change
780 #define AR6000_XIOCTL_WMI_SET_CONNECT_CTRL_FLAGS 81
782 * This ioctl is used to set the connect control flags
785 * A_UINT32 connectCtrlFlags
788 #define AR6000_XIOCTL_WMI_SET_AKMP_PARAMS 82
790 * This IOCTL sets any Authentication,Key Management and Protection
791 * related parameters. This is used along with the information set in
793 * Currently this enables Multiple PMKIDs to an AP.
799 * uses: WMI_SET_AKMP_PARAMS_CMD
802 #define AR6000_XIOCTL_WMI_GET_PMKID_LIST 83
804 #define AR6000_XIOCTL_WMI_SET_PMKID_LIST 84
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.
814 * WMI_PMKID pmkidList[WMI_MAX_PMKID_CACHE];
816 * uses: WMI_SET_PMKIDLIST_CMD
819 /* Historical DSETPATCH support for INI patches */
820 #define AR6000_XIOCTL_UNUSED90 90
824 /* used by AR6000_IOCTL_WMI_GETREV */
825 struct ar6000_version {
830 /* used by AR6000_IOCTL_WMI_GET_QOS_QUEUE */
831 struct ar6000_queuereq {
832 A_UINT8 trafficClass;
833 A_UINT16 activeTsids;
836 /* used by AR6000_IOCTL_WMI_GET_TARGET_STATS */
837 typedef struct targetStats_t {
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];
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;
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;
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;
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;
878 A_UINT64 power_save_failure_cnt;
879 A_INT16 noise_floor_calibation;
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;
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;
900 typedef struct targetStats_cmd_t {
901 TARGET_STATS targetStats;
905 /* used by AR6000_XIOCTL_USER_SETKEYS */
908 * Setting this bit to 1 doesnot initialize the RSC on the firmware
910 #define AR6000_XIOCTL_USER_SETKEYS_RSC_CTRL 1
911 #define AR6000_USER_SETKEYS_RSC_UNCHANGED 0x00000002
914 A_UINT32 keyOpCtrl; /* Bit Map of Key Mgmt Ctrl Flags */
915 } AR6000_USER_SETKEYS_INFO;
918 /* used by AR6000_XIOCTL_GPIO_OUTPUT_SET */
919 struct ar6000_gpio_output_set_cmd_s {
922 A_UINT32 enable_mask;
923 A_UINT32 disable_mask;
927 * used by AR6000_XIOCTL_GPIO_REGISTER_GET and AR6000_XIOCTL_GPIO_REGISTER_SET
929 struct ar6000_gpio_register_cmd_s {
934 /* used by AR6000_XIOCTL_GPIO_INTR_ACK */
935 struct ar6000_gpio_intr_ack_cmd_s {
939 /* used by AR6000_XIOCTL_GPIO_INTR_WAIT */
940 struct ar6000_gpio_intr_wait_cmd_s {
942 A_UINT32 input_values;
945 /* used by the AR6000_XIOCTL_DBGLOG_CFG_MODULE */
946 typedef struct ar6000_dbglog_module_config_s {
952 } DBGLOG_MODULE_CONFIG;
954 typedef struct user_rssi_thold_t {
959 typedef struct user_rssi_params_t {
962 USER_RSSI_THOLD tholds[12];
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.
971 #define AR6000_DRIVER_CFG_BASE 0x8000
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
978 /* used by AR6000_XIOCTL_DIAG_READ & AR6000_XIOCTL_DIAG_WRITE */
979 struct ar6000_diag_window_cmd_s {
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) */