2 ** $Id: //Department/DaVinci/BRANCHES/MT6620_WIFI_DRIVER_V2_3/include/nic/adapter.h#3 $
6 \brief Definition of internal data structure for driver manipulation.
8 In this file we define the internal data structure - ADAPTER_T which stands
9 for MiniPort ADAPTER(From Windows point of view) or stands for Network ADAPTER.
18 ** [ALPS00382763] N820_JB:[WIFI]N820JB WLAN ±K???,«ÝÉó?¬y¥\¯Ó¤j
19 ** do not try reconnecting when being disconnected by the peer
21 ** 08 31 2012 yuche.tsai
22 ** [ALPS00349585] [6577JB][WiFi direct][KE]Establish p2p connection while both device have connected to AP previously,one device reboots automatically with KE
23 ** Fix possible KE when concurrent & disconnect.
25 ** 07 26 2012 yuche.tsai
26 ** [ALPS00324337] [ALPS.JB][Hot-Spot] Driver update for Hot-Spot
27 ** Update driver code of ALPS.JB for hot-spot.
29 * 07 17 2012 yuche.tsai
31 * Let netdev bring up.
33 * 07 17 2012 yuche.tsai
35 * Compile no error before trial run.
37 * 06 13 2012 yuche.tsai
39 * Update maintrunk driver.
40 * Add support for driver compose assoc request frame.
44 * Snc CFG80211 modification for ICS migration from branch 2.2.
48 * Sync CFG80211 modification from branch 2,2.
51 * [MT6620 Wi-Fi][Driver] API and behavior modification for preferred band configuration with corresponding network configuration
52 * add wlanSetPreferBandByNetwork() for glue layer to invoke for setting preferred band configuration corresponding to network type.
55 * [WCXRP00001136] [All Wi-Fi][Driver] Add wake lock for pending timer
56 * Add wake lock if timer timeout value is smaller than 5 seconds
58 * 12 02 2011 yuche.tsai
60 * Resolve inorder issue under AP mode.
62 * data frame may TX before assoc response frame.
64 * 11 19 2011 yuche.tsai
66 * Update RSSI for P2P.
68 * 11 18 2011 yuche.tsai
70 * CONFIG P2P support RSSI query, default turned off.
72 * 11 11 2011 yuche.tsai
74 * Fix work thread cancel issue.
76 * 10 21 2011 eddie.chen
77 * [WCXRP00001051] [MT6620 Wi-Fi][Driver/Fw] Adjust the STA aging timeout
78 * Add switch to ignore the STA aging timeout.
81 * [WCXRP00001036] [MT6620 Wi-Fi][Driver][FW] Adding the 802.11w code for MFP
82 * adding the 802.11w related function and define .
85 * [WCXRP00000997] [MT6620 Wi-Fi][Driver][FW] Handle change of BSS preamble type and slot time
86 * Remove ERP member in adapter structure
88 * 09 14 2011 yuche.tsai
90 * Add P2P IE in assoc response.
93 * [WCXRP00000969] [MT6620 Wi-Fi][Driver][FW] Channel list for 5G band based on country code
96 * 07 18 2011 chinghwa.yu
97 * [WCXRP00000063] Update BCM CoEx design and settings[WCXRP00000612] [MT6620 Wi-Fi] [FW] CSD update SWRDD algorithm
98 * Add CMD/Event for RDD and BWCS.
101 * [WCXRP00000812] [MT6620 Wi-Fi][Driver] not show NVRAM when there is no valid MAC address in NVRAM content
102 * check with firmware for valid MAC address.
104 * 04 18 2011 terry.wu
105 * [WCXRP00000660] [MT6620 Wi-Fi][Driver] Remove flag CFG_WIFI_DIRECT_MOVED
106 * Remove flag CFG_WIFI_DIRECT_MOVED.
108 * 04 12 2011 cm.chang
109 * [WCXRP00000634] [MT6620 Wi-Fi][Driver][FW] 2nd BSS will not support 40MHz bandwidth for concurrency
112 * 04 08 2011 yuche.tsai
113 * [WCXRP00000624] [Volunteer Patch][MT6620][Driver] Add device discoverability support for GO.
114 * Add device discoverability support.
115 * Action frame callback for GO Device Discoverability Req.
117 * 04 08 2011 george.huang
118 * [WCXRP00000621] [MT6620 Wi-Fi][Driver] Support P2P supplicant to set power mode
119 * separate settings of P2P and AIS
121 * 04 08 2011 eddie.chen
122 * [WCXRP00000617] [MT6620 Wi-Fi][DRV/FW] Fix for sigma
125 * 03 19 2011 yuche.tsai
126 * [WCXRP00000584] [Volunteer Patch][MT6620][Driver] Add beacon timeout support for WiFi Direct.
127 * Add beacon timeout support for WiFi Direct Network.
129 * 03 19 2011 yuche.tsai
130 * [WCXRP00000581] [Volunteer Patch][MT6620][Driver] P2P IE in Assoc Req Issue
131 * Make assoc req to append P2P IE if wifi direct is enabled.
134 * [WCXRP00000562] [MT6620 Wi-Fi][Driver] I/O buffer pre-allocation to avoid physically continuous memory shortage after system running for a long period
135 * use pre-allocated buffer for storing enhanced interrupt response as well
138 * [WCXRP00000559] [MT6620 Wi-Fi][Driver] Combine TX/RX DMA buffers into a single one to reduce physically continuous memory consumption
139 * 1. deprecate CFG_HANDLE_IST_IN_SDIO_CALLBACK
140 * 2. Use common coalescing buffer for both TX/RX directions
143 * 03 10 2011 yuche.tsai
144 * [WCXRP00000533] [Volunteer Patch][MT6620][Driver] Provide a P2P function API for Legacy WiFi to query AP mode.
145 * Provide an API for Legacy WiFi to query the operation mode..
148 * [WCXRP00000506] [MT6620 Wi-Fi][Driver][FW] Add Security check related code
149 * add the code to get the check rsponse and indicate to app.
152 * [WCXRP00000448] [MT6620 Wi-Fi][Driver] Fixed WSC IE not send out at probe request
153 * Add code to send beacon and probe response WSC IE at Auto GO.
156 * [WCXRP00000503] [MT6620 Wi-Fi][Driver] Take RCPI brought by association response as initial RSSI right after connection is built.
157 * use RCPI brought by ASSOC-RESP after connection is built as initial RCPI to avoid using a uninitialized MAC-RX RCPI.
159 * 02 21 2011 terry.wu
160 * [WCXRP00000476] [MT6620 Wi-Fi][Driver] Clean P2P scan list while removing P2P
161 * Clean P2P scan list while removing P2P.
163 * 02 17 2011 eddie.chen
164 * [WCXRP00000458] [MT6620 Wi-Fi][Driver] BOW Concurrent - ProbeResp was exist in other channel
165 * 1) Chnage GetFrameAction decision when BSS is absent.
166 * 2) Check channel and resource in processing ProbeRequest
168 * 02 16 2011 cm.chang
169 * [WCXRP00000447] [MT6620 Wi-Fi][FW] Support new NVRAM update mechanism
172 * 02 10 2011 yuche.tsai
173 * [WCXRP00000431] [Volunteer Patch][MT6620][Driver] Add MLME support for deauthentication under AP(Hot-Spot) mode.
174 * Add RX deauthentication & disassociation process under Hot-Spot mode.
177 * [WCXRP00000433] [MT6620 Wi-Fi][Driver] Remove WAPI structure define for avoid P2P module with structure miss-align pointer issue
178 * always pre-allio WAPI related structure for align p2p module.
180 * 02 08 2011 yuche.tsai
181 * [WCXRP00000419] [Volunteer Patch][MT6620/MT5931][Driver] Provide function of disconnect to target station for AAA module.
182 * Provide disconnect function for AAA module.
184 * 02 01 2011 cm.chang
185 * [WCXRP00000415] [MT6620 Wi-Fi][Driver] Check if any memory leakage happens when uninitializing in DGB mode
188 * 01 27 2011 tsaiyuan.hsu
189 * [WCXRP00000392] [MT6620 Wi-Fi][Driver] Add Roaming Support
191 * 1. not support 11r, only use strength of signal to determine roaming.
192 * 2. not enable CFG_SUPPORT_ROAMING until completion of full test.
193 * 3. in 6620, adopt work-around to avoid sign extension problem of cck of hw
194 * 4. assume that change of link quality in smooth way.
196 * 01 27 2011 george.huang
197 * [WCXRP00000400] [MT6620 Wi-Fi] support CTIA power mode setting
198 * Support CTIA power mode setting.
200 * 01 27 2011 george.huang
201 * [WCXRP00000355] [MT6620 Wi-Fi] Set WMM-PS related setting with qualifying AP capability
202 * Support current measure mode, assigned by registry (XP only).
205 * [WCXRP00000382] [MT6620 Wi-Fi][Driver] Track forwarding packet number with notifying tx thread for serving
206 * 1. add an extra counter for tracking pending forward frames.
207 * 2. notify TX service thread as well when there is pending forward frame
208 * 3. correct build errors leaded by introduction of Wi-Fi direct separation module
210 * 01 12 2011 cm.chang
211 * [WCXRP00000354] [MT6620 Wi-Fi][Driver][FW] Follow NVRAM bandwidth setting
212 * User-defined bandwidth is for 2.4G and 5G individually
214 * 12 29 2010 eddie.chen
215 * [WCXRP00000322] Add WMM IE in beacon,
217 Add per station flow control when STA is in PS
220 * Add WMM parameter for broadcast.
222 * 12 29 2010 eddie.chen
223 * [WCXRP00000322] Add WMM IE in beacon,
225 Add per station flow control when STA is in PS
228 * Add CWMin CWMax for AP to generate IE.
230 * 12 29 2010 eddie.chen
231 * [WCXRP00000322] Add WMM IE in beacon,
232 Add per station flow control when STA is in PS
234 * 1) PS flow control event
236 * 2) WMM IE in beacon, assoc resp, probe resp
239 * [WCXRP00000269] [MT6620 Wi-Fi][Driver][Firmware] Prepare for v1.1 branch release
240 * report EEPROM used flag via NIC_CAPABILITY
243 * [WCXRP00000269] [MT6620 Wi-Fi][Driver][Firmware] Prepare for v1.1 branch release
244 * integrate with 'EEPROM used' flag for reporting correct capability to Engineer Mode/META and other tools
246 * 12 07 2010 cm.chang
247 * [WCXRP00000238] MT6620 Wi-Fi][Driver][FW] Support regulation domain setting from NVRAM and supplicant
248 * 1. Country code is from NVRAM or supplicant
249 * 2. Change band definition in CMD/EVENT.
252 * [WCXRP00000056] [MT6620 Wi-Fi][Driver] NVRAM implementation with Version Check[WCXRP00000150] [MT6620 Wi-Fi][Driver] Add implementation for querying current TX rate from firmware auto rate module
253 * 1) Query link speed (TX rate) from firmware directly with buffering mechanism to reduce overhead
254 * 2) Remove CNM CH-RECOVER event handling
255 * 3) cfg read/write API renamed with kal prefix for unified naming rules.
257 * 10 27 2010 george.huang
258 * [WCXRP00000127] [MT6620 Wi-Fi][Driver] Add a registry to disable Beacon Timeout function for SQA test by using E1 EVB
259 * Support registry option for disable beacon lost detection.
262 * [WCXRP00000056] [MT6620 Wi-Fi][Driver] NVRAM implementation with Version Check[WCXRP00000137] [MT6620 Wi-Fi] [FW] Support NIC capability query command
263 * 1) update NVRAM content template to ver 1.02
264 * 2) add compile option for querying NIC capability (default: off)
265 * 3) modify AIS 5GHz support to run-time option, which could be turned on by registry or NVRAM setting
266 * 4) correct auto-rate compiler error under linux (treat warning as error)
267 * 5) simplify usage of NVRAM and REG_INFO_T
268 * 6) add version checking between driver and firmware
271 * [WCXRP00000084] [MT6620 Wi-Fi][Driver][FW] Add fixed rate support for distance test
272 * adding fixed rate support for distance test. (from registry setting)
275 * [WCXRP00000052] [MT6620 Wi-Fi][Driver] Eliminate Linux Compile Warning
276 * code reorganization to improve isolation between GLUE and CORE layers.
279 * [WCXRP00000056] [MT6620 Wi-Fi][Driver] NVRAM implementation with Version Check
280 * 1) add NVRAM access API
281 * 2) fake scanning result when NVRAM doesn't exist and/or version mismatch. (off by compiler option)
282 * 3) add OID implementation for NVRAM read/write service
284 * 09 27 2010 chinghwa.yu
285 * [WCXRP00000063] Update BCM CoEx design and settings[WCXRP00000065] Update BoW design and settings
286 * Update BCM/BoW design and settings.
289 * [WCXRP00000057] [MT6620 Wi-Fi][Driver] Modify online scan to a run-time switchable feature
290 * Modify online scan as a run-time adjustable option (for Windows, in registry)
293 * [WCXRP00000051] [MT6620 Wi-Fi][Driver] WHQL test fail in MAC address changed item
294 * use firmware reported mac address right after wlanAdapterStart() as permanent address
298 * use static memory pool for storing IEs of scanning result.
300 * 09 07 2010 yuche.tsai
302 * Add a common IE buffer in P2P INFO structure.
304 * 09 03 2010 kevin.huang
306 * Refine #include sequence and solve recursive/nested #include issue
310 * restore configuration as before.
314 * adding the wapi support for integration test.
316 * 08 31 2010 kevin.huang
318 * Use LINK LIST operation to process SCAN result
320 * 08 29 2010 yuche.tsai
322 * Finish SLT TX/RX & Rate Changing Support.
324 * 08 25 2010 george.huang
326 * update OID/ registry control path for PM related settings
328 * 08 24 2010 cm.chang
330 * Support RLM initail channel of Ad-hoc, P2P and BOW
332 * 08 23 2010 chinghwa.yu
336 * 08 20 2010 cm.chang
338 * Migrate RLM code to host from FW
340 * 08 16 2010 yuche.tsai
342 * Add an intend mode for BSS info.
343 * It is used to let P2P BSS Info to know which OP Mode it is going to become.
345 * 08 04 2010 george.huang
347 * handle change PS mode OID/ CMD
351 * comment out deprecated members in BSS_INFO, which are only used by firmware rather than driver.
355 * eliminate u4FreqInKHz usage, combined into rConnections.ucAdHoc*
359 * 1) eliminate redundant variable eOPMode in prAdapter->rWlanInfo
360 * 2) change nicMediaStateChange() API prototype
364 * .support the Wi-Fi RSN
366 * 07 21 2010 yuche.tsai
368 * Add for P2P Scan Result Parsing & Saving.
372 * update for security supporting.
374 * 07 19 2010 cm.chang
376 * Set RLM parameters and enable CNM channel manager
378 * 07 19 2010 yuche.tsai
380 * Remove BSS info which is redonedent in Wifi Var..
382 * 07 16 2010 yarco.yang
384 * 1. Support BSS Absence/Presence Event
385 * 2. Support STA change PS mode Event
386 * 3. Support BMC forwarding for AP mode.
388 * 07 14 2010 yarco.yang
390 * 1. Remove CFG_MQM_MIGRATION
391 * 2. Add CMD_UPDATE_WMM_PARMS command
393 * 07 09 2010 george.huang
395 * [WPD00001556] Migrate PM variables from FW to driver: for composing QoS Info
399 * [WPD00003833] [MT6620 and MT5931] Driver migration - move to new repository.
401 * 07 08 2010 cm.chang
402 * [WPD00003841][LITE Driver] Migrate RLM/CNM to host driver
403 * Check draft RLM code for HT cap
405 * 06 29 2010 yarco.yang
406 * [WPD00003837][MT6620]Data Path Refine
407 * replace g_rQM with Adpater->rQM
409 * 06 28 2010 cm.chang
410 * [WPD00003841][LITE Driver] Migrate RLM/CNM to host driver
411 * 1st draft code for RLM module
414 * [WPD00003840][MT6620 5931] Security migration
415 * remove duplicate variable for migration.
418 * [WPD00003840][MT6620 5931] Security migration
419 * modify some code for concurrent network.
421 * 06 21 2010 yuche.tsai
422 * [WPD00003839][MT6620 5931][P2P] Feature migration
423 * Add P2P FSM Info in adapter.
425 * 06 21 2010 yarco.yang
426 * [WPD00003837][MT6620]Data Path Refine
427 * Support CFG_MQM_MIGRATION flag
429 * 06 18 2010 cm.chang
430 * [WPD00003841][LITE Driver] Migrate RLM/CNM to host driver
431 * Provide cnmMgtPktAlloc() and alloc/free function of msg/buf
434 * [WPD00003840][MT6620 5931] Security migration
435 * migration the security related function from firmware.
437 * 06 17 2010 yuche.tsai
438 * [WPD00003839][MT6620 5931][P2P] Feature migration
439 * Add P2P related field, additional include p2p_fsm.h if p2p is enabled.
442 * [WPD00003833][MT6620 and MT5931] Driver migration
446 * [WPD00003833][MT6620 and MT5931] Driver migration
447 * add management dispatching function table.
450 * [WPD00003833][MT6620 and MT5931] Driver migration
451 * auth.c is migrated.
454 * [WPD00003833][MT6620 and MT5931] Driver migration
455 * 1) migrate assoc.c.
456 * 2) add ucTxSeqNum for tracking frames which needs TX-DONE awareness
457 * 3) add configuration options for CNM_MEM and RSN modules
458 * 4) add data path for management frames
459 * 5) eliminate rPacketInfo of MSDU_INFO_T
462 * [WPD00003833][MT6620 and MT5931] Driver migration
463 * add buildable & linkable ais_fsm.c
465 * related reference are still waiting to be resolved
468 * [WPD00003833][MT6620 and MT5931] Driver migration
469 * add definitions for module migration.
472 * [WPD00003833][MT6620 and MT5931] Driver migration
473 * cnm_timer has been migrated.
476 * [WPD00003833][MT6620 and MT5931] Driver migration
477 * hem_mbox is migrated.
480 * [WPD00003833][MT6620 and MT5931] Driver migration
481 * merge wifi_var.h, precomp.h, cnm_timer.h (data type only)
483 * 06 06 2010 kevin.huang
484 * [WPD00003832][MT6620 5931] Create driver base
485 * [MT6620 5931] Create driver base
488 * [WPD00001943]Create WiFi test driver framework on WinXP
489 * change OID behavior to meet WHQL requirement.
492 * [WPD00001943]Create WiFi test driver framework on WinXP
493 * 1) integrate OID_GEN_NETWORK_LAYER_ADDRESSES with CMD_ID_SET_IP_ADDRESS
494 * 2) buffer statistics data for 2 seconds
495 * 3) use default value for adhoc parameters instead of 0
498 * [WPD00001943]Create WiFi test driver framework on WinXP
499 * 1) do not take timeout mechanism for power mode oids
500 * 2) retrieve network type from connection status
501 * 3) after disassciation, set radio state to off
502 * 4) TCP option over IPv6 is supported
505 * [WPD00001943]Create WiFi test driver framework on WinXP
506 * implement Wakeup-on-LAN except firmware integration part
509 * [WPD00001943]Create WiFi test driver framework on WinXP
510 * reserve field of privacy filter and RTS threshold setting.
513 * [WPD00003823][MT6620 Wi-Fi] Add Bluetooth-over-Wi-Fi support
514 * add framework for BT-over-Wi-Fi support.
515 * * * * * * 1) prPendingCmdInfo is replaced by queue for multiple handler capability
516 * * * * * * 2) command sequence number is now increased atomically
517 * * * * * * 3) private data could be hold and taken use for other purpose
520 * [WPD00001943]Create WiFi test driver framework on WinXP
521 * rWlanInfo should be placed at adapter rather than glue due to most operations
522 * * * are done in adapter layer.
525 * [WPD00001943]Create WiFi test driver framework on WinXP
526 * code refine: fgTestMode should be at adapter rather than glue due to the device/fw is also involved
529 * [WPD00003816][MT6620 Wi-Fi] Adding the security support
530 * modify the wapi related code for new driver's design.
533 * [WPD00001943]Create WiFi test driver framework on WinXP
534 * 1) add ACPI D0/D3 state switching support
535 * * * 2) use more formal way to handle interrupt when the status is retrieved from enhanced RX response
538 * [WPD00001943]Create WiFi test driver framework on WinXP
539 * implement OID_802_3_MULTICAST_LIST oid handling
542 * [WPD00001943]Create WiFi test driver framework on WinXP
543 * 1) the use of prPendingOid revised, all accessing are now protected by spin lock
544 * * * 2) ensure wlanReleasePendingOid will clear all command queues
547 * [WPD00001943]Create WiFi test driver framework on WinXP
548 * move ucCmdSeqNum as instance variable
551 * [WPD00003816][MT6620 Wi-Fi] Adding the security support
555 * [WPD00001943]Create WiFi test driver framework on WinXP
556 * 1. eliminate improper variable in rHifInfo
557 * * * 2. block TX/ordinary OID when RF test mode is engaged
558 * * * 3. wait until firmware finish operation when entering into and leaving from RF test mode
559 * * * 4. correct some HAL implementation
562 * [WPD00001943]Create WiFi test driver framework on WinXP
563 * 1) According to CMD/EVENT documentation v0.8,
564 * * * OID_CUSTOM_TEST_RX_STATUS & OID_CUSTOM_TEST_TX_STATUS is no longer used,
565 * * * and result is retrieved by get ATInfo instead
566 * * * 2) add 4 counter for recording aggregation statistics
569 * [WPD00001943]Create WiFi test driver framework on WinXP
570 * eliminate redundant variables for connection_state
571 ** \main\maintrunk.MT6620WiFiDriver_Prj\13 2009-12-16 18:02:03 GMT mtk02752
572 ** add external reference to avoid compilation error
573 ** \main\maintrunk.MT6620WiFiDriver_Prj\12 2009-12-10 16:40:26 GMT mtk02752
574 ** eliminate unused member
575 ** \main\maintrunk.MT6620WiFiDriver_Prj\11 2009-12-08 17:36:08 GMT mtk02752
576 ** add RF test data members into P_ADAPTER_T
577 ** \main\maintrunk.MT6620WiFiDriver_Prj\10 2009-10-13 21:58:45 GMT mtk01084
578 ** update for new HW architecture design
579 ** \main\maintrunk.MT6620WiFiDriver_Prj\9 2009-04-28 10:29:57 GMT mtk01461
580 ** Add read WTSR for SDIO_STATUS_ENHANCE mode
581 ** \main\maintrunk.MT6620WiFiDriver_Prj\8 2009-04-21 09:37:35 GMT mtk01461
582 ** Add prPendingCmdInfoOfOID for temporarily saving the CMD_INFO_T before en-queue to rCmdQueue
583 ** \main\maintrunk.MT6620WiFiDriver_Prj\7 2009-04-17 19:57:51 GMT mtk01461
584 ** Add MGMT Buffer Info
585 ** \main\maintrunk.MT6620WiFiDriver_Prj\6 2009-04-01 10:34:12 GMT mtk01461
586 ** Add SW pre test CFG_HIF_LOOPBACK_PRETEST
587 ** \main\maintrunk.MT6620WiFiDriver_Prj\5 2009-03-23 21:41:48 GMT mtk01461
588 ** Add fgIsWmmAssoc flag for TC assignment
589 ** \main\maintrunk.MT6620WiFiDriver_Prj\4 2009-03-19 18:32:51 GMT mtk01084
590 ** update for basic power management functions
591 ** \main\maintrunk.MT6620WiFiDriver_Prj\3 2009-03-18 20:51:52 GMT mtk01426
592 ** Add #if CFG_SDIO_RX_ENHANCE related data structure
593 ** \main\maintrunk.MT6620WiFiDriver_Prj\2 2009-03-10 20:16:17 GMT mtk01426
601 /*******************************************************************************
602 * C O M P I L E R F L A G S
603 ********************************************************************************
606 /*******************************************************************************
607 * E X T E R N A L R E F E R E N C E S
608 ********************************************************************************
611 /*******************************************************************************
613 ********************************************************************************
616 /*******************************************************************************
618 ********************************************************************************
620 typedef struct _ENHANCE_MODE_DATA_STRUCT_T SDIO_CTRL_T, *P_SDIO_CTRL_T;
622 typedef struct _WLAN_INFO_T {
623 PARAM_BSSID_EX_T rCurrBssId;
626 PARAM_BSSID_EX_T arScanResult[CFG_MAX_NUM_BSS_LIST];
627 PUINT_8 apucScanResultIEs[CFG_MAX_NUM_BSS_LIST];
628 UINT_32 u4ScanResultNum;
630 // IE pool for Scanning Result
631 UINT_8 aucScanIEBuf[CFG_MAX_COMMON_IE_BUF_LEN];
632 UINT_32 u4ScanIEBufferUsage;
634 OS_SYSTIME u4SysTime;
636 // connection parameter (for Ad-Hoc)
637 UINT_16 u2BeaconPeriod;
638 UINT_16 u2AtimWindow;
640 PARAM_RATES eDesiredRates;
641 CMD_LINK_ATTRIB eLinkAttr;
642 // CMD_PS_PROFILE_T ePowerSaveMode;
643 CMD_PS_PROFILE_T arPowerSaveMode[NETWORK_TYPE_INDEX_NUM];
646 ENUM_RSSI_TRIGGER_TYPE eRssiTriggerType;
647 PARAM_RSSI rRssiTriggerValue;
650 ENUM_PARAM_PRIVACY_FILTER_T ePrivacyFilter;
653 PARAM_RTS_THRESHOLD eRtsThreshold;
656 UINT_8 ucNetworkType;
658 // Network Type In Use
659 UINT_8 ucNetworkTypeInUse;
661 } WLAN_INFO_T, *P_WLAN_INFO_T;
663 /* Session for CONNECTION SETTINGS */
664 typedef struct _CONNECTION_SETTINGS_T {
666 UINT_8 aucMacAddress[MAC_ADDR_LEN];
668 UINT_8 ucDelayTimeOfDisconnectEvent;
670 BOOLEAN fgIsConnByBssidIssued;
671 UINT_8 aucBSSID[MAC_ADDR_LEN];
673 BOOLEAN fgIsConnReqIssued;
674 BOOLEAN fgIsDisconnectedByNonRequest;
677 UINT_8 aucSSID[ELEM_MAX_LEN_SSID];
679 ENUM_PARAM_OP_MODE_T eOPMode;
681 ENUM_PARAM_CONNECTION_POLICY_T eConnectionPolicy;
683 ENUM_PARAM_AD_HOC_MODE_T eAdHocMode;
685 ENUM_PARAM_AUTH_MODE_T eAuthMode;
687 ENUM_PARAM_ENCRYPTION_STATUS_T eEncStatus;
689 BOOLEAN fgIsScanReqIssued;
693 UINT_16 u2BeaconPeriod;
695 UINT_16 u2RTSThreshold; /* User desired setting */
697 UINT_16 u2DesiredNonHTRateSet; /* User desired setting */
699 UINT_8 ucAdHocChannelNum; /* For AdHoc */
701 ENUM_BAND_T eAdHocBand; /* For AdHoc */
703 UINT_32 u4FreqInKHz; /* Center frequency */
705 /* ATIM windows using for IBSS power saving function */
706 UINT_16 u2AtimWindow;
709 BOOLEAN fgIsEnableRoaming;
711 BOOLEAN fgIsAdHocQoSEnable;
713 ENUM_PARAM_PHY_CONFIG_T eDesiredPhyConfig;
715 /* Used for AP mode for desired channel and bandwidth */
716 UINT_16 u2CountryCode;
717 UINT_8 uc2G4BandwidthMode; /* 20/40M or 20M only */
718 UINT_8 uc5GBandwidthMode; /* 20/40M or 20M only */
720 BOOLEAN fgTxShortGIDisabled;
721 BOOLEAN fgRxShortGIDisabled;
723 #if CFG_SUPPORT_802_11D
724 BOOLEAN fgMultiDomainCapabilityEnabled;
725 #endif /* CFG_SUPPORT_802_11D*/
728 #if 1 //CFG_SUPPORT_WAPI
730 UINT_32 u4WapiSelectedGroupCipher;
731 UINT_32 u4WapiSelectedPairwiseCipher;
732 UINT_32 u4WapiSelectedAKMSuite;
736 /* for WPS, disable the privacy check for AP selection policy */
737 BOOLEAN fgPrivacyCheckDisable;
739 /* b0~3: trigger-en AC0~3. b4~7: delivery-en AC0~3 */
742 /* for RSN info store, when upper layer set rsn info */
745 } CONNECTION_SETTINGS_T, *P_CONNECTION_SETTINGS_T;
749 ENUM_PARAM_MEDIA_STATE_T eConnectionState; /* Connected Flag used in AIS_NORMAL_TR */
750 ENUM_PARAM_MEDIA_STATE_T eConnectionStateIndicated; /* The Media State that report to HOST */
752 ENUM_OP_MODE_T eCurrentOPMode; /* Current Operation Mode - Infra/IBSS */
753 #if CFG_ENABLE_WIFI_DIRECT
754 ENUM_OP_MODE_T eIntendOPMode;
757 BOOLEAN fgIsNetActive; /* TRUE if this network has been activated */
759 UINT_8 ucNetTypeIndex; /* ENUM_NETWORK_TYPE_INDEX_T */
761 UINT_8 ucReasonOfDisconnect; /* Used by media state indication */
763 UINT_8 ucSSIDLen; /* Length of SSID */
765 #if CFG_ENABLE_WIFI_DIRECT
766 ENUM_HIDDEN_SSID_TYPE_T eHiddenSsidType; /* For Hidden SSID usage. */
769 UINT_8 aucSSID[ELEM_MAX_LEN_SSID]; /* SSID used in this BSS */
771 UINT_8 aucBSSID[MAC_ADDR_LEN]; /* The BSSID of the associated BSS */
773 UINT_8 aucOwnMacAddr[MAC_ADDR_LEN];/* Owned MAC Address used in this BSS */
775 P_STA_RECORD_T prStaRecOfAP; /* For Infra Mode, and valid only if
776 * eConnectionState == MEDIA_STATE_CONNECTED
778 LINK_T rStaRecOfClientList; /* For IBSS/AP Mode, all known STAs in current BSS */
780 UINT_16 u2CapInfo; /* Change Detection */
782 UINT_16 u2BeaconInterval; /* The Beacon Interval of this BSS */
785 UINT_16 u2ATIMWindow; /* For IBSS Mode */
787 UINT_16 u2AssocId; /* For Infra Mode, it is the Assoc ID assigned by AP.
791 UINT_8 ucDTIMPeriod; /* For Infra/AP Mode */
793 UINT_8 ucDTIMCount; /* For AP Mode, it is the DTIM value we should carried in
794 * the Beacon of next TBTT.
797 UINT_8 ucPhyTypeSet; /* Available PHY Type Set of this peer
798 * (This is deduced from received BSS_DESC_T)
801 UINT_8 ucNonHTBasicPhyType; /* The Basic PHY Type Index, used to setup Phy Capability */
803 UINT_8 ucConfigAdHocAPMode; /* The configuration of AdHoc/AP Mode. e.g. 11g or 11b */
805 UINT_8 ucBeaconTimeoutCount; /* For Infra/AP Mode, it is a threshold of Beacon Lost Count to
806 confirm connection was lost */
808 BOOLEAN fgHoldSameBssidForIBSS; /* For IBSS Mode, to keep use same BSSID to extend the life cycle of an IBSS */
810 BOOLEAN fgIsBeaconActivated; /* For AP/IBSS Mode, it is used to indicate that Beacon is sending */
812 P_MSDU_INFO_T prBeacon; /* For AP/IBSS Mode - Beacon Frame */
814 BOOLEAN fgIsIBSSMaster; /* For IBSS Mode - To indicate that we can reply ProbeResp Frame.
815 In current TBTT interval */
817 BOOLEAN fgIsShortPreambleAllowed; /* From Capability Info. of AssocResp Frame AND of Beacon/ProbeResp Frame */
818 BOOLEAN fgUseShortPreamble; /* Short Preamble is enabled in current BSS. */
819 BOOLEAN fgUseShortSlotTime; /* Short Slot Time is enabled in current BSS. */
821 UINT_16 u2OperationalRateSet; /* Operational Rate Set of current BSS */
822 UINT_16 u2BSSBasicRateSet; /* Basic Rate Set of current BSS */
825 UINT_8 ucAllSupportedRatesLen; /* Used for composing Beacon Frame in AdHoc or AP Mode */
826 UINT_8 aucAllSupportedRates[RATE_NUM];
828 UINT_8 ucAssocClientCnt; /* TODO(Kevin): Number of associated clients */
830 BOOLEAN fgIsProtection;
831 BOOLEAN fgIsQBSS; /* fgIsWmmBSS; */ /* For Infra/AP/IBSS Mode, it is used to indicate if we support WMM in
833 BOOLEAN fgIsNetAbsent; /* TRUE: BSS is absent, FALSE: BSS is present */
835 UINT_32 u4RsnSelectedGroupCipher;
836 UINT_32 u4RsnSelectedPairwiseCipher;
837 UINT_32 u4RsnSelectedAKMSuite;
838 UINT_16 u2RsnSelectedCapInfo;
840 /*------------------------------------------------------------------------*/
841 /* Power Management related information */
842 /*------------------------------------------------------------------------*/
843 PM_PROFILE_SETUP_INFO_T rPmProfSetupInfo;
846 /*------------------------------------------------------------------------*/
847 /* WMM/QoS related information */
848 /*------------------------------------------------------------------------*/
849 UINT_8 ucWmmParamSetCount; /* Used to detect the change of EDCA parameters. For AP mode, the value is used in WMM IE */
851 AC_QUE_PARMS_T arACQueParms[WMM_AC_INDEX_NUM];
853 UINT_8 aucCWminLog2ForBcast[WMM_AC_INDEX_NUM]; /* For AP mode, broadcast the CWminLog2 */
854 UINT_8 aucCWmaxLog2ForBcast[WMM_AC_INDEX_NUM]; /* For AP mode, broadcast the CWmaxLog2 */
855 AC_QUE_PARMS_T arACQueParmsForBcast[WMM_AC_INDEX_NUM]; /* For AP mode, broadcast the value */
857 /*------------------------------------------------------------------------*/
858 /* 802.11n HT operation IE when (prStaRec->ucPhyTypeSet & PHY_TYPE_BIT_HT)*/
859 /* is true. They have the same definition with fields of */
860 /* information element (CM) */
861 /*------------------------------------------------------------------------*/
863 UINT_8 ucPrimaryChannel;
868 /*------------------------------------------------------------------------*/
869 /* Required protection modes (CM) */
870 /*------------------------------------------------------------------------*/
871 BOOLEAN fgErpProtectMode;
872 ENUM_HT_PROTECT_MODE_T eHtProtectMode;
873 ENUM_GF_MODE_T eGfOperationMode;
874 ENUM_RIFS_MODE_T eRifsOperationMode;
876 BOOLEAN fgObssErpProtectMode; /* GO only */
877 ENUM_HT_PROTECT_MODE_T eObssHtProtectMode; /* GO only */
878 ENUM_GF_MODE_T eObssGfOperationMode; /* GO only */
879 BOOLEAN fgObssRifsOperationMode; /* GO only */
881 /*------------------------------------------------------------------------*/
882 /* OBSS to decide if 20/40M bandwidth is permitted. */
883 /* The first member indicates the following channel list length. */
884 /*------------------------------------------------------------------------*/
885 BOOLEAN fgAssoc40mBwAllowed;
886 BOOLEAN fg40mBwAllowed;
887 ENUM_CHNL_EXT_T eBssSCO; /* Real setting for HW
888 * 20/40M AP mode will always set 40M,
889 * but its OP IE can be changed.
891 UINT_8 auc2G_20mReqChnlList[CHNL_LIST_SZ_2G + 1];
892 UINT_8 auc2G_NonHtChnlList[CHNL_LIST_SZ_2G + 1];
893 UINT_8 auc2G_PriChnlList[CHNL_LIST_SZ_2G + 1];
894 UINT_8 auc2G_SecChnlList[CHNL_LIST_SZ_2G + 1];
896 UINT_8 auc5G_20mReqChnlList[CHNL_LIST_SZ_5G + 1];
897 UINT_8 auc5G_NonHtChnlList[CHNL_LIST_SZ_5G + 1];
898 UINT_8 auc5G_PriChnlList[CHNL_LIST_SZ_5G + 1];
899 UINT_8 auc5G_SecChnlList[CHNL_LIST_SZ_5G + 1];
901 TIMER_T rObssScanTimer;
902 UINT_16 u2ObssScanInterval; /* in unit of sec */
904 BOOLEAN fgObssActionForcedTo20M; /* GO only */
905 BOOLEAN fgObssBeaconForcedTo20M; /* GO only */
907 /*------------------------------------------------------------------------*/
908 /* HW Related Fields (Kevin) */
909 /*------------------------------------------------------------------------*/
910 UINT_8 ucHwDefaultFixedRateCode; /* The default rate code copied to MAC TX Desc */
911 UINT_16 u2HwLPWakeupGuardTimeUsec;
914 UINT_8 ucBssFreeQuota; /* The value is updated from FW */
918 struct _AIS_SPECIFIC_BSS_INFO_T {
919 UINT_8 ucRoamingAuthTypes; /* This value indicate the roaming type used in AIS_JOIN */
921 BOOLEAN fgIsIBSSActive;
923 /*! \brief Global flag to let arbiter stay at standby and not connect to any network */
924 BOOLEAN fgCounterMeasure;
925 UINT_8 ucWEPDefaultKeyID;
926 BOOLEAN fgTransmitKeyExist; /* Legacy wep Transmit key exist or not */
928 /* While Do CounterMeasure procedure, check the EAPoL Error report have send out */
929 BOOLEAN fgCheckEAPoLTxDone;
931 UINT_32 u4RsnaLastMICFailTime;
933 /* Stored the current bss wpa rsn cap filed, used for roaming policy */
935 TIMER_T rPreauthenticationTimer;
937 /* By the flow chart of 802.11i,
938 wait 60 sec before associating to same AP
939 or roaming to a new AP
940 or sending data in IBSS,
941 keep a timer for handle the 60 sec counterMeasure */
942 TIMER_T rRsnaBlockTrafficTimer;
943 TIMER_T rRsnaEAPoLReportTimeoutTimer;
945 /* For Keep the Tx/Rx Mic key for TKIP SW Calculate Mic */
946 /* This is only one for AIS/AP */
947 UINT_8 aucTxMicKey[8];
948 UINT_8 aucRxMicKey[8];
950 /* Buffer for WPA2 PMKID */
951 /* The PMKID cache lifetime is expire by media_disconnect_indication */
952 UINT_32 u4PmkidCandicateCount;
953 PMKID_CANDICATE_T arPmkidCandicate[CFG_MAX_PMKID_CACHE];
954 UINT_32 u4PmkidCacheCount;
955 PMKID_ENTRY_T arPmkidCache[CFG_MAX_PMKID_CACHE];
956 BOOLEAN fgIndicatePMKID;
957 #if CFG_SUPPORT_802_11W
958 BOOLEAN fgMgmtProtection;
959 UINT_32 u4SaQueryStart;
960 UINT_32 u4SaQueryCount;
961 UINT_8 ucSaQueryTimedOut;
962 PUINT_8 pucSaQueryTransId;
963 TIMER_T rSaQueryTimer;
964 BOOLEAN fgBipKeyInstalled;
968 struct _BOW_SPECIFIC_BSS_INFO_T {
969 UINT_16 u2Reserved; /* Reserved for Data Type Check */
973 typedef struct _SLT_INFO_T {
975 P_BSS_DESC_T prPseudoBssDesc;
980 UINT_32 u4BeaconReceiveCnt;
981 /////////Deprecated/////////
982 P_STA_RECORD_T prPseudoStaRec;
983 } SLT_INFO_T, *P_SLT_INFO_T;
987 /* Major member variables for WiFi FW operation.
988 Variables within this region will be ready for access after WIFI function is enabled.
990 typedef struct _WIFI_VAR_T {
991 BOOLEAN fgIsRadioOff;
993 BOOLEAN fgIsEnterD3ReqIssued;
995 BOOLEAN fgDebugCmdResp;
997 CONNECTION_SETTINGS_T rConnSettings;
999 SCAN_INFO_T rScanInfo;
1001 #if CFG_SUPPORT_ROAMING
1002 ROAMING_INFO_T rRoamingInfo;
1003 #endif /* CFG_SUPPORT_ROAMING */
1005 AIS_FSM_INFO_T rAisFsmInfo;
1007 ENUM_PWR_STATE_T aePwrState[NETWORK_TYPE_INDEX_NUM];
1009 BSS_INFO_T arBssInfo[NETWORK_TYPE_INDEX_NUM];
1011 AIS_SPECIFIC_BSS_INFO_T rAisSpecificBssInfo;
1013 #if CFG_ENABLE_WIFI_DIRECT
1014 P_P2P_CONNECTION_SETTINGS_T prP2PConnSettings;
1016 P_P2P_SPECIFIC_BSS_INFO_T prP2pSpecificBssInfo;
1018 P_P2P_FSM_INFO_T prP2pFsmInfo;
1019 #endif /* CFG_ENABLE_WIFI_DIRECT */
1021 #if CFG_ENABLE_BT_OVER_WIFI
1022 BOW_SPECIFIC_BSS_INFO_T rBowSpecificBssInfo;
1023 BOW_FSM_INFO_T rBowFsmInfo;
1024 #endif /* CFG_ENABLE_BT_OVER_WIFI */
1026 DEAUTH_INFO_T arDeauthInfo[MAX_DEAUTH_INFO_COUNT];
1028 /* Current Wi-Fi Settings and Flags */
1029 UINT_8 aucPermanentAddress[MAC_ADDR_LEN];
1030 UINT_8 aucMacAddress[MAC_ADDR_LEN];
1031 UINT_8 aucDeviceAddress[MAC_ADDR_LEN];
1032 UINT_8 aucInterfaceAddress[MAC_ADDR_LEN];
1034 UINT_8 ucAvailablePhyTypeSet;
1036 ENUM_PHY_TYPE_INDEX_T eNonHTBasicPhyType2G4; /* Basic Phy Type used by SCN according
1037 * to the set of Available PHY Types
1040 ENUM_PARAM_PREAMBLE_TYPE_T ePreambleType;
1041 ENUM_REGISTRY_FIXED_RATE_T eRateSetting;
1043 BOOLEAN fgIsShortSlotTimeOptionEnable;
1044 /* User desired setting, but will honor the capability of AP */
1046 BOOLEAN fgEnableJoinToHiddenSSID;
1047 BOOLEAN fgSupportWZCDisassociation;
1049 BOOLEAN fgSupportQoS;
1050 BOOLEAN fgSupportAmpduTx;
1051 BOOLEAN fgSupportAmpduRx;
1052 BOOLEAN fgSupportTspec;
1053 BOOLEAN fgSupportUAPSD;
1054 BOOLEAN fgSupportULPSMP;
1057 SLT_INFO_T rSltInfo;
1060 } WIFI_VAR_T, *P_WIFI_VAR_T;/* end of _WIFI_VAR_T */
1062 /* cnm_timer module */
1065 OS_SYSTIME rNextExpiredSysTime;
1066 KAL_WAKE_LOCK_T rWakeLock;
1067 BOOLEAN fgWakeLocked;
1068 } ROOT_TIMER, *P_ROOT_TIMER;
1071 /* FW/DRV/NVRAM version information */
1074 /* NVRAM or Registry */
1075 UINT_16 u2Part1CfgOwnVersion;
1076 UINT_16 u2Part1CfgPeerVersion;
1077 UINT_16 u2Part2CfgOwnVersion;
1078 UINT_16 u2Part2CfgPeerVersion;
1081 UINT_16 u2FwProductID;
1082 UINT_16 u2FwOwnVersion;
1083 UINT_16 u2FwPeerVersion;
1085 } WIFI_VER_INFO_T, *P_WIFI_VER_INFO_T;
1088 #if CFG_ENABLE_WIFI_DIRECT
1090 * p2p function pointer structure
1093 typedef struct _P2P_FUNCTION_LINKER {
1094 P2P_REMOVE prP2pRemove;
1095 // NIC_P2P_MEDIA_STATE_CHANGE prNicP2pMediaStateChange;
1096 // SCAN_UPDATE_P2P_DEVICE_DESC prScanUpdateP2pDeviceDesc;
1097 // P2P_FSM_RUN_EVENT_RX_PROBE_RESPONSE_FRAME prP2pFsmRunEventRxProbeResponseFrame;
1098 P2P_GENERATE_P2P_IE prP2pGenerateWSC_IEForBeacon;
1099 // P2P_CALCULATE_WSC_IE_LEN_FOR_PROBE_RSP prP2pCalculateWSC_IELenForProbeRsp;
1100 // P2P_GENERATE_WSC_IE_FOR_PROBE_RSP prP2pGenerateWSC_IEForProbeRsp;
1101 // SCAN_REMOVE_P2P_BSS_DESC prScanRemoveP2pBssDesc;
1102 // P2P_HANDLE_SEC_CHECK_RSP prP2pHandleSecCheckRsp;
1103 P2P_NET_REGISTER prP2pNetRegister;
1104 P2P_NET_UNREGISTER prP2pNetUnregister;
1105 P2P_CALCULATE_P2P_IE_LEN prP2pCalculateP2p_IELenForAssocReq; /* All IEs generated from supplicant. */
1106 P2P_GENERATE_P2P_IE prP2pGenerateP2p_IEForAssocReq; /* All IEs generated from supplicant. */
1107 } P2P_FUNCTION_LINKER, *P_P2P_FUNCTION_LINKER;
1113 * Major ADAPTER structure
1114 * Major data structure for driver operation
1119 UINT_16 u2NicOpChnlNum;
1121 BOOLEAN fgIsEnableWMM;
1122 BOOLEAN fgIsWmmAssoc; /* This flag is used to indicate that WMM is enable in current BSS */
1124 UINT_32 u4OsPacketFilter; // packet filter used by OS
1127 #if CFG_TCP_IP_CHKSUM_OFFLOAD
1128 UINT_32 u4CSUMFlags;
1129 #endif /* CFG_TCP_IP_CHKSUM_OFFLOAD */
1132 ENUM_BAND_T aePreferBand[NETWORK_TYPE_INDEX_NUM];
1138 BOOLEAN fgIsRadioOff;
1140 BOOLEAN fgIsEnterD3ReqIssued;
1142 UINT_8 aucMacAddress[MAC_ADDR_LEN];
1144 ENUM_PHY_TYPE_INDEX_T eCurrentPhyType; /* Current selection basing on the set of Available PHY Types */
1146 #if CFG_COALESCING_BUFFER_SIZE || CFG_SDIO_RX_AGG
1147 UINT_32 u4CoalescingBufCachedSize;
1148 PUINT_8 pucCoalescingBufCached;
1149 #endif /* CFG_COALESCING_BUFFER_SIZE */
1151 /* Buffer for CMD_INFO_T, Mgt packet and mailbox message */
1152 BUF_INFO_T rMgtBufInfo;
1153 BUF_INFO_T rMsgBufInfo;
1154 PUINT_8 pucMgtBufCached;
1155 UINT_32 u4MgtBufCachedSize;
1156 UINT_8 aucMsgBuf[MSG_BUFFER_SIZE];
1158 UINT_32 u4MemAllocDynamicCount; /* Debug only */
1159 UINT_32 u4MemFreeDynamicCount; /* Debug only */
1162 STA_RECORD_T arStaRec[CFG_STA_REC_NUM];
1164 /* Element for TX PATH */
1167 CMD_INFO_T arHifCmdDesc[CFG_TX_MAX_CMD_PKT_NUM];
1169 /* Element for RX PATH */
1172 P_SDIO_CTRL_T prSDIOCtrl;
1174 #if (MT6620_E1_ASIC_HIFSYS_WORKAROUND == 1)
1175 /* Element for MT6620 E1 HIFSYS workaround */
1176 BOOLEAN fgIsClockGatingEnabled;
1179 /* Buffer for Authentication Event */
1180 /* <Todo> Move to glue layer and refine the kal function */
1181 /* Reference to rsnGeneratePmkidIndication function at rsn.c */
1182 UINT_8 aucIndicationEventBuffer[(CFG_MAX_PMKID_CACHE * 20) + 8 ];
1184 UINT_32 u4IntStatus;
1186 ENUM_ACPI_STATE_T rAcpiState;
1188 BOOLEAN fgIsIntEnable;
1189 BOOLEAN fgIsIntEnableWithLPOwnSet;
1192 BOOLEAN fgWiFiInSleepyState;
1194 UINT_32 u4PwrCtrlBlockCnt;
1196 QUE_T rPendingCmdQueue;
1198 P_GLUE_INFO_T prGlueInfo;
1203 #if 1//CFG_SUPPORT_WAPI
1210 /* WLAN Info for DRIVER_CORE OID query */
1211 WLAN_INFO_T rWlanInfo;
1213 #if CFG_ENABLE_WIFI_DIRECT
1214 BOOLEAN fgIsP2PRegistered;
1215 ENUM_NET_REG_STATE_T rP2PNetRegState;
1216 BOOLEAN fgIsWlanLaunched;
1217 P_P2P_INFO_T prP2pInfo;
1218 #if CFG_SUPPORT_P2P_RSSI_QUERY
1219 OS_SYSTIME rP2pLinkQualityUpdateTime;
1220 BOOLEAN fgIsP2pLinkQualityValid;
1221 EVENT_LINK_QUALITY rP2pLinkQuality;
1225 /* Online Scan Option */
1226 BOOLEAN fgEnOnlineScan;
1228 /* Online Scan Option */
1229 BOOLEAN fgDisBcnLostDetection;
1232 PARAM_MAC_ADDRESS rMyMacAddr;
1234 /* Wake-up Event for WOL */
1235 UINT_32 u4WakeupEventEnable;
1237 /* Event Buffering */
1238 EVENT_STATISTICS rStatStruct;
1239 OS_SYSTIME rStatUpdateTime;
1240 BOOLEAN fgIsStatValid;
1242 EVENT_LINK_QUALITY rLinkQuality;
1243 OS_SYSTIME rLinkQualityUpdateTime;
1244 BOOLEAN fgIsLinkQualityValid;
1245 OS_SYSTIME rLinkRateUpdateTime;
1246 BOOLEAN fgIsLinkRateValid;
1249 WIFI_VAR_T rWifiVar;
1251 /* MTK WLAN NIC driver IEEE 802.11 MIB */
1252 IEEE_802_11_MIB_T rMib;
1254 /* Mailboxs for inter-module communication */
1255 MBOX_T arMbox[MBOX_ID_TOTAL_NUM];
1257 /* Timers for OID Pending Handling */
1258 TIMER_T rOidTimeoutTimer;
1260 /* Root Timer for cnm_timer module */
1261 ROOT_TIMER rRootTimer;
1263 /* RLM maintenance */
1264 ENUM_CHNL_EXT_T eRfSco;
1265 ENUM_SYS_PROTECT_MODE_T eSysProtectMode;
1266 ENUM_GF_MODE_T eSysHtGfMode;
1267 ENUM_RIFS_MODE_T eSysTxRifsMode;
1268 ENUM_SYS_PCO_PHASE_T eSysPcoPhase;
1270 P_DOMAIN_INFO_ENTRY prDomainInfo;
1275 CNM_INFO_T rCnmInfo;
1277 UINT_32 u4PowerMode;
1279 UINT_32 u4CtiaPowerMode;
1280 BOOLEAN fgEnCtiaPowerMode;
1282 UINT_32 fgEnArpFilter;
1284 UINT_32 u4UapsdAcBmp;
1288 UINT_32 u4PsCurrentMeasureEn;
1290 /* Version Information */
1291 WIFI_VER_INFO_T rVerInfo;
1293 /* 5GHz support (from F/W) */
1294 BOOLEAN fgIsHw5GBandDisabled;
1295 BOOLEAN fgEnable5GBand;
1296 BOOLEAN fgIsEepromUsed;
1297 BOOLEAN fgIsEfuseValid;
1298 BOOLEAN fgIsEmbbededMacAddrValid;
1300 /* Packet Forwarding Tracking */
1301 INT_32 i4PendingFwdFrameCount;
1303 #if CFG_SUPPORT_RDD_TEST_MODE
1307 BOOL fgDisStaAgingTimeoutDetection;
1309 };/* end of _ADAPTER_T */
1311 /*******************************************************************************
1312 * P U B L I C D A T A
1313 ********************************************************************************
1316 /*******************************************************************************
1317 * P R I V A T E D A T A
1318 ********************************************************************************
1321 /*******************************************************************************
1323 ********************************************************************************
1325 /*----------------------------------------------------------------------------*/
1326 /* Macros for BSS_INFO_T - Flag of Net Active */
1327 /*----------------------------------------------------------------------------*/
1328 #define IS_NET_ACTIVE(_prAdapter, _NetTypeIndex) \
1329 (_prAdapter->rWifiVar.arBssInfo[(_NetTypeIndex)].fgIsNetActive)
1330 #define IS_BSS_ACTIVE(_prBssInfo) ((_prBssInfo)->fgIsNetActive)
1332 #define IS_AIS_ACTIVE(_prAdapter) IS_NET_ACTIVE(_prAdapter, NETWORK_TYPE_AIS_INDEX)
1333 #define IS_P2P_ACTIVE(_prAdapter) IS_NET_ACTIVE(_prAdapter, NETWORK_TYPE_P2P_INDEX)
1334 #define IS_BOW_ACTIVE(_prAdapter) IS_NET_ACTIVE(_prAdapter, NETWORK_TYPE_BOW_INDEX)
1336 #define SET_NET_ACTIVE(_prAdapter, _NetTypeIndex) \
1337 {_prAdapter->rWifiVar.arBssInfo[(_NetTypeIndex)].fgIsNetActive = TRUE;}
1339 #define UNSET_NET_ACTIVE(_prAdapter, _NetTypeIndex) \
1340 {_prAdapter->rWifiVar.arBssInfo[(_NetTypeIndex)].fgIsNetActive = FALSE;}
1342 #define BSS_INFO_INIT(_prAdapter, _NetTypeIndex) \
1343 { UINT_8 _aucZeroMacAddr[] = NULL_MAC_ADDR; \
1344 P_BSS_INFO_T _prBssInfo = &(_prAdapter->rWifiVar.arBssInfo[(_NetTypeIndex)]); \
1346 _prBssInfo->eConnectionState = PARAM_MEDIA_STATE_DISCONNECTED; \
1347 _prBssInfo->eConnectionStateIndicated = PARAM_MEDIA_STATE_DISCONNECTED; \
1348 _prBssInfo->eCurrentOPMode = OP_MODE_INFRASTRUCTURE; \
1349 _prBssInfo->fgIsNetActive = FALSE; \
1350 _prBssInfo->ucNetTypeIndex = (_NetTypeIndex); \
1351 _prBssInfo->ucReasonOfDisconnect = DISCONNECT_REASON_CODE_RESERVED; \
1352 COPY_MAC_ADDR(_prBssInfo->aucBSSID, _aucZeroMacAddr); \
1353 LINK_INITIALIZE(&_prBssInfo->rStaRecOfClientList); \
1354 _prBssInfo->fgIsBeaconActivated = FALSE; \
1355 _prBssInfo->ucHwDefaultFixedRateCode = RATE_CCK_1M_LONG; \
1356 _prBssInfo->fgIsNetAbsent = FALSE; \
1359 #if CFG_ENABLE_BT_OVER_WIFI
1360 #define BOW_BSS_INFO_INIT(_prAdapter, _NetTypeIndex) \
1362 P_BSS_INFO_T _prBssInfo = &(_prAdapter->rWifiVar.arBssInfo[(_NetTypeIndex)]); \
1364 _prBssInfo->eConnectionState = PARAM_MEDIA_STATE_DISCONNECTED; \
1365 _prBssInfo->eConnectionStateIndicated = PARAM_MEDIA_STATE_DISCONNECTED; \
1366 _prBssInfo->eCurrentOPMode = OP_MODE_BOW; \
1367 _prBssInfo->ucNetTypeIndex = (_NetTypeIndex); \
1368 _prBssInfo->ucReasonOfDisconnect = DISCONNECT_REASON_CODE_RESERVED; \
1369 LINK_INITIALIZE(&_prBssInfo->rStaRecOfClientList); \
1370 _prBssInfo->fgIsBeaconActivated = TRUE; \
1371 _prBssInfo->ucHwDefaultFixedRateCode = RATE_CCK_1M_LONG; \
1372 _prBssInfo->fgIsNetAbsent = FALSE; \
1376 /*----------------------------------------------------------------------------*/
1377 /* Macros for Power State */
1378 /*----------------------------------------------------------------------------*/
1379 #define SET_NET_PWR_STATE_IDLE(_prAdapter, _NetTypeIndex) \
1380 {_prAdapter->rWifiVar.aePwrState[(_NetTypeIndex)] = PWR_STATE_IDLE;}
1382 #define SET_NET_PWR_STATE_ACTIVE(_prAdapter, _NetTypeIndex) \
1383 {_prAdapter->rWifiVar.aePwrState[(_NetTypeIndex)] = PWR_STATE_ACTIVE;}
1385 #define SET_NET_PWR_STATE_PS(_prAdapter, _NetTypeIndex) \
1386 {_prAdapter->rWifiVar.aePwrState[(_NetTypeIndex)] = PWR_STATE_PS;}
1388 #define IS_NET_PWR_STATE_ACTIVE(_prAdapter, _NetTypeIndex) \
1389 (_prAdapter->rWifiVar.aePwrState[(_NetTypeIndex)] == PWR_STATE_ACTIVE)
1391 #define IS_NET_PWR_STATE_IDLE(_prAdapter, _NetTypeIndex) \
1392 (_prAdapter->rWifiVar.aePwrState[(_NetTypeIndex)] == PWR_STATE_IDLE)
1394 #define IS_SCN_PWR_STATE_ACTIVE(_prAdapter) \
1395 (_prAdapter->rWifiVar.rScanInfo.eScanPwrState == SCAN_PWR_STATE_ACTIVE)
1397 #define IS_SCN_PWR_STATE_IDLE(_prAdapter) \
1398 (_prAdapter->rWifiVar.rScanInfo.eScanPwrState == SCAN_PWR_STATE_IDLE)
1400 /*******************************************************************************
1401 * F U N C T I O N D E C L A R A T I O N S
1402 ********************************************************************************
1406 /*******************************************************************************
1408 ********************************************************************************
1411 #endif /* _ADAPTER_H */