b60f43db1fa507c6036ee380f749972f92f59414
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / rockchip_wlan / combo_mt66xx / mt6628 / wlan / include / nic / nic.h
1 /*
2 ** $Id: //Department/DaVinci/BRANCHES/MT6620_WIFI_DRIVER_V2_3/include/nic/nic.h#1 $
3 */
4
5 /*! \file   "nic.h"
6     \brief  The declaration of nic functions
7
8     Detail description.
9 */
10
11
12
13 /*
14 ** $Log: nic.h $
15  *
16  * 11 01 2011 chinglan.wang
17  * NULL
18  * Modify the Wi-Fi method of the flush TX queue when disconnect the AP.
19  * If disconnect the AP and flush all the data frame in the TX queue, WPS cannot do the 4-way handshake to connect to the AP..
20  *
21  * 07 18 2011 chinghwa.yu
22  * [WCXRP00000063] Update BCM CoEx design and settings[WCXRP00000612] [MT6620 Wi-Fi] [FW] CSD update SWRDD algorithm
23  * Add CMD/Event for RDD and BWCS.
24  *
25  * 05 11 2011 cp.wu
26  * [WCXRP00000718] [MT6620 Wi-Fi] modify the behavior of setting tx power
27  * ACPI APIs migrate to wlan_lib.c for glue layer to invoke.
28  *
29  * 04 11 2011 yuche.tsai
30  * [WCXRP00000627] [Volunteer Patch][MT6620][Driver] Pending MMPUD of P2P Network may crash system issue.
31  * Fix kernel panic issue when MMPDU of P2P is pending in driver.
32  *
33  * 03 02 2011 cp.wu
34  * [WCXRP00000503] [MT6620 Wi-Fi][Driver] Take RCPI brought by association response as initial RSSI right after connection is built.
35  * use RCPI brought by ASSOC-RESP after connection is built as initial RCPI to avoid using a uninitialized MAC-RX RCPI.
36  *
37  * 02 01 2011 cm.chang
38  * [WCXRP00000415] [MT6620 Wi-Fi][Driver] Check if any memory leakage happens when uninitializing in DGB mode
39  * .
40  *
41  * 01 27 2011 tsaiyuan.hsu
42  * [WCXRP00000392] [MT6620 Wi-Fi][Driver] Add Roaming Support
43  * add roaming fsm
44  * 1. not support 11r, only use strength of signal to determine roaming.
45  * 2. not enable CFG_SUPPORT_ROAMING until completion of full test.
46  * 3. in 6620, adopt work-around to avoid sign extension problem of cck of hw
47  * 4. assume that change of link quality in smooth way.
48  *
49  * 10 26 2010 cp.wu
50  * [WCXRP00000056] [MT6620 Wi-Fi][Driver] NVRAM implementation with Version Check[WCXRP00000137] [MT6620 Wi-Fi] [FW] Support NIC capability query command
51  * 1) update NVRAM content template to ver 1.02
52  * 2) add compile option for querying NIC capability (default: off)
53  * 3) modify AIS 5GHz support to run-time option, which could be turned on by registry or NVRAM setting
54  * 4) correct auto-rate compiler error under linux (treat warning as error)
55  * 5) simplify usage of NVRAM and REG_INFO_T
56  * 6) add version checking between driver and firmware
57  *
58  * 10 26 2010 eddie.chen
59  * [WCXRP00000134] [MT6620 Wi-Fi][Driver] Add a registry to enable auto rate for SQA test by using E1 EVB
60  * Add auto rate parameter in registry.
61  *
62  * 10 12 2010 cp.wu
63  * [WCXRP00000084] [MT6620 Wi-Fi][Driver][FW] Add fixed rate support for distance test
64  * add HT (802.11n) fixed rate support.
65  *
66  * 10 08 2010 cp.wu
67  * [WCXRP00000084] [MT6620 Wi-Fi][Driver][FW] Add fixed rate support for distance test
68  * adding fixed rate support for distance test. (from registry setting)
69  *
70  * 10 05 2010 cp.wu
71  * [WCXRP00000056] [MT6620 Wi-Fi][Driver] NVRAM implementation with Version Check
72  * 1) add NVRAM access API
73  * 2) fake scanning result when NVRAM doesn't exist and/or version mismatch. (off by compiler option)
74  * 3) add OID implementation for NVRAM read/write service
75  *
76  * 10 04 2010 cp.wu
77  * [WCXRP00000077] [MT6620 Wi-Fi][Driver][FW] Eliminate use of ENUM_NETWORK_TYPE_T and replaced by ENUM_NETWORK_TYPE_INDEX_T only
78  * remove ENUM_NETWORK_TYPE_T definitions
79  *
80  * 09 21 2010 cp.wu
81  * [WCXRP00000053] [MT6620 Wi-Fi][Driver] Reset incomplete and might leads to BSOD when entering RF test with AIS associated
82  * Do a complete reset with STA-REC null checking for RF test re-entry
83  *
84  * 09 08 2010 cp.wu
85  * NULL
86  * use static memory pool for storing IEs of scanning result.
87  *
88  * 09 01 2010 cp.wu
89  * NULL
90  * HIFSYS Clock Source Workaround
91  *
92  * 08 25 2010 george.huang
93  * NULL
94  * update OID/ registry control path for PM related settings
95  *
96  * 08 12 2010 cp.wu
97  * NULL
98  * [AIS-FSM] honor registry setting for adhoc running mode. (A/B/G)
99  *
100  * 08 03 2010 cp.wu
101  * NULL
102  * Centralize mgmt/system service procedures into independent calls.
103  *
104  * 07 28 2010 cp.wu
105  * NULL
106  * 1) eliminate redundant variable eOPMode in prAdapter->rWlanInfo
107  * 2) change nicMediaStateChange() API prototype
108  *
109  * 07 14 2010 yarco.yang
110  *
111  * 1. Remove CFG_MQM_MIGRATION
112  * 2. Add CMD_UPDATE_WMM_PARMS command
113  *
114  * 07 08 2010 cp.wu
115  *
116  * [WPD00003833] [MT6620 and MT5931] Driver migration - move to new repository.
117  *
118  * 07 06 2010 george.huang
119  * [WPD00001556]Basic power managemenet function
120  * Update arguments for nicUpdateBeaconIETemplate()
121  *
122  * 07 06 2010 cp.wu
123  * [WPD00003833][MT6620 and MT5931] Driver migration
124  * STA-REC is maintained by CNM only.
125  *
126  * 07 05 2010 cp.wu
127  * [WPD00003833][MT6620 and MT5931] Driver migration
128  * 1) ignore RSN checking when RSN is not turned on.
129  * 2) set STA-REC deactivation callback as NULL
130  * 3) add variable initialization API based on PHY configuration
131  *
132  * 06 30 2010 cp.wu
133  * [WPD00003833][MT6620 and MT5931] Driver migration
134  * sync. with CMD/EVENT document ver0.07.
135  *
136  * 06 29 2010 cp.wu
137  * [WPD00003833][MT6620 and MT5931] Driver migration
138  * 1) sync to. CMD/EVENT document v0.03
139  * 2) simplify DTIM period parsing in scan.c only, bss.c no longer parses it again.
140  * 3) send command packet to indicate FW-PM after
141  *     a) 1st beacon is received after AIS has connected to an AP
142  *     b) IBSS-ALONE has been created
143  *     c) IBSS-MERGE has occured
144  *
145  * 06 25 2010 george.huang
146  * [WPD00001556]Basic power managemenet function
147  * Create beacon update path, with expose bssUpdateBeaconContent()
148  *
149  * 06 22 2010 cp.wu
150  * [WPD00003833][MT6620 and MT5931] Driver migration
151  * 1) add command warpper for STA-REC/BSS-INFO sync.
152  * 2) enhance command packet sending procedure for non-oid part
153  * 3) add command packet definitions for STA-REC/BSS-INFO sync.
154  *
155  * 06 21 2010 cp.wu
156  * [WPD00003833][MT6620 and MT5931] Driver migration
157  * implement TX_DONE callback path.
158  *
159  * 06 11 2010 cp.wu
160  * [WPD00003833][MT6620 and MT5931] Driver migration
161  * 1) migrate assoc.c.
162  * 2) add ucTxSeqNum for tracking frames which needs TX-DONE awareness
163  * 3) add configuration options for CNM_MEM and RSN modules
164  * 4) add data path for management frames
165  * 5) eliminate rPacketInfo of MSDU_INFO_T
166  *
167  * 06 10 2010 cp.wu
168  * [WPD00003833][MT6620 and MT5931] Driver migration
169  * 1) eliminate CFG_CMD_EVENT_VERSION_0_9
170  * 2) when disconnected, indicate nic directly (no event is needed)
171  *
172  * 06 06 2010 kevin.huang
173  * [WPD00003832][MT6620 5931] Create driver base
174  * [MT6620 5931] Create driver base
175  *
176  * 04 26 2010 cp.wu
177  * [WPD00001943]Create WiFi test driver framework on WinXP
178  * 1) surpress compiler warning
179  * 2) when acqruing LP-own, keep writing WHLPCR whenever OWN is not acquired yet
180  *
181  * 04 13 2010 cp.wu
182  * [WPD00003823][MT6620 Wi-Fi] Add Bluetooth-over-Wi-Fi support
183  * add framework for BT-over-Wi-Fi support.
184  *  *  *  *  *  *  *  *  * 1) prPendingCmdInfo is replaced by queue for multiple handler capability
185  *  *  *  *  *  *  *  *  * 2) command sequence number is now increased atomically
186  *  *  *  *  *  *  *  *  * 3) private data could be hold and taken use for other purpose
187  *
188  * 04 12 2010 cp.wu
189  * [WPD00001943]Create WiFi test driver framework on WinXP
190  * add channel frequency <-> number conversion
191  *
192  * 03 19 2010 cp.wu
193  * [WPD00001943]Create WiFi test driver framework on WinXP
194  * 1) add ACPI D0/D3 state switching support
195  *  *  *  *  * 2) use more formal way to handle interrupt when the status is retrieved from enhanced RX response
196  *
197  * 03 17 2010 cp.wu
198  * [WPD00001943]Create WiFi test driver framework on WinXP
199  * always process TX interrupt first then RX interrupt.
200  *
201  * 02 25 2010 cp.wu
202  * [WPD00001943]Create WiFi test driver framework on WinXP
203  * correct behavior to prevent duplicated RX handling for RX0_DONE and RX1_DONE
204  *
205  * 02 23 2010 cp.wu
206  * [WPD00001943]Create WiFi test driver framework on WinXP
207  * add checksum offloading support.
208 **  \main\maintrunk.MT6620WiFiDriver_Prj\5 2009-10-13 21:58:58 GMT mtk01084
209 **  update for new HW architecture design
210 **  \main\maintrunk.MT6620WiFiDriver_Prj\4 2009-04-24 21:12:55 GMT mtk01104
211 **  Add function prototype nicRestoreSpiDefMode()
212 **  \main\maintrunk.MT6620WiFiDriver_Prj\3 2009-03-19 18:32:54 GMT mtk01084
213 **  update for basic power management functions
214 **  \main\maintrunk.MT6620WiFiDriver_Prj\2 2009-03-10 20:16:32 GMT mtk01426
215 **  Init for develop
216 **
217 */
218
219 #ifndef _NIC_H
220 #define _NIC_H
221
222 /*******************************************************************************
223 *                         C O M P I L E R   F L A G S
224 ********************************************************************************
225 */
226
227 /*******************************************************************************
228 *                              C O N S T A N T S
229 ********************************************************************************
230 */
231
232 /*******************************************************************************
233 *                             D A T A   T Y P E S
234 ********************************************************************************
235 */
236
237
238 struct _REG_ENTRY_T {
239     UINT_32      u4Offset;
240     UINT_32      u4Value;
241 };
242
243 struct _TABLE_ENTRY_T {
244     P_REG_ENTRY_T     pu4TablePtr;
245     UINT_16      u2Size;
246 };
247
248 /*! INT status to event map */
249 typedef struct _INT_EVENT_MAP_T {
250     UINT_32     u4Int;
251     UINT_32     u4Event;
252 } INT_EVENT_MAP_T, *P_INT_EVENT_MAP_T;
253
254
255 enum ENUM_INT_EVENT_T {
256     INT_EVENT_ABNORMAL,
257     INT_EVENT_SW_INT,
258     INT_EVENT_TX,
259     INT_EVENT_RX,
260     INT_EVENT_NUM
261 };
262
263 typedef enum _ENUM_IE_UPD_METHOD_T {
264     IE_UPD_METHOD_UPDATE_RANDOM,
265     IE_UPD_METHOD_UPDATE_ALL,
266     IE_UPD_METHOD_DELETE_ALL,
267 } ENUM_IE_UPD_METHOD_T, *P_ENUM_IE_UPD_METHOD_T;
268
269
270 /*******************************************************************************
271 *                    E X T E R N A L   R E F E R E N C E S
272 ********************************************************************************
273 */
274
275 /*******************************************************************************
276 *                            P U B L I C   D A T A
277 ********************************************************************************
278 */
279
280 /*******************************************************************************
281 *                           P R I V A T E   D A T A
282 ********************************************************************************
283 */
284
285 /*******************************************************************************
286 *                                 M A C R O S
287 ********************************************************************************
288 */
289
290
291 /*******************************************************************************
292 *                   F U N C T I O N   D E C L A R A T I O N S
293 ********************************************************************************
294 */
295 /*----------------------------------------------------------------------------*/
296 /* Routines in nic.c                                                          */
297 /*----------------------------------------------------------------------------*/
298 WLAN_STATUS
299 nicAllocateAdapterMemory (
300     IN P_ADAPTER_T prAdapter
301     );
302
303 VOID
304 nicReleaseAdapterMemory (
305     IN P_ADAPTER_T prAdapter
306     );
307
308 VOID
309 nicDisableInterrupt (
310     IN P_ADAPTER_T prAdapter
311     );
312
313 VOID
314 nicEnableInterrupt (
315     IN P_ADAPTER_T prAdapter
316     );
317
318 WLAN_STATUS
319 nicProcessIST (
320     IN P_ADAPTER_T prAdapter
321     );
322
323 WLAN_STATUS
324 nicProcessIST_impl (
325     IN P_ADAPTER_T prAdapter,
326     IN UINT_32 u4IntStatus
327     );
328
329 WLAN_STATUS
330 nicInitializeAdapter (
331     IN P_ADAPTER_T prAdapter
332     );
333
334 VOID
335 nicMCRInit (
336     IN P_ADAPTER_T prAdapter
337     );
338
339 BOOL
340 nicVerifyChipID (
341     IN P_ADAPTER_T prAdapter
342     );
343
344
345 #if CFG_SDIO_INTR_ENHANCE
346 VOID
347 nicSDIOInit (
348     IN P_ADAPTER_T prAdapter
349     );
350
351 VOID
352 nicSDIOReadIntStatus (
353     IN P_ADAPTER_T prAdapter,
354     OUT PUINT_32   pu4IntStatus
355     );
356 #endif
357
358 BOOLEAN
359 nicpmSetDriverOwn (
360     IN P_ADAPTER_T prAdapter
361     );
362
363 VOID
364 nicpmSetFWOwn (
365     IN P_ADAPTER_T prAdapter,
366     IN BOOLEAN     fgEnableGlobalInt
367     );
368
369 BOOLEAN
370 nicpmSetAcpiPowerD0 (
371     IN P_ADAPTER_T prAdapter
372     );
373
374 BOOLEAN
375 nicpmSetAcpiPowerD3 (
376     IN P_ADAPTER_T prAdapter
377     );
378
379 #if defined(_HIF_SPI)
380 void
381 nicRestoreSpiDefMode(
382     IN P_ADAPTER_T prAdapter
383     );
384 #endif
385
386 VOID
387 nicProcessSoftwareInterrupt(
388     IN P_ADAPTER_T prAdapter
389     );
390
391 VOID
392 nicProcessAbnormalInterrupt (
393     IN  P_ADAPTER_T prAdapter
394     );
395
396 VOID
397 nicPutMailbox (
398     IN P_ADAPTER_T prAdapter,
399     IN UINT_32 u4MailboxNum,
400     IN UINT_32 u4Data);
401
402 VOID
403 nicGetMailbox (
404     IN P_ADAPTER_T prAdapter,
405     IN UINT_32 u4MailboxNum,
406     OUT PUINT_32 pu4Data);
407
408 VOID
409 nicSetSwIntr (
410     IN P_ADAPTER_T prAdapter,
411     IN UINT_32 u4SwIntrBitmap
412     );
413
414 P_CMD_INFO_T
415 nicGetPendingCmdInfo (
416     IN P_ADAPTER_T prAdapter,
417     IN UINT_8 ucSeqNum
418     );
419
420 P_MSDU_INFO_T
421 nicGetPendingTxMsduInfo (
422     IN P_ADAPTER_T prAdapter,
423     IN UINT_8 ucSeqNum
424     );
425
426 P_MSDU_INFO_T
427 nicGetPendingStaMMPDU(
428     IN P_ADAPTER_T prAdapter,
429     IN UINT_8 ucStaRecIdx
430     );
431
432 VOID
433 nicFreePendingTxMsduInfoByNetwork (
434     IN P_ADAPTER_T                  prAdapter,
435     IN ENUM_NETWORK_TYPE_INDEX_T    eNetworkType
436     );
437
438 UINT_8
439 nicIncreaseCmdSeqNum (
440     IN P_ADAPTER_T prAdapter
441     );
442
443 UINT_8
444 nicIncreaseTxSeqNum (
445     IN P_ADAPTER_T prAdapter
446     );
447
448 /* Media State Change */
449 WLAN_STATUS
450 nicMediaStateChange (
451     IN P_ADAPTER_T                  prAdapter,
452     IN ENUM_NETWORK_TYPE_INDEX_T    eNetworkType,
453     IN P_EVENT_CONNECTION_STATUS    prConnectionStatus
454     );
455
456 /* Utility function for channel number conversion */
457 UINT_32
458 nicChannelNum2Freq (
459     IN UINT_32 u4ChannelNum
460     );
461
462 UINT_32
463 nicFreq2ChannelNum (
464     IN UINT_32 u4FreqInKHz
465     );
466
467 /* firmware command wrapper */
468     /* NETWORK (WIFISYS) */
469 WLAN_STATUS
470 nicActivateNetwork(
471     IN P_ADAPTER_T prAdapter,
472     IN ENUM_NETWORK_TYPE_INDEX_T eNetworkTypeIdx
473     );
474
475 WLAN_STATUS
476 nicDeactivateNetwork(
477     IN P_ADAPTER_T prAdapter,
478     IN ENUM_NETWORK_TYPE_INDEX_T eNetworkTypeIdx
479     );
480
481
482     /* BSS-INFO */
483 WLAN_STATUS
484 nicUpdateBss(
485     IN P_ADAPTER_T prAdapter,
486     IN ENUM_NETWORK_TYPE_INDEX_T eNetworkTypeIdx
487     );
488
489     /* BSS-INFO Indication (PM) */
490 WLAN_STATUS
491 nicPmIndicateBssCreated(
492     IN P_ADAPTER_T prAdapter,
493     IN ENUM_NETWORK_TYPE_INDEX_T eNetworkTypeIdx
494     );
495
496 WLAN_STATUS
497 nicPmIndicateBssConnected(
498     IN P_ADAPTER_T prAdapter,
499     IN ENUM_NETWORK_TYPE_INDEX_T eNetworkTypeIdx
500     );
501
502 WLAN_STATUS
503 nicPmIndicateBssAbort(
504     IN P_ADAPTER_T prAdapter,
505     IN ENUM_NETWORK_TYPE_INDEX_T eNetworkTypeIdx
506     );
507
508     /* Beacon Template Update */
509 WLAN_STATUS
510 nicUpdateBeaconIETemplate (
511     IN  P_ADAPTER_T prAdapter,
512     IN  ENUM_IE_UPD_METHOD_T eIeUpdMethod,
513     IN ENUM_NETWORK_TYPE_INDEX_T eNetTypeIndex,
514     IN UINT_16 u2Capability,
515     IN PUINT_8 aucIe,
516     IN UINT_16 u2IELen
517     );
518
519 WLAN_STATUS
520 nicQmUpdateWmmParms(
521     IN P_ADAPTER_T prAdapter,
522     IN ENUM_NETWORK_TYPE_INDEX_T eNetworkTypeIdx
523     );
524
525 WLAN_STATUS
526 nicSetAutoTxPower(
527     IN P_ADAPTER_T      prAdapter,
528     IN P_CMD_AUTO_POWER_PARAM_T   prAutoPwrParam
529     );
530
531 /*----------------------------------------------------------------------------*/
532 /* Calibration Control                                                        */
533 /*----------------------------------------------------------------------------*/
534 WLAN_STATUS
535 nicUpdateTxPower(
536     IN P_ADAPTER_T      prAdapter,
537     IN P_CMD_TX_PWR_T   prTxPwrParam
538     );
539
540 WLAN_STATUS
541 nicUpdate5GOffset(
542     IN P_ADAPTER_T              prAdapter,
543     IN P_CMD_5G_PWR_OFFSET_T    pr5GPwrOffset
544     );
545
546 WLAN_STATUS
547 nicUpdateDPD(
548     IN P_ADAPTER_T          prAdapter,
549     IN P_CMD_PWR_PARAM_T    prDpdCalResult
550     );
551
552
553 /*----------------------------------------------------------------------------*/
554 /* PHY configuration                                                          */
555 /*----------------------------------------------------------------------------*/
556 VOID
557 nicSetAvailablePhyTypeSet (
558     IN P_ADAPTER_T prAdapter
559     );
560
561 /*----------------------------------------------------------------------------*/
562 /* MGMT and System Service Control                                            */
563 /*----------------------------------------------------------------------------*/
564 VOID
565 nicInitSystemService (
566     IN P_ADAPTER_T prAdapter
567     );
568
569 VOID
570 nicResetSystemService (
571     IN P_ADAPTER_T prAdapter
572     );
573
574 VOID
575 nicUninitSystemService (
576     IN P_ADAPTER_T prAdapter
577     );
578
579 VOID
580 nicInitMGMT (
581     IN P_ADAPTER_T prAdapter,
582     IN P_REG_INFO_T prRegInfo
583     );
584
585 VOID
586 nicUninitMGMT (
587     IN P_ADAPTER_T prAdapter
588     );
589
590 WLAN_STATUS
591 nicConfigPowerSaveProfile (
592     IN  P_ADAPTER_T prAdapter,
593     ENUM_NETWORK_TYPE_INDEX_T eNetTypeIndex,
594     PARAM_POWER_MODE ePwrMode,
595     BOOLEAN fgEnCmdEvent
596     );
597
598 WLAN_STATUS
599 nicEnterCtiaMode (
600     IN  P_ADAPTER_T prAdapter,
601     BOOLEAN fgEnterCtia,
602     BOOLEAN fgEnCmdEvent
603     );
604 /*----------------------------------------------------------------------------*/
605 /* Scan Result Processing                                                     */
606 /*----------------------------------------------------------------------------*/
607 VOID
608 nicAddScanResult (
609     IN P_ADAPTER_T                  prAdapter,
610     IN PARAM_MAC_ADDRESS            rMacAddr,
611     IN P_PARAM_SSID_T               prSsid,
612     IN UINT_32                      u4Privacy,
613     IN PARAM_RSSI                   rRssi,
614     IN ENUM_PARAM_NETWORK_TYPE_T    eNetworkType,
615     IN P_PARAM_802_11_CONFIG_T      prConfiguration,
616     IN ENUM_PARAM_OP_MODE_T         eOpMode,
617     IN PARAM_RATES_EX               rSupportedRates,
618     IN UINT_16                      u2IELength,
619     IN PUINT_8                      pucIEBuf
620     );
621
622 VOID
623 nicFreeScanResultIE (
624     IN P_ADAPTER_T  prAdapter,
625     IN UINT_32      u4Idx
626     );
627
628 #if (MT6620_E1_ASIC_HIFSYS_WORKAROUND == 1)
629 /*----------------------------------------------------------------------------*/
630 /* Workaround Control                                                         */
631 /*----------------------------------------------------------------------------*/
632 WLAN_STATUS
633 nicEnableClockGating (
634     IN P_ADAPTER_T prAdapter
635     );
636
637 WLAN_STATUS
638 nicDisableClockGating (
639     IN P_ADAPTER_T prAdapter
640     );
641 #endif
642
643
644 /*----------------------------------------------------------------------------*/
645 /* Fixed Rate Hacking                                                         */
646 /*----------------------------------------------------------------------------*/
647 WLAN_STATUS
648 nicUpdateRateParams (
649     IN P_ADAPTER_T                  prAdapter,
650     IN ENUM_REGISTRY_FIXED_RATE_T   eRateSetting,
651     IN PUINT_8                      pucDesiredPhyTypeSet,
652     IN PUINT_16                     pu2DesiredNonHTRateSet,
653     IN PUINT_16                     pu2BSSBasicRateSet,
654     IN PUINT_8                      pucMcsSet,
655     IN PUINT_8                      pucSupMcs32,
656     IN PUINT_16                     u2HtCapInfo
657     );
658
659 /*----------------------------------------------------------------------------*/
660 /* Write registers                                                            */
661 /*----------------------------------------------------------------------------*/
662 WLAN_STATUS
663 nicWriteMcr (
664     IN P_ADAPTER_T  prAdapter,
665     IN UINT_32   u4Address,
666     IN  UINT_32  u4Value
667     );
668
669 /*----------------------------------------------------------------------------*/
670 /* Update auto rate                                                           */
671 /*----------------------------------------------------------------------------*/
672 WLAN_STATUS
673 nicRlmArUpdateParms(
674     IN P_ADAPTER_T prAdapter,
675     IN UINT_32 u4ArSysParam0,
676     IN UINT_32 u4ArSysParam1,
677     IN UINT_32 u4ArSysParam2,
678     IN UINT_32 u4ArSysParam3
679     );
680
681 /*----------------------------------------------------------------------------*/
682 /* Enable/Disable Roaming                                                     */
683 /*----------------------------------------------------------------------------*/
684 WLAN_STATUS
685 nicRoamingUpdateParams(
686     IN P_ADAPTER_T prAdapter,
687     IN UINT_32 u4EnableRoaming
688     );
689
690
691 VOID
692 nicPrintFirmwareAssertInfo(
693     IN P_ADAPTER_T prAdapter
694     );
695
696 /*----------------------------------------------------------------------------*/
697 /* Link Quality Updating                                                      */
698 /*----------------------------------------------------------------------------*/
699 VOID
700 nicUpdateLinkQuality(
701     IN P_ADAPTER_T                  prAdapter,
702     IN ENUM_NETWORK_TYPE_INDEX_T    eNetTypeIdx,
703     IN P_EVENT_LINK_QUALITY         prEventLinkQuality
704     );
705
706 VOID
707 nicUpdateRSSI(
708     IN P_ADAPTER_T                  prAdapter,
709     IN ENUM_NETWORK_TYPE_INDEX_T    eNetTypeIdx,
710     IN INT_8                        cRssi,
711     IN INT_8                        cLinkQuality
712     );
713
714 VOID
715 nicUpdateLinkSpeed(
716     IN P_ADAPTER_T                  prAdapter,
717     IN ENUM_NETWORK_TYPE_INDEX_T    eNetTypeIdx,
718     IN UINT_16                      u2LinkSpeed
719     );
720
721 #if CFG_SUPPORT_RDD_TEST_MODE
722 WLAN_STATUS
723 nicUpdateRddTestMode(
724     IN P_ADAPTER_T      prAdapter,
725     IN P_CMD_RDD_CH_T   prRddChParam
726     );
727 #endif
728
729 #endif /* _NIC_H */
730