Commit | Line | Data |
---|---|---|
6fa3eb70 S |
1 | /* |
2 | ** $Id: //Department/DaVinci/BRANCHES/MT6620_WIFI_DRIVER_V2_3/include/wlan_lib.h#1 $ | |
3 | */ | |
4 | ||
5 | /*! \file "wlan_lib.h" | |
6 | \brief The declaration of the functions of the wlanAdpater objects | |
7 | ||
8 | Detail description. | |
9 | */ | |
10 | ||
11 | ||
12 | ||
13 | /* | |
14 | ** $Log: wlan_lib.h $ | |
15 | * | |
16 | * 06 08 2012 eason.tsai | |
17 | * NULL | |
18 | * Nvram context covert from 6620 to 6628 for old 6620 meta tool | |
19 | * | |
20 | * 01 16 2012 cp.wu | |
21 | * [MT6620 Wi-Fi][Driver] API and behavior modification for preferred band configuration with corresponding network configuration | |
22 | * add wlanSetPreferBandByNetwork() for glue layer to invoke for setting preferred band configuration corresponding to network type. | |
23 | * | |
24 | * 01 05 2012 wh.su | |
25 | * [WCXRP00001153] [MT6620 Wi-Fi][Driver] Adding the get_ch_list and set_tx_power proto type function | |
26 | * Adding the related ioctl / wlan oid function to set the Tx power cfg. | |
27 | * | |
28 | * 10 03 2011 cp.wu | |
29 | * [WCXRP00001022] [MT6628 Driver][Firmware Download] Add multi section independent download functionality | |
30 | * eliminate win32 native data types. | |
31 | * | |
32 | * 10 03 2011 cp.wu | |
33 | * [WCXRP00001022] [MT6628 Driver][Firmware Download] Add multi section independent download functionality | |
34 | * add firmware download path in divided scatters. | |
35 | * | |
36 | * 10 03 2011 cp.wu | |
37 | * [MT6628 Driver][Firmware Download] Add multi section independent download functionality | |
38 | * add firmware downloading aggregated path. | |
39 | * | |
40 | * 09 20 2011 tsaiyuan.hsu | |
41 | * [WCXRP00000931] [MT5931 Wi-Fi][DRV/FW] add swcr to disable roaming from driver | |
42 | * change window registry of driver for roaming. | |
43 | * | |
44 | * 09 08 2011 cm.chang | |
45 | * [WCXRP00000969] [MT6620 Wi-Fi][Driver][FW] Channel list for 5G band based on country code | |
46 | * Use new fields ucChannelListMap and ucChannelListIndex in NVRAM | |
47 | * | |
48 | * 08 31 2011 cm.chang | |
49 | * [WCXRP00000969] [MT6620 Wi-Fi][Driver][FW] Channel list for 5G band based on country code | |
50 | * . | |
51 | * | |
52 | * 08 25 2011 chinghwa.yu | |
53 | * [WCXRP00000612] [MT6620 Wi-Fi] [FW] CSD update SWRDD algorithm | |
54 | * Add DFS switch. | |
55 | * | |
56 | * 08 24 2011 chinghwa.yu | |
57 | * [WCXRP00000612] [MT6620 Wi-Fi] [FW] CSD update SWRDD algorithm | |
58 | * Update RDD test mode cases. | |
59 | * | |
60 | * 08 15 2011 cp.wu | |
61 | * [WCXRP00000913] [MT6620 Wi-Fi] create repository of source code dedicated for MT6620 E6 ASIC | |
62 | * support to load different firmware image for E3/E4/E5 and E6 ASIC on win32 platforms. | |
63 | * | |
64 | * 08 02 2011 yuche.tsai | |
65 | * [WCXRP00000896] [Volunteer Patch][WiFi Direct][Driver] GO with multiple client, TX deauth to a disconnecting device issue. | |
66 | * Fix GO send deauth frame issue. | |
67 | * | |
68 | * 07 22 2011 jeffrey.chang | |
69 | * [WCXRP00000864] [MT5931] Add command to adjust OSC stable time | |
70 | * modify driver to set OSC stable time after f/w download | |
71 | * | |
72 | * 07 18 2011 chinghwa.yu | |
73 | * [WCXRP00000063] Update BCM CoEx design and settings[WCXRP00000612] [MT6620 Wi-Fi] [FW] CSD update SWRDD algorithm | |
74 | * Add CMD/Event for RDD and BWCS. | |
75 | * | |
76 | * 05 27 2011 cp.wu | |
77 | * [WCXRP00000749] [MT6620 Wi-Fi][Driver] Add band edge tx power control to Wi-Fi NVRAM | |
78 | * invoke CMD_ID_SET_EDGE_TXPWR_LIMIT when there is valid data exist in NVRAM content. | |
79 | * | |
80 | * 05 11 2011 cp.wu | |
81 | * [WCXRP00000718] [MT6620 Wi-Fi] modify the behavior of setting tx power | |
82 | * ACPI APIs migrate to wlan_lib.c for glue layer to invoke. | |
83 | * | |
84 | * 04 18 2011 cp.wu | |
85 | * [WCXRP00000636] [WHQL][MT5931 Driver] 2c_PMHibernate (hang on 2h) | |
86 | * 1) add API for glue layer to query ACPI state | |
87 | * 2) Windows glue should not access to hardware after switched into D3 state | |
88 | * | |
89 | * 03 10 2011 cp.wu | |
90 | * [WCXRP00000532] [MT6620 Wi-Fi][Driver] Migrate NVRAM configuration procedures from MT6620 E2 to MT6620 E3 | |
91 | * deprecate configuration used by MT6620 E2 | |
92 | * | |
93 | * 01 27 2011 tsaiyuan.hsu | |
94 | * [WCXRP00000392] [MT6620 Wi-Fi][Driver] Add Roaming Support | |
95 | * add roaming fsm | |
96 | * 1. not support 11r, only use strength of signal to determine roaming. | |
97 | * 2. not enable CFG_SUPPORT_ROAMING until completion of full test. | |
98 | * 3. in 6620, adopt work-around to avoid sign extension problem of cck of hw | |
99 | * 4. assume that change of link quality in smooth way. | |
100 | * | |
101 | * 01 27 2011 george.huang | |
102 | * [WCXRP00000355] [MT6620 Wi-Fi] Set WMM-PS related setting with qualifying AP capability | |
103 | * Support current measure mode, assigned by registry (XP only). | |
104 | * | |
105 | * 01 24 2011 cp.wu | |
106 | * [WCXRP00000382] [MT6620 Wi-Fi][Driver] Track forwarding packet number with notifying tx thread for serving | |
107 | * 1. add an extra counter for tracking pending forward frames. | |
108 | * 2. notify TX service thread as well when there is pending forward frame | |
109 | * 3. correct build errors leaded by introduction of Wi-Fi direct separation module | |
110 | * | |
111 | * 01 10 2011 cp.wu | |
112 | * [WCXRP00000351] [MT6620 Wi-Fi][Driver] remove from scanning result in OID handling layer when the corresponding BSS is disconnected due to beacon timeout | |
113 | * remove from scanning result when the BSS is disconnected due to beacon timeout. | |
114 | * | |
115 | * 10 27 2010 george.huang | |
116 | * [WCXRP00000127] [MT6620 Wi-Fi][Driver] Add a registry to disable Beacon Timeout function for SQA test by using E1 EVB | |
117 | * Support registry option for disable beacon lost detection. | |
118 | * | |
119 | * 10 26 2010 cp.wu | |
120 | * [WCXRP00000056] [MT6620 Wi-Fi][Driver] NVRAM implementation with Version Check[WCXRP00000137] [MT6620 Wi-Fi] [FW] Support NIC capability query command | |
121 | * 1) update NVRAM content template to ver 1.02 | |
122 | * 2) add compile option for querying NIC capability (default: off) | |
123 | * 3) modify AIS 5GHz support to run-time option, which could be turned on by registry or NVRAM setting | |
124 | * 4) correct auto-rate compiler error under linux (treat warning as error) | |
125 | * 5) simplify usage of NVRAM and REG_INFO_T | |
126 | * 6) add version checking between driver and firmware | |
127 | * | |
128 | * 10 26 2010 eddie.chen | |
129 | * [WCXRP00000134] [MT6620 Wi-Fi][Driver] Add a registry to enable auto rate for SQA test by using E1 EVB | |
130 | * Add auto rate parameter in registry. | |
131 | * | |
132 | * 10 18 2010 cp.wu | |
133 | * [WCXRP00000056] [MT6620 Wi-Fi][Driver] NVRAM implementation with Version Check[WCXRP00000086] [MT6620 Wi-Fi][Driver] The mac address is all zero at android | |
134 | * complete implementation of Android NVRAM access | |
135 | * | |
136 | * 10 08 2010 cp.wu | |
137 | * [WCXRP00000084] [MT6620 Wi-Fi][Driver][FW] Add fixed rate support for distance test | |
138 | * adding fixed rate support for distance test. (from registry setting) | |
139 | * | |
140 | * 10 06 2010 cp.wu | |
141 | * [WCXRP00000052] [MT6620 Wi-Fi][Driver] Eliminate Linux Compile Warning | |
142 | * divide a single function into 2 part to surpress a weird compiler warning from gcc-4.4.0 | |
143 | * | |
144 | * 10 06 2010 cp.wu | |
145 | * [WCXRP00000052] [MT6620 Wi-Fi][Driver] Eliminate Linux Compile Warning | |
146 | * code reorganization to improve isolation between GLUE and CORE layers. | |
147 | * | |
148 | * 10 05 2010 cp.wu | |
149 | * [WCXRP00000056] [MT6620 Wi-Fi][Driver] NVRAM implementation with Version Check | |
150 | * load manufacture data when CFG_SUPPORT_NVRAM is set to 1 | |
151 | * | |
152 | * 09 24 2010 cp.wu | |
153 | * [WCXRP00000057] [MT6620 Wi-Fi][Driver] Modify online scan to a run-time switchable feature | |
154 | * Modify online scan as a run-time adjustable option (for Windows, in registry) | |
155 | * | |
156 | * 09 23 2010 cp.wu | |
157 | * [WCXRP00000051] [MT6620 Wi-Fi][Driver] WHQL test fail in MAC address changed item | |
158 | * use firmware reported mac address right after wlanAdapterStart() as permanent address | |
159 | * | |
160 | * 09 23 2010 cp.wu | |
161 | * [WCXRP00000056] [MT6620 Wi-Fi][Driver] NVRAM implementation with Version Check | |
162 | * add skeleton for NVRAM integration | |
163 | * | |
164 | * 08 26 2010 yuche.tsai | |
165 | * NULL | |
166 | * Add AT GO test configure mode under WinXP. | |
167 | * Please enable 1. CFG_ENABLE_WIFI_DIRECT, 2. CFG_TEST_WIFI_DIRECT_GO, 3. CFG_SUPPORT_AAA | |
168 | * | |
169 | * 08 25 2010 george.huang | |
170 | * NULL | |
171 | * . | |
172 | * | |
173 | * 07 21 2010 cp.wu | |
174 | * | |
175 | * 1) change BG_SCAN to ONLINE_SCAN for consistent term | |
176 | * 2) only clear scanning result when scan is permitted to do | |
177 | * | |
178 | * 07 13 2010 cp.wu | |
179 | * | |
180 | * 1) MMPDUs are now sent to MT6620 by CMD queue for keeping strict order of 1X/MMPDU/CMD packets | |
181 | * 2) integrate with qmGetFrameAction() for deciding which MMPDU/1X could pass checking for sending | |
182 | * 2) enhance CMD_INFO_T descriptor number from 10 to 32 to avoid descriptor underflow under concurrent network operation | |
183 | * | |
184 | * 07 08 2010 cp.wu | |
185 | * | |
186 | * [WPD00003833] [MT6620 and MT5931] Driver migration - move to new repository. | |
187 | * | |
188 | * 06 24 2010 cp.wu | |
189 | * [WPD00003833][MT6620 and MT5931] Driver migration | |
190 | * 802.1x and bluetooth-over-Wi-Fi security frames are now delievered to firmware via command path instead of data path. | |
191 | * | |
192 | * 06 21 2010 cp.wu | |
193 | * [WPD00003833][MT6620 and MT5931] Driver migration | |
194 | * change MAC address updating logic. | |
195 | * | |
196 | * 06 21 2010 cp.wu | |
197 | * [WPD00003833][MT6620 and MT5931] Driver migration | |
198 | * simplify timer usage. | |
199 | * | |
200 | * 06 11 2010 cp.wu | |
201 | * [WPD00003833][MT6620 and MT5931] Driver migration | |
202 | * 1) migrate assoc.c. | |
203 | * 2) add ucTxSeqNum for tracking frames which needs TX-DONE awareness | |
204 | * 3) add configuration options for CNM_MEM and RSN modules | |
205 | * 4) add data path for management frames | |
206 | * 5) eliminate rPacketInfo of MSDU_INFO_T | |
207 | * | |
208 | * 06 08 2010 cp.wu | |
209 | * [WPD00003833][MT6620 and MT5931] Driver migration | |
210 | * cnm_timer has been migrated. | |
211 | * | |
212 | * 06 06 2010 kevin.huang | |
213 | * [WPD00003832][MT6620 5931] Create driver base | |
214 | * [MT6620 5931] Create driver base | |
215 | * | |
216 | * 05 20 2010 cp.wu | |
217 | * [WPD00001943]Create WiFi test driver framework on WinXP | |
218 | * 1) integrate OID_GEN_NETWORK_LAYER_ADDRESSES with CMD_ID_SET_IP_ADDRESS | |
219 | * 2) buffer statistics data for 2 seconds | |
220 | * 3) use default value for adhoc parameters instead of 0 | |
221 | * | |
222 | * 05 12 2010 cp.wu | |
223 | * [WPD00001943]Create WiFi test driver framework on WinXP | |
224 | * add extra 64 adjustable parameters for CoEX scenario. | |
225 | * | |
226 | * 04 06 2010 cp.wu | |
227 | * [WPD00001943]Create WiFi test driver framework on WinXP | |
228 | * code refine: fgTestMode should be at adapter rather than glue due to the device/fw is also involved | |
229 | * | |
230 | * 04 06 2010 cp.wu | |
231 | * [WPD00001943]Create WiFi test driver framework on WinXP | |
232 | * 1) for some OID, never do timeout expiration | |
233 | * * 2) add 2 kal API for later integration | |
234 | * | |
235 | * 04 01 2010 cp.wu | |
236 | * [WPD00001943]Create WiFi test driver framework on WinXP | |
237 | * change to use WIFI_TCM_ALWAYS_ON as firmware image | |
238 | * | |
239 | * 03 31 2010 wh.su | |
240 | * [WPD00003816][MT6620 Wi-Fi] Adding the security support | |
241 | * modify the wapi related code for new driver's design. | |
242 | * | |
243 | * 03 22 2010 cp.wu | |
244 | * [WPD00001943]Create WiFi test driver framework on WinXP | |
245 | * always send CMD_NIC_POWER_CTRL packet when nic is being halted | |
246 | * | |
247 | * 03 12 2010 cp.wu | |
248 | * [WPD00001943]Create WiFi test driver framework on WinXP | |
249 | * add two option for ACK and ENCRYPTION for firmware download | |
250 | * | |
251 | * 02 24 2010 cp.wu | |
252 | * [WPD00001943]Create WiFi test driver framework on WinXP | |
253 | * separate wlanProcesQueuePacket() into 2 APIs upon request | |
254 | * | |
255 | * 02 23 2010 cp.wu | |
256 | * [WPD00001943]Create WiFi test driver framework on WinXP | |
257 | * add new API: wlanProcessQueuedPackets() | |
258 | * | |
259 | * 02 11 2010 cp.wu | |
260 | * [WPD00001943]Create WiFi test driver framework on WinXP | |
261 | * 1. add logic for firmware download | |
262 | * * * 2. firmware image filename and start/load address are now retrieved from registry | |
263 | * | |
264 | * 02 10 2010 cp.wu | |
265 | * [WPD00001943]Create WiFi test driver framework on WinXP | |
266 | * 1) remove unused function in nic_rx.c [which has been handled in que_mgt.c] | |
267 | * * * * 2) firmware image length is now retrieved via NdisFileOpen | |
268 | * * * * 3) firmware image is not structured by (P_IMG_SEC_HDR_T) anymore | |
269 | * * * * 4) nicRxWaitResponse() revised | |
270 | * * * * 5) another set of TQ counter default value is added for fw-download state | |
271 | * * * * 6) Wi-Fi load address is now retrieved from registry too | |
272 | * | |
273 | * 02 08 2010 cp.wu | |
274 | * [WPD00001943]Create WiFi test driver framework on WinXP | |
275 | * prepare for implementing fw download logic | |
276 | * | |
277 | * 01 27 2010 cp.wu | |
278 | * [WPD00001943]Create WiFi test driver framework on WinXP | |
279 | * 1. eliminate improper variable in rHifInfo | |
280 | * * * * * * * 2. block TX/ordinary OID when RF test mode is engaged | |
281 | * * * * * * * 3. wait until firmware finish operation when entering into and leaving from RF test mode | |
282 | * * * * * * * 4. correct some HAL implementation | |
283 | ** \main\maintrunk.MT6620WiFiDriver_Prj\10 2009-12-10 16:39:55 GMT mtk02752 | |
284 | ** eliminate unused API | |
285 | ** \main\maintrunk.MT6620WiFiDriver_Prj\9 2009-10-13 21:58:41 GMT mtk01084 | |
286 | ** update for new macro define | |
287 | ** \main\maintrunk.MT6620WiFiDriver_Prj\8 2009-05-19 10:43:06 GMT mtk01461 | |
288 | ** Add wlanReleasePendingOid() | |
289 | ** \main\maintrunk.MT6620WiFiDriver_Prj\7 2009-04-13 16:38:44 GMT mtk01084 | |
290 | ** add WIFI start function | |
291 | ** \main\maintrunk.MT6620WiFiDriver_Prj\6 2009-04-08 16:51:14 GMT mtk01084 | |
292 | ** Update for the image download part | |
293 | ** \main\maintrunk.MT6620WiFiDriver_Prj\5 2009-04-01 10:57:38 GMT mtk01461 | |
294 | ** Add wlanSendLeftClusteredFrames() for SDIO_TX_ENHANCE | |
295 | ** \main\maintrunk.MT6620WiFiDriver_Prj\4 2009-03-23 00:31:02 GMT mtk01461 | |
296 | ** Add declaration of FW Image download reference code | |
297 | ** \main\maintrunk.MT6620WiFiDriver_Prj\3 2009-03-16 09:08:31 GMT mtk01461 | |
298 | ** Update TX PATH API | |
299 | ** \main\maintrunk.MT6620WiFiDriver_Prj\2 2009-03-10 20:12:04 GMT mtk01426 | |
300 | ** Init for develop | |
301 | ** | |
302 | */ | |
303 | ||
304 | #ifndef _WLAN_LIB_H | |
305 | #define _WLAN_LIB_H | |
306 | ||
307 | /******************************************************************************* | |
308 | * C O M P I L E R F L A G S | |
309 | ******************************************************************************** | |
310 | */ | |
311 | ||
312 | /******************************************************************************* | |
313 | * E X T E R N A L R E F E R E N C E S | |
314 | ******************************************************************************** | |
315 | */ | |
316 | #include "CFG_Wifi_File.h" | |
317 | #include "rlm_domain.h" | |
318 | #include "wlan_typedef.h" | |
319 | ||
320 | /******************************************************************************* | |
321 | * C O N S T A N T S | |
322 | ******************************************************************************** | |
323 | */ | |
324 | ||
325 | #define MAX_NUM_GROUP_ADDR 32 /* max number of group addresses */ | |
326 | ||
327 | ||
328 | ||
329 | #define TX_CS_TCP_UDP_GEN BIT(1) | |
330 | #define TX_CS_IP_GEN BIT(0) | |
331 | ||
332 | ||
333 | #define CSUM_OFFLOAD_EN_TX_TCP BIT(0) | |
334 | #define CSUM_OFFLOAD_EN_TX_UDP BIT(1) | |
335 | #define CSUM_OFFLOAD_EN_TX_IP BIT(2) | |
336 | #define CSUM_OFFLOAD_EN_RX_TCP BIT(3) | |
337 | #define CSUM_OFFLOAD_EN_RX_UDP BIT(4) | |
338 | #define CSUM_OFFLOAD_EN_RX_IPv4 BIT(5) | |
339 | #define CSUM_OFFLOAD_EN_RX_IPv6 BIT(6) | |
340 | #define CSUM_OFFLOAD_EN_TX_MASK BITS(0, 2) | |
341 | #define CSUM_OFFLOAD_EN_ALL BITS(0, 6) | |
342 | ||
343 | /* TCP, UDP, IP Checksum */ | |
344 | #define RX_CS_TYPE_UDP BIT(7) | |
345 | #define RX_CS_TYPE_TCP BIT(6) | |
346 | #define RX_CS_TYPE_IPv6 BIT(5) | |
347 | #define RX_CS_TYPE_IPv4 BIT(4) | |
348 | ||
349 | #define RX_CS_STATUS_UDP BIT(3) | |
350 | #define RX_CS_STATUS_TCP BIT(2) | |
351 | #define RX_CS_STATUS_IP BIT(0) | |
352 | ||
353 | #define CSUM_NOT_SUPPORTED 0x0 | |
354 | ||
355 | #define TXPWR_USE_PDSLOPE 0 | |
356 | ||
357 | /* NVRAM error code definitions */ | |
358 | #define NVRAM_ERROR_VERSION_MISMATCH BIT(1) | |
359 | #define NVRAM_ERROR_INVALID_TXPWR BIT(2) | |
360 | #define NVRAM_ERROR_INVALID_DPD BIT(3) | |
361 | #define NVRAM_ERROR_INVALID_MAC_ADDR BIT(4) | |
362 | ||
363 | #define NUM_TC_RESOURCE_TO_STATISTICS 4 | |
364 | ||
365 | /******************************************************************************* | |
366 | * D A T A T Y P E S | |
367 | ******************************************************************************** | |
368 | */ | |
369 | typedef WLAN_STATUS(*PFN_OID_HANDLER_FUNC) (IN P_ADAPTER_T prAdapter, | |
370 | IN PVOID pvBuf, | |
371 | IN UINT_32 u4BufLen, OUT PUINT_32 pu4OutInfoLen); | |
372 | ||
373 | typedef enum _ENUM_CSUM_TYPE_T { | |
374 | CSUM_TYPE_IPV4, | |
375 | CSUM_TYPE_IPV6, | |
376 | CSUM_TYPE_TCP, | |
377 | CSUM_TYPE_UDP, | |
378 | CSUM_TYPE_NUM | |
379 | } ENUM_CSUM_TYPE_T, *P_ENUM_CSUM_TYPE_T; | |
380 | ||
381 | typedef enum _ENUM_CSUM_RESULT_T { | |
382 | CSUM_RES_NONE, | |
383 | CSUM_RES_SUCCESS, | |
384 | CSUM_RES_FAILED, | |
385 | CSUM_RES_NUM | |
386 | } ENUM_CSUM_RESULT_T, *P_ENUM_CSUM_RESULT_T; | |
387 | ||
388 | typedef enum _ENUM_PHY_MODE_T { | |
389 | ENUM_PHY_2G4_CCK, | |
390 | ENUM_PHY_2G4_OFDM_BPSK, | |
391 | ENUM_PHY_2G4_OFDM_QPSK, | |
392 | ENUM_PHY_2G4_OFDM_16QAM, | |
393 | ENUM_PHY_2G4_OFDM_48M, | |
394 | ENUM_PHY_2G4_OFDM_54M, | |
395 | ENUM_PHY_2G4_HT20_BPSK, | |
396 | ENUM_PHY_2G4_HT20_QPSK, | |
397 | ENUM_PHY_2G4_HT20_16QAM, | |
398 | ENUM_PHY_2G4_HT20_MCS5, | |
399 | ENUM_PHY_2G4_HT20_MCS6, | |
400 | ENUM_PHY_2G4_HT20_MCS7, | |
401 | ENUM_PHY_2G4_HT40_BPSK, | |
402 | ENUM_PHY_2G4_HT40_QPSK, | |
403 | ENUM_PHY_2G4_HT40_16QAM, | |
404 | ENUM_PHY_2G4_HT40_MCS5, | |
405 | ENUM_PHY_2G4_HT40_MCS6, | |
406 | ENUM_PHY_2G4_HT40_MCS7, | |
407 | ENUM_PHY_5G_OFDM_BPSK, | |
408 | ENUM_PHY_5G_OFDM_QPSK, | |
409 | ENUM_PHY_5G_OFDM_16QAM, | |
410 | ENUM_PHY_5G_OFDM_48M, | |
411 | ENUM_PHY_5G_OFDM_54M, | |
412 | ENUM_PHY_5G_HT20_BPSK, | |
413 | ENUM_PHY_5G_HT20_QPSK, | |
414 | ENUM_PHY_5G_HT20_16QAM, | |
415 | ENUM_PHY_5G_HT20_MCS5, | |
416 | ENUM_PHY_5G_HT20_MCS6, | |
417 | ENUM_PHY_5G_HT20_MCS7, | |
418 | ENUM_PHY_5G_HT40_BPSK, | |
419 | ENUM_PHY_5G_HT40_QPSK, | |
420 | ENUM_PHY_5G_HT40_16QAM, | |
421 | ENUM_PHY_5G_HT40_MCS5, | |
422 | ENUM_PHY_5G_HT40_MCS6, | |
423 | ENUM_PHY_5G_HT40_MCS7, | |
424 | ENUM_PHY_MODE_NUM | |
425 | } ENUM_PHY_MODE_T, *P_ENUM_PHY_MODE_T; | |
426 | ||
427 | typedef enum _ENUM_POWER_SAVE_POLL_MODE_T { | |
428 | ENUM_POWER_SAVE_POLL_DISABLE, | |
429 | ENUM_POWER_SAVE_POLL_LEGACY_NULL, | |
430 | ENUM_POWER_SAVE_POLL_QOS_NULL, | |
431 | ENUM_POWER_SAVE_POLL_NUM | |
432 | } ENUM_POWER_SAVE_POLL_MODE_T, *P_ENUM_POWER_SAVE_POLL_MODE_T; | |
433 | ||
434 | typedef enum _ENUM_AC_TYPE_T { | |
435 | ENUM_AC_TYPE_AC0, | |
436 | ENUM_AC_TYPE_AC1, | |
437 | ENUM_AC_TYPE_AC2, | |
438 | ENUM_AC_TYPE_AC3, | |
439 | ENUM_AC_TYPE_AC4, | |
440 | ENUM_AC_TYPE_AC5, | |
441 | ENUM_AC_TYPE_AC6, | |
442 | ENUM_AC_TYPE_BMC, | |
443 | ENUM_AC_TYPE_NUM | |
444 | } ENUM_AC_TYPE_T, *P_ENUM_AC_TYPE_T; | |
445 | ||
446 | typedef enum _ENUM_ADV_AC_TYPE_T { | |
447 | ENUM_ADV_AC_TYPE_RX_NSW, | |
448 | ENUM_ADV_AC_TYPE_RX_PTA, | |
449 | ENUM_ADV_AC_TYPE_RX_SP, | |
450 | ENUM_ADV_AC_TYPE_TX_PTA, | |
451 | ENUM_ADV_AC_TYPE_TX_RSP, | |
452 | ENUM_ADV_AC_TYPE_NUM | |
453 | } ENUM_ADV_AC_TYPE_T, *P_ENUM_ADV_AC_TYPE_T; | |
454 | ||
455 | typedef enum _ENUM_REG_CH_MAP_T { | |
456 | REG_CH_MAP_COUNTRY_CODE, | |
457 | REG_CH_MAP_TBL_IDX, | |
458 | REG_CH_MAP_CUSTOMIZED, | |
459 | REG_CH_MAP_NUM | |
460 | } ENUM_REG_CH_MAP_T, *P_ENUM_REG_CH_MAP_T; | |
461 | ||
462 | typedef struct _SET_TXPWR_CTRL_T { | |
463 | INT_8 c2GLegacyStaPwrOffset; /* Unit: 0.5dBm, default: 0 */ | |
464 | INT_8 c2GHotspotPwrOffset; | |
465 | INT_8 c2GP2pPwrOffset; | |
466 | INT_8 c2GBowPwrOffset; | |
467 | INT_8 c5GLegacyStaPwrOffset; /* Unit: 0.5dBm, default: 0 */ | |
468 | INT_8 c5GHotspotPwrOffset; | |
469 | INT_8 c5GP2pPwrOffset; | |
470 | INT_8 c5GBowPwrOffset; | |
471 | UINT_8 ucConcurrencePolicy; /* TX power policy when concurrence | |
472 | in the same channel | |
473 | 0: Highest power has priority | |
474 | 1: Lowest power has priority */ | |
475 | INT_8 acReserved1[3]; /* Must be zero */ | |
476 | ||
477 | /* Power limit by channel for all data rates */ | |
478 | INT_8 acTxPwrLimit2G[14]; /* Channel 1~14, Unit: 0.5dBm */ | |
479 | INT_8 acTxPwrLimit5G[4]; /* UNII 1~4 */ | |
480 | INT_8 acReserved2[2]; /* Must be zero */ | |
481 | } SET_TXPWR_CTRL_T, *P_SET_TXPWR_CTRL_T; | |
482 | ||
483 | /* For storing driver initialization value from glue layer */ | |
484 | typedef struct _REG_INFO_T { | |
485 | UINT_32 u4SdBlockSize; /* SDIO block size */ | |
486 | UINT_32 u4SdBusWidth; /* SDIO bus width. 1 or 4 */ | |
487 | UINT_32 u4SdClockRate; /* SDIO clock rate. (in unit of HZ) */ | |
488 | UINT_32 u4StartAddress; /* Starting address of Wi-Fi Firmware */ | |
489 | UINT_32 u4LoadAddress; /* Load address of Wi-Fi Firmware */ | |
490 | UINT_16 aucFwImgFilename[65]; /* Firmware filename */ | |
491 | UINT_16 aucFwImgFilenameE6[65]; /* Firmware filename for E6 */ | |
492 | UINT_32 u4StartFreq; /* Start Frequency for Ad-Hoc network : in unit of KHz */ | |
493 | UINT_32 u4AdhocMode; /* Default mode for Ad-Hoc network : ENUM_PARAM_AD_HOC_MODE_T */ | |
494 | UINT_32 u4RddStartFreq; | |
495 | UINT_32 u4RddStopFreq; | |
496 | UINT_32 u4RddTestMode; | |
497 | UINT_32 u4RddShutFreq; | |
498 | UINT_32 u4RddDfs; | |
499 | INT_32 i4HighRssiThreshold; | |
500 | INT_32 i4MediumRssiThreshold; | |
501 | INT_32 i4LowRssiThreshold; | |
502 | INT_32 au4TxPriorityTag[ENUM_AC_TYPE_NUM]; | |
503 | INT_32 au4RxPriorityTag[ENUM_AC_TYPE_NUM]; | |
504 | INT_32 au4AdvPriorityTag[ENUM_ADV_AC_TYPE_NUM]; | |
505 | UINT_32 u4FastPSPoll; | |
506 | UINT_32 u4PTA; /* 0: disable, 1: enable */ | |
507 | UINT_32 u4TXLimit; /* 0: disable, 1: enable */ | |
508 | UINT_32 u4SilenceWindow; /* range: 100 - 625, unit: us */ | |
509 | UINT_32 u4TXLimitThreshold; /* range: 250 - 1250, unit: us */ | |
510 | UINT_32 u4PowerMode; | |
511 | UINT_32 fgEnArpFilter; | |
512 | UINT_32 u4PsCurrentMeasureEn; | |
513 | UINT_32 u4UapsdAcBmp; | |
514 | UINT_32 u4MaxSpLen; | |
515 | UINT_32 fgDisOnlineScan; /* 0: enable online scan, non-zero: disable online scan */ | |
516 | UINT_32 fgDisBcnLostDetection; /* 0: enable online scan, non-zero: disable online scan */ | |
517 | UINT_32 u4FixedRate; /* 0: automatic, non-zero: fixed rate */ | |
518 | UINT_32 u4ArSysParam0; | |
519 | UINT_32 u4ArSysParam1; | |
520 | UINT_32 u4ArSysParam2; | |
521 | UINT_32 u4ArSysParam3; | |
522 | UINT_32 fgDisRoaming; /* 0:enable roaming 1:disable */ | |
523 | ||
524 | /* NVRAM - MP Data -START- */ | |
525 | UINT_8 aucMacAddr[6]; | |
526 | UINT_16 au2CountryCode[4]; /* Country code (in ISO 3166-1 expression, ex: "US", "TW") */ | |
527 | TX_PWR_PARAM_T rTxPwr; | |
528 | UINT_8 aucEFUSE[144]; | |
529 | UINT_8 ucTxPwrValid; | |
530 | UINT_8 ucSupport5GBand; | |
531 | UINT_8 fg2G4BandEdgePwrUsed; | |
532 | INT_8 cBandEdgeMaxPwrCCK; | |
533 | INT_8 cBandEdgeMaxPwrOFDM20; | |
534 | INT_8 cBandEdgeMaxPwrOFDM40; | |
535 | ENUM_REG_CH_MAP_T eRegChannelListMap; | |
536 | UINT_8 ucRegChannelListIndex; | |
537 | DOMAIN_INFO_ENTRY rDomainInfo; | |
538 | /* NVRAM - MP Data -END- */ | |
539 | ||
540 | /* NVRAM - Functional Data -START- */ | |
541 | UINT_8 uc2G4BwFixed20M; | |
542 | UINT_8 uc5GBwFixed20M; | |
543 | UINT_8 ucEnable5GBand; | |
544 | /* NVRAM - Functional Data -END- */ | |
545 | ||
546 | } REG_INFO_T, *P_REG_INFO_T; | |
547 | ||
548 | /* for divided firmware loading */ | |
549 | typedef struct _FWDL_SECTION_INFO_T { | |
550 | UINT_32 u4Offset; | |
551 | UINT_32 u4Reserved; | |
552 | UINT_32 u4Length; | |
553 | UINT_32 u4DestAddr; | |
554 | } FWDL_SECTION_INFO_T, *P_FWDL_SECTION_INFO_T; | |
555 | ||
556 | typedef struct _FIRMWARE_DIVIDED_DOWNLOAD_T { | |
557 | UINT_32 u4Signature; | |
558 | UINT_32 u4CRC; /* CRC calculated without first 8 bytes included */ | |
559 | UINT_32 u4NumOfEntries; | |
560 | UINT_32 u4Reserved; | |
561 | FWDL_SECTION_INFO_T arSection[]; | |
562 | } FIRMWARE_DIVIDED_DOWNLOAD_T, *P_FIRMWARE_DIVIDED_DOWNLOAD_T; | |
563 | ||
564 | typedef struct _PARAM_MCR_RW_STRUC_T { | |
565 | UINT_32 u4McrOffset; | |
566 | UINT_32 u4McrData; | |
567 | } PARAM_MCR_RW_STRUC_T, *P_PARAM_MCR_RW_STRUC_T; | |
568 | ||
569 | typedef struct _PARAM_GET_STA_STATISTICS { | |
570 | /* Per-STA statistic */ | |
571 | UINT_8 aucMacAddr[MAC_ADDR_LEN]; | |
572 | ||
573 | UINT_32 u4Flag; | |
574 | ||
575 | /* From driver */ | |
576 | UINT_32 u4TxTotalCount; | |
577 | UINT_32 u4TxExceedThresholdCount; | |
578 | ||
579 | UINT_32 u4TxMaxTime; | |
580 | UINT_32 u4TxAverageProcessTime; | |
581 | ||
582 | UINT_32 au4TcResourceEmptyCount[NUM_TC_RESOURCE_TO_STATISTICS]; | |
583 | UINT_32 au4TcQueLen[NUM_TC_RESOURCE_TO_STATISTICS]; | |
584 | ||
585 | /* From FW */ | |
586 | UINT_8 ucPer; /* base: 128 */ | |
587 | UINT_8 ucRcpi; | |
588 | UINT_32 u4PhyMode; | |
589 | UINT_16 u2LinkSpeed; /* unit is 0.5 Mbits */ | |
590 | ||
591 | UINT_32 u4TxFailCount; | |
592 | UINT_32 u4TxLifeTimeoutCount; | |
593 | ||
594 | UINT_32 u4TxAverageAirTime; | |
595 | ||
596 | /* Global queue management statistic */ | |
597 | UINT_32 au4TcAverageQueLen[NUM_TC_RESOURCE_TO_STATISTICS]; | |
598 | UINT_32 au4TcCurrentQueLen[NUM_TC_RESOURCE_TO_STATISTICS]; | |
599 | ||
600 | /* Reserved fields */ | |
601 | UINT_8 au4Reserved[32]; | |
602 | } PARAM_GET_STA_STA_STATISTICS, *P_PARAM_GET_STA_STATISTICS; | |
603 | ||
604 | /******************************************************************************* | |
605 | * P U B L I C D A T A | |
606 | ******************************************************************************** | |
607 | */ | |
608 | ||
609 | /******************************************************************************* | |
610 | * P R I V A T E D A T A | |
611 | ******************************************************************************** | |
612 | */ | |
613 | ||
614 | /******************************************************************************* | |
615 | * M A C R O S | |
616 | ******************************************************************************** | |
617 | */ | |
618 | #define BUILD_SIGN(ch0, ch1, ch2, ch3) \ | |
619 | ((UINT_32)(UINT_8)(ch0) | ((UINT_32)(UINT_8)(ch1) << 8) | \ | |
620 | ((UINT_32)(UINT_8)(ch2) << 16) | ((UINT_32)(UINT_8)(ch3) << 24)) | |
621 | ||
622 | #define MTK_WIFI_SIGNATURE BUILD_SIGN('M', 'T', 'K', 'W') | |
623 | ||
624 | /******************************************************************************* | |
625 | * F U N C T I O N D E C L A R A T I O N S | |
626 | ******************************************************************************** | |
627 | */ | |
628 | ||
629 | P_ADAPTER_T wlanAdapterCreate(IN P_GLUE_INFO_T prGlueInfo); | |
630 | ||
631 | VOID wlanAdapterDestroy(IN P_ADAPTER_T prAdapter); | |
632 | ||
633 | VOID wlanCardEjected(IN P_ADAPTER_T prAdapter); | |
634 | ||
635 | VOID wlanIST(IN P_ADAPTER_T prAdapter); | |
636 | ||
637 | BOOL wlanISR(IN P_ADAPTER_T prAdapter, IN BOOLEAN fgGlobalIntrCtrl); | |
638 | ||
639 | WLAN_STATUS wlanProcessCommandQueue(IN P_ADAPTER_T prAdapter, IN P_QUE_T prCmdQue); | |
640 | ||
641 | WLAN_STATUS wlanSendCommand(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo); | |
642 | ||
643 | VOID wlanReleaseCommand(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo); | |
644 | ||
645 | VOID wlanReleasePendingOid(IN P_ADAPTER_T prAdapter, IN UINT_32 u4Data); | |
646 | ||
647 | VOID | |
648 | wlanReleasePendingCMDbyNetwork(IN P_ADAPTER_T prAdapter, IN ENUM_NETWORK_TYPE_INDEX_T eNetworkType); | |
649 | ||
650 | VOID wlanReturnPacket(IN P_ADAPTER_T prAdapter, IN PVOID pvPacket); | |
651 | ||
652 | WLAN_STATUS | |
653 | wlanQueryInformation(IN P_ADAPTER_T prAdapter, | |
654 | IN PFN_OID_HANDLER_FUNC pfOidQryHandler, | |
655 | IN PVOID pvInfoBuf, IN UINT_32 u4InfoBufLen, OUT PUINT_32 pu4QryInfoLen); | |
656 | ||
657 | WLAN_STATUS | |
658 | wlanSetInformation(IN P_ADAPTER_T prAdapter, | |
659 | IN PFN_OID_HANDLER_FUNC pfOidSetHandler, | |
660 | IN PVOID pvInfoBuf, IN UINT_32 u4InfoBufLen, OUT PUINT_32 pu4SetInfoLen); | |
661 | ||
662 | ||
663 | WLAN_STATUS | |
664 | wlanAdapterStart(IN P_ADAPTER_T prAdapter, | |
665 | IN P_REG_INFO_T prRegInfo, | |
666 | IN PVOID pvFwImageMapFile, IN UINT_32 u4FwImageFileLength); | |
667 | ||
668 | WLAN_STATUS wlanAdapterStop(IN P_ADAPTER_T prAdapter); | |
669 | ||
670 | #if CFG_SUPPORT_WAPI | |
671 | BOOLEAN wlanQueryWapiMode(IN P_ADAPTER_T prAdapter); | |
672 | #endif | |
673 | ||
674 | VOID wlanReturnRxPacket(IN PVOID pvAdapter, IN PVOID pvPacket); | |
675 | ||
676 | VOID wlanRxSetBroadcast(IN P_ADAPTER_T prAdapter, IN BOOLEAN fgEnableBroadcast); | |
677 | ||
678 | BOOLEAN wlanIsHandlerNeedHwAccess(IN PFN_OID_HANDLER_FUNC pfnOidHandler, IN BOOLEAN fgSetInfo); | |
679 | ||
680 | VOID wlanSetPromiscuousMode(IN P_ADAPTER_T prAdapter, IN BOOLEAN fgEnablePromiscuousMode); | |
681 | ||
682 | #if CFG_ENABLE_FW_DOWNLOAD | |
683 | #if CFG_ENABLE_FW_DOWNLOAD_AGGREGATION | |
684 | WLAN_STATUS | |
685 | wlanImageSectionDownloadAggregated(IN P_ADAPTER_T prAdapter, | |
686 | IN UINT_32 u4DestAddr, | |
687 | IN UINT_32 u4ImgSecSize, IN PUINT_8 pucImgSecBuf); | |
688 | #endif | |
689 | ||
690 | WLAN_STATUS | |
691 | wlanImageSectionDownload(IN P_ADAPTER_T prAdapter, | |
692 | IN UINT_32 u4DestAddr, IN UINT_32 u4ImgSecSize, IN PUINT_8 pucImgSecBuf); | |
693 | ||
694 | #if !CFG_ENABLE_FW_DOWNLOAD_ACK | |
695 | WLAN_STATUS wlanImageQueryStatus(IN P_ADAPTER_T prAdapter); | |
696 | #else | |
697 | WLAN_STATUS wlanImageSectionDownloadStatus(IN P_ADAPTER_T prAdapter, IN UINT_8 ucCmdSeqNum); | |
698 | #endif | |
699 | ||
700 | WLAN_STATUS | |
701 | wlanConfigWifiFunc(IN P_ADAPTER_T prAdapter, IN BOOLEAN fgEnable, IN UINT_32 u4StartAddress); | |
702 | ||
703 | UINT_32 wlanCRC32(PUINT_8 buf, UINT_32 len); | |
704 | ||
705 | #endif | |
706 | ||
707 | WLAN_STATUS wlanSendNicPowerCtrlCmd(IN P_ADAPTER_T prAdapter, IN UINT_8 ucPowerMode); | |
708 | ||
709 | BOOLEAN wlanIsHandlerAllowedInRFTest(IN PFN_OID_HANDLER_FUNC pfnOidHandler, IN BOOLEAN fgSetInfo); | |
710 | ||
711 | WLAN_STATUS wlanProcessQueuedSwRfb(IN P_ADAPTER_T prAdapter, IN P_SW_RFB_T prSwRfbListHead); | |
712 | ||
713 | WLAN_STATUS | |
714 | wlanProcessQueuedMsduInfo(IN P_ADAPTER_T prAdapter, IN P_MSDU_INFO_T prMsduInfoListHead); | |
715 | ||
716 | BOOLEAN wlanoidTimeoutCheck(IN P_ADAPTER_T prAdapter, IN PFN_OID_HANDLER_FUNC pfnOidHandler); | |
717 | ||
718 | VOID wlanoidClearTimeoutCheck(IN P_ADAPTER_T prAdapter); | |
719 | ||
720 | WLAN_STATUS wlanUpdateNetworkAddress(IN P_ADAPTER_T prAdapter); | |
721 | ||
722 | BOOLEAN wlanQueryTestMode(IN P_ADAPTER_T prAdapter); | |
723 | ||
724 | /* Security Frame Handling */ | |
725 | BOOLEAN wlanProcessSecurityFrame(IN P_ADAPTER_T prAdapter, IN P_NATIVE_PACKET prPacket); | |
726 | ||
727 | VOID | |
728 | wlanSecurityFrameTxDone(IN P_ADAPTER_T prAdapter, | |
729 | IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf); | |
730 | ||
731 | VOID wlanSecurityFrameTxTimeout(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo); | |
732 | ||
733 | /*----------------------------------------------------------------------------*/ | |
734 | /* OID/IOCTL Handling */ | |
735 | /*----------------------------------------------------------------------------*/ | |
736 | VOID wlanClearScanningResult(IN P_ADAPTER_T prAdapter); | |
737 | ||
738 | VOID wlanClearBssInScanningResult(IN P_ADAPTER_T prAdapter, IN PUINT_8 arBSSID); | |
739 | ||
740 | #if CFG_TEST_WIFI_DIRECT_GO | |
741 | VOID wlanEnableP2pFunction(IN P_ADAPTER_T prAdapter); | |
742 | ||
743 | VOID wlanEnableATGO(IN P_ADAPTER_T prAdapter); | |
744 | #endif | |
745 | ||
746 | ||
747 | /*----------------------------------------------------------------------------*/ | |
748 | /* Address Retreive by Polling */ | |
749 | /*----------------------------------------------------------------------------*/ | |
750 | WLAN_STATUS wlanQueryPermanentAddress(IN P_ADAPTER_T prAdapter); | |
751 | ||
752 | ||
753 | /*----------------------------------------------------------------------------*/ | |
754 | /* NIC Capability Retrieve by Polling */ | |
755 | /*----------------------------------------------------------------------------*/ | |
756 | WLAN_STATUS wlanQueryNicCapability(IN P_ADAPTER_T prAdapter); | |
757 | ||
758 | ||
759 | /*----------------------------------------------------------------------------*/ | |
760 | /* Compiler Flags Retrieve by Polling */ | |
761 | /*----------------------------------------------------------------------------*/ | |
762 | WLAN_STATUS wlanQueryCompileFlags(IN P_ADAPTER_T prAdapter); | |
763 | ||
764 | /*----------------------------------------------------------------------------*/ | |
765 | /* PD MCR Retrieve by Polling */ | |
766 | /*----------------------------------------------------------------------------*/ | |
767 | WLAN_STATUS wlanQueryPdMcr(IN P_ADAPTER_T prAdapter, IN P_PARAM_MCR_RW_STRUC_T prMcrRdInfo); | |
768 | /*----------------------------------------------------------------------------*/ | |
769 | /* Loading Manufacture Data */ | |
770 | /*----------------------------------------------------------------------------*/ | |
771 | WLAN_STATUS wlanLoadManufactureData(IN P_ADAPTER_T prAdapter, IN P_REG_INFO_T prRegInfo); | |
772 | ||
773 | ||
774 | /*----------------------------------------------------------------------------*/ | |
775 | /* Media Stream Mode */ | |
776 | /*----------------------------------------------------------------------------*/ | |
777 | BOOLEAN wlanResetMediaStreamMode(IN P_ADAPTER_T prAdapter); | |
778 | ||
779 | ||
780 | /*----------------------------------------------------------------------------*/ | |
781 | /* Timer Timeout Check (for Glue Layer) */ | |
782 | /*----------------------------------------------------------------------------*/ | |
783 | WLAN_STATUS wlanTimerTimeoutCheck(IN P_ADAPTER_T prAdapter); | |
784 | ||
785 | ||
786 | /*----------------------------------------------------------------------------*/ | |
787 | /* Mailbox Message Check (for Glue Layer) */ | |
788 | /*----------------------------------------------------------------------------*/ | |
789 | WLAN_STATUS wlanProcessMboxMessage(IN P_ADAPTER_T prAdapter); | |
790 | ||
791 | ||
792 | /*----------------------------------------------------------------------------*/ | |
793 | /* TX Pending Packets Handling (for Glue Layer) */ | |
794 | /*----------------------------------------------------------------------------*/ | |
795 | WLAN_STATUS wlanEnqueueTxPacket(IN P_ADAPTER_T prAdapter, IN P_NATIVE_PACKET prNativePacket); | |
796 | ||
797 | WLAN_STATUS wlanFlushTxPendingPackets(IN P_ADAPTER_T prAdapter); | |
798 | ||
799 | WLAN_STATUS wlanTxPendingPackets(IN P_ADAPTER_T prAdapter, IN OUT PBOOLEAN pfgHwAccess); | |
800 | ||
801 | ||
802 | /*----------------------------------------------------------------------------*/ | |
803 | /* Low Power Acquire/Release (for Glue Layer) */ | |
804 | /*----------------------------------------------------------------------------*/ | |
805 | WLAN_STATUS wlanAcquirePowerControl(IN P_ADAPTER_T prAdapter); | |
806 | ||
807 | WLAN_STATUS wlanReleasePowerControl(IN P_ADAPTER_T prAdapter); | |
808 | ||
809 | ||
810 | /*----------------------------------------------------------------------------*/ | |
811 | /* Pending Packets Number Reporting (for Glue Layer) */ | |
812 | /*----------------------------------------------------------------------------*/ | |
813 | UINT_32 wlanGetTxPendingFrameCount(IN P_ADAPTER_T prAdapter); | |
814 | ||
815 | ||
816 | /*----------------------------------------------------------------------------*/ | |
817 | /* ACPI state inquiry (for Glue Layer) */ | |
818 | /*----------------------------------------------------------------------------*/ | |
819 | ENUM_ACPI_STATE_T wlanGetAcpiState(IN P_ADAPTER_T prAdapter); | |
820 | ||
821 | VOID wlanSetAcpiState(IN P_ADAPTER_T prAdapter, IN ENUM_ACPI_STATE_T ePowerState); | |
822 | ||
823 | #if CFG_SUPPORT_OSC_SETTING && defined(MT5931) | |
824 | WLAN_STATUS wlanSetMcuOscStableTime(IN P_ADAPTER_T prAdapter, IN UINT_16 u2OscStableTime); | |
825 | #endif | |
826 | ||
827 | VOID wlanDefTxPowerCfg(IN P_ADAPTER_T prAdapter); | |
828 | ||
829 | /*----------------------------------------------------------------------------*/ | |
830 | /* get ECO version from Revision ID register (for Win32) */ | |
831 | /*----------------------------------------------------------------------------*/ | |
832 | UINT_8 wlanGetEcoVersion(IN P_ADAPTER_T prAdapter); | |
833 | ||
834 | /*----------------------------------------------------------------------------*/ | |
835 | /* set preferred band configuration corresponding to network type */ | |
836 | /*----------------------------------------------------------------------------*/ | |
837 | VOID | |
838 | wlanSetPreferBandByNetwork(IN P_ADAPTER_T prAdapter, | |
839 | IN ENUM_BAND_T eBand, IN ENUM_NETWORK_TYPE_INDEX_T eNetTypeIndex); | |
840 | ||
841 | /*----------------------------------------------------------------------------*/ | |
842 | /* get currently operating channel information */ | |
843 | /*----------------------------------------------------------------------------*/ | |
844 | UINT_8 | |
845 | wlanGetChannelNumberByNetwork(IN P_ADAPTER_T prAdapter, IN ENUM_NETWORK_TYPE_INDEX_T eNetTypeIndex); | |
846 | ||
847 | /*----------------------------------------------------------------------------*/ | |
848 | /* get BSS Descriptor information */ | |
849 | /*----------------------------------------------------------------------------*/ | |
850 | P_BSS_DESC_T | |
851 | wlanGetTargetBssDescByNetwork(IN P_ADAPTER_T prAdapter, IN ENUM_NETWORK_TYPE_INDEX_T eNetTypeIndex); | |
852 | ||
853 | /*----------------------------------------------------------------------------*/ | |
854 | /* check for system configuration to generate message on scan list */ | |
855 | /*----------------------------------------------------------------------------*/ | |
856 | WLAN_STATUS wlanCheckSystemConfiguration(IN P_ADAPTER_T prAdapter); | |
857 | ||
858 | /*----------------------------------------------------------------------------*/ | |
859 | /* query sta statistics information from driver and firmware */ | |
860 | /*----------------------------------------------------------------------------*/ | |
861 | WLAN_STATUS | |
862 | wlanoidQueryStaStatistics(IN P_ADAPTER_T prAdapter, | |
863 | IN PVOID pvQueryBuffer, | |
864 | IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen); | |
865 | ||
866 | #endif /* _WLAN_LIB_H */ |