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 |