blob: 8f475b5641d69d8b26cfd5add88381c8e1bc691a [file] [log] [blame]
Jeff Johnson295189b2012-06-20 16:38:30 -07001/*
Gopichand Nakkala92f07d82013-01-08 21:16:34 -08002 * Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
3 *
4 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
5 *
6 *
7 * Permission to use, copy, modify, and/or distribute this software for
8 * any purpose with or without fee is hereby granted, provided that the
9 * above copyright notice and this permission notice appear in all
10 * copies.
11 *
12 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
13 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
14 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
15 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
16 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
17 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
18 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
19 * PERFORMANCE OF THIS SOFTWARE.
20 */
21/*
Jeff Johnson32d95a32012-09-10 13:15:23 -070022 * Copyright (c) 2012, The Linux Foundation. All rights reserved.
Jeff Johnson295189b2012-06-20 16:38:30 -070023 *
24 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
25 *
26 *
27 * Permission to use, copy, modify, and/or distribute this software for
28 * any purpose with or without fee is hereby granted, provided that the
29 * above copyright notice and this permission notice appear in all
30 * copies.
31 *
32 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
33 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
34 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
35 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
36 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
37 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
38 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
39 * PERFORMANCE OF THIS SOFTWARE.
40 */
41
42#ifndef WLAN_QCT_WDA_H
43#define WLAN_QCT_WDA_H
44
45/*===========================================================================
46
Jeff Johnson6239e642013-02-22 21:22:26 -080047 W L A N DEVICE ADAPTATION L A Y E R
Jeff Johnson295189b2012-06-20 16:38:30 -070048 E X T E R N A L A P I
Jeff Johnson6239e642013-02-22 21:22:26 -080049
50
Jeff Johnson295189b2012-06-20 16:38:30 -070051DESCRIPTION
52 This file contains the external API exposed by the wlan adaptation layer for Prima
53 and Volans.
54
55 For Volans this layer is actually a thin layer that maps all WDA messages and
56 functions to equivalent HAL messages and functions. The reason this layer was introduced
Jeff Johnson6239e642013-02-22 21:22:26 -080057 was to keep the UMAC identical across Prima and Volans. This layer provides the glue
Jeff Johnson295189b2012-06-20 16:38:30 -070058 between SME, PE , TL and HAL.
59
Jeff Johnson295189b2012-06-20 16:38:30 -070060===========================================================================*/
61
62
63/*===========================================================================
64
65 EDIT HISTORY FOR FILE
66
67
68 This section contains comments describing changes made to the module.
69 Notice that changes are listed in reverse chronological order.
70
71
72 $Header:$ $DateTime: $ $Author: $
73
74
75when who what, where, why
76-------- --- ----------------------------------------------
7710/05/2011 haparna Adding support for Keep Alive Feature
7801/27/2011 rnair Adding WDA support for Volans.
7912/08/2010 seokyoun Move down HAL interfaces from TL to WDA
80 for UMAC convergence btween Volans/Libra and Prima
Jeff Johnson6239e642013-02-22 21:22:26 -08008108/25/2010 adwivedi WDA Context and exposed API's
Jeff Johnson295189b2012-06-20 16:38:30 -070082=========================================================================== */
83
84#include "aniGlobal.h"
85
Jeff Johnson295189b2012-06-20 16:38:30 -070086
87# include "wlan_qct_wdi_ds.h"
88
Jeff Johnson295189b2012-06-20 16:38:30 -070089
90/* Add Include */
91
92typedef enum
93{
94 WDA_INIT_STATE,
95 WDA_START_STATE,
96 WDA_READY_STATE,
97 WDA_PRE_ASSOC_STATE,
98 WDA_BA_UPDATE_TL_STATE,
99 WDA_BA_UPDATE_LIM_STATE,
100 WDA_STOP_STATE,
101 WDA_CLOSE_STATE
102}WDA_state;
103
104typedef enum
105{
106 WDA_PROCESS_SET_LINK_STATE,
107 WDA_IGNORE_SET_LINK_STATE
108}WDA_processSetLinkStateStatus;
109
110typedef enum
111{
112 WDA_DISABLE_BA,
113 WDA_ENABLE_BA
114}WDA_BaEnableFlags;
115
116typedef enum
117{
118 WDA_INVALID_STA_INDEX,
119 WDA_VALID_STA_INDEX
120}WDA_ValidStaIndex;
121
Jeff Johnson295189b2012-06-20 16:38:30 -0700122/*--------------------------------------------------------------------------
123 Utilities
124 --------------------------------------------------------------------------*/
125
126#define WDA_TLI_CEIL( _a, _b) (( 0 != (_a)%(_b))? (_a)/(_b) + 1: (_a)/(_b))
127
128/*
129 * Check the version number and find if MCC feature is supported or not
130 */
131#define IS_MCC_SUPPORTED (WDA_IsWcnssWlanReportedVersionGreaterThanOrEqual( 0, 1, 1, 0))
Viral Modid86bde22012-12-10 13:09:21 -0800132#define IS_FEATURE_SUPPORTED_BY_FW(featEnumValue) (!!WDA_getFwWlanFeatCaps(featEnumValue))
Jeff Johnson295189b2012-06-20 16:38:30 -0700133
Yathish9f22e662012-12-10 14:21:35 -0800134#ifdef WLAN_ACTIVEMODE_OFFLOAD_FEATURE
135#define IS_ACTIVEMODE_OFFLOAD_FEATURE_ENABLE ((WDA_getFwWlanFeatCaps(WLANACTIVE_OFFLOAD)) & (WDI_getHostWlanFeatCaps(WLANACTIVE_OFFLOAD)))
136#else
137#define IS_ACTIVEMODE_OFFLOAD_FEATURE_ENABLE 0
138#endif
139
140
Jeff Johnson295189b2012-06-20 16:38:30 -0700141/*--------------------------------------------------------------------------
142 Definitions for Data path APIs
143 --------------------------------------------------------------------------*/
144
145/*As per 802.11 spec */
146#define WDA_TLI_MGMT_FRAME_TYPE 0x00
147#define WDA_TLI_CTRL_FRAME_TYPE 0x10
148#define WDA_TLI_DATA_FRAME_TYPE 0x20
149
150/*802.3 header definitions*/
151#define WDA_TLI_802_3_HEADER_LEN 14
152/*802.11 header definitions - header len without QOS ctrl field*/
153#define WDA_TLI_802_11_HEADER_LEN 24
154
155/*Determines the header len based on the disable xtl field*/
156#define WDA_TLI_MAC_HEADER_LEN( _dxtl) \
157 ( ( 0 == _dxtl )? \
158 WDA_TLI_802_3_HEADER_LEN:WDA_TLI_802_11_HEADER_LEN )
159
160/* TX channel enum type:
161
162 We have five types of TX packets so far and want to block/unblock each
163 traffic individually according to, for example, low resouce condition.
164 Define five TX channels for UMAC here. WDA can map these logical
165 channels to physical DXE channels if needed.
166*/
167typedef enum
168{
169 WDA_TXFLOW_AC_BK = 0,
170 WDA_TXFLOW_AC_BE = 1,
171 WDA_TXFLOW_AC_VI = 2,
172 WDA_TXFLOW_AC_VO = 3,
173 WDA_TXFLOW_MGMT = 4,
174 WDA_TXFLOW_BAP = 1, /* BAP is sent as BE */
175 WDA_TXFLOW_FC = 1, /* FC is sent as BE */
176 WDA_TXFLOW_MAX
177} WDA_TXFlowEnumType;
178
179#define WDA_TXFLOWMASK 0x1F /* 1~4bit:low priority ch / 5bit: high */
180
181/* ---------------------------------------------------------------------
182 Libra and Volans specifics
183
184 TODO Consider refactoring it and put it into two separate headers,
185 one for Prima and one for Volans
Jeff Johnson295189b2012-06-20 16:38:30 -0700186 ----------------------------------------------------------------------*/
187
188/* For backward compatability with SDIO. It's BAL header size for SDIO
189 interface. It's nothing for integrated SOC */
Jeff Johnson295189b2012-06-20 16:38:30 -0700190#define WDA_DXE_HEADER_SIZE 0
Jeff Johnson295189b2012-06-20 16:38:30 -0700191
Jeff Johnson295189b2012-06-20 16:38:30 -0700192
193/*Minimum resources needed - arbitrary*/
194
195/*DXE + SD*/
Madan Mohan Koyyalamudia53c4dc2012-11-13 10:35:42 -0800196#define WDA_WLAN_LIBRA_HEADER_LEN (20 + 8)
Jeff Johnson295189b2012-06-20 16:38:30 -0700197
Jeff Johnson295189b2012-06-20 16:38:30 -0700198#define WDA_TLI_BD_PDU_RESERVE_THRESHOLD 10
Jeff Johnson295189b2012-06-20 16:38:30 -0700199
200
Jeff Johnson295189b2012-06-20 16:38:30 -0700201# define WDA_TLI_MIN_RES_MF 1
202# define WDA_TLI_MIN_RES_BAP 2
203# define WDA_TLI_MIN_RES_DATA 3
Jeff Johnson295189b2012-06-20 16:38:30 -0700204
Jeff Johnson295189b2012-06-20 16:38:30 -0700205# define WDA_NUM_STA 8
Jeff Johnson295189b2012-06-20 16:38:30 -0700206
207/* For backward compatability with SDIO.
208
209 For SDIO interface, calculate the TX frame length and number of PDU
210 to transfter the frame.
211
212 _vosBuff: IN VOS pakcet buffer pointer
213 _usPktLen: OUT VOS packet length in bytes
214 _uResLen: OUT Number of PDU to hold this VOS packet
215 _uTotalPktLen: OUT Totoal packet length including BAL header size
216
217 For integrated SOC, _usPktLen and _uTotalPktLen is VOS pakcet length
218 which does include BD header length. _uResLen is hardcoded 2.
219 */
Jeff Johnson295189b2012-06-20 16:38:30 -0700220
221#ifdef WINDOWS_DT
222#define WDA_TLI_PROCESS_FRAME_LEN( _vosBuff, _usPktLen, \
223 _uResLen, _uTotalPktLen) \
224 do \
225 { \
226 _usPktLen = wpalPacketGetFragCount((wpt_packet*)_vosBuff) + 1/*BD*/;\
227 _uResLen = _usPktLen; \
228 _uTotalPktLen = _usPktLen; \
229 } \
230 while ( 0 )
231#else /* WINDOWS_DT */
232#define WDA_TLI_PROCESS_FRAME_LEN( _vosBuff, _usPktLen, \
233 _uResLen, _uTotalPktLen) \
234 do \
235 { \
236 _usPktLen = 2; /* Need 1 descriptor per a packet + packet*/ \
237 _uResLen = 2; /* Assume that we spends two DXE descriptor */ \
238 _uTotalPktLen = _usPktLen; \
239 } \
240 while ( 0 )
241#endif /* WINDOWS_DT */
242
Jeff Johnson295189b2012-06-20 16:38:30 -0700243
244
245/*--------------------------------------------------------------------------
246 Message Definitions
247 --------------------------------------------------------------------------*/
248
249/* TX Tranmit request message. It serializes TX request to TX thread.
250 The message is processed in TL.
251*/
252#define WDA_DS_TX_START_XMIT WLANTL_TX_START_XMIT
253#define WDA_DS_FINISH_ULA WLANTL_FINISH_ULA
254
255
256#define WDA_TX_PACKET_FREED 0X0
257
Jeff Johnson43971f52012-07-17 12:26:56 -0700258/* Approximate amount of time to wait for WDA to stop WDI considering 1 pendig req too*/
259#define WDA_STOP_TIMEOUT ( (WDI_RESPONSE_TIMEOUT * 2) + WDI_SET_POWER_STATE_TIMEOUT + 5)
Jeff Johnson295189b2012-06-20 16:38:30 -0700260/*--------------------------------------------------------------------------
261 Functions
262 --------------------------------------------------------------------------*/
263
264/* For data client */
265typedef VOS_STATUS (*WDA_DS_TxCompleteCallback) ( v_PVOID_t pContext, vos_pkt_t *pFrameDataBuff, VOS_STATUS txStatus );
266typedef VOS_STATUS (*WDA_DS_RxPacketCallback) ( v_PVOID_t pContext, vos_pkt_t *pFrameDataBuff );
267typedef v_U32_t (*WDA_DS_TxPacketCallback) ( v_PVOID_t pContext,
268 vos_pkt_t **ppFrameDataBuff,
269 v_U32_t uSize,
Jeff Johnson295189b2012-06-20 16:38:30 -0700270 v_U8_t uFlowMask,
Jeff Johnson295189b2012-06-20 16:38:30 -0700271 v_BOOL_t *pbUrgent );
272typedef VOS_STATUS (*WDA_DS_ResourceCB) ( v_PVOID_t pContext, v_U32_t uCount );
273
274
Jeff Johnson295189b2012-06-20 16:38:30 -0700275/* For management client */
276typedef VOS_STATUS (*WDA_DS_TxCompleteCb)( v_PVOID_t pContext, wpt_packet *pFrame );
277typedef VOS_STATUS (*WDA_DS_RxCompleteCb)( v_PVOID_t pContext, wpt_packet *pFrame );
278typedef VOS_STATUS (*WDA_DS_TxFlowControlCb)( v_PVOID_t pContext, v_U8_t acMask );
279typedef void (*pWDATxRxCompFunc)( v_PVOID_t pContext, void *pData );
280
281//callback function for TX complete
282//parameter 1 - global pMac pointer
283//parameter 2 - txComplete status : 1- success, 0 - failure.
284typedef eHalStatus (*pWDAAckFnTxComp)(tpAniSirGlobal, tANI_U32);
285
286typedef struct
287{
288 tANI_U16 ucValidStaIndex ;
289 /*
290 * each bit in ucUseBaBitmap represent BA is enabled or not for this tid
291 * tid0 ..bit0, tid1..bit1 and so on..
292 */
293 tANI_U8 ucUseBaBitmap ;
294 tANI_U8 bssIdx;
295 tANI_U32 framesTxed[STACFG_MAX_TC];
296}tWdaStaInfo, *tpWdaStaInfo ;
297
298/* group all the WDA timers into this structure */
299typedef struct
300{
301 /* BA activity check timer */
302 TX_TIMER baActivityChkTmr ;
303
304 /* Tx Complete Timeout timer */
305 TX_TIMER TxCompleteTimer ;
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -0800306
307 /* Traffic Stats timer */
308 TX_TIMER trafficStatsTimer ;
Jeff Johnson295189b2012-06-20 16:38:30 -0700309}tWdaTimers ;
Gopichand Nakkala976e3252013-01-03 15:45:56 -0800310#ifdef WLAN_SOFTAP_VSTA_FEATURE
Yathish Hanumapuradoddi Shivanna64dfc472013-03-08 10:48:34 -0800311#define WDA_MAX_STA (41)
Gopichand Nakkala976e3252013-01-03 15:45:56 -0800312#else
Jeff Johnson295189b2012-06-20 16:38:30 -0700313#define WDA_MAX_STA (16)
Gopichand Nakkala976e3252013-01-03 15:45:56 -0800314#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700315typedef struct
316{
317 v_PVOID_t pVosContext; /* global VOSS context*/
318 v_PVOID_t pWdiContext; /* WDI context */
319 WDA_state wdaState ; /* WDA state tracking */
Jeff Johnson295189b2012-06-20 16:38:30 -0700320 v_PVOID_t wdaWdiCfgApiMsgParam ; /* WDI API paramter tracking */
321 vos_event_t wdaWdiEvent; /* WDI API sync event */
322
323 /* Event to wait for tx completion */
324 vos_event_t txFrameEvent;
325
326 /* call back function for tx complete*/
327 pWDATxRxCompFunc pTxCbFunc;
328 /* call back function for tx packet ack */
329 pWDAAckFnTxComp pAckTxCbFunc;
330 tANI_U32 frameTransRequired;
331 tSirMacAddr macBSSID; /*BSSID of the network */
332 tSirMacAddr macSTASelf; /*Self STA MAC*/
333
334 /* TX channel mask for flow control */
335 v_U8_t uTxFlowMask;
336 /* TL's TX resource callback */
337 WDA_DS_ResourceCB pfnTxResourceCB;
338 /* TL's TX complete callback */
339 WDA_DS_TxCompleteCallback pfnTxCompleteCallback;
340
341 tWdaStaInfo wdaStaInfo[WDA_MAX_STA];
342
343 tANI_U8 wdaMaxSta;
344 tWdaTimers wdaTimers;
345
346 /* STA, AP, IBSS, MULTI-BSS etc.*/
347 tBssSystemRole wdaGlobalSystemRole;
348
349 /* driver mode, PRODUCTION or FTM */
350 tDriverType driverMode;
351
Jeff Johnson295189b2012-06-20 16:38:30 -0700352 /* FTM Command Request tracking */
353 v_PVOID_t wdaFTMCmdReq;
Jeff Johnson295189b2012-06-20 16:38:30 -0700354
355 /* Event to wait for suspend data tx*/
356 vos_event_t suspendDataTxEvent;
357 /* Status frm TL after suspend/resume Tx */
358 tANI_U8 txStatus;
359 /* Flag set to true when TL suspend timesout.*/
360 tANI_U8 txSuspendTimedOut;
361
362 vos_event_t waitOnWdiIndicationCallBack;
363
364 /* version information */
365 tSirVersionType wcnssWlanCompiledVersion;
366 tSirVersionType wcnssWlanReportedVersion;
367 tSirVersionString wcnssSoftwareVersionString;
368 tSirVersionString wcnssHardwareVersionString;
369
370
371 tSirLinkState linkState;
372 /* set, when BT AMP session is going on */
373 v_BOOL_t wdaAmpSessionOn;
374 v_U32_t VosPacketToFree;
Jeff Johnsone7245742012-09-05 17:12:55 -0700375 v_BOOL_t needShutdown;
Madan Mohan Koyyalamudia2fc6412012-10-21 12:06:12 -0700376 v_BOOL_t wdiFailed;
Madan Mohan Koyyalamudid57ae632012-11-06 18:42:48 -0800377 v_BOOL_t wdaTimersCreated;
Jeff Johnson295189b2012-06-20 16:38:30 -0700378} tWDA_CbContext ;
379
380typedef struct
381{
382 v_PVOID_t pWdaContext; /* pointer to WDA context*/
383 v_PVOID_t wdaMsgParam; /* PE parameter tracking */
384 v_PVOID_t wdaWdiApiMsgParam; /* WDI API paramter tracking */
385} tWDA_ReqParams;
386
387/*
388 * FUNCTION: WDA_open
389 * open WDA context
390 */
391
392VOS_STATUS WDA_open(v_PVOID_t pVosContext, v_PVOID_t pOSContext,
393 tMacOpenParameters *pMacParams ) ;
394
395/*
396 * FUNCTION: WDA_preStart
397 * Trigger DAL-AL to start CFG download
398 */
399VOS_STATUS WDA_start(v_PVOID_t pVosContext) ;
400
401VOS_STATUS WDA_NVDownload_Start(v_PVOID_t pVosContext);
402
403/*
404 * FUNCTION: WDA_preStart
405 * Trigger WDA to start CFG download
406 */
407VOS_STATUS WDA_preStart(v_PVOID_t pVosContext) ;
408/*
409 * FUNCTION: WDA_stop
410 * stop WDA
411 */
412VOS_STATUS WDA_stop(v_PVOID_t pVosContext,tANI_U8 reason);
413
414/*
415 * FUNCTION: WDA_close
416 * close WDA context
417 */
418VOS_STATUS WDA_close(v_PVOID_t pVosContext);
419/*
420 * FUNCTION: WDA_shutdown
421 * Shutdown will not close the control transport, added by SSR
422 */
423VOS_STATUS WDA_shutdown(v_PVOID_t pVosContext, wpt_boolean closeTransport);
424
425/*
Madan Mohan Koyyalamudi9d7a27f2012-11-28 15:55:25 -0800426 * FUNCTION: WDA_setNeedShutdown
427 * WDA stop failed or WDA NV Download failed
Jeff Johnsone7245742012-09-05 17:12:55 -0700428 */
Madan Mohan Koyyalamudi9d7a27f2012-11-28 15:55:25 -0800429void WDA_setNeedShutdown(v_PVOID_t pVosContext);
Jeff Johnsone7245742012-09-05 17:12:55 -0700430/*
431 * FUNCTION: WDA_needShutdown
432 * WDA requires a shutdown rather than a close
433 */
434v_BOOL_t WDA_needShutdown(v_PVOID_t pVosContext);
435
436/*
Jeff Johnson295189b2012-06-20 16:38:30 -0700437 * FUNCTION: WDA_McProcessMsg
438 * DAL-AL message processing entry function
439 */
440
441VOS_STATUS WDA_McProcessMsg( v_CONTEXT_t pVosContext, vos_msg_t *pMsg ) ;
442
443/* -----------------------------------------------------------------
444 * WDA data path API's
445 * ----------------------------------------------------------------*/
446/*
447 * FUNCTION: WDA_MgmtDSRegister
448 * Send Message back to PE
449 */
450
451VOS_STATUS WDA_MgmtDSRegister(tWDA_CbContext *pWDA,
452 WDA_DS_TxCompleteCb WDA_TxCompleteCallback,
453 WDA_DS_RxCompleteCb WDA_RxCompleteCallback,
454 WDA_DS_TxFlowControlCb WDA_TxFlowCtrlCallback
455 ) ;
456/*
457 * FUNCTION: WDA_MgmtDSTxPacket
458 * Forward TX management frame to WDI
459 */
460
461VOS_STATUS WDA_TxPacket(tWDA_CbContext *pWDA,
462 void *pFrmBuf,
463 tANI_U16 frmLen,
464 eFrameType frmType,
465 eFrameTxDir txDir,
466 tANI_U8 tid,
467 pWDATxRxCompFunc pCompFunc,
468 void *pData,
469 pWDAAckFnTxComp pAckTxComp,
470 tANI_U8 txFlag);
471
472/*
473 * FUNCTION: WDA_PostMsgApi
474 * API fpr PE to post Message to WDA
475 */
476VOS_STATUS WDA_PostMsgApi(tpAniSirGlobal pMac, tSirMsgQ *pMsg) ;
477
478/* ---------------------------------------------------------
479 * FUNCTION: wdaGetGlobalSystemRole()
480 *
481 * Get the global HAL system role.
482 * ---------------------------------------------------------
483 */
484tBssSystemRole wdaGetGlobalSystemRole(tpAniSirGlobal pMac);
485
486/* maximum wait time for WDA complete event (correct value has to be derived)
487 * for now giving the value 1000 ms */
488#define WDA_WDI_COMPLETION_TIME_OUT 30000 /* in ms */
489
490#define WDA_TL_TX_FRAME_TIMEOUT 10000 /* in msec a very high upper limit of 5,000 msec */
491#define WDA_TL_SUSPEND_TIMEOUT 2000 /* in ms unit */
492
493/*Tag used by WDA to mark a timed out frame*/
494#define WDA_TL_TX_MGMT_TIMED_OUT 0xDEAD
495
496#define WDA_TL_TX_SUSPEND_SUCCESS 0
497#define WDA_TL_TX_SUSPEND_FAILURE 1
498
499// FIXME Temporary value for R33D integaration
500//#define WDA_TL_TX_FRAME_TIMEOUT 20000 /* in msec a very high upper limit */
501
Jeff Johnson295189b2012-06-20 16:38:30 -0700502
Jeff Johnson295189b2012-06-20 16:38:30 -0700503
504/* ---------------------------------------------------------------------------
505
506 RX Meta info access for Integrated SOC
507 RX BD header access for NON Integrated SOC
508
509 These MACRO are for RX frames that are on flat buffers
510
511 ---------------------------------------------------------------------------*/
512
513/* WDA_GET_RX_MAC_HEADER *****************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700514# define WDA_GET_RX_MAC_HEADER(pRxMeta) \
515 (tpSirMacMgmtHdr)( ((WDI_DS_RxMetaInfoType *)(pRxMeta))->mpduHeaderPtr )
Jeff Johnson295189b2012-06-20 16:38:30 -0700516
517/* WDA_GET_RX_MPDUHEADER3A ****************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700518# define WDA_GET_RX_MPDUHEADER3A(pRxMeta) \
519 (tpSirMacDataHdr3a)( ((WDI_DS_RxMetaInfoType *)(pRxMeta))->mpduHeaderPtr )
Jeff Johnson295189b2012-06-20 16:38:30 -0700520
521/* WDA_GET_RX_MPDU_HEADER_LEN *************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700522# define WDA_GET_RX_MPDU_HEADER_LEN(pRxMeta) \
523 ( ((WDI_DS_RxMetaInfoType *)(pRxMeta))->mpduHeaderLength )
Jeff Johnson295189b2012-06-20 16:38:30 -0700524
525/* WDA_GET_RX_MPDU_LEN ********************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700526# define WDA_GET_RX_MPDU_LEN(pRxMeta) \
527 ( ((WDI_DS_RxMetaInfoType *)(pRxMeta))->mpduLength )
Jeff Johnson295189b2012-06-20 16:38:30 -0700528
529/* WDA_GET_RX_PAYLOAD_LEN ****************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700530# define WDA_GET_RX_PAYLOAD_LEN(pRxMeta) \
531 ( WDA_GET_RX_MPDU_LEN(pRxMeta) - WDA_GET_RX_MPDU_HEADER_LEN(pRxMeta) )
Jeff Johnson295189b2012-06-20 16:38:30 -0700532
533/* WDA_GET_RX_MAC_RATE_IDX ***************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700534# define WDA_GET_RX_MAC_RATE_IDX(pRxMeta) \
535 ( ((WDI_DS_RxMetaInfoType *)(pRxMeta))->rateIndex )
Jeff Johnson295189b2012-06-20 16:38:30 -0700536
537/* WDA_GET_RX_MPDU_DATA ******************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700538# define WDA_GET_RX_MPDU_DATA(pRxMeta) \
539 ( ((WDI_DS_RxMetaInfoType *)(pRxMeta))->mpduDataPtr )
Jeff Johnson295189b2012-06-20 16:38:30 -0700540
541/* WDA_GET_RX_MPDU_DATA_OFFSET ***********************************************/
542// For Integrated SOC: When UMAC receive the packet. BD is already stripped off.
543// Data offset is the MPDU header length
Jeff Johnson295189b2012-06-20 16:38:30 -0700544# define WDA_GET_RX_MPDU_DATA_OFFSET(pRxMeta) WDA_GET_RX_MPDU_HEADER_LEN(pRxMeta)
Jeff Johnson295189b2012-06-20 16:38:30 -0700545
546/* WDA_GET_RX_MPDU_HEADER_OFFSET *********************************************/
547// For Integrated SOC: We UMAC receive the frame,
548// BD is gone and MAC header at offset 0
Jeff Johnson295189b2012-06-20 16:38:30 -0700549# define WDA_GET_RX_MPDU_HEADER_OFFSET(pRxMeta) 0
Jeff Johnson295189b2012-06-20 16:38:30 -0700550
551/* WDA_GET_RX_UNKNOWN_UCAST **************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700552# define WDA_GET_RX_UNKNOWN_UCAST(pRxMeta) \
553 ( ((WDI_DS_RxMetaInfoType *)(pRxMeta))->unknownUcastPkt )
Jeff Johnson295189b2012-06-20 16:38:30 -0700554
555/* WDA_GET_RX_TID ************************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700556# define WDA_GET_RX_TID(pRxMeta) ( ((WDI_DS_RxMetaInfoType *)(pRxMeta))->tid )
Jeff Johnson295189b2012-06-20 16:38:30 -0700557
558/* WDA_GET_RX_STAID **********************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700559# define WDA_GET_RX_STAID(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->staId)
Jeff Johnson295189b2012-06-20 16:38:30 -0700560
561/* WDA_GET_RX_ADDR3_IDX ******************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700562# define WDA_GET_RX_ADDR3_IDX(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->addr3Idx)
Jeff Johnson295189b2012-06-20 16:38:30 -0700563
564/* WDA_GET_RX_CH *************************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700565# define WDA_GET_RX_CH(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->rxChannel)
Jeff Johnson295189b2012-06-20 16:38:30 -0700566
567/* WDA_GET_RX_DPUSIG *********************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700568# define WDA_GET_RX_DPUSIG(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->dpuSig)
Jeff Johnson295189b2012-06-20 16:38:30 -0700569
570/* WDA_IS_RX_BCAST ***********************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700571# define WDA_IS_RX_BCAST(pRxMeta) \
572 ( (1 == ((WDI_DS_RxMetaInfoType*)(pRxMeta))->bcast) ? VOS_TRUE : VOS_FALSE )
Jeff Johnson295189b2012-06-20 16:38:30 -0700573
574/* WDA_GET_RX_FT_DONE ********************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700575# define WDA_GET_RX_FT_DONE(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->ft)
Jeff Johnson295189b2012-06-20 16:38:30 -0700576
577/* WDA_GET_RX_DPU_FEEDBACK **************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700578# define WDA_GET_RX_DPU_FEEDBACK(pRxMeta) \
579 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->dpuFeedback)
Jeff Johnson295189b2012-06-20 16:38:30 -0700580
581/* WDA_GET_RX_ASF ************************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700582# define WDA_GET_RX_ASF(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->amsdu_asf)
Jeff Johnson295189b2012-06-20 16:38:30 -0700583
584/* WDA_GET_RX_AEF ************************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700585# define WDA_GET_RX_AEF(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->amsdu_aef)
Jeff Johnson295189b2012-06-20 16:38:30 -0700586
587/* WDA_GET_RX_ESF ************************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700588# define WDA_GET_RX_ESF(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->amsdu_esf)
Jeff Johnson295189b2012-06-20 16:38:30 -0700589
590/* WDA_GET_RX_BEACON_SENT ****************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700591# define WDA_GET_RX_BEACON_SENT(pRxMeta) \
592 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->bsf)
Jeff Johnson295189b2012-06-20 16:38:30 -0700593
594/* WDA_GET_RX_TSF_LATER *****************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700595# define WDA_GET_RX_TSF_LATER(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->rtsf)
Jeff Johnson295189b2012-06-20 16:38:30 -0700596
597/* WDA_GET_RX_TYPE ***********************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700598# define WDA_GET_RX_TYPE(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->type)
Jeff Johnson295189b2012-06-20 16:38:30 -0700599
600/* WDA_GET_RX_SUBTYPE ********************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700601# define WDA_GET_RX_SUBTYPE(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->subtype)
Jeff Johnson295189b2012-06-20 16:38:30 -0700602
603/* WDA_GET_RX_TYPE_SUBTYPE ****************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700604# define WDA_GET_RX_TYPE_SUBTYPE(pRxMeta) \
605 ((WDA_GET_RX_TYPE(pRxMeta)<<4)|WDA_GET_RX_SUBTYPE(pRxMeta))
Jeff Johnson295189b2012-06-20 16:38:30 -0700606
607/* WDA_GET_RX_REORDER_OPCODE : For MSDU reorder *******************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700608# define WDA_GET_RX_REORDER_OPCODE(pRxMeta) \
609 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->ampdu_reorderOpcode)
Jeff Johnson295189b2012-06-20 16:38:30 -0700610
611/* WDA_GET_RX_REORDER_SLOT_IDX : For MSDU reorder ****************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700612# define WDA_GET_RX_REORDER_SLOT_IDX(pRxMeta) \
613 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->ampdu_reorderSlotIdx)
Jeff Johnson295189b2012-06-20 16:38:30 -0700614
615/* WDA_GET_RX_REORDER_FWD_IDX : For MSDU reorder *****************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700616# define WDA_GET_RX_REORDER_FWD_IDX(pRxMeta) \
617 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->ampdu_reorderFwdIdx)
Jeff Johnson295189b2012-06-20 16:38:30 -0700618
619/* WDA_GET_RX_REORDER_CUR_PKT_SEQ_NO : Fro MSDU reorder **********************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700620# define WDA_GET_RX_REORDER_CUR_PKT_SEQ_NO(pRxMeta) \
621 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->currentPktSeqNo)
Jeff Johnson295189b2012-06-20 16:38:30 -0700622
623/* WDA_IS_RX_LLC_PRESENT *****************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700624# define WDA_IS_RX_LLC_PRESENT(pRxMeta) \
625 ( (0 == ((WDI_DS_RxMetaInfoType*)(pRxMeta))->llcr) ? VOS_TRUE : VOS_FALSE )
Jeff Johnson295189b2012-06-20 16:38:30 -0700626
627#define WLANWDA_HO_IS_AN_AMPDU 0x4000
628#define WLANWDA_HO_LAST_MPDU_OF_AMPDU 0x400
629
630/* WDA_IS_RX_AN_AMPDU ********************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700631# define WDA_IS_RX_AN_AMPDU(pRxMeta) \
632 ( ((WDI_DS_RxMetaInfoType*)(pRxMeta))->rxpFlags & WLANWDA_HO_IS_AN_AMPDU )
Jeff Johnson295189b2012-06-20 16:38:30 -0700633
634/* WDA_IS_RX_LAST_MPDU *******************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700635# define WDA_IS_RX_LAST_MPDU(pRxMeta) \
636 ( ((WDI_DS_RxMetaInfoType*)(pRxMeta))->rxpFlags & WLANWDA_HO_LAST_MPDU_OF_AMPDU )
Jeff Johnson295189b2012-06-20 16:38:30 -0700637
638/* WDA_GET_RX_TIMESTAMP *****************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700639# define WDA_GET_RX_TIMESTAMP(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->mclkRxTimestamp)
Jeff Johnson295189b2012-06-20 16:38:30 -0700640
641/* WDA_IS_RX_IN_SCAN *********************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700642# define WDA_IS_RX_IN_SCAN(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->scan)
Jeff Johnson295189b2012-06-20 16:38:30 -0700643
644/* WDA_GET_RX_RSSI_DB ********************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700645// Volans RF
646# define WDA_RSSI_OFFSET 100
647# define WDA_GET_RSSI0_DB(rssi0) (rssi0 - WDA_RSSI_OFFSET)
648# define WDA_GET_RSSI1_DB(rssi0) (0 - WDA_RSSI_OFFSET)
649# define WDA_MAX_OF_TWO(val1, val2) ( ((val1) > (val2)) ? (val1) : (val2))
650# define WDA_GET_RSSI_DB(rssi0) \
651 WDA_MAX_OF_TWO(WDA_GET_RSSI0_DB(rssi0), WDA_GET_RSSI1_DB(rssi0))
652# define WDA_GET_RX_RSSI_DB(pRxMeta) \
653 WDA_GET_RSSI_DB((((WDI_DS_RxMetaInfoType*)(pRxMeta))->rssi0))
Jeff Johnson295189b2012-06-20 16:38:30 -0700654
655/* WDA_GET_RX_SNR ************************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700656# define WDA_GET_RX_SNR(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->snr)
Jeff Johnson295189b2012-06-20 16:38:30 -0700657
658/* WDA_IS_RX_FC **************************************************************/
659// Flow control frames
Jeff Johnson295189b2012-06-20 16:38:30 -0700660/* FIXME WDA should provide the meta info which indicates FC frame
661 In the meantime, use hardcoded FALSE, since we don't support FC yet */
662# define WDA_IS_RX_FC(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->fc)
Jeff Johnson295189b2012-06-20 16:38:30 -0700663
664/* WDA_GET_RX_FC_VALID_STA_MASK **********************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700665# define WDA_GET_RX_FC_VALID_STA_MASK(pRxMeta) \
666 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->fcSTAValidMask)
Jeff Johnson295189b2012-06-20 16:38:30 -0700667
668/* WDA_GET_RX_FC_PWRSAVE_STA_MASK ********************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700669# define WDA_GET_RX_FC_PWRSAVE_STA_MASK(pRxMeta) \
670 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->fcSTAPwrSaveStateMask)
Jeff Johnson295189b2012-06-20 16:38:30 -0700671
672/* WDA_GET_RX_FC_STA_THRD_IND_MASK ********************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700673# define WDA_GET_RX_FC_STA_THRD_IND_MASK(pRxMeta) \
674 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->fcSTAThreshIndMask)
Jeff Johnson295189b2012-06-20 16:38:30 -0700675
676/* WDA_GET_RX_FC_FORCED_STA_TX_DISABLED_BITMAP ********************************************/
677# define WDA_GET_RX_FC_STA_TX_DISABLED_BITMAP(pRxMeta) \
678 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->fcStaTxDisabledBitmap)
679
680/* WDA_GET_RX_FC_STA_TXQ_LEN *************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700681# define WDA_GET_RX_FC_STA_TXQ_LEN(pRxMeta, staId) \
682 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->fcSTATxQLen[(staId)])
Jeff Johnson295189b2012-06-20 16:38:30 -0700683
684/* WDA_GET_RX_FC_STA_CUR_TXRATE **********************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700685# define WDA_GET_RX_FC_STA_CUR_TXRATE(pRxMeta, staId) \
686 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->fcSTACurTxRate[(staId)])
Jeff Johnson295189b2012-06-20 16:38:30 -0700687
688/* WDA_GET_RX_REPLAY_COUNT ***************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700689# define WDA_GET_RX_REPLAY_COUNT(pRxMeta) \
690 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->replayCount)
Jeff Johnson295189b2012-06-20 16:38:30 -0700691
692/* WDA_GETRSSI0 ***************************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700693# define WDA_GETRSSI0(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->rssi0)
Jeff Johnson295189b2012-06-20 16:38:30 -0700694
695/* WDA_GETRSSI1 ***************************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700696# define WDA_GETRSSI1(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->rssi1)
Jeff Johnson295189b2012-06-20 16:38:30 -0700697
698
699
700/* --------------------------------------------------------------------*/
701
Jeff Johnson295189b2012-06-20 16:38:30 -0700702uint8 WDA_IsWcnssWlanCompiledVersionGreaterThanOrEqual(uint8 major, uint8 minor, uint8 version, uint8 revision);
703uint8 WDA_IsWcnssWlanReportedVersionGreaterThanOrEqual(uint8 major, uint8 minor, uint8 version, uint8 revision);
704
705
706VOS_STATUS WDA_GetWcnssWlanCompiledVersion(v_PVOID_t pvosGCtx,
707 tSirVersionType *pVersion);
708VOS_STATUS WDA_GetWcnssWlanReportedVersion(v_PVOID_t pvosGCtx,
709 tSirVersionType *pVersion);
710VOS_STATUS WDA_GetWcnssSoftwareVersion(v_PVOID_t pvosGCtx,
711 tANI_U8 *pVersion,
712 tANI_U32 versionBufferSize);
713VOS_STATUS WDA_GetWcnssHardwareVersion(v_PVOID_t pvosGCtx,
714 tANI_U8 *pVersion,
715 tANI_U32 versionBufferSize);
716
717VOS_STATUS WDA_SetUapsdAcParamsReq(v_PVOID_t , v_U8_t , tUapsdInfo *);
718VOS_STATUS WDA_ClearUapsdAcParamsReq(v_PVOID_t , v_U8_t , wpt_uint8 );
719VOS_STATUS WDA_SetRSSIThresholdsReq(tpAniSirGlobal , tSirRSSIThresholds *);
720// Just declare the function extern here and save some time.
721extern tSirRetStatus halMmhForwardMBmsg(void*, tSirMbMsg*);
722tSirRetStatus uMacPostCtrlMsg(void* pSirGlobal, tSirMbMsg* pMb);
Jeff Johnson295189b2012-06-20 16:38:30 -0700723
724
Jeff Johnson295189b2012-06-20 16:38:30 -0700725#define WDA_MAX_TXPOWER_INVALID HAL_MAX_TXPOWER_INVALID
726
727//WDA Messages to HAL messages Mapping
728#if 0
729//Required by SME
730//#define WDA_SIGNAL_BT_EVENT SIR_HAL_SIGNAL_BT_EVENT - this is defined in sirParams.h
731//#define WDA_BTC_SET_CFG SIR_HAL_BTC_SET_CFG
732
733//Required by PE
734#define WDA_HOST_MSG_START SIR_HAL_HOST_MSG_START
735#define WDA_INITIAL_CAL_FAILED_NTF SIR_HAL_INITIAL_CAL_FAILED_NTF
736#define WDA_SHUTDOWN_REQ SIR_HAL_SHUTDOWN_REQ
737#define WDA_SHUTDOWN_CNF SIR_HAL_SHUTDOWN_CNF
738#define WDA_RADIO_ON_OFF_IND SIR_HAL_RADIO_ON_OFF_IND
739#define WDA_RESET_CNF SIR_HAL_RESET_CNF
740#define WDA_SetRegDomain \
Madan Mohan Koyyalamudic0d1b3f2012-11-13 10:41:07 -0800741 (eHalStatus halPhySetRegDomain(tHalHandle hHal, eRegDomainId regDomain))
Jeff Johnson295189b2012-06-20 16:38:30 -0700742#endif
743
744#define WDA_APP_SETUP_NTF SIR_HAL_APP_SETUP_NTF
745#define WDA_NIC_OPER_NTF SIR_HAL_NIC_OPER_NTF
746#define WDA_INIT_START_REQ SIR_HAL_INIT_START_REQ
747#define WDA_RESET_REQ SIR_HAL_RESET_REQ
748#define WDA_HDD_ADDBA_REQ SIR_HAL_HDD_ADDBA_REQ
749#define WDA_HDD_ADDBA_RSP SIR_HAL_HDD_ADDBA_RSP
750#define WDA_DELETEBA_IND SIR_HAL_DELETEBA_IND
751#define WDA_BA_FAIL_IND SIR_HAL_BA_FAIL_IND
752#define WDA_TL_FLUSH_AC_REQ SIR_TL_HAL_FLUSH_AC_REQ
753#define WDA_TL_FLUSH_AC_RSP SIR_HAL_TL_FLUSH_AC_RSP
754
755#define WDA_MSG_TYPES_BEGIN SIR_HAL_MSG_TYPES_BEGIN
756#define WDA_ITC_MSG_TYPES_BEGIN SIR_HAL_ITC_MSG_TYPES_BEGIN
757#define WDA_RADAR_DETECTED_IND SIR_HAL_RADAR_DETECTED_IND
758#define WDA_WDT_KAM_RSP SIR_HAL_WDT_KAM_RSP
759#define WDA_TIMER_TEMP_MEAS_REQ SIR_HAL_TIMER_TEMP_MEAS_REQ
760#define WDA_TIMER_PERIODIC_STATS_COLLECT_REQ SIR_HAL_TIMER_PERIODIC_STATS_COLLECT_REQ
761#define WDA_CAL_REQ_NTF SIR_HAL_CAL_REQ_NTF
762#define WDA_MNT_OPEN_TPC_TEMP_MEAS_REQ SIR_HAL_MNT_OPEN_TPC_TEMP_MEAS_REQ
763#define WDA_CCA_MONITOR_INTERVAL_TO SIR_HAL_CCA_MONITOR_INTERVAL_TO
764#define WDA_CCA_MONITOR_DURATION_TO SIR_HAL_CCA_MONITOR_DURATION_TO
765#define WDA_CCA_MONITOR_START SIR_HAL_CCA_MONITOR_START
766#define WDA_CCA_MONITOR_STOP SIR_HAL_CCA_MONITOR_STOP
767#define WDA_CCA_CHANGE_MODE SIR_HAL_CCA_CHANGE_MODE
768#define WDA_TIMER_WRAP_AROUND_STATS_COLLECT_REQ SIR_HAL_TIMER_WRAP_AROUND_STATS_COLLECT_REQ
769
770/*
771 * New Taurus related messages
772 */
773#define WDA_ADD_STA_REQ SIR_HAL_ADD_STA_REQ
774#define WDA_ADD_STA_RSP SIR_HAL_ADD_STA_RSP
775#define WDA_ADD_STA_SELF_RSP SIR_HAL_ADD_STA_SELF_RSP
776#define WDA_DEL_STA_SELF_RSP SIR_HAL_DEL_STA_SELF_RSP
777#define WDA_DELETE_STA_REQ SIR_HAL_DELETE_STA_REQ
778#define WDA_DELETE_STA_RSP SIR_HAL_DELETE_STA_RSP
779#define WDA_ADD_BSS_REQ SIR_HAL_ADD_BSS_REQ
780#define WDA_ADD_BSS_RSP SIR_HAL_ADD_BSS_RSP
781#define WDA_DELETE_BSS_REQ SIR_HAL_DELETE_BSS_REQ
782#define WDA_DELETE_BSS_RSP SIR_HAL_DELETE_BSS_RSP
783#define WDA_INIT_SCAN_REQ SIR_HAL_INIT_SCAN_REQ
784#define WDA_INIT_SCAN_RSP SIR_HAL_INIT_SCAN_RSP
785#define WDA_START_SCAN_REQ SIR_HAL_START_SCAN_REQ
786#define WDA_START_SCAN_RSP SIR_HAL_START_SCAN_RSP
787#define WDA_END_SCAN_REQ SIR_HAL_END_SCAN_REQ
788#define WDA_END_SCAN_RSP SIR_HAL_END_SCAN_RSP
789#define WDA_FINISH_SCAN_REQ SIR_HAL_FINISH_SCAN_REQ
790#define WDA_FINISH_SCAN_RSP SIR_HAL_FINISH_SCAN_RSP
791#define WDA_SEND_BEACON_REQ SIR_HAL_SEND_BEACON_REQ
792#define WDA_SEND_BEACON_RSP SIR_HAL_SEND_BEACON_RSP
793
794#define WDA_INIT_CFG_REQ SIR_HAL_INIT_CFG_REQ
795#define WDA_INIT_CFG_RSP SIR_HAL_INIT_CFG_RSP
796
797#define WDA_INIT_WM_CFG_REQ SIR_HAL_INIT_WM_CFG_REQ
798#define WDA_INIT_WM_CFG_RSP SIR_HAL_INIT_WM_CFG_RSP
799
800#define WDA_SET_BSSKEY_REQ SIR_HAL_SET_BSSKEY_REQ
801#define WDA_SET_BSSKEY_RSP SIR_HAL_SET_BSSKEY_RSP
802#define WDA_SET_STAKEY_REQ SIR_HAL_SET_STAKEY_REQ
803#define WDA_SET_STAKEY_RSP SIR_HAL_SET_STAKEY_RSP
804#define WDA_DPU_STATS_REQ SIR_HAL_DPU_STATS_REQ
805#define WDA_DPU_STATS_RSP SIR_HAL_DPU_STATS_RSP
806#define WDA_GET_DPUINFO_REQ SIR_HAL_GET_DPUINFO_REQ
807#define WDA_GET_DPUINFO_RSP SIR_HAL_GET_DPUINFO_RSP
808
809#define WDA_UPDATE_EDCA_PROFILE_IND SIR_HAL_UPDATE_EDCA_PROFILE_IND
810
811#define WDA_UPDATE_STARATEINFO_REQ SIR_HAL_UPDATE_STARATEINFO_REQ
812#define WDA_UPDATE_STARATEINFO_RSP SIR_HAL_UPDATE_STARATEINFO_RSP
813
814#define WDA_UPDATE_BEACON_IND SIR_HAL_UPDATE_BEACON_IND
815#define WDA_UPDATE_CF_IND SIR_HAL_UPDATE_CF_IND
816#define WDA_CHNL_SWITCH_REQ SIR_HAL_CHNL_SWITCH_REQ
817#define WDA_ADD_TS_REQ SIR_HAL_ADD_TS_REQ
818#define WDA_DEL_TS_REQ SIR_HAL_DEL_TS_REQ
819#define WDA_SOFTMAC_TXSTAT_REPORT SIR_HAL_SOFTMAC_TXSTAT_REPORT
820
821#define WDA_MBOX_SENDMSG_COMPLETE_IND SIR_HAL_MBOX_SENDMSG_COMPLETE_IND
822#define WDA_EXIT_BMPS_REQ SIR_HAL_EXIT_BMPS_REQ
823#define WDA_EXIT_BMPS_RSP SIR_HAL_EXIT_BMPS_RSP
824#define WDA_EXIT_BMPS_IND SIR_HAL_EXIT_BMPS_IND
825#define WDA_ENTER_BMPS_REQ SIR_HAL_ENTER_BMPS_REQ
826#define WDA_ENTER_BMPS_RSP SIR_HAL_ENTER_BMPS_RSP
827#define WDA_BMPS_STATUS_IND SIR_HAL_BMPS_STATUS_IND
828#define WDA_MISSED_BEACON_IND SIR_HAL_MISSED_BEACON_IND
829
830#define WDA_CFG_RXP_FILTER_REQ SIR_HAL_CFG_RXP_FILTER_REQ
831#define WDA_CFG_RXP_FILTER_RSP SIR_HAL_CFG_RXP_FILTER_RSP
832
833#define WDA_SWITCH_CHANNEL_RSP SIR_HAL_SWITCH_CHANNEL_RSP
834#define WDA_P2P_NOA_ATTR_IND SIR_HAL_P2P_NOA_ATTR_IND
Viral Modid86bde22012-12-10 13:09:21 -0800835#define WDA_P2P_NOA_START_IND SIR_HAL_P2P_NOA_START_IND
Jeff Johnson295189b2012-06-20 16:38:30 -0700836#define WDA_PWR_SAVE_CFG SIR_HAL_PWR_SAVE_CFG
837
838#define WDA_REGISTER_PE_CALLBACK SIR_HAL_REGISTER_PE_CALLBACK
839#define WDA_SOFTMAC_MEM_READREQUEST SIR_HAL_SOFTMAC_MEM_READREQUEST
840#define WDA_SOFTMAC_MEM_WRITEREQUEST SIR_HAL_SOFTMAC_MEM_WRITEREQUEST
841
842#define WDA_SOFTMAC_MEM_READRESPONSE SIR_HAL_SOFTMAC_MEM_READRESPONSE
843#define WDA_SOFTMAC_BULKREGWRITE_CONFIRM SIR_HAL_SOFTMAC_BULKREGWRITE_CONFIRM
844#define WDA_SOFTMAC_BULKREGREAD_RESPONSE SIR_HAL_SOFTMAC_BULKREGREAD_RESPONSE
845#define WDA_SOFTMAC_HOSTMESG_MSGPROCESSRESULT SIR_HAL_SOFTMAC_HOSTMESG_MSGPROCESSRESULT
846
847#define WDA_ADDBA_REQ SIR_HAL_ADDBA_REQ
848#define WDA_ADDBA_RSP SIR_HAL_ADDBA_RSP
849#define WDA_DELBA_IND SIR_HAL_DELBA_IND
850#define WDA_DEL_BA_IND SIR_HAL_DEL_BA_IND
851#define WDA_MIC_FAILURE_IND SIR_HAL_MIC_FAILURE_IND
852
853//message from sme to initiate delete block ack session.
854#define WDA_DELBA_REQ SIR_HAL_DELBA_REQ
855#define WDA_IBSS_STA_ADD SIR_HAL_IBSS_STA_ADD
856#define WDA_TIMER_ADJUST_ADAPTIVE_THRESHOLD_IND SIR_HAL_TIMER_ADJUST_ADAPTIVE_THRESHOLD_IND
857#define WDA_SET_LINK_STATE SIR_HAL_SET_LINK_STATE
858#define WDA_SET_LINK_STATE_RSP SIR_HAL_SET_LINK_STATE_RSP
859#define WDA_ENTER_IMPS_REQ SIR_HAL_ENTER_IMPS_REQ
860#define WDA_ENTER_IMPS_RSP SIR_HAL_ENTER_IMPS_RSP
861#define WDA_EXIT_IMPS_RSP SIR_HAL_EXIT_IMPS_RSP
862#define WDA_EXIT_IMPS_REQ SIR_HAL_EXIT_IMPS_REQ
863#define WDA_SOFTMAC_HOSTMESG_PS_STATUS_IND SIR_HAL_SOFTMAC_HOSTMESG_PS_STATUS_IND
864#define WDA_POSTPONE_ENTER_IMPS_RSP SIR_HAL_POSTPONE_ENTER_IMPS_RSP
865#define WDA_STA_STAT_REQ SIR_HAL_STA_STAT_REQ
866#define WDA_GLOBAL_STAT_REQ SIR_HAL_GLOBAL_STAT_REQ
867#define WDA_AGGR_STAT_REQ SIR_HAL_AGGR_STAT_REQ
868#define WDA_STA_STAT_RSP SIR_HAL_STA_STAT_RSP
869#define WDA_GLOBAL_STAT_RSP SIR_HAL_GLOBAL_STAT_RSP
870#define WDA_AGGR_STAT_RSP SIR_HAL_AGGR_STAT_RSP
871#define WDA_STAT_SUMM_REQ SIR_HAL_STAT_SUMM_REQ
872#define WDA_STAT_SUMM_RSP SIR_HAL_STAT_SUMM_RSP
873#define WDA_REMOVE_BSSKEY_REQ SIR_HAL_REMOVE_BSSKEY_REQ
874#define WDA_REMOVE_BSSKEY_RSP SIR_HAL_REMOVE_BSSKEY_RSP
875#define WDA_REMOVE_STAKEY_REQ SIR_HAL_REMOVE_STAKEY_REQ
876#define WDA_REMOVE_STAKEY_RSP SIR_HAL_REMOVE_STAKEY_RSP
877#define WDA_SET_STA_BCASTKEY_REQ SIR_HAL_SET_STA_BCASTKEY_REQ
878#define WDA_SET_STA_BCASTKEY_RSP SIR_HAL_SET_STA_BCASTKEY_RSP
879#define WDA_REMOVE_STA_BCASTKEY_REQ SIR_HAL_REMOVE_STA_BCASTKEY_REQ
880#define WDA_REMOVE_STA_BCASTKEY_RSP SIR_HAL_REMOVE_STA_BCASTKEY_RSP
881#define WDA_ADD_TS_RSP SIR_HAL_ADD_TS_RSP
882#define WDA_DPU_MIC_ERROR SIR_HAL_DPU_MIC_ERROR
883#define WDA_TIMER_BA_ACTIVITY_REQ SIR_HAL_TIMER_BA_ACTIVITY_REQ
884#define WDA_TIMER_CHIP_MONITOR_TIMEOUT SIR_HAL_TIMER_CHIP_MONITOR_TIMEOUT
885#define WDA_TIMER_TRAFFIC_ACTIVITY_REQ SIR_HAL_TIMER_TRAFFIC_ACTIVITY_REQ
886#define WDA_TIMER_ADC_RSSI_STATS SIR_HAL_TIMER_ADC_RSSI_STATS
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -0800887#define WDA_TIMER_TRAFFIC_STATS_IND SIR_HAL_TRAFFIC_STATS_IND
888
Jeff Johnson295189b2012-06-20 16:38:30 -0700889
890#ifdef FEATURE_WLAN_CCX
891#define WDA_TSM_STATS_REQ SIR_HAL_TSM_STATS_REQ
892#define WDA_TSM_STATS_RSP SIR_HAL_TSM_STATS_RSP
893#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700894#define WDA_UPDATE_PROBE_RSP_IE_BITMAP_IND SIR_HAL_UPDATE_PROBE_RSP_IE_BITMAP_IND
895#define WDA_UPDATE_UAPSD_IND SIR_HAL_UPDATE_UAPSD_IND
Jeff Johnson295189b2012-06-20 16:38:30 -0700896
897#define WDA_SET_MIMOPS_REQ SIR_HAL_SET_MIMOPS_REQ
898#define WDA_SET_MIMOPS_RSP SIR_HAL_SET_MIMOPS_RSP
899#define WDA_SYS_READY_IND SIR_HAL_SYS_READY_IND
900#define WDA_SET_TX_POWER_REQ SIR_HAL_SET_TX_POWER_REQ
901#define WDA_SET_TX_POWER_RSP SIR_HAL_SET_TX_POWER_RSP
902#define WDA_GET_TX_POWER_REQ SIR_HAL_GET_TX_POWER_REQ
903#define WDA_GET_TX_POWER_RSP SIR_HAL_GET_TX_POWER_RSP
904#define WDA_GET_NOISE_REQ SIR_HAL_GET_NOISE_REQ
905#define WDA_GET_NOISE_RSP SIR_HAL_GET_NOISE_RSP
906#define WDA_SET_TX_PER_TRACKING_REQ SIR_HAL_SET_TX_PER_TRACKING_REQ
907
908/* Messages to support transmit_halt and transmit_resume */
909#define WDA_TRANSMISSION_CONTROL_IND SIR_HAL_TRANSMISSION_CONTROL_IND
910/* Indication from LIM to HAL to Initialize radar interrupt */
911#define WDA_INIT_RADAR_IND SIR_HAL_INIT_RADAR_IND
912/* Messages to support transmit_halt and transmit_resume */
913
914
915#define WDA_BEACON_PRE_IND SIR_HAL_BEACON_PRE_IND
916#define WDA_ENTER_UAPSD_REQ SIR_HAL_ENTER_UAPSD_REQ
917#define WDA_ENTER_UAPSD_RSP SIR_HAL_ENTER_UAPSD_RSP
918#define WDA_EXIT_UAPSD_REQ SIR_HAL_EXIT_UAPSD_REQ
919#define WDA_EXIT_UAPSD_RSP SIR_HAL_EXIT_UAPSD_RSP
920#define WDA_LOW_RSSI_IND SIR_HAL_LOW_RSSI_IND
921#define WDA_BEACON_FILTER_IND SIR_HAL_BEACON_FILTER_IND
922/// PE <-> HAL WOWL messages
923#define WDA_WOWL_ADD_BCAST_PTRN SIR_HAL_WOWL_ADD_BCAST_PTRN
924#define WDA_WOWL_DEL_BCAST_PTRN SIR_HAL_WOWL_DEL_BCAST_PTRN
925#define WDA_WOWL_ENTER_REQ SIR_HAL_WOWL_ENTER_REQ
926#define WDA_WOWL_ENTER_RSP SIR_HAL_WOWL_ENTER_RSP
927#define WDA_WOWL_EXIT_REQ SIR_HAL_WOWL_EXIT_REQ
928#define WDA_WOWL_EXIT_RSP SIR_HAL_WOWL_EXIT_RSP
929#define WDA_TX_COMPLETE_IND SIR_HAL_TX_COMPLETE_IND
930#define WDA_TIMER_RA_COLLECT_AND_ADAPT SIR_HAL_TIMER_RA_COLLECT_AND_ADAPT
931/// PE <-> HAL statistics messages
932#define WDA_GET_STATISTICS_REQ SIR_HAL_GET_STATISTICS_REQ
933#define WDA_GET_STATISTICS_RSP SIR_HAL_GET_STATISTICS_RSP
934#define WDA_SET_KEY_DONE SIR_HAL_SET_KEY_DONE
935
936/// PE <-> HAL BTC messages
937#define WDA_BTC_SET_CFG SIR_HAL_BTC_SET_CFG
938#define WDA_SIGNAL_BT_EVENT SIR_HAL_SIGNAL_BT_EVENT
939#define WDA_HANDLE_FW_MBOX_RSP SIR_HAL_HANDLE_FW_MBOX_RSP
940#define WDA_UPDATE_PROBE_RSP_TEMPLATE_IND SIR_HAL_UPDATE_PROBE_RSP_TEMPLATE_IND
941#define WDA_SIGNAL_BTAMP_EVENT SIR_HAL_SIGNAL_BTAMP_EVENT
942
943#ifdef ANI_CHIPSET_VOLANS
Jeff Johnsone7245742012-09-05 17:12:55 -0700944#ifdef FEATURE_OEM_DATA_SUPPORT
945/* PE <-> HAL OEM_DATA RELATED MESSAGES */
946#define WDA_START_OEM_DATA_REQ SIR_HAL_START_OEM_DATA_REQ
947#define WDA_START_OEM_DATA_RSP SIR_HAL_START_OEM_DATA_RSP
948#define WDA_FINISH_OEM_DATA_REQ SIR_HAL_FINISH_OEM_DATA_REQ
949#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700950#endif
951
952#define WDA_SET_MAX_TX_POWER_REQ SIR_HAL_SET_MAX_TX_POWER_REQ
953#define WDA_SET_MAX_TX_POWER_RSP SIR_HAL_SET_MAX_TX_POWER_RSP
954
955#define WDA_SEND_MSG_COMPLETE SIR_HAL_SEND_MSG_COMPLETE
956
957/// PE <-> HAL Host Offload message
958#define WDA_SET_HOST_OFFLOAD SIR_HAL_SET_HOST_OFFLOAD
959
960/// PE <-> HAL Keep Alive message
961#define WDA_SET_KEEP_ALIVE SIR_HAL_SET_KEEP_ALIVE
962
963#ifdef WLAN_NS_OFFLOAD
964#define WDA_SET_NS_OFFLOAD SIR_HAL_SET_NS_OFFLOAD
965#endif //WLAN_NS_OFFLOAD
966#define WDA_ADD_STA_SELF_REQ SIR_HAL_ADD_STA_SELF_REQ
967#define WDA_DEL_STA_SELF_REQ SIR_HAL_DEL_STA_SELF_REQ
968
Jeff Johnson295189b2012-06-20 16:38:30 -0700969#define WDA_SET_P2P_GO_NOA_REQ SIR_HAL_SET_P2P_GO_NOA_REQ
Jeff Johnson295189b2012-06-20 16:38:30 -0700970
Madan Mohan Koyyalamudia53c4dc2012-11-13 10:35:42 -0800971#define WDA_TX_COMPLETE_TIMEOUT_IND (WDA_MSG_TYPES_END - 1)
Jeff Johnson295189b2012-06-20 16:38:30 -0700972#define WDA_WLAN_SUSPEND_IND SIR_HAL_WLAN_SUSPEND_IND
973#define WDA_WLAN_RESUME_REQ SIR_HAL_WLAN_RESUME_REQ
974#define WDA_MSG_TYPES_END SIR_HAL_MSG_TYPES_END
975
Jeff Johnson295189b2012-06-20 16:38:30 -0700976#define WDA_MMH_TXMB_READY_EVT SIR_HAL_MMH_TXMB_READY_EVT
977#define WDA_MMH_RXMB_DONE_EVT SIR_HAL_MMH_RXMB_DONE_EVT
978#define WDA_MMH_MSGQ_NE_EVT SIR_HAL_MMH_MSGQ_NE_EVT
Jeff Johnson295189b2012-06-20 16:38:30 -0700979
980#ifdef WLAN_FEATURE_VOWIFI_11R
981#define WDA_AGGR_QOS_REQ SIR_HAL_AGGR_QOS_REQ
982#define WDA_AGGR_QOS_RSP SIR_HAL_AGGR_QOS_RSP
983#endif /* WLAN_FEATURE_VOWIFI_11R */
984
Jeff Johnson295189b2012-06-20 16:38:30 -0700985/* FTM CMD MSG */
986#define WDA_FTM_CMD_REQ SIR_PTT_MSG_TYPES_BEGIN
987#define WDA_FTM_CMD_RSP SIR_PTT_MSG_TYPES_END
Jeff Johnson295189b2012-06-20 16:38:30 -0700988
989#ifdef FEATURE_WLAN_SCAN_PNO
990/*Requests sent to lower driver*/
991#define WDA_SET_PNO_REQ SIR_HAL_SET_PNO_REQ
992#define WDA_SET_RSSI_FILTER_REQ SIR_HAL_SET_RSSI_FILTER_REQ
993#define WDA_UPDATE_SCAN_PARAMS_REQ SIR_HAL_UPDATE_SCAN_PARAMS
994
995/*Indication comming from lower driver*/
996#define WDA_SET_PNO_CHANGED_IND SIR_HAL_SET_PNO_CHANGED_IND
997#endif // FEATURE_WLAN_SCAN_PNO
998
999#ifdef WLAN_WAKEUP_EVENTS
1000#define WDA_WAKE_REASON_IND SIR_HAL_WAKE_REASON_IND
1001#endif // WLAN_WAKEUP_EVENTS
1002
1003#ifdef WLAN_FEATURE_PACKET_FILTERING
1004#define WDA_8023_MULTICAST_LIST_REQ SIR_HAL_8023_MULTICAST_LIST_REQ
1005#define WDA_RECEIVE_FILTER_SET_FILTER_REQ SIR_HAL_RECEIVE_FILTER_SET_FILTER_REQ
1006#define WDA_PACKET_COALESCING_FILTER_MATCH_COUNT_REQ SIR_HAL_PACKET_COALESCING_FILTER_MATCH_COUNT_REQ
1007#define WDA_PACKET_COALESCING_FILTER_MATCH_COUNT_RSP SIR_HAL_PACKET_COALESCING_FILTER_MATCH_COUNT_RSP
1008#define WDA_RECEIVE_FILTER_CLEAR_FILTER_REQ SIR_HAL_RECEIVE_FILTER_CLEAR_FILTER_REQ
1009#endif // WLAN_FEATURE_PACKET_FILTERING
1010
1011#define WDA_SET_POWER_PARAMS_REQ SIR_HAL_SET_POWER_PARAMS_REQ
1012
1013#ifdef WLAN_FEATURE_GTK_OFFLOAD
1014#define WDA_GTK_OFFLOAD_REQ SIR_HAL_GTK_OFFLOAD_REQ
1015#define WDA_GTK_OFFLOAD_GETINFO_REQ SIR_HAL_GTK_OFFLOAD_GETINFO_REQ
1016#define WDA_GTK_OFFLOAD_GETINFO_RSP SIR_HAL_GTK_OFFLOAD_GETINFO_RSP
1017#endif //WLAN_FEATURE_GTK_OFFLOAD
1018
1019#define WDA_SET_TM_LEVEL_REQ SIR_HAL_SET_TM_LEVEL_REQ
1020
Mohit Khanna4a70d262012-09-11 16:30:12 -07001021#ifdef WLAN_FEATURE_11AC
1022#define WDA_UPDATE_OP_MODE SIR_HAL_UPDATE_OP_MODE
1023#endif
1024
Jeff Johnson295189b2012-06-20 16:38:30 -07001025tSirRetStatus wdaPostCtrlMsg(tpAniSirGlobal pMac, tSirMsgQ *pMsg);
Jeff Johnson295189b2012-06-20 16:38:30 -07001026
Jeff Johnson295189b2012-06-20 16:38:30 -07001027eHalStatus WDA_SetRegDomain(void * clientCtxt, v_REGDOMAIN_t regId);
Jeff Johnson295189b2012-06-20 16:38:30 -07001028
1029#define HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME 0x40 // Bit 6 will be used to control BD rate for Management frames
1030
Jeff Johnson295189b2012-06-20 16:38:30 -07001031#define halTxFrame(hHal, pFrmBuf, frmLen, frmType, txDir, tid, pCompFunc, pData, txFlag) \
1032 (eHalStatus)( WDA_TxPacket(\
1033 vos_get_context(VOS_MODULE_ID_WDA, vos_get_global_context(VOS_MODULE_ID_WDA, (hHal))),\
1034 (pFrmBuf),\
1035 (frmLen),\
1036 (frmType),\
1037 (txDir),\
1038 (tid),\
1039 (pCompFunc),\
1040 (pData),\
1041 (NULL), \
1042 (txFlag)) )
1043
1044#define halTxFrameWithTxComplete(hHal, pFrmBuf, frmLen, frmType, txDir, tid, pCompFunc, pData, pCBackFnTxComp, txFlag) \
1045 (eHalStatus)( WDA_TxPacket(\
1046 vos_get_context(VOS_MODULE_ID_WDA, vos_get_global_context(VOS_MODULE_ID_WDA, (hHal))),\
1047 (pFrmBuf),\
1048 (frmLen),\
1049 (frmType),\
1050 (txDir),\
1051 (tid),\
1052 (pCompFunc),\
1053 (pData),\
1054 (pCBackFnTxComp), \
1055 (txFlag)) )
Jeff Johnson295189b2012-06-20 16:38:30 -07001056
1057/* -----------------------------------------------------------------
1058 WDA data path API's for TL
1059 -------------------------------------------------------------------*/
1060
Jeff Johnson295189b2012-06-20 16:38:30 -07001061v_BOOL_t WDA_IsHwFrameTxTranslationCapable(v_PVOID_t pVosGCtx,
1062 tANI_U8 staIdx);
Jeff Johnson295189b2012-06-20 16:38:30 -07001063
Jeff Johnson295189b2012-06-20 16:38:30 -07001064# define WDA_EnableUapsdAcParams(vosGCtx, staId, uapsdInfo) \
1065 WDA_SetUapsdAcParamsReq(vosGCtx, staId, uapsdInfo)
Jeff Johnson295189b2012-06-20 16:38:30 -07001066
Jeff Johnson295189b2012-06-20 16:38:30 -07001067# define WDA_DisableUapsdAcParams(vosGCtx, staId, ac) \
1068 WDA_ClearUapsdAcParamsReq(vosGCtx, staId, ac)
Jeff Johnson295189b2012-06-20 16:38:30 -07001069
Jeff Johnson295189b2012-06-20 16:38:30 -07001070# define WDA_SetRSSIThresholds(pMac, pThresholds) \
1071 WDA_SetRSSIThresholdsReq(pMac, pThresholds)
Jeff Johnson295189b2012-06-20 16:38:30 -07001072
Jeff Johnson295189b2012-06-20 16:38:30 -07001073#define WDA_UpdateRssiBmps(pvosGCtx, staId, rssi) \
Madan Mohan Koyyalamudia53c4dc2012-11-13 10:35:42 -08001074 WLANTL_UpdateRssiBmps(pvosGCtx, staId, rssi)
Jeff Johnson295189b2012-06-20 16:38:30 -07001075
1076#ifdef WLAN_PERF
1077/*==========================================================================
1078 FUNCTION WDA_TLI_FastHwFwdDataFrame
1079
1080 DESCRIPTION
1081 For NON integrated SOC, this function is called by TL.
1082
1083 Fast path function to quickly forward a data frame if HAL determines BD
1084 signature computed here matches the signature inside current VOSS packet.
1085 If there is a match, HAL and TL fills in the swapped packet length into
1086 BD header and DxE header, respectively. Otherwise, packet goes back to
1087 normal (slow) path and a new BD signature would be tagged into BD in this
1088 VOSS packet later by the WLANHAL_FillTxBd() function.
1089
1090 TODO For integrated SOC, this function does nothing yet. Pima SLM/HAL
1091 should provide the equivelant functionality.
1092
1093 DEPENDENCIES
1094
1095 PARAMETERS
1096
1097 IN
1098 pvosGCtx VOS context
1099 vosDataBuff Ptr to VOSS packet
1100 pMetaInfo For getting frame's TID
1101 pStaInfo For checking STA type
1102
1103 OUT
1104 pvosStatus returned status
1105 puFastFwdOK Flag to indicate whether frame could be fast forwarded
1106
1107 RETURN VALUE
1108 No return.
1109
1110 SIDE EFFECTS
1111
1112============================================================================*/
1113void WDA_TLI_FastHwFwdDataFrame
1114(
1115 v_PVOID_t pvosGCtx,
1116 vos_pkt_t* vosDataBuff,
1117 VOS_STATUS* pvosStatus,
1118 v_U32_t* puFastFwdOK,
1119 WLANTL_MetaInfoType* pMetaInfo,
1120 WLAN_STADescType* pStaInfo
1121);
1122#endif /* WLAN_PERF */
1123
1124/*==========================================================================
1125 FUNCTION WDA_DS_Register
1126
1127 DESCRIPTION
1128 Register TL client to WDA. This function registers TL RX/TX functions
1129 to WDI by calling WDI_DS_Register.
1130
1131
1132 For NON integrated SOC, this function calls WLANBAL_RegTlCbFunctions
1133 to register TL's RX/TX functions to BAL
1134
1135 TODO
1136 For Prima, pfnResourceCB gets called in WDTS_OOResourceNotification.
1137 The uCount parameter is AC mask. It should be redefined to use the
1138 same resource callback function.
1139
1140 DEPENDENCIES
1141
1142 PARAMETERS
1143
1144 IN
1145 pvosGCtx VOS context
1146 pfnTxCompleteCallback TX complete callback upon TX completion
1147 pfnRxPacketCallback RX callback
1148 pfnResourceCB gets called when updating TX PDU number
1149 uResTheshold minimum TX PDU size for a packet
1150 pCallbackContext WDI calls callback function with it
1151 VOS global context pointer
1152 OUT
1153 uAvailableTxBuf available TX PDU numbder.
1154 BAL returns it for NON integrated SOC
1155
1156 RETURN VALUE
1157 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1158 VOS_STATUS_SUCCESS: Everything is good :)
1159
1160 SIDE EFFECTS
1161
1162============================================================================*/
1163VOS_STATUS
1164WDA_DS_Register
1165(
1166 v_PVOID_t pvosGCtx,
1167 WDA_DS_TxCompleteCallback pfnTxCompleteCallback,
1168 WDA_DS_RxPacketCallback pfnRxPacketCallback,
1169 WDA_DS_TxPacketCallback pfnTxPacketCallback,
1170 WDA_DS_ResourceCB pfnResourceCB,
1171 v_U32_t uResTheshold,
1172 v_PVOID_t pCallbackContext,
1173 v_U32_t *uAvailableTxBuf
1174);
1175
1176/*==========================================================================
1177 FUNCTION WDA_DS_StartXmit
1178
1179 DESCRIPTION
1180 Serialize TX transmit reques to TX thread.
1181
1182 TODO This sends TX transmit request to TL. It should send to WDI for
1183 abstraction.
1184
1185 For NON integrated SOC, this function calls WLANBAL_StartXmit
1186
1187 DEPENDENCIES
1188
1189 PARAMETERS
1190
1191 IN
1192 pvosGCtx VOS context
1193
1194 RETURN VALUE
1195 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1196 VOS_STATUS_SUCCESS: Everything is good :)
1197
1198 SIDE EFFECTS
1199
1200============================================================================*/
1201VOS_STATUS
1202WDA_DS_StartXmit
1203(
1204 v_PVOID_t pvosGCtx
1205);
1206
1207/*==========================================================================
1208 FUNCTION WDA_DS_FinishULA
1209
1210 DESCRIPTION
1211 Serialize Finish Upper Level Authentication reques to TX thread.
1212
1213 DEPENDENCIES
1214
1215 PARAMETERS
1216
1217 IN
1218 callbackRoutine routine to be called in TX thread
1219 callbackContext user data for the above routine
1220
1221 RETURN VALUE
1222 please see vos_tx_mq_serialize
1223
1224 SIDE EFFECTS
1225
1226============================================================================*/
1227VOS_STATUS
1228WDA_DS_FinishULA
1229(
1230 void (*callbackRoutine) (void *callbackContext),
Tushnim Bhattacharyya39a8f182013-02-20 18:10:30 -08001231 void *callbackContext
Jeff Johnson295189b2012-06-20 16:38:30 -07001232);
1233
1234/*==========================================================================
1235 FUNCTION WDA_DS_BuildTxPacketInfo
1236
1237 DESCRIPTION
1238 Build TX meta info for integrated SOC.
1239
1240 Same function calls HAL for reserve BD header space into VOS packet and
1241 HAL function to fill it.
1242
1243 DEPENDENCIES
1244
1245 PARAMETERS
1246
1247 IN
1248 pvosGCtx VOS context
1249 vosDataBuff vos data buffer
1250 pvDestMacAddr destination MAC address ponter
1251 ucDisableFrmXtl Is frame xtl disabled?
1252 ucQosEnabled Is QoS enabled?
1253 ucWDSEnabled Is WDS enabled?
1254 extraHeadSpace Extra head bytes. If it's not 0 due to 4 bytes align
1255 of BD header.
1256 typeSubtype typeSubtype from MAC header or TX metainfo/BD
1257 pAddr2 address 2
1258 uTid tid
1259 txFlag
1260 timeStamp
1261 ucIsEapol
1262 ucUP
1263
1264 OUT
1265 *pusPktLen Packet length
1266
1267 RETURN VALUE
1268 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1269 VOS_STATUS_SUCCESS: Everything is good :)
1270
1271 SIDE EFFECTS
1272
1273============================================================================*/
1274VOS_STATUS
1275WDA_DS_BuildTxPacketInfo
1276(
1277 v_PVOID_t pvosGCtx,
1278 vos_pkt_t* vosDataBuff,
1279 v_MACADDR_t* pvDestMacAddr,
1280 v_U8_t ucDisableFrmXtl,
1281 v_U16_t* pusPktLen,
1282 v_U8_t ucQosEnabled,
1283 v_U8_t ucWDSEnabled,
1284 v_U8_t extraHeadSpace,
1285 v_U8_t typeSubtype,
1286 v_PVOID_t pAddr2,
1287 v_U8_t uTid,
1288 v_U8_t txFlag,
1289 v_U32_t timeStamp,
1290 v_U8_t ucIsEapol,
1291 v_U8_t ucUP
1292);
1293
1294/*==========================================================================
1295 FUNCTION WDA_DS_PeekRxPacketInfo
1296
1297 DESCRIPTION
1298 Return RX metainfo pointer for for integrated SOC.
1299
1300 Same function will return BD header pointer.
1301
1302 DEPENDENCIES
1303
1304 PARAMETERS
1305
1306 IN
1307 vosDataBuff vos data buffer
1308
1309 pvDestMacAddr destination MAC address ponter
1310 bSwap Want to swap BD header? For backward compatability
1311 It does nothing for integrated SOC
1312 OUT
1313 *ppRxHeader RX metainfo pointer
1314
1315 RETURN VALUE
1316 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1317 VOS_STATUS_SUCCESS: Everything is good :)
1318
1319 SIDE EFFECTS
1320
1321============================================================================*/
1322VOS_STATUS
1323WDA_DS_PeekRxPacketInfo
1324(
1325 vos_pkt_t *vosDataBuff,
1326 v_PVOID_t *ppRxHeader,
1327 v_BOOL_t bSwap
1328);
1329
1330/*==========================================================================
1331 FUNCTION WDA_DS_TrimRxPacketInfo
1332
1333 DESCRIPTION
1334 Trim/Remove RX BD header for NON integrated SOC.
1335 It does nothing for integrated SOC.
1336
1337 DEPENDENCIES
1338
1339 PARAMETERS
1340
1341 IN
1342 vosDataBuff vos data buffer
1343
1344 RETURN VALUE
1345 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1346 VOS_STATUS_SUCCESS: Everything is good :)
1347
1348 SIDE EFFECTS
1349
1350============================================================================*/
1351VOS_STATUS
1352WDA_DS_TrimRxPacketInfo
1353(
1354 vos_pkt_t *vosDataBuff
1355);
1356
1357/*==========================================================================
1358 FUNCTION WDA_DS_GetTxResources
1359
1360 DESCRIPTION
1361 It does return hardcoded value for Prima. It should bigger number than 0.
1362 Returning 0 will put TL in out-of-resource condition for TX.
1363
1364 Return current PDU resources from BAL for NON integrated SOC.
1365
1366 DEPENDENCIES
1367
1368 PARAMETERS
1369
1370 IN
1371 vosDataBuff vos data buffer
1372
1373 OUT
1374 puResCount available PDU number for TX
1375
1376 RETURN VALUE
1377 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1378 VOS_STATUS_SUCCESS: Everything is good :)
1379
1380 SIDE EFFECTS
1381
1382============================================================================*/
1383VOS_STATUS
1384WDA_DS_GetTxResources
1385(
1386 v_PVOID_t pvosGCtx,
1387 v_U32_t* puResCount
1388);
1389
1390/*==========================================================================
1391 FUNCTION WDA_DS_GetRssi
1392
1393 DESCRIPTION
1394 Get RSSI
1395
1396 TODO It returns hardcoded value in the meantime since WDA/WDI does nothing
1397 support it yet for Prima.
1398
1399 DEPENDENCIES
1400
1401 PARAMETERS
1402
1403 IN
1404 vosDataBuff vos data buffer
1405
1406 OUT
1407 puRssi RSSI
1408
1409 RETURN VALUE
1410 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1411 VOS_STATUS_SUCCESS: Everything is good :)
1412
1413 SIDE EFFECTS
1414
1415============================================================================*/
1416VOS_STATUS
1417WDA_DS_GetRssi
1418(
1419 v_PVOID_t pvosGCtx,
1420 v_S7_t* puRssi
1421);
1422
1423/*==========================================================================
1424 FUNCTION WDA_DS_RxAmsduBdFix
1425
1426 DESCRIPTION
1427 For backward compatability with Libra/Volans. Need to call HAL function
1428 for HW BD bug fix
1429
1430 It does nothing for integrated SOC.
1431
1432 DEPENDENCIES
1433
1434 PARAMETERS
1435
1436 IN
1437 pvosGCtx VOS context
1438 pvBDHeader BD header pointer
1439
1440 OUT
1441
1442 RETURN VALUE
1443 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1444 VOS_STATUS_SUCCESS: Everything is good :)
1445
1446 SIDE EFFECTS
1447
1448============================================================================*/
1449VOS_STATUS
1450WDA_DS_RxAmsduBdFix
1451(
1452 v_PVOID_t pvosGCtx,
1453 v_PVOID_t pvBDHeader
1454);
1455
1456/*==========================================================================
1457 FUNCTION WDA_DS_GetFrameTypeSubType
1458
1459 DESCRIPTION
1460 Get typeSubtype from the packet. The BD header should have this.
1461 But some reason, Libra/Volans read it from 802.11 header and save it
1462 back to BD header. So for NON integrated SOC, this function does
1463 the same.
1464
1465 For integrated SOC, WDI does the same, not TL.
1466 It does return typeSubtype from RX meta info for integrated SOC.
1467
1468 DEPENDENCIES
1469
1470 PARAMETERS
1471
1472 IN
1473 pvosGCtx VOS context
1474 vosDataBuff vos data buffer
1475 pRxHeader RX meta info or BD header pointer
1476
1477 OUT
1478 ucTypeSubtype typeSubtype
1479
1480 RETURN VALUE
1481 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1482 VOS_STATUS_SUCCESS: Everything is good :)
1483
1484 SIDE EFFECTS
1485
1486============================================================================*/
1487VOS_STATUS
1488WDA_DS_GetFrameTypeSubType
1489(
1490 v_PVOID_t pvosGCtx,
1491 vos_pkt_t *vosDataBuff,
1492 v_PVOID_t pRxHeader,
1493 v_U8_t *ucTypeSubtype
1494);
1495
1496/*==========================================================================
1497 FUNCTION WDA_DS_GetReplayCounter
1498
1499 DESCRIPTION
1500 Return replay counter from BD header or RX meta info
1501
1502 DEPENDENCIES
1503
1504 PARAMETERS
1505
1506 IN
1507 pRxHeader RX meta info or BD header pointer
1508
1509 OUT
1510
1511 RETURN VALUE
1512 Replay Counter
1513
1514 SIDE EFFECTS
1515
1516============================================================================*/
1517v_U64_t
1518WDA_DS_GetReplayCounter
1519(
1520 v_PVOID_t pRxHeader
1521);
1522
1523/*==========================================================================
1524 FUNCTION WDA_DS_GetReplayCounter
1525
1526 DESCRIPTION
1527 HO support. Set RSSI threshold via HAL function for NON integrated SOC
1528
1529 TODO
1530 Same function should be provided by WDA/WDI for Prima.
1531
1532 DEPENDENCIES
1533
1534 PARAMETERS
1535
1536 IN
1537 pMac MAC global pointer
1538 pThresholds pointer of threshold structure to set.
1539
1540 OUT
1541
1542 RETURN VALUE
1543 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1544 VOS_STATUS_SUCCESS: Everything is good :)
1545
1546 SIDE EFFECTS
1547
1548============================================================================*/
1549VOS_STATUS
1550WDA_DS_SetRSSIThresholds
1551(
1552 tpAniSirGlobal pMac,
1553 tpSirRSSIThresholds pThresholds
1554);
1555
Jeff Johnson295189b2012-06-20 16:38:30 -07001556/*==========================================================================
1557 FUNCTION WDA_DS_TxFrames
1558
1559 DESCRIPTION
1560 Pull packets from TL and push them to WDI. It gets invoked upon
1561 WDA_DS_TX_START_XMIT.
1562
1563 This function is equivelant of WLANSSC_Transmit in Libra/Volans.
1564
1565 TODO
1566 This function should be implemented and moved in WDI.
1567
1568 DEPENDENCIES
1569
1570 PARAMETERS
1571
1572 IN
1573 pvosGCtx VOS context
1574
1575 OUT
1576
1577 RETURN VALUE
1578 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1579 VOS_STATUS_SUCCESS: Everything is good :)
1580
1581 SIDE EFFECTS
1582
1583============================================================================*/
1584VOS_STATUS
1585WDA_DS_TxFrames
1586(
1587 v_PVOID_t pvosGCtx
1588);
Jeff Johnson295189b2012-06-20 16:38:30 -07001589
1590/*==========================================================================
1591 FUNCTION WDA_DS_TxFlowControlCallback
1592
1593 DESCRIPTION
1594 Invoked by WDI to control TX flow.
1595
1596 DEPENDENCIES
1597
1598 PARAMETERS
1599
1600 IN
1601 pvosGCtx VOS context
1602 uFlowMask TX channel mask for flow control
1603 Defined in WDA_TXFlowEnumType
1604
1605 OUT
1606
1607 RETURN VALUE
1608
1609 SIDE EFFECTS
1610
1611============================================================================*/
1612v_VOID_t
1613WDA_DS_TxFlowControlCallback
1614(
1615 v_PVOID_t pvosGCtx,
1616 v_U8_t uFlowMask
1617);
1618
1619/*==========================================================================
1620 FUNCTION WDA_DS_GetTxFlowMask
1621
1622 DESCRIPTION
1623 return TX flow mask control value
1624
1625 DEPENDENCIES
1626
1627 PARAMETERS
1628
1629 IN
1630 pvosGCtx VOS context
1631
1632 OUT
1633 uFlowMask TX channel mask for flow control
1634 Defined in WDA_TXFlowEnumType
1635
1636 RETURN VALUE
1637 VOS_STATUS_E_INVAL: pointer is NULL and other errors
1638 VOS_STATUS_SUCCESS: Everything is good :)
1639
1640 SIDE EFFECTS
1641
1642============================================================================*/
1643VOS_STATUS
1644WDA_DS_GetTxFlowMask
1645(
1646 v_PVOID_t pvosGCtx,
1647 v_U8_t* puFlowMask
1648);
1649
1650/*==========================================================================
1651 FUNCTION WDA_HALDumpCmdReq
1652
1653 DESCRIPTION
1654 Send Dump commandsto WDI
1655
1656 DEPENDENCIES
1657
1658 PARAMETERS
1659
1660 IN
1661 pMac MAC global pointer
1662 cmd Hal dump command
1663 arg1 Dump command argument 1
1664 arg2 Dump command argument 2
1665 arg3 Dump command argument 3
1666 arg4 Dump command argument 4
1667
1668 OUT
1669 pBuffer Dump command Response buffer
1670
1671 RETURN VALUE
1672 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1673 VOS_STATUS_SUCCESS: Everything is good :)
1674
1675 SIDE EFFECTS
1676
1677============================================================================*/
1678VOS_STATUS WDA_HALDumpCmdReq(tpAniSirGlobal pMac,tANI_U32 cmd,
1679 tANI_U32 arg1, tANI_U32 arg2, tANI_U32 arg3,
1680 tANI_U32 arg4, tANI_U8 *pBuffer);
1681
1682/*==========================================================================
1683 FUNCTION WDA_featureCapsExchange
1684
1685 DESCRIPTION
1686 WDA API to invoke capability exchange between host and FW
1687
1688 DEPENDENCIES
1689
1690 PARAMETERS
1691
1692 IN
1693 pVosContext VOS context
1694
1695 OUT
1696 NONE
1697
1698 RETURN VALUE
1699 NONE
1700
1701 SIDE EFFECTS
1702============================================================================*/
1703void WDA_featureCapsExchange(v_PVOID_t pVosContext);
1704
Yathish9f22e662012-12-10 14:21:35 -08001705void WDA_disableCapablityFeature(tANI_U8 feature_index);
Jeff Johnson295189b2012-06-20 16:38:30 -07001706/*==========================================================================
1707 FUNCTION WDA_getHostWlanFeatCaps
1708
1709 DESCRIPTION
1710 Wrapper for WDI API, that will return if the feature (enum value).passed
1711 to this API is supported or not in Host
1712
1713 DEPENDENCIES
1714
1715 PARAMETERS
1716
1717 IN
1718 featEnumValue enum value for the feature as in placeHolderInCapBitmap in wlan_hal_msg.h.
1719
1720 OUT
1721 NONE
1722
1723 RETURN VALUE
1724 0 - implies feature is NOT Supported
1725 any non zero value - implies feature is SUPPORTED
1726
1727 SIDE EFFECTS
1728============================================================================*/
1729tANI_U8 WDA_getHostWlanFeatCaps(tANI_U8 featEnumValue);
1730
1731/*==========================================================================
1732 FUNCTION WDA_getFwWlanFeatCaps
1733
1734 DESCRIPTION
1735 Wrapper for WDI API, that will return if the feature (enum value).passed
1736 to this API is supported or not in FW
1737
1738 DEPENDENCIES
1739
1740 PARAMETERS
1741
1742 IN
1743 featEnumValue enum value for the feature as in placeHolderInCapBitmap in wlan_hal_msg.h.
1744
1745 OUT
1746 NONE
1747
1748 RETURN VALUE
1749 0 - implies feature is NOT Supported
1750 any non zero value - implies feature is SUPPORTED
1751
1752 SIDE EFFECTS
1753============================================================================*/
1754tANI_U8 WDA_getFwWlanFeatCaps(tANI_U8 featEnumValue);
1755
Madan Mohan Koyyalamudi8cb53982012-09-28 14:34:47 -07001756/*==========================================================================
1757 FUNCTION WDA_TransportChannelDebug
1758
1759 DESCRIPTION
1760 Display Transport Channel debugging information
1761 User may request to display DXE channel snapshot
1762 Or if host driver detects any abnormal stcuk may display
1763
1764 PARAMETERS
Jeff Johnsonb88db982012-12-10 13:34:59 -08001765 displaySnapshot : Display DXE snapshot option
Madan Mohan Koyyalamudi8cb53982012-09-28 14:34:47 -07001766 enableStallDetect : Enable stall detect feature
1767 This feature will take effect to data performance
1768 Not integrate till fully verification
1769
1770 RETURN VALUE
1771 NONE
1772
1773===========================================================================*/
1774void WDA_TransportChannelDebug
1775(
1776 v_BOOL_t displaySnapshot,
Madan Mohan Koyyalamudi24a00f92012-10-22 15:21:02 -07001777 v_BOOL_t toggleStallDetect
Madan Mohan Koyyalamudi8cb53982012-09-28 14:34:47 -07001778);
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08001779
1780/*==========================================================================
1781 FUNCTION WDA_TrafficStatsTimerActivate
1782
1783 DESCRIPTION
1784 API to activate/deactivate Traffic Stats timer. Traffic stats timer is only needed during MCC
1785 PARAMETERS
1786 activate : Activate or not
1787
1788 RETURN VALUE
1789 NONE
1790
1791===========================================================================*/
1792void WDA_TrafficStatsTimerActivate(wpt_boolean activate);
1793
Jeff Johnson295189b2012-06-20 16:38:30 -07001794#endif