| OLD | NEW |
| 1 //------------------------------------------------------------------------------ | 1 //------------------------------------------------------------------------------ |
| 2 // <copyright file="wmi.h" company="Atheros"> | 2 // Copyright (c) 2004-2010 Atheros Corporation. All rights reserved. |
| 3 // Copyright (c) 2004-2008 Atheros Corporation. All rights reserved. | |
| 4 // | |
| 5 // This program is free software; you can redistribute it and/or modify | |
| 6 // it under the terms of the GNU General Public License version 2 as | |
| 7 // published by the Free Software Foundation; | |
| 8 // | |
| 9 // Software distributed under the License is distributed on an "AS | |
| 10 // IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or | |
| 11 // implied. See the License for the specific language governing | |
| 12 // rights and limitations under the License. | |
| 13 // | 3 // |
| 14 // | 4 // |
| 5 // Permission to use, copy, modify, and/or distribute this software for any |
| 6 // purpose with or without fee is hereby granted, provided that the above |
| 7 // copyright notice and this permission notice appear in all copies. |
| 8 // |
| 9 // THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
| 10 // WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
| 11 // MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
| 12 // ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
| 13 // WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
| 14 // ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
| 15 // OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
| 16 // |
| 17 // |
| 18 // |
| 19 // Author(s): ="Atheros" |
| 15 //------------------------------------------------------------------------------ | 20 //------------------------------------------------------------------------------ |
| 16 //============================================================================== | |
| 17 // Author(s): ="Atheros" | |
| 18 //============================================================================== | |
| 19 | 21 |
| 20 /* | 22 /* |
| 21 * This file contains the definitions of the WMI protocol specified in the | 23 * This file contains the definitions of the WMI protocol specified in the |
| 22 * Wireless Module Interface (WMI). It includes definitions of all the | 24 * Wireless Module Interface (WMI). It includes definitions of all the |
| 23 * commands and events. Commands are messages from the host to the WM. | 25 * commands and events. Commands are messages from the host to the WM. |
| 24 * Events and Replies are messages from the WM to the host. | 26 * Events and Replies are messages from the WM to the host. |
| 25 * | 27 * |
| 26 * Ownership of correctness in regards to commands | 28 * Ownership of correctness in regards to commands |
| 27 * belongs to the host driver and the WMI is not required to validate | 29 * belongs to the host driver and the WMI is not required to validate |
| 28 * parameters for value, proper range, or any other checking. | 30 * parameters for value, proper range, or any other checking. |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 60 | 62 |
| 61 #define WMI_IMPLICIT_PSTREAM 0xFF | 63 #define WMI_IMPLICIT_PSTREAM 0xFF |
| 62 #define WMI_MAX_THINSTREAM 15 | 64 #define WMI_MAX_THINSTREAM 15 |
| 63 | 65 |
| 64 #ifdef AR6002_REV2 | 66 #ifdef AR6002_REV2 |
| 65 #define IBSS_MAX_NUM_STA 4 | 67 #define IBSS_MAX_NUM_STA 4 |
| 66 #else | 68 #else |
| 67 #define IBSS_MAX_NUM_STA 8 | 69 #define IBSS_MAX_NUM_STA 8 |
| 68 #endif | 70 #endif |
| 69 | 71 |
| 70 struct host_app_area_s { | 72 PREPACK struct host_app_area_s { |
| 71 A_UINT32 wmi_protocol_ver; | 73 A_UINT32 wmi_protocol_ver; |
| 72 }; | 74 } POSTPACK; |
| 73 | 75 |
| 74 /* | 76 /* |
| 75 * Data Path | 77 * Data Path |
| 76 */ | 78 */ |
| 77 typedef PREPACK struct { | 79 typedef PREPACK struct { |
| 78 A_UINT8 dstMac[ATH_MAC_LEN]; | 80 A_UINT8 dstMac[ATH_MAC_LEN]; |
| 79 A_UINT8 srcMac[ATH_MAC_LEN]; | 81 A_UINT8 srcMac[ATH_MAC_LEN]; |
| 80 A_UINT16 typeOrLen; | 82 A_UINT16 typeOrLen; |
| 81 } POSTPACK ATH_MAC_HDR; | 83 } POSTPACK ATH_MAC_HDR; |
| 82 | 84 |
| (...skipping 1599 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1682 | 1684 |
| 1683 typedef PREPACK struct { | 1685 typedef PREPACK struct { |
| 1684 A_UINT32 aclWlanMediumDur; /* Wlan usage time during Acl (non-a2dp) | 1686 A_UINT32 aclWlanMediumDur; /* Wlan usage time during Acl (non-a2dp) |
| 1685 coexistence (default 30
msecs) | 1687 coexistence (default 30
msecs) |
| 1686 */ | 1688 */ |
| 1687 | 1689 |
| 1688 A_UINT32 aclBtMediumDur; /* Bt usage time during acl coexistence | 1690 A_UINT32 aclBtMediumDur; /* Bt usage time during acl coexistence |
| 1689 (default 30 msecs) | 1691 (default 30 msecs) |
| 1690 */ | 1692 */ |
| 1691 | 1693 |
| 1692 » A_UINT32 aclDetectTimeout;» /* ACL coexistence enabled if we get | 1694 » A_UINT32 aclDetectTimeout;» /* BT activity observation time limit
. |
| 1693 » » » » » » » » 10 Pkts in X
msec(default 100 msecs) | 1695 » » » » » » » » » In thi
s time duration, number of bt pkts are counted. |
| 1696 » » » » » » » » » If the
Cnt reaches "aclPktCntLowerLimit" value |
| 1697 » » » » » » » » » for "a
clIterToEnableCoex" iteration continuously, |
| 1698 » » » » » » » » » firmwa
re gets into ACL coexistence mode. |
| 1699 » » » » » » » » » Simila
rly, if bt traffic count during ACL coexistence |
| 1700 » » » » » » » » » has no
t reached "aclPktCntLowerLimit" continuously |
| 1701 » » » » » » » » » for "a
clIterToEnableCoex", then ACL coexistence is |
| 1702 » » » » » » » » » disabl
ed. |
| 1703 » » » » » » » » -default 100 m
secs |
| 1694 */ | 1704 */ |
| 1695 | 1705 |
| 1696 » A_UINT32 aclmaxPktCnt;»» /* No of ACL pkts to receive before | 1706 » A_UINT32 aclPktCntLowerLimit; /* Acl Pkt Cnt to be received in durati
on of |
| 1697 » » » » » » » » enabling A
CL coex | 1707 » » » » » » » » » »
"aclDetectTimeout" for |
| 1698 default = 9 | 1708 » » » » » » » » » »
"aclIterForEnDis" times to enabling ACL coex. |
| 1709 Similar logic is used to disable acl coe
xistence. |
| 1710 (If "aclPktCntLowerLimit" cnt of acl pk
ts |
| 1711 are not seen by the for "aclIterForEnDi
s" |
| 1712 then acl coexistence is disabled). |
| 1713 default = 10 |
| 1699 */ | 1714 */ |
| 1700 | 1715 |
| 1716 A_UINT32 aclIterForEnDis; /* number of Iteration of "aclPktCntLowe
rLimit" for Enabling and |
| 1717 Disabling Acl Coexistence. |
| 1718 default = 3 |
| 1719 */ |
| 1720 |
| 1721 A_UINT32 aclPktCntUpperLimit; /* This is upperBound limit, if there is
more than |
| 1722 "aclPk
tCntUpperLimit" seen in "aclDetectTimeout", |
| 1723 ACL co
existence is enabled right away. |
| 1724 - defa
ult 15*/ |
| 1725 |
| 1701 A_UINT32 aclCoexFlags; /* A2DP Option flags: | 1726 A_UINT32 aclCoexFlags; /* A2DP Option flags: |
| 1702 bits: meaning: | 1727 bits: meaning: |
| 1703 0 Allow Close Range Optimization | 1728 0 Allow Close Range Optimization |
| 1704 1 disable Firmware detection | 1729 1 disable Firmware detection |
| 1705 (Currently supported configuration is aclC
oexFlags =0) | 1730 (Currently supported configuration is aclC
oexFlags =0) |
| 1706 */ | 1731 */ |
| 1707 A_UINT32 linkId; /* Applicable only for STE-BT - not used
*/ | 1732 A_UINT32 linkId; /* Applicable only for STE-BT - not used
*/ |
| 1708 | 1733 |
| 1709 }POSTPACK BTCOEX_ACLCOEX_CONFIG; | 1734 }POSTPACK BTCOEX_ACLCOEX_CONFIG; |
| 1710 | 1735 |
| (...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1921 WMI_ADDBA_REQ_EVENTID, /*0x1020 */ | 1946 WMI_ADDBA_REQ_EVENTID, /*0x1020 */ |
| 1922 WMI_ADDBA_RESP_EVENTID, | 1947 WMI_ADDBA_RESP_EVENTID, |
| 1923 WMI_DELBA_REQ_EVENTID, | 1948 WMI_DELBA_REQ_EVENTID, |
| 1924 WMI_TX_COMPLETE_EVENTID, | 1949 WMI_TX_COMPLETE_EVENTID, |
| 1925 WMI_HCI_EVENT_EVENTID, | 1950 WMI_HCI_EVENT_EVENTID, |
| 1926 WMI_ACL_DATA_EVENTID, | 1951 WMI_ACL_DATA_EVENTID, |
| 1927 WMI_REPORT_SLEEP_STATE_EVENTID, | 1952 WMI_REPORT_SLEEP_STATE_EVENTID, |
| 1928 #ifdef WAPI_ENABLE | 1953 #ifdef WAPI_ENABLE |
| 1929 WMI_WAPI_REKEY_EVENTID, | 1954 WMI_WAPI_REKEY_EVENTID, |
| 1930 #endif | 1955 #endif |
| 1931 » WMI_REPORT_BTCOEX_STATS_EVENTID, | 1956 WMI_REPORT_BTCOEX_STATS_EVENTID, |
| 1932 » WMI_REPORT_BTCOEX_CONFIG_EVENTID, | 1957 WMI_REPORT_BTCOEX_CONFIG_EVENTID, |
| 1933 | 1958 WMI_ACM_REJECT_EVENTID, |
| 1934 » WMI_THIN_RESERVED_START_EVENTID = 0x8000, | 1959 WMI_THIN_RESERVED_START_EVENTID = 0x8000, |
| 1935 » /* Events in this range are reserved for thinmode | 1960 /* Events in this range are reserved for thinmode |
| 1936 » * See wmi_thin.h for actual definitions */ | 1961 * See wmi_thin.h for actual definitions */ |
| 1937 WMI_THIN_RESERVED_END_EVENTID = 0x8fff, | 1962 WMI_THIN_RESERVED_END_EVENTID = 0x8fff, |
| 1938 | 1963 |
| 1939 } WMI_EVENT_ID; | 1964 } WMI_EVENT_ID; |
| 1940 | 1965 |
| 1941 | 1966 |
| 1942 typedef enum { | 1967 typedef enum { |
| 1943 WMI_11A_CAPABILITY = 1, | 1968 WMI_11A_CAPABILITY = 1, |
| 1944 WMI_11G_CAPABILITY = 2, | 1969 WMI_11G_CAPABILITY = 2, |
| 1945 WMI_11AG_CAPABILITY = 3, | 1970 WMI_11AG_CAPABILITY = 3, |
| 1946 WMI_11NA_CAPABILITY = 4, | 1971 WMI_11NA_CAPABILITY = 4, |
| (...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2079 A_UINT32 regDomain; | 2104 A_UINT32 regDomain; |
| 2080 } POSTPACK WMI_REG_DOMAIN_EVENT; | 2105 } POSTPACK WMI_REG_DOMAIN_EVENT; |
| 2081 | 2106 |
| 2082 typedef PREPACK struct { | 2107 typedef PREPACK struct { |
| 2083 A_UINT8 txQueueNumber; | 2108 A_UINT8 txQueueNumber; |
| 2084 A_UINT8 rxQueueNumber; | 2109 A_UINT8 rxQueueNumber; |
| 2085 A_UINT8 trafficDirection; | 2110 A_UINT8 trafficDirection; |
| 2086 A_UINT8 trafficClass; | 2111 A_UINT8 trafficClass; |
| 2087 } POSTPACK WMI_PSTREAM_TIMEOUT_EVENT; | 2112 } POSTPACK WMI_PSTREAM_TIMEOUT_EVENT; |
| 2088 | 2113 |
| 2114 typedef PREPACK struct { |
| 2115 A_UINT8 reserve1; |
| 2116 A_UINT8 reserve2; |
| 2117 A_UINT8 reserve3; |
| 2118 A_UINT8 trafficClass; |
| 2119 } POSTPACK WMI_ACM_REJECT_EVENT; |
| 2120 |
| 2089 /* | 2121 /* |
| 2090 * The WMI_NEIGHBOR_REPORT Event is generated by the target to inform | 2122 * The WMI_NEIGHBOR_REPORT Event is generated by the target to inform |
| 2091 * the host of BSS's it has found that matches the current profile. | 2123 * the host of BSS's it has found that matches the current profile. |
| 2092 * It can be used by the host to cache PMKs and/to initiate pre-authentication | 2124 * It can be used by the host to cache PMKs and/to initiate pre-authentication |
| 2093 * if the BSS supports it. The first bssid is always the current associated | 2125 * if the BSS supports it. The first bssid is always the current associated |
| 2094 * BSS. | 2126 * BSS. |
| 2095 * The bssid and bssFlags information repeats according to the number | 2127 * The bssid and bssFlags information repeats according to the number |
| 2096 * or APs reported. | 2128 * or APs reported. |
| 2097 */ | 2129 */ |
| 2098 typedef enum { | 2130 typedef enum { |
| (...skipping 909 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3008 | 3040 |
| 3009 typedef PREPACK struct { | 3041 typedef PREPACK struct { |
| 3010 A_UINT32 rateMasks[8]; | 3042 A_UINT32 rateMasks[8]; |
| 3011 } POSTPACK WMI_SET_TX_SELECT_RATES_CMD; | 3043 } POSTPACK WMI_SET_TX_SELECT_RATES_CMD; |
| 3012 | 3044 |
| 3013 typedef PREPACK struct { | 3045 typedef PREPACK struct { |
| 3014 A_UINT32 sgiMask; | 3046 A_UINT32 sgiMask; |
| 3015 A_UINT8 sgiPERThreshold; | 3047 A_UINT8 sgiPERThreshold; |
| 3016 } POSTPACK WMI_SET_TX_SGI_PARAM_CMD; | 3048 } POSTPACK WMI_SET_TX_SGI_PARAM_CMD; |
| 3017 | 3049 |
| 3050 #define DEFAULT_SGI_MASK 0x08080000 |
| 3051 #define DEFAULT_SGI_PER 10 |
| 3018 | 3052 |
| 3019 typedef PREPACK struct { | 3053 typedef PREPACK struct { |
| 3020 A_UINT32 rateField; /* 1 bit per rate corresponding to index */ | 3054 A_UINT32 rateField; /* 1 bit per rate corresponding to index */ |
| 3021 A_UINT8 id; | 3055 A_UINT8 id; |
| 3022 A_UINT8 shortTrys; | 3056 A_UINT8 shortTrys; |
| 3023 A_UINT8 longTrys; | 3057 A_UINT8 longTrys; |
| 3024 A_UINT8 reserved; /* padding */ | 3058 A_UINT8 reserved; /* padding */ |
| 3025 } POSTPACK WMI_SET_RATE_POLICY_CMD; | 3059 } POSTPACK WMI_SET_RATE_POLICY_CMD; |
| 3026 | 3060 |
| 3027 typedef PREPACK struct { | 3061 typedef PREPACK struct { |
| 3028 A_UINT8 metaVersion; /* version of meta data for rx packets <0 = default> (0
-7 = valid) */ | 3062 A_UINT8 metaVersion; /* version of meta data for rx packets <0 = default> (0
-7 = valid) */ |
| 3029 A_UINT8 dot11Hdr; /* 1 == leave .11 header intact , 0 == replace .11 header
with .3 <default> */ | 3063 A_UINT8 dot11Hdr; /* 1 == leave .11 header intact , 0 == replace .11 header
with .3 <default> */ |
| 3030 A_UINT8 defragOnHost; /* 1 == defragmentation is performed by host, 0 == per
formed by target <default> */ | 3064 A_UINT8 defragOnHost; /* 1 == defragmentation is performed by host, 0 == per
formed by target <default> */ |
| 3031 A_UINT8 reserved[1]; /* alignment */ | 3065 A_UINT8 reserved[1]; /* alignment */ |
| 3032 } POSTPACK WMI_RX_FRAME_FORMAT_CMD; | 3066 } POSTPACK WMI_RX_FRAME_FORMAT_CMD; |
| 3033 | 3067 |
| 3034 | 3068 |
| 3035 typedef PREPACK struct { | 3069 typedef PREPACK struct { |
| 3036 A_UINT8 enable; // 1 == device operates in thin mode , 0 == normal mode
<default> */ | 3070 A_UINT8 enable; /* 1 == device operates in thin mode , 0 == normal mode
<default> */ |
| 3037 A_UINT8 reserved[3]; | 3071 A_UINT8 reserved[3]; |
| 3038 } POSTPACK WMI_SET_THIN_MODE_CMD; | 3072 } POSTPACK WMI_SET_THIN_MODE_CMD; |
| 3039 | 3073 |
| 3040 /* AP mode events */ | 3074 /* AP mode events */ |
| 3041 /* WMI_PS_POLL_EVENT */ | 3075 /* WMI_PS_POLL_EVENT */ |
| 3042 typedef PREPACK struct { | 3076 typedef PREPACK struct { |
| 3043 A_UINT16 aid; | 3077 A_UINT16 aid; |
| 3044 } POSTPACK WMI_PSPOLL_EVENT; | 3078 } POSTPACK WMI_PSPOLL_EVENT; |
| 3045 | 3079 |
| 3046 typedef PREPACK struct { | 3080 typedef PREPACK struct { |
| (...skipping 29 matching lines...) Expand all Loading... |
| 3076 | 3110 |
| 3077 #ifndef ATH_TARGET | 3111 #ifndef ATH_TARGET |
| 3078 #include "athendpack.h" | 3112 #include "athendpack.h" |
| 3079 #endif | 3113 #endif |
| 3080 | 3114 |
| 3081 #ifdef __cplusplus | 3115 #ifdef __cplusplus |
| 3082 } | 3116 } |
| 3083 #endif | 3117 #endif |
| 3084 | 3118 |
| 3085 #endif /* _WMI_H_ */ | 3119 #endif /* _WMI_H_ */ |
| OLD | NEW |