2 ** $Id: //Department/DaVinci/BRANCHES/MT6620_WIFI_DRIVER_V2_3/include/wlan_lib.h#1 $
6 \brief The declaration of the functions of the wlanAdpater objects
16 * 06 08 2012 eason.tsai
18 * Nvram context covert from 6620 to 6628 for old 6620 meta tool
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.
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.
29 * [WCXRP00001022] [MT6628 Driver][Firmware Download] Add multi section independent download functionality
30 * eliminate win32 native data types.
33 * [WCXRP00001022] [MT6628 Driver][Firmware Download] Add multi section independent download functionality
34 * add firmware download path in divided scatters.
37 * [MT6628 Driver][Firmware Download] Add multi section independent download functionality
38 * add firmware downloading aggregated path.
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.
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
49 * [WCXRP00000969] [MT6620 Wi-Fi][Driver][FW] Channel list for 5G band based on country code
52 * 08 25 2011 chinghwa.yu
53 * [WCXRP00000612] [MT6620 Wi-Fi] [FW] CSD update SWRDD algorithm
56 * 08 24 2011 chinghwa.yu
57 * [WCXRP00000612] [MT6620 Wi-Fi] [FW] CSD update SWRDD algorithm
58 * Update RDD test mode cases.
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.
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.
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
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.
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.
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.
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
90 * [WCXRP00000532] [MT6620 Wi-Fi][Driver] Migrate NVRAM configuration procedures from MT6620 E2 to MT6620 E3
91 * deprecate configuration used by MT6620 E2
93 * 01 27 2011 tsaiyuan.hsu
94 * [WCXRP00000392] [MT6620 Wi-Fi][Driver] Add Roaming Support
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.
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).
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
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.
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.
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
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.
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
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)
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
145 * [WCXRP00000052] [MT6620 Wi-Fi][Driver] Eliminate Linux Compile Warning
146 * code reorganization to improve isolation between GLUE and CORE layers.
149 * [WCXRP00000056] [MT6620 Wi-Fi][Driver] NVRAM implementation with Version Check
150 * load manufacture data when CFG_SUPPORT_NVRAM is set to 1
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)
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
161 * [WCXRP00000056] [MT6620 Wi-Fi][Driver] NVRAM implementation with Version Check
162 * add skeleton for NVRAM integration
164 * 08 26 2010 yuche.tsai
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
169 * 08 25 2010 george.huang
175 * 1) change BG_SCAN to ONLINE_SCAN for consistent term
176 * 2) only clear scanning result when scan is permitted to do
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
186 * [WPD00003833] [MT6620 and MT5931] Driver migration - move to new repository.
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.
193 * [WPD00003833][MT6620 and MT5931] Driver migration
194 * change MAC address updating logic.
197 * [WPD00003833][MT6620 and MT5931] Driver migration
198 * simplify timer usage.
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
209 * [WPD00003833][MT6620 and MT5931] Driver migration
210 * cnm_timer has been migrated.
212 * 06 06 2010 kevin.huang
213 * [WPD00003832][MT6620 5931] Create driver base
214 * [MT6620 5931] Create driver base
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
223 * [WPD00001943]Create WiFi test driver framework on WinXP
224 * add extra 64 adjustable parameters for CoEX scenario.
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
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
236 * [WPD00001943]Create WiFi test driver framework on WinXP
237 * change to use WIFI_TCM_ALWAYS_ON as firmware image
240 * [WPD00003816][MT6620 Wi-Fi] Adding the security support
241 * modify the wapi related code for new driver's design.
244 * [WPD00001943]Create WiFi test driver framework on WinXP
245 * always send CMD_NIC_POWER_CTRL packet when nic is being halted
248 * [WPD00001943]Create WiFi test driver framework on WinXP
249 * add two option for ACK and ENCRYPTION for firmware download
252 * [WPD00001943]Create WiFi test driver framework on WinXP
253 * separate wlanProcesQueuePacket() into 2 APIs upon request
256 * [WPD00001943]Create WiFi test driver framework on WinXP
257 * add new API: wlanProcessQueuedPackets()
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
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
274 * [WPD00001943]Create WiFi test driver framework on WinXP
275 * prepare for implementing fw download logic
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
307 /*******************************************************************************
308 * C O M P I L E R F L A G S
309 ********************************************************************************
312 /*******************************************************************************
313 * E X T E R N A L R E F E R E N C E S
314 ********************************************************************************
316 #include "CFG_Wifi_File.h"
317 #include "rlm_domain.h"
318 #include "wlan_typedef.h"
320 /*******************************************************************************
322 ********************************************************************************
325 #define MAX_NUM_GROUP_ADDR 32 /* max number of group addresses */
329 #define TX_CS_TCP_UDP_GEN BIT(1)
330 #define TX_CS_IP_GEN BIT(0)
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)
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)
349 #define RX_CS_STATUS_UDP BIT(3)
350 #define RX_CS_STATUS_TCP BIT(2)
351 #define RX_CS_STATUS_IP BIT(0)
353 #define CSUM_NOT_SUPPORTED 0x0
355 #define TXPWR_USE_PDSLOPE 0
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)
364 /*******************************************************************************
366 ********************************************************************************
368 typedef WLAN_STATUS (*PFN_OID_HANDLER_FUNC) (
369 IN P_ADAPTER_T prAdapter,
372 OUT PUINT_32 pu4OutInfoLen
375 typedef enum _ENUM_CSUM_TYPE_T {
381 } ENUM_CSUM_TYPE_T, *P_ENUM_CSUM_TYPE_T;
383 typedef enum _ENUM_CSUM_RESULT_T {
388 } ENUM_CSUM_RESULT_T, *P_ENUM_CSUM_RESULT_T;
390 typedef enum _ENUM_PHY_MODE_T {
392 ENUM_PHY_2G4_OFDM_BPSK,
393 ENUM_PHY_2G4_OFDM_QPSK,
394 ENUM_PHY_2G4_OFDM_16QAM,
395 ENUM_PHY_2G4_OFDM_48M,
396 ENUM_PHY_2G4_OFDM_54M,
397 ENUM_PHY_2G4_HT20_BPSK,
398 ENUM_PHY_2G4_HT20_QPSK,
399 ENUM_PHY_2G4_HT20_16QAM,
400 ENUM_PHY_2G4_HT20_MCS5,
401 ENUM_PHY_2G4_HT20_MCS6,
402 ENUM_PHY_2G4_HT20_MCS7,
403 ENUM_PHY_2G4_HT40_BPSK,
404 ENUM_PHY_2G4_HT40_QPSK,
405 ENUM_PHY_2G4_HT40_16QAM,
406 ENUM_PHY_2G4_HT40_MCS5,
407 ENUM_PHY_2G4_HT40_MCS6,
408 ENUM_PHY_2G4_HT40_MCS7,
409 ENUM_PHY_5G_OFDM_BPSK,
410 ENUM_PHY_5G_OFDM_QPSK,
411 ENUM_PHY_5G_OFDM_16QAM,
412 ENUM_PHY_5G_OFDM_48M,
413 ENUM_PHY_5G_OFDM_54M,
414 ENUM_PHY_5G_HT20_BPSK,
415 ENUM_PHY_5G_HT20_QPSK,
416 ENUM_PHY_5G_HT20_16QAM,
417 ENUM_PHY_5G_HT20_MCS5,
418 ENUM_PHY_5G_HT20_MCS6,
419 ENUM_PHY_5G_HT20_MCS7,
420 ENUM_PHY_5G_HT40_BPSK,
421 ENUM_PHY_5G_HT40_QPSK,
422 ENUM_PHY_5G_HT40_16QAM,
423 ENUM_PHY_5G_HT40_MCS5,
424 ENUM_PHY_5G_HT40_MCS6,
425 ENUM_PHY_5G_HT40_MCS7,
427 } ENUM_PHY_MODE_T, *P_ENUM_PHY_MODE_T;
429 typedef enum _ENUM_POWER_SAVE_POLL_MODE_T {
430 ENUM_POWER_SAVE_POLL_DISABLE,
431 ENUM_POWER_SAVE_POLL_LEGACY_NULL,
432 ENUM_POWER_SAVE_POLL_QOS_NULL,
433 ENUM_POWER_SAVE_POLL_NUM
434 } ENUM_POWER_SAVE_POLL_MODE_T, *P_ENUM_POWER_SAVE_POLL_MODE_T;
436 typedef enum _ENUM_AC_TYPE_T {
446 } ENUM_AC_TYPE_T, *P_ENUM_AC_TYPE_T;
448 typedef enum _ENUM_ADV_AC_TYPE_T {
449 ENUM_ADV_AC_TYPE_RX_NSW,
450 ENUM_ADV_AC_TYPE_RX_PTA,
451 ENUM_ADV_AC_TYPE_RX_SP,
452 ENUM_ADV_AC_TYPE_TX_PTA,
453 ENUM_ADV_AC_TYPE_TX_RSP,
455 } ENUM_ADV_AC_TYPE_T, *P_ENUM_ADV_AC_TYPE_T;
457 typedef enum _ENUM_REG_CH_MAP_T {
458 REG_CH_MAP_COUNTRY_CODE,
460 REG_CH_MAP_CUSTOMIZED,
462 } ENUM_REG_CH_MAP_T, *P_ENUM_REG_CH_MAP_T;
464 typedef struct _SET_TXPWR_CTRL_T{
465 INT_8 c2GLegacyStaPwrOffset; /* Unit: 0.5dBm, default: 0*/
466 INT_8 c2GHotspotPwrOffset;
467 INT_8 c2GP2pPwrOffset;
468 INT_8 c2GBowPwrOffset;
469 INT_8 c5GLegacyStaPwrOffset; /* Unit: 0.5dBm, default: 0*/
470 INT_8 c5GHotspotPwrOffset;
471 INT_8 c5GP2pPwrOffset;
472 INT_8 c5GBowPwrOffset;
473 UINT_8 ucConcurrencePolicy; /* TX power policy when concurrence
475 0: Highest power has priority
476 1: Lowest power has priority */
477 INT_8 acReserved1[3]; /* Must be zero */
479 /* Power limit by channel for all data rates */
480 INT_8 acTxPwrLimit2G[14]; /* Channel 1~14, Unit: 0.5dBm*/
481 INT_8 acTxPwrLimit5G[4]; /* UNII 1~4 */
482 INT_8 acReserved2[2]; /* Must be zero */
483 } SET_TXPWR_CTRL_T, *P_SET_TXPWR_CTRL_T;
485 /* For storing driver initialization value from glue layer */
486 typedef struct _REG_INFO_T {
487 UINT_32 u4SdBlockSize; /* SDIO block size */
488 UINT_32 u4SdBusWidth; /* SDIO bus width. 1 or 4 */
489 UINT_32 u4SdClockRate; /* SDIO clock rate. (in unit of HZ) */
490 UINT_32 u4StartAddress; /* Starting address of Wi-Fi Firmware */
491 UINT_32 u4LoadAddress; /* Load address of Wi-Fi Firmware */
492 UINT_16 aucFwImgFilename[65]; /* Firmware filename */
493 UINT_16 aucFwImgFilenameE6[65]; /* Firmware filename for E6 */
494 UINT_32 u4StartFreq; /* Start Frequency for Ad-Hoc network : in unit of KHz */
495 UINT_32 u4AdhocMode; /* Default mode for Ad-Hoc network : ENUM_PARAM_AD_HOC_MODE_T */
496 UINT_32 u4RddStartFreq;
497 UINT_32 u4RddStopFreq;
498 UINT_32 u4RddTestMode;
499 UINT_32 u4RddShutFreq;
501 INT_32 i4HighRssiThreshold;
502 INT_32 i4MediumRssiThreshold;
503 INT_32 i4LowRssiThreshold;
504 INT_32 au4TxPriorityTag[ENUM_AC_TYPE_NUM];
505 INT_32 au4RxPriorityTag[ENUM_AC_TYPE_NUM];
506 INT_32 au4AdvPriorityTag[ENUM_ADV_AC_TYPE_NUM];
507 UINT_32 u4FastPSPoll;
508 UINT_32 u4PTA; /* 0: disable, 1: enable */
509 UINT_32 u4TXLimit; /* 0: disable, 1: enable */
510 UINT_32 u4SilenceWindow; /* range: 100 - 625, unit: us */
511 UINT_32 u4TXLimitThreshold; /* range: 250 - 1250, unit: us */
513 UINT_32 fgEnArpFilter;
514 UINT_32 u4PsCurrentMeasureEn;
515 UINT_32 u4UapsdAcBmp;
517 UINT_32 fgDisOnlineScan; /* 0: enable online scan, non-zero: disable online scan*/
518 UINT_32 fgDisBcnLostDetection; /* 0: enable online scan, non-zero: disable online scan*/
519 UINT_32 u4FixedRate; /* 0: automatic, non-zero: fixed rate */
520 UINT_32 u4ArSysParam0;
521 UINT_32 u4ArSysParam1;
522 UINT_32 u4ArSysParam2;
523 UINT_32 u4ArSysParam3;
524 UINT_32 fgDisRoaming; /* 0:enable roaming 1:disable */
526 // NVRAM - MP Data -START-
527 UINT_8 aucMacAddr[6];
528 UINT_16 au2CountryCode[4]; /* Country code (in ISO 3166-1 expression, ex: "US", "TW") */
529 TX_PWR_PARAM_T rTxPwr;
530 UINT_8 aucEFUSE[144];
532 UINT_8 ucSupport5GBand;
533 UINT_8 fg2G4BandEdgePwrUsed;
534 INT_8 cBandEdgeMaxPwrCCK;
535 INT_8 cBandEdgeMaxPwrOFDM20;
536 INT_8 cBandEdgeMaxPwrOFDM40;
537 ENUM_REG_CH_MAP_T eRegChannelListMap;
538 UINT_8 ucRegChannelListIndex;
539 DOMAIN_INFO_ENTRY rDomainInfo;
540 // NVRAM - MP Data -END-
542 // NVRAM - Functional Data -START-
543 UINT_8 uc2G4BwFixed20M;
544 UINT_8 uc5GBwFixed20M;
545 UINT_8 ucEnable5GBand;
546 // NVRAM - Functional Data -END-
548 } REG_INFO_T, *P_REG_INFO_T;
550 /* for divided firmware loading */
551 typedef struct _FWDL_SECTION_INFO_T
557 } FWDL_SECTION_INFO_T, *P_FWDL_SECTION_INFO_T;
559 typedef struct _FIRMWARE_DIVIDED_DOWNLOAD_T
562 UINT_32 u4CRC; /* CRC calculated without first 8 bytes included */
563 UINT_32 u4NumOfEntries;
565 FWDL_SECTION_INFO_T arSection[];
566 } FIRMWARE_DIVIDED_DOWNLOAD_T, *P_FIRMWARE_DIVIDED_DOWNLOAD_T;
568 typedef struct _PARAM_MCR_RW_STRUC_T {
571 } PARAM_MCR_RW_STRUC_T, *P_PARAM_MCR_RW_STRUC_T;
574 /*******************************************************************************
575 * P U B L I C D A T A
576 ********************************************************************************
579 /*******************************************************************************
580 * P R I V A T E D A T A
581 ********************************************************************************
584 /*******************************************************************************
586 ********************************************************************************
588 #define BUILD_SIGN(ch0, ch1, ch2, ch3) \
589 ((UINT_32)(UINT_8)(ch0) | ((UINT_32)(UINT_8)(ch1) << 8) | \
590 ((UINT_32)(UINT_8)(ch2) << 16) | ((UINT_32)(UINT_8)(ch3) << 24 ))
592 #define MTK_WIFI_SIGNATURE BUILD_SIGN('M', 'T', 'K', 'W')
594 /*******************************************************************************
595 * F U N C T I O N D E C L A R A T I O N S
596 ********************************************************************************
601 IN P_GLUE_INFO_T prGlueInfo
606 IN P_ADAPTER_T prAdapter
611 IN P_ADAPTER_T prAdapter
616 IN P_ADAPTER_T prAdapter
621 IN P_ADAPTER_T prAdapter,
622 IN BOOLEAN fgGlobalIntrCtrl
626 wlanProcessCommandQueue (
627 IN P_ADAPTER_T prAdapter,
633 IN P_ADAPTER_T prAdapter,
634 IN P_CMD_INFO_T prCmdInfo
639 IN P_ADAPTER_T prAdapter,
640 IN P_CMD_INFO_T prCmdInfo
644 wlanReleasePendingOid (
645 IN P_ADAPTER_T prAdapter,
650 wlanReleasePendingCMDbyNetwork(
651 IN P_ADAPTER_T prAdapter,
652 IN ENUM_NETWORK_TYPE_INDEX_T eNetworkType
657 IN P_ADAPTER_T prAdapter,
662 wlanQueryInformation (
663 IN P_ADAPTER_T prAdapter,
664 IN PFN_OID_HANDLER_FUNC pfOidQryHandler,
666 IN UINT_32 u4InfoBufLen,
667 OUT PUINT_32 pu4QryInfoLen
672 IN P_ADAPTER_T prAdapter,
673 IN PFN_OID_HANDLER_FUNC pfOidSetHandler,
675 IN UINT_32 u4InfoBufLen,
676 OUT PUINT_32 pu4SetInfoLen
682 IN P_ADAPTER_T prAdapter,
683 IN P_REG_INFO_T prRegInfo,
684 IN PVOID pvFwImageMapFile,
685 IN UINT_32 u4FwImageFileLength
690 IN P_ADAPTER_T prAdapter
696 IN P_ADAPTER_T prAdapter
708 IN P_ADAPTER_T prAdapter,
709 IN BOOLEAN fgEnableBroadcast
713 wlanIsHandlerNeedHwAccess (
714 IN PFN_OID_HANDLER_FUNC pfnOidHandler,
719 wlanSetPromiscuousMode (
720 IN P_ADAPTER_T prAdapter,
721 IN BOOLEAN fgEnablePromiscuousMode
724 #if CFG_ENABLE_FW_DOWNLOAD
725 #if CFG_ENABLE_FW_DOWNLOAD_AGGREGATION
727 wlanImageSectionDownloadAggregated (
728 IN P_ADAPTER_T prAdapter,
729 IN UINT_32 u4DestAddr,
730 IN UINT_32 u4ImgSecSize,
731 IN PUINT_8 pucImgSecBuf
736 wlanImageSectionDownload (
737 IN P_ADAPTER_T prAdapter,
738 IN UINT_32 u4DestAddr,
739 IN UINT_32 u4ImgSecSize,
740 IN PUINT_8 pucImgSecBuf
743 #if !CFG_ENABLE_FW_DOWNLOAD_ACK
745 wlanImageQueryStatus(
746 IN P_ADAPTER_T prAdapter
750 wlanImageSectionDownloadStatus (
751 IN P_ADAPTER_T prAdapter,
752 IN UINT_8 ucCmdSeqNum
758 IN P_ADAPTER_T prAdapter,
760 IN UINT_32 u4StartAddress
771 wlanSendNicPowerCtrlCmd (
772 IN P_ADAPTER_T prAdapter,
773 IN UINT_8 ucPowerMode
777 wlanIsHandlerAllowedInRFTest (
778 IN PFN_OID_HANDLER_FUNC pfnOidHandler,
783 wlanProcessQueuedSwRfb (
784 IN P_ADAPTER_T prAdapter,
785 IN P_SW_RFB_T prSwRfbListHead
789 wlanProcessQueuedMsduInfo (
790 IN P_ADAPTER_T prAdapter,
791 IN P_MSDU_INFO_T prMsduInfoListHead
795 wlanoidTimeoutCheck (
796 IN P_ADAPTER_T prAdapter,
797 IN PFN_OID_HANDLER_FUNC pfnOidHandler
801 wlanoidClearTimeoutCheck (
802 IN P_ADAPTER_T prAdapter
806 wlanUpdateNetworkAddress (
807 IN P_ADAPTER_T prAdapter
812 IN P_ADAPTER_T prAdapter
815 /* Security Frame Handling */
817 wlanProcessSecurityFrame(
818 IN P_ADAPTER_T prAdapter,
819 IN P_NATIVE_PACKET prPacket
823 wlanSecurityFrameTxDone(
824 IN P_ADAPTER_T prAdapter,
825 IN P_CMD_INFO_T prCmdInfo,
826 IN PUINT_8 pucEventBuf
830 wlanSecurityFrameTxTimeout(
831 IN P_ADAPTER_T prAdapter,
832 IN P_CMD_INFO_T prCmdInfo
835 /*----------------------------------------------------------------------------*/
836 /* OID/IOCTL Handling */
837 /*----------------------------------------------------------------------------*/
839 wlanClearScanningResult(
840 IN P_ADAPTER_T prAdapter
844 wlanClearBssInScanningResult(
845 IN P_ADAPTER_T prAdapter,
849 #if CFG_TEST_WIFI_DIRECT_GO
851 wlanEnableP2pFunction(
852 IN P_ADAPTER_T prAdapter
857 IN P_ADAPTER_T prAdapter
862 /*----------------------------------------------------------------------------*/
863 /* Address Retreive by Polling */
864 /*----------------------------------------------------------------------------*/
866 wlanQueryPermanentAddress(
867 IN P_ADAPTER_T prAdapter
871 /*----------------------------------------------------------------------------*/
872 /* NIC Capability Retrieve by Polling */
873 /*----------------------------------------------------------------------------*/
875 wlanQueryNicCapability(
876 IN P_ADAPTER_T prAdapter
880 /*----------------------------------------------------------------------------*/
881 /* PD MCR Retrieve by Polling */
882 /*----------------------------------------------------------------------------*/
885 IN P_ADAPTER_T prAdapter,
886 IN P_PARAM_MCR_RW_STRUC_T prMcrRdInfo
888 /*----------------------------------------------------------------------------*/
889 /* Loading Manufacture Data */
890 /*----------------------------------------------------------------------------*/
892 wlanLoadManufactureData (
893 IN P_ADAPTER_T prAdapter,
894 IN P_REG_INFO_T prRegInfo
898 /*----------------------------------------------------------------------------*/
899 /* Media Stream Mode */
900 /*----------------------------------------------------------------------------*/
902 wlanResetMediaStreamMode(
903 IN P_ADAPTER_T prAdapter
907 /*----------------------------------------------------------------------------*/
908 /* Timer Timeout Check (for Glue Layer) */
909 /*----------------------------------------------------------------------------*/
911 wlanTimerTimeoutCheck(
912 IN P_ADAPTER_T prAdapter
916 /*----------------------------------------------------------------------------*/
917 /* Mailbox Message Check (for Glue Layer) */
918 /*----------------------------------------------------------------------------*/
920 wlanProcessMboxMessage(
921 IN P_ADAPTER_T prAdapter
925 /*----------------------------------------------------------------------------*/
926 /* TX Pending Packets Handling (for Glue Layer) */
927 /*----------------------------------------------------------------------------*/
929 wlanEnqueueTxPacket (
930 IN P_ADAPTER_T prAdapter,
931 IN P_NATIVE_PACKET prNativePacket
935 wlanFlushTxPendingPackets(
936 IN P_ADAPTER_T prAdapter
940 wlanTxPendingPackets (
941 IN P_ADAPTER_T prAdapter,
942 IN OUT PBOOLEAN pfgHwAccess
946 /*----------------------------------------------------------------------------*/
947 /* Low Power Acquire/Release (for Glue Layer) */
948 /*----------------------------------------------------------------------------*/
950 wlanAcquirePowerControl(
951 IN P_ADAPTER_T prAdapter
955 wlanReleasePowerControl(
956 IN P_ADAPTER_T prAdapter
960 /*----------------------------------------------------------------------------*/
961 /* Pending Packets Number Reporting (for Glue Layer) */
962 /*----------------------------------------------------------------------------*/
964 wlanGetTxPendingFrameCount (
965 IN P_ADAPTER_T prAdapter
969 /*----------------------------------------------------------------------------*/
970 /* ACPI state inquiry (for Glue Layer) */
971 /*----------------------------------------------------------------------------*/
974 IN P_ADAPTER_T prAdapter
979 IN P_ADAPTER_T prAdapter,
980 IN ENUM_ACPI_STATE_T ePowerState
983 #if CFG_SUPPORT_OSC_SETTING && defined(MT5931)
985 wlanSetMcuOscStableTime (
986 IN P_ADAPTER_T prAdapter,
987 IN UINT_16 u2OscStableTime
993 IN P_ADAPTER_T prAdapter
996 /*----------------------------------------------------------------------------*/
997 /* get ECO version from Revision ID register (for Win32) */
998 /*----------------------------------------------------------------------------*/
1001 IN P_ADAPTER_T prAdapter
1004 /*----------------------------------------------------------------------------*/
1005 /* set preferred band configuration corresponding to network type */
1006 /*----------------------------------------------------------------------------*/
1008 wlanSetPreferBandByNetwork (
1009 IN P_ADAPTER_T prAdapter,
1010 IN ENUM_BAND_T eBand,
1011 IN ENUM_NETWORK_TYPE_INDEX_T eNetTypeIndex
1014 /*----------------------------------------------------------------------------*/
1015 /* get currently operating channel information */
1016 /*----------------------------------------------------------------------------*/
1018 wlanGetChannelNumberByNetwork (
1019 IN P_ADAPTER_T prAdapter,
1020 IN ENUM_NETWORK_TYPE_INDEX_T eNetTypeIndex
1023 /*----------------------------------------------------------------------------*/
1024 /* get BSS Descriptor information */
1025 /*----------------------------------------------------------------------------*/
1027 wlanGetTargetBssDescByNetwork (
1028 IN P_ADAPTER_T prAdapter,
1029 IN ENUM_NETWORK_TYPE_INDEX_T eNetTypeIndex
1032 /*----------------------------------------------------------------------------*/
1033 /* check for system configuration to generate message on scan list */
1034 /*----------------------------------------------------------------------------*/
1036 wlanCheckSystemConfiguration (
1037 IN P_ADAPTER_T prAdapter
1041 #endif /* _WLAN_LIB_H */