blob: 6443ebba7cc895d5e9929a51b4bc2e0bd03c17f5 [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;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -0700121typedef enum
122{
123 eWDA_AUTH_TYPE_NONE, //never used
124 // MAC layer authentication types
125 eWDA_AUTH_TYPE_OPEN_SYSTEM,
126 // Upper layer authentication types
127 eWDA_AUTH_TYPE_WPA,
128 eWDA_AUTH_TYPE_WPA_PSK,
129
130 eWDA_AUTH_TYPE_RSN,
131 eWDA_AUTH_TYPE_RSN_PSK,
132 eWDA_AUTH_TYPE_FT_RSN,
133 eWDA_AUTH_TYPE_FT_RSN_PSK,
134 eWDA_AUTH_TYPE_WAPI_WAI_CERTIFICATE,
135 eWDA_AUTH_TYPE_WAPI_WAI_PSK,
136 eWDA_AUTH_TYPE_CCKM_WPA,
137 eWDA_AUTH_TYPE_CCKM_RSN,
138 eWDA_AUTH_TYPE_WPA_NONE,
139 eWDA_AUTH_TYPE_AUTOSWITCH,
140 eWDA_AUTH_TYPE_SHARED_KEY,
141 eWDA_NUM_OF_SUPPORT_AUTH_TYPE,
142 eWDA_AUTH_TYPE_FAILED = 0xff,
143 eWDA_AUTH_TYPE_UNKNOWN = eCSR_AUTH_TYPE_FAILED,
144}WDA_AuthType;
Jeff Johnson295189b2012-06-20 16:38:30 -0700145
Jeff Johnson295189b2012-06-20 16:38:30 -0700146/*--------------------------------------------------------------------------
147 Utilities
148 --------------------------------------------------------------------------*/
149
150#define WDA_TLI_CEIL( _a, _b) (( 0 != (_a)%(_b))? (_a)/(_b) + 1: (_a)/(_b))
151
152/*
153 * Check the version number and find if MCC feature is supported or not
154 */
155#define IS_MCC_SUPPORTED (WDA_IsWcnssWlanReportedVersionGreaterThanOrEqual( 0, 1, 1, 0))
Viral Modid86bde22012-12-10 13:09:21 -0800156#define IS_FEATURE_SUPPORTED_BY_FW(featEnumValue) (!!WDA_getFwWlanFeatCaps(featEnumValue))
Jeff Johnson295189b2012-06-20 16:38:30 -0700157
Yathish9f22e662012-12-10 14:21:35 -0800158#ifdef WLAN_ACTIVEMODE_OFFLOAD_FEATURE
159#define IS_ACTIVEMODE_OFFLOAD_FEATURE_ENABLE ((WDA_getFwWlanFeatCaps(WLANACTIVE_OFFLOAD)) & (WDI_getHostWlanFeatCaps(WLANACTIVE_OFFLOAD)))
160#else
161#define IS_ACTIVEMODE_OFFLOAD_FEATURE_ENABLE 0
162#endif
163
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -0700164#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
165#define IS_ROAM_SCAN_OFFLOAD_FEATURE_ENABLE ((WDI_getHostWlanFeatCaps(WLAN_ROAM_SCAN_OFFLOAD)) & (WDA_getFwWlanFeatCaps(WLAN_ROAM_SCAN_OFFLOAD)))
166#else
167#define IS_ROAM_SCAN_OFFLOAD_FEATURE_ENABLE 0
168#endif
Yathish9f22e662012-12-10 14:21:35 -0800169
Jeff Johnson295189b2012-06-20 16:38:30 -0700170/*--------------------------------------------------------------------------
171 Definitions for Data path APIs
172 --------------------------------------------------------------------------*/
173
174/*As per 802.11 spec */
175#define WDA_TLI_MGMT_FRAME_TYPE 0x00
176#define WDA_TLI_CTRL_FRAME_TYPE 0x10
177#define WDA_TLI_DATA_FRAME_TYPE 0x20
178
179/*802.3 header definitions*/
180#define WDA_TLI_802_3_HEADER_LEN 14
181/*802.11 header definitions - header len without QOS ctrl field*/
182#define WDA_TLI_802_11_HEADER_LEN 24
183
184/*Determines the header len based on the disable xtl field*/
185#define WDA_TLI_MAC_HEADER_LEN( _dxtl) \
186 ( ( 0 == _dxtl )? \
187 WDA_TLI_802_3_HEADER_LEN:WDA_TLI_802_11_HEADER_LEN )
188
189/* TX channel enum type:
190
191 We have five types of TX packets so far and want to block/unblock each
192 traffic individually according to, for example, low resouce condition.
193 Define five TX channels for UMAC here. WDA can map these logical
194 channels to physical DXE channels if needed.
195*/
196typedef enum
197{
198 WDA_TXFLOW_AC_BK = 0,
199 WDA_TXFLOW_AC_BE = 1,
200 WDA_TXFLOW_AC_VI = 2,
201 WDA_TXFLOW_AC_VO = 3,
202 WDA_TXFLOW_MGMT = 4,
203 WDA_TXFLOW_BAP = 1, /* BAP is sent as BE */
204 WDA_TXFLOW_FC = 1, /* FC is sent as BE */
205 WDA_TXFLOW_MAX
206} WDA_TXFlowEnumType;
207
208#define WDA_TXFLOWMASK 0x1F /* 1~4bit:low priority ch / 5bit: high */
209
210/* ---------------------------------------------------------------------
211 Libra and Volans specifics
212
213 TODO Consider refactoring it and put it into two separate headers,
214 one for Prima and one for Volans
Jeff Johnson295189b2012-06-20 16:38:30 -0700215 ----------------------------------------------------------------------*/
216
217/* For backward compatability with SDIO. It's BAL header size for SDIO
218 interface. It's nothing for integrated SOC */
Jeff Johnson295189b2012-06-20 16:38:30 -0700219#define WDA_DXE_HEADER_SIZE 0
Jeff Johnson295189b2012-06-20 16:38:30 -0700220
Jeff Johnson295189b2012-06-20 16:38:30 -0700221
222/*Minimum resources needed - arbitrary*/
223
224/*DXE + SD*/
Madan Mohan Koyyalamudia53c4dc2012-11-13 10:35:42 -0800225#define WDA_WLAN_LIBRA_HEADER_LEN (20 + 8)
Jeff Johnson295189b2012-06-20 16:38:30 -0700226
Jeff Johnson295189b2012-06-20 16:38:30 -0700227#define WDA_TLI_BD_PDU_RESERVE_THRESHOLD 10
Jeff Johnson295189b2012-06-20 16:38:30 -0700228
229
Jeff Johnson295189b2012-06-20 16:38:30 -0700230# define WDA_TLI_MIN_RES_MF 1
231# define WDA_TLI_MIN_RES_BAP 2
232# define WDA_TLI_MIN_RES_DATA 3
Jeff Johnson295189b2012-06-20 16:38:30 -0700233
Jeff Johnson295189b2012-06-20 16:38:30 -0700234# define WDA_NUM_STA 8
Jeff Johnson295189b2012-06-20 16:38:30 -0700235
236/* For backward compatability with SDIO.
237
238 For SDIO interface, calculate the TX frame length and number of PDU
239 to transfter the frame.
240
241 _vosBuff: IN VOS pakcet buffer pointer
242 _usPktLen: OUT VOS packet length in bytes
243 _uResLen: OUT Number of PDU to hold this VOS packet
244 _uTotalPktLen: OUT Totoal packet length including BAL header size
245
246 For integrated SOC, _usPktLen and _uTotalPktLen is VOS pakcet length
247 which does include BD header length. _uResLen is hardcoded 2.
248 */
Jeff Johnson295189b2012-06-20 16:38:30 -0700249
250#ifdef WINDOWS_DT
251#define WDA_TLI_PROCESS_FRAME_LEN( _vosBuff, _usPktLen, \
252 _uResLen, _uTotalPktLen) \
253 do \
254 { \
255 _usPktLen = wpalPacketGetFragCount((wpt_packet*)_vosBuff) + 1/*BD*/;\
256 _uResLen = _usPktLen; \
257 _uTotalPktLen = _usPktLen; \
258 } \
259 while ( 0 )
260#else /* WINDOWS_DT */
261#define WDA_TLI_PROCESS_FRAME_LEN( _vosBuff, _usPktLen, \
262 _uResLen, _uTotalPktLen) \
263 do \
264 { \
265 _usPktLen = 2; /* Need 1 descriptor per a packet + packet*/ \
266 _uResLen = 2; /* Assume that we spends two DXE descriptor */ \
267 _uTotalPktLen = _usPktLen; \
268 } \
269 while ( 0 )
270#endif /* WINDOWS_DT */
271
Jeff Johnson295189b2012-06-20 16:38:30 -0700272
273
274/*--------------------------------------------------------------------------
275 Message Definitions
276 --------------------------------------------------------------------------*/
277
278/* TX Tranmit request message. It serializes TX request to TX thread.
279 The message is processed in TL.
280*/
281#define WDA_DS_TX_START_XMIT WLANTL_TX_START_XMIT
282#define WDA_DS_FINISH_ULA WLANTL_FINISH_ULA
283
284
285#define WDA_TX_PACKET_FREED 0X0
286
Jeff Johnson43971f52012-07-17 12:26:56 -0700287/* Approximate amount of time to wait for WDA to stop WDI considering 1 pendig req too*/
288#define WDA_STOP_TIMEOUT ( (WDI_RESPONSE_TIMEOUT * 2) + WDI_SET_POWER_STATE_TIMEOUT + 5)
Jeff Johnson295189b2012-06-20 16:38:30 -0700289/*--------------------------------------------------------------------------
290 Functions
291 --------------------------------------------------------------------------*/
292
293/* For data client */
294typedef VOS_STATUS (*WDA_DS_TxCompleteCallback) ( v_PVOID_t pContext, vos_pkt_t *pFrameDataBuff, VOS_STATUS txStatus );
295typedef VOS_STATUS (*WDA_DS_RxPacketCallback) ( v_PVOID_t pContext, vos_pkt_t *pFrameDataBuff );
296typedef v_U32_t (*WDA_DS_TxPacketCallback) ( v_PVOID_t pContext,
297 vos_pkt_t **ppFrameDataBuff,
298 v_U32_t uSize,
Jeff Johnson295189b2012-06-20 16:38:30 -0700299 v_U8_t uFlowMask,
Jeff Johnson295189b2012-06-20 16:38:30 -0700300 v_BOOL_t *pbUrgent );
301typedef VOS_STATUS (*WDA_DS_ResourceCB) ( v_PVOID_t pContext, v_U32_t uCount );
302
303
Jeff Johnson295189b2012-06-20 16:38:30 -0700304/* For management client */
305typedef VOS_STATUS (*WDA_DS_TxCompleteCb)( v_PVOID_t pContext, wpt_packet *pFrame );
306typedef VOS_STATUS (*WDA_DS_RxCompleteCb)( v_PVOID_t pContext, wpt_packet *pFrame );
307typedef VOS_STATUS (*WDA_DS_TxFlowControlCb)( v_PVOID_t pContext, v_U8_t acMask );
308typedef void (*pWDATxRxCompFunc)( v_PVOID_t pContext, void *pData );
309
310//callback function for TX complete
311//parameter 1 - global pMac pointer
312//parameter 2 - txComplete status : 1- success, 0 - failure.
313typedef eHalStatus (*pWDAAckFnTxComp)(tpAniSirGlobal, tANI_U32);
314
315typedef struct
316{
317 tANI_U16 ucValidStaIndex ;
318 /*
319 * each bit in ucUseBaBitmap represent BA is enabled or not for this tid
320 * tid0 ..bit0, tid1..bit1 and so on..
321 */
322 tANI_U8 ucUseBaBitmap ;
323 tANI_U8 bssIdx;
324 tANI_U32 framesTxed[STACFG_MAX_TC];
325}tWdaStaInfo, *tpWdaStaInfo ;
326
327/* group all the WDA timers into this structure */
328typedef struct
329{
330 /* BA activity check timer */
331 TX_TIMER baActivityChkTmr ;
332
333 /* Tx Complete Timeout timer */
334 TX_TIMER TxCompleteTimer ;
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -0800335
336 /* Traffic Stats timer */
337 TX_TIMER trafficStatsTimer ;
Jeff Johnson295189b2012-06-20 16:38:30 -0700338}tWdaTimers ;
Gopichand Nakkala976e3252013-01-03 15:45:56 -0800339#ifdef WLAN_SOFTAP_VSTA_FEATURE
Yathish Hanumapuradoddi Shivanna64dfc472013-03-08 10:48:34 -0800340#define WDA_MAX_STA (41)
Gopichand Nakkala976e3252013-01-03 15:45:56 -0800341#else
Jeff Johnson295189b2012-06-20 16:38:30 -0700342#define WDA_MAX_STA (16)
Gopichand Nakkala976e3252013-01-03 15:45:56 -0800343#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700344typedef struct
345{
346 v_PVOID_t pVosContext; /* global VOSS context*/
347 v_PVOID_t pWdiContext; /* WDI context */
348 WDA_state wdaState ; /* WDA state tracking */
Jeff Johnson295189b2012-06-20 16:38:30 -0700349 v_PVOID_t wdaWdiCfgApiMsgParam ; /* WDI API paramter tracking */
350 vos_event_t wdaWdiEvent; /* WDI API sync event */
351
352 /* Event to wait for tx completion */
353 vos_event_t txFrameEvent;
354
355 /* call back function for tx complete*/
356 pWDATxRxCompFunc pTxCbFunc;
357 /* call back function for tx packet ack */
358 pWDAAckFnTxComp pAckTxCbFunc;
359 tANI_U32 frameTransRequired;
360 tSirMacAddr macBSSID; /*BSSID of the network */
361 tSirMacAddr macSTASelf; /*Self STA MAC*/
362
363 /* TX channel mask for flow control */
364 v_U8_t uTxFlowMask;
365 /* TL's TX resource callback */
366 WDA_DS_ResourceCB pfnTxResourceCB;
367 /* TL's TX complete callback */
368 WDA_DS_TxCompleteCallback pfnTxCompleteCallback;
369
370 tWdaStaInfo wdaStaInfo[WDA_MAX_STA];
371
372 tANI_U8 wdaMaxSta;
373 tWdaTimers wdaTimers;
374
375 /* STA, AP, IBSS, MULTI-BSS etc.*/
376 tBssSystemRole wdaGlobalSystemRole;
377
378 /* driver mode, PRODUCTION or FTM */
379 tDriverType driverMode;
380
Jeff Johnson295189b2012-06-20 16:38:30 -0700381 /* FTM Command Request tracking */
382 v_PVOID_t wdaFTMCmdReq;
Jeff Johnson295189b2012-06-20 16:38:30 -0700383
384 /* Event to wait for suspend data tx*/
385 vos_event_t suspendDataTxEvent;
386 /* Status frm TL after suspend/resume Tx */
387 tANI_U8 txStatus;
388 /* Flag set to true when TL suspend timesout.*/
389 tANI_U8 txSuspendTimedOut;
390
391 vos_event_t waitOnWdiIndicationCallBack;
392
393 /* version information */
394 tSirVersionType wcnssWlanCompiledVersion;
395 tSirVersionType wcnssWlanReportedVersion;
396 tSirVersionString wcnssSoftwareVersionString;
397 tSirVersionString wcnssHardwareVersionString;
398
399
400 tSirLinkState linkState;
401 /* set, when BT AMP session is going on */
402 v_BOOL_t wdaAmpSessionOn;
403 v_U32_t VosPacketToFree;
Jeff Johnsone7245742012-09-05 17:12:55 -0700404 v_BOOL_t needShutdown;
Madan Mohan Koyyalamudia2fc6412012-10-21 12:06:12 -0700405 v_BOOL_t wdiFailed;
Madan Mohan Koyyalamudid57ae632012-11-06 18:42:48 -0800406 v_BOOL_t wdaTimersCreated;
Jeff Johnson295189b2012-06-20 16:38:30 -0700407} tWDA_CbContext ;
408
409typedef struct
410{
411 v_PVOID_t pWdaContext; /* pointer to WDA context*/
412 v_PVOID_t wdaMsgParam; /* PE parameter tracking */
413 v_PVOID_t wdaWdiApiMsgParam; /* WDI API paramter tracking */
414} tWDA_ReqParams;
415
416/*
417 * FUNCTION: WDA_open
418 * open WDA context
419 */
420
421VOS_STATUS WDA_open(v_PVOID_t pVosContext, v_PVOID_t pOSContext,
422 tMacOpenParameters *pMacParams ) ;
423
424/*
425 * FUNCTION: WDA_preStart
426 * Trigger DAL-AL to start CFG download
427 */
428VOS_STATUS WDA_start(v_PVOID_t pVosContext) ;
429
430VOS_STATUS WDA_NVDownload_Start(v_PVOID_t pVosContext);
431
432/*
433 * FUNCTION: WDA_preStart
434 * Trigger WDA to start CFG download
435 */
436VOS_STATUS WDA_preStart(v_PVOID_t pVosContext) ;
437/*
438 * FUNCTION: WDA_stop
439 * stop WDA
440 */
441VOS_STATUS WDA_stop(v_PVOID_t pVosContext,tANI_U8 reason);
442
443/*
444 * FUNCTION: WDA_close
445 * close WDA context
446 */
447VOS_STATUS WDA_close(v_PVOID_t pVosContext);
448/*
449 * FUNCTION: WDA_shutdown
450 * Shutdown will not close the control transport, added by SSR
451 */
452VOS_STATUS WDA_shutdown(v_PVOID_t pVosContext, wpt_boolean closeTransport);
453
454/*
Madan Mohan Koyyalamudi9d7a27f2012-11-28 15:55:25 -0800455 * FUNCTION: WDA_setNeedShutdown
456 * WDA stop failed or WDA NV Download failed
Jeff Johnsone7245742012-09-05 17:12:55 -0700457 */
Madan Mohan Koyyalamudi9d7a27f2012-11-28 15:55:25 -0800458void WDA_setNeedShutdown(v_PVOID_t pVosContext);
Jeff Johnsone7245742012-09-05 17:12:55 -0700459/*
460 * FUNCTION: WDA_needShutdown
461 * WDA requires a shutdown rather than a close
462 */
463v_BOOL_t WDA_needShutdown(v_PVOID_t pVosContext);
464
465/*
Jeff Johnson295189b2012-06-20 16:38:30 -0700466 * FUNCTION: WDA_McProcessMsg
467 * DAL-AL message processing entry function
468 */
469
470VOS_STATUS WDA_McProcessMsg( v_CONTEXT_t pVosContext, vos_msg_t *pMsg ) ;
471
472/* -----------------------------------------------------------------
473 * WDA data path API's
474 * ----------------------------------------------------------------*/
475/*
476 * FUNCTION: WDA_MgmtDSRegister
477 * Send Message back to PE
478 */
479
480VOS_STATUS WDA_MgmtDSRegister(tWDA_CbContext *pWDA,
481 WDA_DS_TxCompleteCb WDA_TxCompleteCallback,
482 WDA_DS_RxCompleteCb WDA_RxCompleteCallback,
483 WDA_DS_TxFlowControlCb WDA_TxFlowCtrlCallback
484 ) ;
485/*
486 * FUNCTION: WDA_MgmtDSTxPacket
487 * Forward TX management frame to WDI
488 */
489
490VOS_STATUS WDA_TxPacket(tWDA_CbContext *pWDA,
491 void *pFrmBuf,
492 tANI_U16 frmLen,
493 eFrameType frmType,
494 eFrameTxDir txDir,
495 tANI_U8 tid,
496 pWDATxRxCompFunc pCompFunc,
497 void *pData,
498 pWDAAckFnTxComp pAckTxComp,
499 tANI_U8 txFlag);
500
501/*
502 * FUNCTION: WDA_PostMsgApi
503 * API fpr PE to post Message to WDA
504 */
505VOS_STATUS WDA_PostMsgApi(tpAniSirGlobal pMac, tSirMsgQ *pMsg) ;
506
507/* ---------------------------------------------------------
508 * FUNCTION: wdaGetGlobalSystemRole()
509 *
510 * Get the global HAL system role.
511 * ---------------------------------------------------------
512 */
513tBssSystemRole wdaGetGlobalSystemRole(tpAniSirGlobal pMac);
514
515/* maximum wait time for WDA complete event (correct value has to be derived)
516 * for now giving the value 1000 ms */
517#define WDA_WDI_COMPLETION_TIME_OUT 30000 /* in ms */
518
519#define WDA_TL_TX_FRAME_TIMEOUT 10000 /* in msec a very high upper limit of 5,000 msec */
520#define WDA_TL_SUSPEND_TIMEOUT 2000 /* in ms unit */
521
522/*Tag used by WDA to mark a timed out frame*/
523#define WDA_TL_TX_MGMT_TIMED_OUT 0xDEAD
524
525#define WDA_TL_TX_SUSPEND_SUCCESS 0
526#define WDA_TL_TX_SUSPEND_FAILURE 1
527
528// FIXME Temporary value for R33D integaration
529//#define WDA_TL_TX_FRAME_TIMEOUT 20000 /* in msec a very high upper limit */
530
Chet Lanctot186b5732013-03-18 10:26:30 -0700531#define DPU_FEEDBACK_UNPROTECTED_ERROR 0x0F
Jeff Johnson295189b2012-06-20 16:38:30 -0700532
Jeff Johnson295189b2012-06-20 16:38:30 -0700533
534/* ---------------------------------------------------------------------------
535
536 RX Meta info access for Integrated SOC
537 RX BD header access for NON Integrated SOC
538
539 These MACRO are for RX frames that are on flat buffers
540
541 ---------------------------------------------------------------------------*/
542
543/* WDA_GET_RX_MAC_HEADER *****************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700544# define WDA_GET_RX_MAC_HEADER(pRxMeta) \
545 (tpSirMacMgmtHdr)( ((WDI_DS_RxMetaInfoType *)(pRxMeta))->mpduHeaderPtr )
Jeff Johnson295189b2012-06-20 16:38:30 -0700546
547/* WDA_GET_RX_MPDUHEADER3A ****************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700548# define WDA_GET_RX_MPDUHEADER3A(pRxMeta) \
549 (tpSirMacDataHdr3a)( ((WDI_DS_RxMetaInfoType *)(pRxMeta))->mpduHeaderPtr )
Jeff Johnson295189b2012-06-20 16:38:30 -0700550
551/* WDA_GET_RX_MPDU_HEADER_LEN *************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700552# define WDA_GET_RX_MPDU_HEADER_LEN(pRxMeta) \
553 ( ((WDI_DS_RxMetaInfoType *)(pRxMeta))->mpduHeaderLength )
Jeff Johnson295189b2012-06-20 16:38:30 -0700554
555/* WDA_GET_RX_MPDU_LEN ********************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700556# define WDA_GET_RX_MPDU_LEN(pRxMeta) \
557 ( ((WDI_DS_RxMetaInfoType *)(pRxMeta))->mpduLength )
Jeff Johnson295189b2012-06-20 16:38:30 -0700558
559/* WDA_GET_RX_PAYLOAD_LEN ****************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700560# define WDA_GET_RX_PAYLOAD_LEN(pRxMeta) \
561 ( WDA_GET_RX_MPDU_LEN(pRxMeta) - WDA_GET_RX_MPDU_HEADER_LEN(pRxMeta) )
Jeff Johnson295189b2012-06-20 16:38:30 -0700562
563/* WDA_GET_RX_MAC_RATE_IDX ***************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700564# define WDA_GET_RX_MAC_RATE_IDX(pRxMeta) \
565 ( ((WDI_DS_RxMetaInfoType *)(pRxMeta))->rateIndex )
Jeff Johnson295189b2012-06-20 16:38:30 -0700566
567/* WDA_GET_RX_MPDU_DATA ******************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700568# define WDA_GET_RX_MPDU_DATA(pRxMeta) \
569 ( ((WDI_DS_RxMetaInfoType *)(pRxMeta))->mpduDataPtr )
Jeff Johnson295189b2012-06-20 16:38:30 -0700570
571/* WDA_GET_RX_MPDU_DATA_OFFSET ***********************************************/
572// For Integrated SOC: When UMAC receive the packet. BD is already stripped off.
573// Data offset is the MPDU header length
Jeff Johnson295189b2012-06-20 16:38:30 -0700574# define WDA_GET_RX_MPDU_DATA_OFFSET(pRxMeta) WDA_GET_RX_MPDU_HEADER_LEN(pRxMeta)
Jeff Johnson295189b2012-06-20 16:38:30 -0700575
576/* WDA_GET_RX_MPDU_HEADER_OFFSET *********************************************/
577// For Integrated SOC: We UMAC receive the frame,
578// BD is gone and MAC header at offset 0
Jeff Johnson295189b2012-06-20 16:38:30 -0700579# define WDA_GET_RX_MPDU_HEADER_OFFSET(pRxMeta) 0
Jeff Johnson295189b2012-06-20 16:38:30 -0700580
581/* WDA_GET_RX_UNKNOWN_UCAST **************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700582# define WDA_GET_RX_UNKNOWN_UCAST(pRxMeta) \
583 ( ((WDI_DS_RxMetaInfoType *)(pRxMeta))->unknownUcastPkt )
Jeff Johnson295189b2012-06-20 16:38:30 -0700584
585/* WDA_GET_RX_TID ************************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700586# define WDA_GET_RX_TID(pRxMeta) ( ((WDI_DS_RxMetaInfoType *)(pRxMeta))->tid )
Jeff Johnson295189b2012-06-20 16:38:30 -0700587
588/* WDA_GET_RX_STAID **********************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700589# define WDA_GET_RX_STAID(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->staId)
Jeff Johnson295189b2012-06-20 16:38:30 -0700590
591/* WDA_GET_RX_ADDR3_IDX ******************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700592# define WDA_GET_RX_ADDR3_IDX(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->addr3Idx)
Jeff Johnson295189b2012-06-20 16:38:30 -0700593
594/* WDA_GET_RX_CH *************************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700595# define WDA_GET_RX_CH(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->rxChannel)
Jeff Johnson295189b2012-06-20 16:38:30 -0700596
597/* WDA_GET_RX_DPUSIG *********************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700598# define WDA_GET_RX_DPUSIG(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->dpuSig)
Jeff Johnson295189b2012-06-20 16:38:30 -0700599
600/* WDA_IS_RX_BCAST ***********************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700601# define WDA_IS_RX_BCAST(pRxMeta) \
602 ( (1 == ((WDI_DS_RxMetaInfoType*)(pRxMeta))->bcast) ? VOS_TRUE : VOS_FALSE )
Jeff Johnson295189b2012-06-20 16:38:30 -0700603
604/* WDA_GET_RX_FT_DONE ********************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700605# define WDA_GET_RX_FT_DONE(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->ft)
Jeff Johnson295189b2012-06-20 16:38:30 -0700606
607/* WDA_GET_RX_DPU_FEEDBACK **************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700608# define WDA_GET_RX_DPU_FEEDBACK(pRxMeta) \
609 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->dpuFeedback)
Jeff Johnson295189b2012-06-20 16:38:30 -0700610
611/* WDA_GET_RX_ASF ************************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700612# define WDA_GET_RX_ASF(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->amsdu_asf)
Jeff Johnson295189b2012-06-20 16:38:30 -0700613
614/* WDA_GET_RX_AEF ************************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700615# define WDA_GET_RX_AEF(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->amsdu_aef)
Jeff Johnson295189b2012-06-20 16:38:30 -0700616
617/* WDA_GET_RX_ESF ************************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700618# define WDA_GET_RX_ESF(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->amsdu_esf)
Jeff Johnson295189b2012-06-20 16:38:30 -0700619
620/* WDA_GET_RX_BEACON_SENT ****************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700621# define WDA_GET_RX_BEACON_SENT(pRxMeta) \
622 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->bsf)
Jeff Johnson295189b2012-06-20 16:38:30 -0700623
624/* WDA_GET_RX_TSF_LATER *****************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700625# define WDA_GET_RX_TSF_LATER(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->rtsf)
Jeff Johnson295189b2012-06-20 16:38:30 -0700626
627/* WDA_GET_RX_TYPE ***********************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700628# define WDA_GET_RX_TYPE(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->type)
Jeff Johnson295189b2012-06-20 16:38:30 -0700629
630/* WDA_GET_RX_SUBTYPE ********************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700631# define WDA_GET_RX_SUBTYPE(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->subtype)
Jeff Johnson295189b2012-06-20 16:38:30 -0700632
633/* WDA_GET_RX_TYPE_SUBTYPE ****************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700634# define WDA_GET_RX_TYPE_SUBTYPE(pRxMeta) \
635 ((WDA_GET_RX_TYPE(pRxMeta)<<4)|WDA_GET_RX_SUBTYPE(pRxMeta))
Jeff Johnson295189b2012-06-20 16:38:30 -0700636
637/* WDA_GET_RX_REORDER_OPCODE : For MSDU reorder *******************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700638# define WDA_GET_RX_REORDER_OPCODE(pRxMeta) \
639 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->ampdu_reorderOpcode)
Jeff Johnson295189b2012-06-20 16:38:30 -0700640
641/* WDA_GET_RX_REORDER_SLOT_IDX : For MSDU reorder ****************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700642# define WDA_GET_RX_REORDER_SLOT_IDX(pRxMeta) \
643 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->ampdu_reorderSlotIdx)
Jeff Johnson295189b2012-06-20 16:38:30 -0700644
645/* WDA_GET_RX_REORDER_FWD_IDX : For MSDU reorder *****************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700646# define WDA_GET_RX_REORDER_FWD_IDX(pRxMeta) \
647 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->ampdu_reorderFwdIdx)
Jeff Johnson295189b2012-06-20 16:38:30 -0700648
649/* WDA_GET_RX_REORDER_CUR_PKT_SEQ_NO : Fro MSDU reorder **********************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700650# define WDA_GET_RX_REORDER_CUR_PKT_SEQ_NO(pRxMeta) \
651 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->currentPktSeqNo)
Jeff Johnson295189b2012-06-20 16:38:30 -0700652
653/* WDA_IS_RX_LLC_PRESENT *****************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700654# define WDA_IS_RX_LLC_PRESENT(pRxMeta) \
655 ( (0 == ((WDI_DS_RxMetaInfoType*)(pRxMeta))->llcr) ? VOS_TRUE : VOS_FALSE )
Jeff Johnson295189b2012-06-20 16:38:30 -0700656
657#define WLANWDA_HO_IS_AN_AMPDU 0x4000
658#define WLANWDA_HO_LAST_MPDU_OF_AMPDU 0x400
659
660/* WDA_IS_RX_AN_AMPDU ********************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700661# define WDA_IS_RX_AN_AMPDU(pRxMeta) \
662 ( ((WDI_DS_RxMetaInfoType*)(pRxMeta))->rxpFlags & WLANWDA_HO_IS_AN_AMPDU )
Jeff Johnson295189b2012-06-20 16:38:30 -0700663
664/* WDA_IS_RX_LAST_MPDU *******************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700665# define WDA_IS_RX_LAST_MPDU(pRxMeta) \
666 ( ((WDI_DS_RxMetaInfoType*)(pRxMeta))->rxpFlags & WLANWDA_HO_LAST_MPDU_OF_AMPDU )
Jeff Johnson295189b2012-06-20 16:38:30 -0700667
668/* WDA_GET_RX_TIMESTAMP *****************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700669# define WDA_GET_RX_TIMESTAMP(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->mclkRxTimestamp)
Jeff Johnson295189b2012-06-20 16:38:30 -0700670
671/* WDA_IS_RX_IN_SCAN *********************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700672# define WDA_IS_RX_IN_SCAN(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->scan)
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -0700673#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
674/* WDA_GET_OFFLOADSCANLEARN **************************************************/
675# define WDA_GET_OFFLOADSCANLEARN(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->offloadScanLearn)
676/* WDA_GET_ROAMCANDIDATEIND **************************************************/
677# define WDA_GET_ROAMCANDIDATEIND(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->roamCandidateInd)
678#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700679/* WDA_GET_RX_RSSI_DB ********************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700680// Volans RF
681# define WDA_RSSI_OFFSET 100
682# define WDA_GET_RSSI0_DB(rssi0) (rssi0 - WDA_RSSI_OFFSET)
683# define WDA_GET_RSSI1_DB(rssi0) (0 - WDA_RSSI_OFFSET)
684# define WDA_MAX_OF_TWO(val1, val2) ( ((val1) > (val2)) ? (val1) : (val2))
685# define WDA_GET_RSSI_DB(rssi0) \
686 WDA_MAX_OF_TWO(WDA_GET_RSSI0_DB(rssi0), WDA_GET_RSSI1_DB(rssi0))
687# define WDA_GET_RX_RSSI_DB(pRxMeta) \
688 WDA_GET_RSSI_DB((((WDI_DS_RxMetaInfoType*)(pRxMeta))->rssi0))
Jeff Johnson295189b2012-06-20 16:38:30 -0700689
690/* WDA_GET_RX_SNR ************************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700691# define WDA_GET_RX_SNR(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->snr)
Jeff Johnson295189b2012-06-20 16:38:30 -0700692
693/* WDA_IS_RX_FC **************************************************************/
694// Flow control frames
Jeff Johnson295189b2012-06-20 16:38:30 -0700695/* FIXME WDA should provide the meta info which indicates FC frame
696 In the meantime, use hardcoded FALSE, since we don't support FC yet */
697# define WDA_IS_RX_FC(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->fc)
Jeff Johnson295189b2012-06-20 16:38:30 -0700698
699/* WDA_GET_RX_FC_VALID_STA_MASK **********************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700700# define WDA_GET_RX_FC_VALID_STA_MASK(pRxMeta) \
701 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->fcSTAValidMask)
Jeff Johnson295189b2012-06-20 16:38:30 -0700702
703/* WDA_GET_RX_FC_PWRSAVE_STA_MASK ********************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700704# define WDA_GET_RX_FC_PWRSAVE_STA_MASK(pRxMeta) \
705 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->fcSTAPwrSaveStateMask)
Jeff Johnson295189b2012-06-20 16:38:30 -0700706
707/* WDA_GET_RX_FC_STA_THRD_IND_MASK ********************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700708# define WDA_GET_RX_FC_STA_THRD_IND_MASK(pRxMeta) \
709 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->fcSTAThreshIndMask)
Jeff Johnson295189b2012-06-20 16:38:30 -0700710
711/* WDA_GET_RX_FC_FORCED_STA_TX_DISABLED_BITMAP ********************************************/
712# define WDA_GET_RX_FC_STA_TX_DISABLED_BITMAP(pRxMeta) \
713 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->fcStaTxDisabledBitmap)
714
715/* WDA_GET_RX_FC_STA_TXQ_LEN *************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700716# define WDA_GET_RX_FC_STA_TXQ_LEN(pRxMeta, staId) \
717 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->fcSTATxQLen[(staId)])
Jeff Johnson295189b2012-06-20 16:38:30 -0700718
719/* WDA_GET_RX_FC_STA_CUR_TXRATE **********************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700720# define WDA_GET_RX_FC_STA_CUR_TXRATE(pRxMeta, staId) \
721 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->fcSTACurTxRate[(staId)])
Jeff Johnson295189b2012-06-20 16:38:30 -0700722
723/* WDA_GET_RX_REPLAY_COUNT ***************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700724# define WDA_GET_RX_REPLAY_COUNT(pRxMeta) \
725 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->replayCount)
Jeff Johnson295189b2012-06-20 16:38:30 -0700726
727/* WDA_GETRSSI0 ***************************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700728# define WDA_GETRSSI0(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->rssi0)
Jeff Johnson295189b2012-06-20 16:38:30 -0700729
730/* WDA_GETRSSI1 ***************************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700731# define WDA_GETRSSI1(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->rssi1)
Jeff Johnson295189b2012-06-20 16:38:30 -0700732
Chet Lanctot186b5732013-03-18 10:26:30 -0700733/* WDA_GET_RX_RMF *****************************************************/
734#ifdef WLAN_FEATURE_11W
735# define WDA_GET_RX_RMF(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->rmf)
736#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700737
738/* --------------------------------------------------------------------*/
739
Jeff Johnson295189b2012-06-20 16:38:30 -0700740uint8 WDA_IsWcnssWlanCompiledVersionGreaterThanOrEqual(uint8 major, uint8 minor, uint8 version, uint8 revision);
741uint8 WDA_IsWcnssWlanReportedVersionGreaterThanOrEqual(uint8 major, uint8 minor, uint8 version, uint8 revision);
742
743
744VOS_STATUS WDA_GetWcnssWlanCompiledVersion(v_PVOID_t pvosGCtx,
745 tSirVersionType *pVersion);
746VOS_STATUS WDA_GetWcnssWlanReportedVersion(v_PVOID_t pvosGCtx,
747 tSirVersionType *pVersion);
748VOS_STATUS WDA_GetWcnssSoftwareVersion(v_PVOID_t pvosGCtx,
749 tANI_U8 *pVersion,
750 tANI_U32 versionBufferSize);
751VOS_STATUS WDA_GetWcnssHardwareVersion(v_PVOID_t pvosGCtx,
752 tANI_U8 *pVersion,
753 tANI_U32 versionBufferSize);
754
755VOS_STATUS WDA_SetUapsdAcParamsReq(v_PVOID_t , v_U8_t , tUapsdInfo *);
756VOS_STATUS WDA_ClearUapsdAcParamsReq(v_PVOID_t , v_U8_t , wpt_uint8 );
757VOS_STATUS WDA_SetRSSIThresholdsReq(tpAniSirGlobal , tSirRSSIThresholds *);
758// Just declare the function extern here and save some time.
759extern tSirRetStatus halMmhForwardMBmsg(void*, tSirMbMsg*);
760tSirRetStatus uMacPostCtrlMsg(void* pSirGlobal, tSirMbMsg* pMb);
Jeff Johnson295189b2012-06-20 16:38:30 -0700761
762
Jeff Johnson295189b2012-06-20 16:38:30 -0700763#define WDA_MAX_TXPOWER_INVALID HAL_MAX_TXPOWER_INVALID
764
765//WDA Messages to HAL messages Mapping
766#if 0
767//Required by SME
768//#define WDA_SIGNAL_BT_EVENT SIR_HAL_SIGNAL_BT_EVENT - this is defined in sirParams.h
769//#define WDA_BTC_SET_CFG SIR_HAL_BTC_SET_CFG
770
771//Required by PE
772#define WDA_HOST_MSG_START SIR_HAL_HOST_MSG_START
773#define WDA_INITIAL_CAL_FAILED_NTF SIR_HAL_INITIAL_CAL_FAILED_NTF
774#define WDA_SHUTDOWN_REQ SIR_HAL_SHUTDOWN_REQ
775#define WDA_SHUTDOWN_CNF SIR_HAL_SHUTDOWN_CNF
776#define WDA_RADIO_ON_OFF_IND SIR_HAL_RADIO_ON_OFF_IND
777#define WDA_RESET_CNF SIR_HAL_RESET_CNF
778#define WDA_SetRegDomain \
Madan Mohan Koyyalamudic0d1b3f2012-11-13 10:41:07 -0800779 (eHalStatus halPhySetRegDomain(tHalHandle hHal, eRegDomainId regDomain))
Jeff Johnson295189b2012-06-20 16:38:30 -0700780#endif
781
782#define WDA_APP_SETUP_NTF SIR_HAL_APP_SETUP_NTF
783#define WDA_NIC_OPER_NTF SIR_HAL_NIC_OPER_NTF
784#define WDA_INIT_START_REQ SIR_HAL_INIT_START_REQ
785#define WDA_RESET_REQ SIR_HAL_RESET_REQ
786#define WDA_HDD_ADDBA_REQ SIR_HAL_HDD_ADDBA_REQ
787#define WDA_HDD_ADDBA_RSP SIR_HAL_HDD_ADDBA_RSP
788#define WDA_DELETEBA_IND SIR_HAL_DELETEBA_IND
789#define WDA_BA_FAIL_IND SIR_HAL_BA_FAIL_IND
790#define WDA_TL_FLUSH_AC_REQ SIR_TL_HAL_FLUSH_AC_REQ
791#define WDA_TL_FLUSH_AC_RSP SIR_HAL_TL_FLUSH_AC_RSP
792
793#define WDA_MSG_TYPES_BEGIN SIR_HAL_MSG_TYPES_BEGIN
794#define WDA_ITC_MSG_TYPES_BEGIN SIR_HAL_ITC_MSG_TYPES_BEGIN
795#define WDA_RADAR_DETECTED_IND SIR_HAL_RADAR_DETECTED_IND
796#define WDA_WDT_KAM_RSP SIR_HAL_WDT_KAM_RSP
797#define WDA_TIMER_TEMP_MEAS_REQ SIR_HAL_TIMER_TEMP_MEAS_REQ
798#define WDA_TIMER_PERIODIC_STATS_COLLECT_REQ SIR_HAL_TIMER_PERIODIC_STATS_COLLECT_REQ
799#define WDA_CAL_REQ_NTF SIR_HAL_CAL_REQ_NTF
800#define WDA_MNT_OPEN_TPC_TEMP_MEAS_REQ SIR_HAL_MNT_OPEN_TPC_TEMP_MEAS_REQ
801#define WDA_CCA_MONITOR_INTERVAL_TO SIR_HAL_CCA_MONITOR_INTERVAL_TO
802#define WDA_CCA_MONITOR_DURATION_TO SIR_HAL_CCA_MONITOR_DURATION_TO
803#define WDA_CCA_MONITOR_START SIR_HAL_CCA_MONITOR_START
804#define WDA_CCA_MONITOR_STOP SIR_HAL_CCA_MONITOR_STOP
805#define WDA_CCA_CHANGE_MODE SIR_HAL_CCA_CHANGE_MODE
806#define WDA_TIMER_WRAP_AROUND_STATS_COLLECT_REQ SIR_HAL_TIMER_WRAP_AROUND_STATS_COLLECT_REQ
807
808/*
809 * New Taurus related messages
810 */
811#define WDA_ADD_STA_REQ SIR_HAL_ADD_STA_REQ
812#define WDA_ADD_STA_RSP SIR_HAL_ADD_STA_RSP
813#define WDA_ADD_STA_SELF_RSP SIR_HAL_ADD_STA_SELF_RSP
814#define WDA_DEL_STA_SELF_RSP SIR_HAL_DEL_STA_SELF_RSP
815#define WDA_DELETE_STA_REQ SIR_HAL_DELETE_STA_REQ
816#define WDA_DELETE_STA_RSP SIR_HAL_DELETE_STA_RSP
817#define WDA_ADD_BSS_REQ SIR_HAL_ADD_BSS_REQ
818#define WDA_ADD_BSS_RSP SIR_HAL_ADD_BSS_RSP
819#define WDA_DELETE_BSS_REQ SIR_HAL_DELETE_BSS_REQ
820#define WDA_DELETE_BSS_RSP SIR_HAL_DELETE_BSS_RSP
821#define WDA_INIT_SCAN_REQ SIR_HAL_INIT_SCAN_REQ
822#define WDA_INIT_SCAN_RSP SIR_HAL_INIT_SCAN_RSP
823#define WDA_START_SCAN_REQ SIR_HAL_START_SCAN_REQ
824#define WDA_START_SCAN_RSP SIR_HAL_START_SCAN_RSP
825#define WDA_END_SCAN_REQ SIR_HAL_END_SCAN_REQ
826#define WDA_END_SCAN_RSP SIR_HAL_END_SCAN_RSP
827#define WDA_FINISH_SCAN_REQ SIR_HAL_FINISH_SCAN_REQ
828#define WDA_FINISH_SCAN_RSP SIR_HAL_FINISH_SCAN_RSP
829#define WDA_SEND_BEACON_REQ SIR_HAL_SEND_BEACON_REQ
830#define WDA_SEND_BEACON_RSP SIR_HAL_SEND_BEACON_RSP
831
832#define WDA_INIT_CFG_REQ SIR_HAL_INIT_CFG_REQ
833#define WDA_INIT_CFG_RSP SIR_HAL_INIT_CFG_RSP
834
835#define WDA_INIT_WM_CFG_REQ SIR_HAL_INIT_WM_CFG_REQ
836#define WDA_INIT_WM_CFG_RSP SIR_HAL_INIT_WM_CFG_RSP
837
838#define WDA_SET_BSSKEY_REQ SIR_HAL_SET_BSSKEY_REQ
839#define WDA_SET_BSSKEY_RSP SIR_HAL_SET_BSSKEY_RSP
840#define WDA_SET_STAKEY_REQ SIR_HAL_SET_STAKEY_REQ
841#define WDA_SET_STAKEY_RSP SIR_HAL_SET_STAKEY_RSP
842#define WDA_DPU_STATS_REQ SIR_HAL_DPU_STATS_REQ
843#define WDA_DPU_STATS_RSP SIR_HAL_DPU_STATS_RSP
844#define WDA_GET_DPUINFO_REQ SIR_HAL_GET_DPUINFO_REQ
845#define WDA_GET_DPUINFO_RSP SIR_HAL_GET_DPUINFO_RSP
846
847#define WDA_UPDATE_EDCA_PROFILE_IND SIR_HAL_UPDATE_EDCA_PROFILE_IND
848
849#define WDA_UPDATE_STARATEINFO_REQ SIR_HAL_UPDATE_STARATEINFO_REQ
850#define WDA_UPDATE_STARATEINFO_RSP SIR_HAL_UPDATE_STARATEINFO_RSP
851
852#define WDA_UPDATE_BEACON_IND SIR_HAL_UPDATE_BEACON_IND
853#define WDA_UPDATE_CF_IND SIR_HAL_UPDATE_CF_IND
854#define WDA_CHNL_SWITCH_REQ SIR_HAL_CHNL_SWITCH_REQ
855#define WDA_ADD_TS_REQ SIR_HAL_ADD_TS_REQ
856#define WDA_DEL_TS_REQ SIR_HAL_DEL_TS_REQ
857#define WDA_SOFTMAC_TXSTAT_REPORT SIR_HAL_SOFTMAC_TXSTAT_REPORT
858
859#define WDA_MBOX_SENDMSG_COMPLETE_IND SIR_HAL_MBOX_SENDMSG_COMPLETE_IND
860#define WDA_EXIT_BMPS_REQ SIR_HAL_EXIT_BMPS_REQ
861#define WDA_EXIT_BMPS_RSP SIR_HAL_EXIT_BMPS_RSP
862#define WDA_EXIT_BMPS_IND SIR_HAL_EXIT_BMPS_IND
863#define WDA_ENTER_BMPS_REQ SIR_HAL_ENTER_BMPS_REQ
864#define WDA_ENTER_BMPS_RSP SIR_HAL_ENTER_BMPS_RSP
865#define WDA_BMPS_STATUS_IND SIR_HAL_BMPS_STATUS_IND
866#define WDA_MISSED_BEACON_IND SIR_HAL_MISSED_BEACON_IND
867
868#define WDA_CFG_RXP_FILTER_REQ SIR_HAL_CFG_RXP_FILTER_REQ
869#define WDA_CFG_RXP_FILTER_RSP SIR_HAL_CFG_RXP_FILTER_RSP
870
871#define WDA_SWITCH_CHANNEL_RSP SIR_HAL_SWITCH_CHANNEL_RSP
872#define WDA_P2P_NOA_ATTR_IND SIR_HAL_P2P_NOA_ATTR_IND
Viral Modid86bde22012-12-10 13:09:21 -0800873#define WDA_P2P_NOA_START_IND SIR_HAL_P2P_NOA_START_IND
Jeff Johnson295189b2012-06-20 16:38:30 -0700874#define WDA_PWR_SAVE_CFG SIR_HAL_PWR_SAVE_CFG
875
876#define WDA_REGISTER_PE_CALLBACK SIR_HAL_REGISTER_PE_CALLBACK
877#define WDA_SOFTMAC_MEM_READREQUEST SIR_HAL_SOFTMAC_MEM_READREQUEST
878#define WDA_SOFTMAC_MEM_WRITEREQUEST SIR_HAL_SOFTMAC_MEM_WRITEREQUEST
879
880#define WDA_SOFTMAC_MEM_READRESPONSE SIR_HAL_SOFTMAC_MEM_READRESPONSE
881#define WDA_SOFTMAC_BULKREGWRITE_CONFIRM SIR_HAL_SOFTMAC_BULKREGWRITE_CONFIRM
882#define WDA_SOFTMAC_BULKREGREAD_RESPONSE SIR_HAL_SOFTMAC_BULKREGREAD_RESPONSE
883#define WDA_SOFTMAC_HOSTMESG_MSGPROCESSRESULT SIR_HAL_SOFTMAC_HOSTMESG_MSGPROCESSRESULT
884
885#define WDA_ADDBA_REQ SIR_HAL_ADDBA_REQ
886#define WDA_ADDBA_RSP SIR_HAL_ADDBA_RSP
887#define WDA_DELBA_IND SIR_HAL_DELBA_IND
888#define WDA_DEL_BA_IND SIR_HAL_DEL_BA_IND
889#define WDA_MIC_FAILURE_IND SIR_HAL_MIC_FAILURE_IND
890
891//message from sme to initiate delete block ack session.
892#define WDA_DELBA_REQ SIR_HAL_DELBA_REQ
893#define WDA_IBSS_STA_ADD SIR_HAL_IBSS_STA_ADD
894#define WDA_TIMER_ADJUST_ADAPTIVE_THRESHOLD_IND SIR_HAL_TIMER_ADJUST_ADAPTIVE_THRESHOLD_IND
895#define WDA_SET_LINK_STATE SIR_HAL_SET_LINK_STATE
896#define WDA_SET_LINK_STATE_RSP SIR_HAL_SET_LINK_STATE_RSP
897#define WDA_ENTER_IMPS_REQ SIR_HAL_ENTER_IMPS_REQ
898#define WDA_ENTER_IMPS_RSP SIR_HAL_ENTER_IMPS_RSP
899#define WDA_EXIT_IMPS_RSP SIR_HAL_EXIT_IMPS_RSP
900#define WDA_EXIT_IMPS_REQ SIR_HAL_EXIT_IMPS_REQ
901#define WDA_SOFTMAC_HOSTMESG_PS_STATUS_IND SIR_HAL_SOFTMAC_HOSTMESG_PS_STATUS_IND
902#define WDA_POSTPONE_ENTER_IMPS_RSP SIR_HAL_POSTPONE_ENTER_IMPS_RSP
903#define WDA_STA_STAT_REQ SIR_HAL_STA_STAT_REQ
904#define WDA_GLOBAL_STAT_REQ SIR_HAL_GLOBAL_STAT_REQ
905#define WDA_AGGR_STAT_REQ SIR_HAL_AGGR_STAT_REQ
906#define WDA_STA_STAT_RSP SIR_HAL_STA_STAT_RSP
907#define WDA_GLOBAL_STAT_RSP SIR_HAL_GLOBAL_STAT_RSP
908#define WDA_AGGR_STAT_RSP SIR_HAL_AGGR_STAT_RSP
909#define WDA_STAT_SUMM_REQ SIR_HAL_STAT_SUMM_REQ
910#define WDA_STAT_SUMM_RSP SIR_HAL_STAT_SUMM_RSP
911#define WDA_REMOVE_BSSKEY_REQ SIR_HAL_REMOVE_BSSKEY_REQ
912#define WDA_REMOVE_BSSKEY_RSP SIR_HAL_REMOVE_BSSKEY_RSP
913#define WDA_REMOVE_STAKEY_REQ SIR_HAL_REMOVE_STAKEY_REQ
914#define WDA_REMOVE_STAKEY_RSP SIR_HAL_REMOVE_STAKEY_RSP
915#define WDA_SET_STA_BCASTKEY_REQ SIR_HAL_SET_STA_BCASTKEY_REQ
916#define WDA_SET_STA_BCASTKEY_RSP SIR_HAL_SET_STA_BCASTKEY_RSP
917#define WDA_REMOVE_STA_BCASTKEY_REQ SIR_HAL_REMOVE_STA_BCASTKEY_REQ
918#define WDA_REMOVE_STA_BCASTKEY_RSP SIR_HAL_REMOVE_STA_BCASTKEY_RSP
919#define WDA_ADD_TS_RSP SIR_HAL_ADD_TS_RSP
920#define WDA_DPU_MIC_ERROR SIR_HAL_DPU_MIC_ERROR
921#define WDA_TIMER_BA_ACTIVITY_REQ SIR_HAL_TIMER_BA_ACTIVITY_REQ
922#define WDA_TIMER_CHIP_MONITOR_TIMEOUT SIR_HAL_TIMER_CHIP_MONITOR_TIMEOUT
923#define WDA_TIMER_TRAFFIC_ACTIVITY_REQ SIR_HAL_TIMER_TRAFFIC_ACTIVITY_REQ
924#define WDA_TIMER_ADC_RSSI_STATS SIR_HAL_TIMER_ADC_RSSI_STATS
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -0800925#define WDA_TIMER_TRAFFIC_STATS_IND SIR_HAL_TRAFFIC_STATS_IND
926
Chet Lanctot186b5732013-03-18 10:26:30 -0700927#ifdef WLAN_FEATURE_11W
928#define WDA_EXCLUDE_UNENCRYPTED_IND SIR_HAL_EXCLUDE_UNENCRYPTED_IND
929#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700930
931#ifdef FEATURE_WLAN_CCX
932#define WDA_TSM_STATS_REQ SIR_HAL_TSM_STATS_REQ
933#define WDA_TSM_STATS_RSP SIR_HAL_TSM_STATS_RSP
934#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700935#define WDA_UPDATE_PROBE_RSP_IE_BITMAP_IND SIR_HAL_UPDATE_PROBE_RSP_IE_BITMAP_IND
936#define WDA_UPDATE_UAPSD_IND SIR_HAL_UPDATE_UAPSD_IND
Jeff Johnson295189b2012-06-20 16:38:30 -0700937
938#define WDA_SET_MIMOPS_REQ SIR_HAL_SET_MIMOPS_REQ
939#define WDA_SET_MIMOPS_RSP SIR_HAL_SET_MIMOPS_RSP
940#define WDA_SYS_READY_IND SIR_HAL_SYS_READY_IND
941#define WDA_SET_TX_POWER_REQ SIR_HAL_SET_TX_POWER_REQ
942#define WDA_SET_TX_POWER_RSP SIR_HAL_SET_TX_POWER_RSP
943#define WDA_GET_TX_POWER_REQ SIR_HAL_GET_TX_POWER_REQ
944#define WDA_GET_TX_POWER_RSP SIR_HAL_GET_TX_POWER_RSP
945#define WDA_GET_NOISE_REQ SIR_HAL_GET_NOISE_REQ
946#define WDA_GET_NOISE_RSP SIR_HAL_GET_NOISE_RSP
947#define WDA_SET_TX_PER_TRACKING_REQ SIR_HAL_SET_TX_PER_TRACKING_REQ
948
949/* Messages to support transmit_halt and transmit_resume */
950#define WDA_TRANSMISSION_CONTROL_IND SIR_HAL_TRANSMISSION_CONTROL_IND
951/* Indication from LIM to HAL to Initialize radar interrupt */
952#define WDA_INIT_RADAR_IND SIR_HAL_INIT_RADAR_IND
953/* Messages to support transmit_halt and transmit_resume */
954
955
956#define WDA_BEACON_PRE_IND SIR_HAL_BEACON_PRE_IND
957#define WDA_ENTER_UAPSD_REQ SIR_HAL_ENTER_UAPSD_REQ
958#define WDA_ENTER_UAPSD_RSP SIR_HAL_ENTER_UAPSD_RSP
959#define WDA_EXIT_UAPSD_REQ SIR_HAL_EXIT_UAPSD_REQ
960#define WDA_EXIT_UAPSD_RSP SIR_HAL_EXIT_UAPSD_RSP
961#define WDA_LOW_RSSI_IND SIR_HAL_LOW_RSSI_IND
962#define WDA_BEACON_FILTER_IND SIR_HAL_BEACON_FILTER_IND
963/// PE <-> HAL WOWL messages
964#define WDA_WOWL_ADD_BCAST_PTRN SIR_HAL_WOWL_ADD_BCAST_PTRN
965#define WDA_WOWL_DEL_BCAST_PTRN SIR_HAL_WOWL_DEL_BCAST_PTRN
966#define WDA_WOWL_ENTER_REQ SIR_HAL_WOWL_ENTER_REQ
967#define WDA_WOWL_ENTER_RSP SIR_HAL_WOWL_ENTER_RSP
968#define WDA_WOWL_EXIT_REQ SIR_HAL_WOWL_EXIT_REQ
969#define WDA_WOWL_EXIT_RSP SIR_HAL_WOWL_EXIT_RSP
970#define WDA_TX_COMPLETE_IND SIR_HAL_TX_COMPLETE_IND
971#define WDA_TIMER_RA_COLLECT_AND_ADAPT SIR_HAL_TIMER_RA_COLLECT_AND_ADAPT
972/// PE <-> HAL statistics messages
973#define WDA_GET_STATISTICS_REQ SIR_HAL_GET_STATISTICS_REQ
974#define WDA_GET_STATISTICS_RSP SIR_HAL_GET_STATISTICS_RSP
975#define WDA_SET_KEY_DONE SIR_HAL_SET_KEY_DONE
976
977/// PE <-> HAL BTC messages
978#define WDA_BTC_SET_CFG SIR_HAL_BTC_SET_CFG
979#define WDA_SIGNAL_BT_EVENT SIR_HAL_SIGNAL_BT_EVENT
980#define WDA_HANDLE_FW_MBOX_RSP SIR_HAL_HANDLE_FW_MBOX_RSP
981#define WDA_UPDATE_PROBE_RSP_TEMPLATE_IND SIR_HAL_UPDATE_PROBE_RSP_TEMPLATE_IND
982#define WDA_SIGNAL_BTAMP_EVENT SIR_HAL_SIGNAL_BTAMP_EVENT
983
Jeff Johnsone7245742012-09-05 17:12:55 -0700984#ifdef FEATURE_OEM_DATA_SUPPORT
985/* PE <-> HAL OEM_DATA RELATED MESSAGES */
986#define WDA_START_OEM_DATA_REQ SIR_HAL_START_OEM_DATA_REQ
987#define WDA_START_OEM_DATA_RSP SIR_HAL_START_OEM_DATA_RSP
988#define WDA_FINISH_OEM_DATA_REQ SIR_HAL_FINISH_OEM_DATA_REQ
989#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700990
991#define WDA_SET_MAX_TX_POWER_REQ SIR_HAL_SET_MAX_TX_POWER_REQ
992#define WDA_SET_MAX_TX_POWER_RSP SIR_HAL_SET_MAX_TX_POWER_RSP
993
994#define WDA_SEND_MSG_COMPLETE SIR_HAL_SEND_MSG_COMPLETE
995
996/// PE <-> HAL Host Offload message
997#define WDA_SET_HOST_OFFLOAD SIR_HAL_SET_HOST_OFFLOAD
998
999/// PE <-> HAL Keep Alive message
1000#define WDA_SET_KEEP_ALIVE SIR_HAL_SET_KEEP_ALIVE
1001
1002#ifdef WLAN_NS_OFFLOAD
1003#define WDA_SET_NS_OFFLOAD SIR_HAL_SET_NS_OFFLOAD
1004#endif //WLAN_NS_OFFLOAD
1005#define WDA_ADD_STA_SELF_REQ SIR_HAL_ADD_STA_SELF_REQ
1006#define WDA_DEL_STA_SELF_REQ SIR_HAL_DEL_STA_SELF_REQ
1007
Jeff Johnson295189b2012-06-20 16:38:30 -07001008#define WDA_SET_P2P_GO_NOA_REQ SIR_HAL_SET_P2P_GO_NOA_REQ
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05301009#define WDA_SET_TDLS_LINK_ESTABLISH_REQ SIR_HAL_TDLS_LINK_ESTABLISH_REQ
1010#define WDA_SET_TDLS_LINK_ESTABLISH_REQ_RSP SIR_HAL_TDLS_LINK_ESTABLISH_REQ_RSP
Jeff Johnson295189b2012-06-20 16:38:30 -07001011
Madan Mohan Koyyalamudia53c4dc2012-11-13 10:35:42 -08001012#define WDA_TX_COMPLETE_TIMEOUT_IND (WDA_MSG_TYPES_END - 1)
Jeff Johnson295189b2012-06-20 16:38:30 -07001013#define WDA_WLAN_SUSPEND_IND SIR_HAL_WLAN_SUSPEND_IND
1014#define WDA_WLAN_RESUME_REQ SIR_HAL_WLAN_RESUME_REQ
1015#define WDA_MSG_TYPES_END SIR_HAL_MSG_TYPES_END
1016
Jeff Johnson295189b2012-06-20 16:38:30 -07001017#define WDA_MMH_TXMB_READY_EVT SIR_HAL_MMH_TXMB_READY_EVT
1018#define WDA_MMH_RXMB_DONE_EVT SIR_HAL_MMH_RXMB_DONE_EVT
1019#define WDA_MMH_MSGQ_NE_EVT SIR_HAL_MMH_MSGQ_NE_EVT
Jeff Johnson295189b2012-06-20 16:38:30 -07001020
1021#ifdef WLAN_FEATURE_VOWIFI_11R
1022#define WDA_AGGR_QOS_REQ SIR_HAL_AGGR_QOS_REQ
1023#define WDA_AGGR_QOS_RSP SIR_HAL_AGGR_QOS_RSP
1024#endif /* WLAN_FEATURE_VOWIFI_11R */
1025
Jeff Johnson295189b2012-06-20 16:38:30 -07001026/* FTM CMD MSG */
1027#define WDA_FTM_CMD_REQ SIR_PTT_MSG_TYPES_BEGIN
1028#define WDA_FTM_CMD_RSP SIR_PTT_MSG_TYPES_END
Jeff Johnson295189b2012-06-20 16:38:30 -07001029
1030#ifdef FEATURE_WLAN_SCAN_PNO
1031/*Requests sent to lower driver*/
1032#define WDA_SET_PNO_REQ SIR_HAL_SET_PNO_REQ
1033#define WDA_SET_RSSI_FILTER_REQ SIR_HAL_SET_RSSI_FILTER_REQ
1034#define WDA_UPDATE_SCAN_PARAMS_REQ SIR_HAL_UPDATE_SCAN_PARAMS
1035
1036/*Indication comming from lower driver*/
1037#define WDA_SET_PNO_CHANGED_IND SIR_HAL_SET_PNO_CHANGED_IND
1038#endif // FEATURE_WLAN_SCAN_PNO
1039
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07001040#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
Varun Reddy Yeturu920df212013-05-22 08:07:23 -07001041#define WDA_ROAM_SCAN_OFFLOAD_REQ SIR_HAL_ROAM_SCAN_OFFLOAD_REQ
Varun Reddy Yeturucc661d22013-05-20 11:47:10 -07001042#define WDA_ROAM_SCAN_OFFLOAD_RSP SIR_HAL_ROAM_SCAN_OFFLOAD_RSP
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07001043#endif
1044
Jeff Johnson295189b2012-06-20 16:38:30 -07001045#ifdef WLAN_WAKEUP_EVENTS
1046#define WDA_WAKE_REASON_IND SIR_HAL_WAKE_REASON_IND
1047#endif // WLAN_WAKEUP_EVENTS
1048
1049#ifdef WLAN_FEATURE_PACKET_FILTERING
1050#define WDA_8023_MULTICAST_LIST_REQ SIR_HAL_8023_MULTICAST_LIST_REQ
1051#define WDA_RECEIVE_FILTER_SET_FILTER_REQ SIR_HAL_RECEIVE_FILTER_SET_FILTER_REQ
1052#define WDA_PACKET_COALESCING_FILTER_MATCH_COUNT_REQ SIR_HAL_PACKET_COALESCING_FILTER_MATCH_COUNT_REQ
1053#define WDA_PACKET_COALESCING_FILTER_MATCH_COUNT_RSP SIR_HAL_PACKET_COALESCING_FILTER_MATCH_COUNT_RSP
1054#define WDA_RECEIVE_FILTER_CLEAR_FILTER_REQ SIR_HAL_RECEIVE_FILTER_CLEAR_FILTER_REQ
1055#endif // WLAN_FEATURE_PACKET_FILTERING
1056
1057#define WDA_SET_POWER_PARAMS_REQ SIR_HAL_SET_POWER_PARAMS_REQ
1058
1059#ifdef WLAN_FEATURE_GTK_OFFLOAD
1060#define WDA_GTK_OFFLOAD_REQ SIR_HAL_GTK_OFFLOAD_REQ
1061#define WDA_GTK_OFFLOAD_GETINFO_REQ SIR_HAL_GTK_OFFLOAD_GETINFO_REQ
1062#define WDA_GTK_OFFLOAD_GETINFO_RSP SIR_HAL_GTK_OFFLOAD_GETINFO_RSP
1063#endif //WLAN_FEATURE_GTK_OFFLOAD
1064
1065#define WDA_SET_TM_LEVEL_REQ SIR_HAL_SET_TM_LEVEL_REQ
1066
Mohit Khanna4a70d262012-09-11 16:30:12 -07001067#ifdef WLAN_FEATURE_11AC
1068#define WDA_UPDATE_OP_MODE SIR_HAL_UPDATE_OP_MODE
1069#endif
1070
Srinivas Girigowdad34cedb2013-01-25 13:33:11 -08001071#define WDA_GET_ROAM_RSSI_REQ SIR_HAL_GET_ROAM_RSSI_REQ
1072#define WDA_GET_ROAM_RSSI_RSP SIR_HAL_GET_ROAM_RSSI_RSP
1073
Jeff Johnson295189b2012-06-20 16:38:30 -07001074tSirRetStatus wdaPostCtrlMsg(tpAniSirGlobal pMac, tSirMsgQ *pMsg);
Jeff Johnson295189b2012-06-20 16:38:30 -07001075
Jeff Johnson295189b2012-06-20 16:38:30 -07001076eHalStatus WDA_SetRegDomain(void * clientCtxt, v_REGDOMAIN_t regId);
Jeff Johnson295189b2012-06-20 16:38:30 -07001077
1078#define HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME 0x40 // Bit 6 will be used to control BD rate for Management frames
1079
Jeff Johnson295189b2012-06-20 16:38:30 -07001080#define halTxFrame(hHal, pFrmBuf, frmLen, frmType, txDir, tid, pCompFunc, pData, txFlag) \
1081 (eHalStatus)( WDA_TxPacket(\
1082 vos_get_context(VOS_MODULE_ID_WDA, vos_get_global_context(VOS_MODULE_ID_WDA, (hHal))),\
1083 (pFrmBuf),\
1084 (frmLen),\
1085 (frmType),\
1086 (txDir),\
1087 (tid),\
1088 (pCompFunc),\
1089 (pData),\
1090 (NULL), \
1091 (txFlag)) )
1092
1093#define halTxFrameWithTxComplete(hHal, pFrmBuf, frmLen, frmType, txDir, tid, pCompFunc, pData, pCBackFnTxComp, txFlag) \
1094 (eHalStatus)( WDA_TxPacket(\
1095 vos_get_context(VOS_MODULE_ID_WDA, vos_get_global_context(VOS_MODULE_ID_WDA, (hHal))),\
1096 (pFrmBuf),\
1097 (frmLen),\
1098 (frmType),\
1099 (txDir),\
1100 (tid),\
1101 (pCompFunc),\
1102 (pData),\
1103 (pCBackFnTxComp), \
1104 (txFlag)) )
Jeff Johnson295189b2012-06-20 16:38:30 -07001105
1106/* -----------------------------------------------------------------
1107 WDA data path API's for TL
1108 -------------------------------------------------------------------*/
1109
Jeff Johnson295189b2012-06-20 16:38:30 -07001110v_BOOL_t WDA_IsHwFrameTxTranslationCapable(v_PVOID_t pVosGCtx,
1111 tANI_U8 staIdx);
Jeff Johnson295189b2012-06-20 16:38:30 -07001112
Jeff Johnson295189b2012-06-20 16:38:30 -07001113# define WDA_EnableUapsdAcParams(vosGCtx, staId, uapsdInfo) \
1114 WDA_SetUapsdAcParamsReq(vosGCtx, staId, uapsdInfo)
Jeff Johnson295189b2012-06-20 16:38:30 -07001115
Jeff Johnson295189b2012-06-20 16:38:30 -07001116# define WDA_DisableUapsdAcParams(vosGCtx, staId, ac) \
1117 WDA_ClearUapsdAcParamsReq(vosGCtx, staId, ac)
Jeff Johnson295189b2012-06-20 16:38:30 -07001118
Jeff Johnson295189b2012-06-20 16:38:30 -07001119# define WDA_SetRSSIThresholds(pMac, pThresholds) \
1120 WDA_SetRSSIThresholdsReq(pMac, pThresholds)
Jeff Johnson295189b2012-06-20 16:38:30 -07001121
Jeff Johnson295189b2012-06-20 16:38:30 -07001122#define WDA_UpdateRssiBmps(pvosGCtx, staId, rssi) \
Madan Mohan Koyyalamudia53c4dc2012-11-13 10:35:42 -08001123 WLANTL_UpdateRssiBmps(pvosGCtx, staId, rssi)
Jeff Johnson295189b2012-06-20 16:38:30 -07001124
1125#ifdef WLAN_PERF
1126/*==========================================================================
1127 FUNCTION WDA_TLI_FastHwFwdDataFrame
1128
1129 DESCRIPTION
1130 For NON integrated SOC, this function is called by TL.
1131
1132 Fast path function to quickly forward a data frame if HAL determines BD
1133 signature computed here matches the signature inside current VOSS packet.
1134 If there is a match, HAL and TL fills in the swapped packet length into
1135 BD header and DxE header, respectively. Otherwise, packet goes back to
1136 normal (slow) path and a new BD signature would be tagged into BD in this
1137 VOSS packet later by the WLANHAL_FillTxBd() function.
1138
1139 TODO For integrated SOC, this function does nothing yet. Pima SLM/HAL
1140 should provide the equivelant functionality.
1141
1142 DEPENDENCIES
1143
1144 PARAMETERS
1145
1146 IN
1147 pvosGCtx VOS context
1148 vosDataBuff Ptr to VOSS packet
1149 pMetaInfo For getting frame's TID
1150 pStaInfo For checking STA type
1151
1152 OUT
1153 pvosStatus returned status
1154 puFastFwdOK Flag to indicate whether frame could be fast forwarded
1155
1156 RETURN VALUE
1157 No return.
1158
1159 SIDE EFFECTS
1160
1161============================================================================*/
1162void WDA_TLI_FastHwFwdDataFrame
1163(
1164 v_PVOID_t pvosGCtx,
1165 vos_pkt_t* vosDataBuff,
1166 VOS_STATUS* pvosStatus,
1167 v_U32_t* puFastFwdOK,
1168 WLANTL_MetaInfoType* pMetaInfo,
1169 WLAN_STADescType* pStaInfo
1170);
1171#endif /* WLAN_PERF */
1172
1173/*==========================================================================
1174 FUNCTION WDA_DS_Register
1175
1176 DESCRIPTION
1177 Register TL client to WDA. This function registers TL RX/TX functions
1178 to WDI by calling WDI_DS_Register.
1179
1180
1181 For NON integrated SOC, this function calls WLANBAL_RegTlCbFunctions
1182 to register TL's RX/TX functions to BAL
1183
1184 TODO
1185 For Prima, pfnResourceCB gets called in WDTS_OOResourceNotification.
1186 The uCount parameter is AC mask. It should be redefined to use the
1187 same resource callback function.
1188
1189 DEPENDENCIES
1190
1191 PARAMETERS
1192
1193 IN
1194 pvosGCtx VOS context
1195 pfnTxCompleteCallback TX complete callback upon TX completion
1196 pfnRxPacketCallback RX callback
1197 pfnResourceCB gets called when updating TX PDU number
1198 uResTheshold minimum TX PDU size for a packet
1199 pCallbackContext WDI calls callback function with it
1200 VOS global context pointer
1201 OUT
1202 uAvailableTxBuf available TX PDU numbder.
1203 BAL returns it for NON integrated SOC
1204
1205 RETURN VALUE
1206 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1207 VOS_STATUS_SUCCESS: Everything is good :)
1208
1209 SIDE EFFECTS
1210
1211============================================================================*/
1212VOS_STATUS
1213WDA_DS_Register
1214(
1215 v_PVOID_t pvosGCtx,
1216 WDA_DS_TxCompleteCallback pfnTxCompleteCallback,
1217 WDA_DS_RxPacketCallback pfnRxPacketCallback,
1218 WDA_DS_TxPacketCallback pfnTxPacketCallback,
1219 WDA_DS_ResourceCB pfnResourceCB,
1220 v_U32_t uResTheshold,
1221 v_PVOID_t pCallbackContext,
1222 v_U32_t *uAvailableTxBuf
1223);
1224
1225/*==========================================================================
1226 FUNCTION WDA_DS_StartXmit
1227
1228 DESCRIPTION
1229 Serialize TX transmit reques to TX thread.
1230
1231 TODO This sends TX transmit request to TL. It should send to WDI for
1232 abstraction.
1233
1234 For NON integrated SOC, this function calls WLANBAL_StartXmit
1235
1236 DEPENDENCIES
1237
1238 PARAMETERS
1239
1240 IN
1241 pvosGCtx VOS context
1242
1243 RETURN VALUE
1244 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1245 VOS_STATUS_SUCCESS: Everything is good :)
1246
1247 SIDE EFFECTS
1248
1249============================================================================*/
1250VOS_STATUS
1251WDA_DS_StartXmit
1252(
1253 v_PVOID_t pvosGCtx
1254);
1255
1256/*==========================================================================
1257 FUNCTION WDA_DS_FinishULA
1258
1259 DESCRIPTION
1260 Serialize Finish Upper Level Authentication reques to TX thread.
1261
1262 DEPENDENCIES
1263
1264 PARAMETERS
1265
1266 IN
1267 callbackRoutine routine to be called in TX thread
1268 callbackContext user data for the above routine
1269
1270 RETURN VALUE
1271 please see vos_tx_mq_serialize
1272
1273 SIDE EFFECTS
1274
1275============================================================================*/
1276VOS_STATUS
1277WDA_DS_FinishULA
1278(
1279 void (*callbackRoutine) (void *callbackContext),
Tushnim Bhattacharyya39a8f182013-02-20 18:10:30 -08001280 void *callbackContext
Jeff Johnson295189b2012-06-20 16:38:30 -07001281);
1282
1283/*==========================================================================
1284 FUNCTION WDA_DS_BuildTxPacketInfo
1285
1286 DESCRIPTION
1287 Build TX meta info for integrated SOC.
1288
1289 Same function calls HAL for reserve BD header space into VOS packet and
1290 HAL function to fill it.
1291
1292 DEPENDENCIES
1293
1294 PARAMETERS
1295
1296 IN
1297 pvosGCtx VOS context
1298 vosDataBuff vos data buffer
1299 pvDestMacAddr destination MAC address ponter
1300 ucDisableFrmXtl Is frame xtl disabled?
1301 ucQosEnabled Is QoS enabled?
1302 ucWDSEnabled Is WDS enabled?
1303 extraHeadSpace Extra head bytes. If it's not 0 due to 4 bytes align
1304 of BD header.
1305 typeSubtype typeSubtype from MAC header or TX metainfo/BD
1306 pAddr2 address 2
1307 uTid tid
1308 txFlag
1309 timeStamp
1310 ucIsEapol
1311 ucUP
1312
1313 OUT
1314 *pusPktLen Packet length
1315
1316 RETURN VALUE
1317 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1318 VOS_STATUS_SUCCESS: Everything is good :)
1319
1320 SIDE EFFECTS
1321
1322============================================================================*/
1323VOS_STATUS
1324WDA_DS_BuildTxPacketInfo
1325(
1326 v_PVOID_t pvosGCtx,
1327 vos_pkt_t* vosDataBuff,
1328 v_MACADDR_t* pvDestMacAddr,
1329 v_U8_t ucDisableFrmXtl,
1330 v_U16_t* pusPktLen,
1331 v_U8_t ucQosEnabled,
1332 v_U8_t ucWDSEnabled,
1333 v_U8_t extraHeadSpace,
1334 v_U8_t typeSubtype,
1335 v_PVOID_t pAddr2,
1336 v_U8_t uTid,
1337 v_U8_t txFlag,
1338 v_U32_t timeStamp,
1339 v_U8_t ucIsEapol,
1340 v_U8_t ucUP
1341);
1342
1343/*==========================================================================
1344 FUNCTION WDA_DS_PeekRxPacketInfo
1345
1346 DESCRIPTION
1347 Return RX metainfo pointer for for integrated SOC.
1348
1349 Same function will return BD header pointer.
1350
1351 DEPENDENCIES
1352
1353 PARAMETERS
1354
1355 IN
1356 vosDataBuff vos data buffer
1357
1358 pvDestMacAddr destination MAC address ponter
1359 bSwap Want to swap BD header? For backward compatability
1360 It does nothing for integrated SOC
1361 OUT
1362 *ppRxHeader RX metainfo pointer
1363
1364 RETURN VALUE
1365 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1366 VOS_STATUS_SUCCESS: Everything is good :)
1367
1368 SIDE EFFECTS
1369
1370============================================================================*/
1371VOS_STATUS
1372WDA_DS_PeekRxPacketInfo
1373(
1374 vos_pkt_t *vosDataBuff,
1375 v_PVOID_t *ppRxHeader,
1376 v_BOOL_t bSwap
1377);
1378
1379/*==========================================================================
1380 FUNCTION WDA_DS_TrimRxPacketInfo
1381
1382 DESCRIPTION
1383 Trim/Remove RX BD header for NON integrated SOC.
1384 It does nothing for integrated SOC.
1385
1386 DEPENDENCIES
1387
1388 PARAMETERS
1389
1390 IN
1391 vosDataBuff vos data buffer
1392
1393 RETURN VALUE
1394 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1395 VOS_STATUS_SUCCESS: Everything is good :)
1396
1397 SIDE EFFECTS
1398
1399============================================================================*/
1400VOS_STATUS
1401WDA_DS_TrimRxPacketInfo
1402(
1403 vos_pkt_t *vosDataBuff
1404);
1405
1406/*==========================================================================
1407 FUNCTION WDA_DS_GetTxResources
1408
1409 DESCRIPTION
1410 It does return hardcoded value for Prima. It should bigger number than 0.
1411 Returning 0 will put TL in out-of-resource condition for TX.
1412
1413 Return current PDU resources from BAL for NON integrated SOC.
1414
1415 DEPENDENCIES
1416
1417 PARAMETERS
1418
1419 IN
1420 vosDataBuff vos data buffer
1421
1422 OUT
1423 puResCount available PDU number for TX
1424
1425 RETURN VALUE
1426 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1427 VOS_STATUS_SUCCESS: Everything is good :)
1428
1429 SIDE EFFECTS
1430
1431============================================================================*/
1432VOS_STATUS
1433WDA_DS_GetTxResources
1434(
1435 v_PVOID_t pvosGCtx,
1436 v_U32_t* puResCount
1437);
1438
1439/*==========================================================================
1440 FUNCTION WDA_DS_GetRssi
1441
1442 DESCRIPTION
1443 Get RSSI
1444
1445 TODO It returns hardcoded value in the meantime since WDA/WDI does nothing
1446 support it yet for Prima.
1447
1448 DEPENDENCIES
1449
1450 PARAMETERS
1451
1452 IN
1453 vosDataBuff vos data buffer
1454
1455 OUT
1456 puRssi RSSI
1457
1458 RETURN VALUE
1459 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1460 VOS_STATUS_SUCCESS: Everything is good :)
1461
1462 SIDE EFFECTS
1463
1464============================================================================*/
1465VOS_STATUS
1466WDA_DS_GetRssi
1467(
1468 v_PVOID_t pvosGCtx,
1469 v_S7_t* puRssi
1470);
1471
1472/*==========================================================================
1473 FUNCTION WDA_DS_RxAmsduBdFix
1474
1475 DESCRIPTION
1476 For backward compatability with Libra/Volans. Need to call HAL function
1477 for HW BD bug fix
1478
1479 It does nothing for integrated SOC.
1480
1481 DEPENDENCIES
1482
1483 PARAMETERS
1484
1485 IN
1486 pvosGCtx VOS context
1487 pvBDHeader BD header pointer
1488
1489 OUT
1490
1491 RETURN VALUE
1492 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1493 VOS_STATUS_SUCCESS: Everything is good :)
1494
1495 SIDE EFFECTS
1496
1497============================================================================*/
1498VOS_STATUS
1499WDA_DS_RxAmsduBdFix
1500(
1501 v_PVOID_t pvosGCtx,
1502 v_PVOID_t pvBDHeader
1503);
1504
1505/*==========================================================================
1506 FUNCTION WDA_DS_GetFrameTypeSubType
1507
1508 DESCRIPTION
1509 Get typeSubtype from the packet. The BD header should have this.
1510 But some reason, Libra/Volans read it from 802.11 header and save it
1511 back to BD header. So for NON integrated SOC, this function does
1512 the same.
1513
1514 For integrated SOC, WDI does the same, not TL.
1515 It does return typeSubtype from RX meta info for integrated SOC.
1516
1517 DEPENDENCIES
1518
1519 PARAMETERS
1520
1521 IN
1522 pvosGCtx VOS context
1523 vosDataBuff vos data buffer
1524 pRxHeader RX meta info or BD header pointer
1525
1526 OUT
1527 ucTypeSubtype typeSubtype
1528
1529 RETURN VALUE
1530 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1531 VOS_STATUS_SUCCESS: Everything is good :)
1532
1533 SIDE EFFECTS
1534
1535============================================================================*/
1536VOS_STATUS
1537WDA_DS_GetFrameTypeSubType
1538(
1539 v_PVOID_t pvosGCtx,
1540 vos_pkt_t *vosDataBuff,
1541 v_PVOID_t pRxHeader,
1542 v_U8_t *ucTypeSubtype
1543);
1544
1545/*==========================================================================
1546 FUNCTION WDA_DS_GetReplayCounter
1547
1548 DESCRIPTION
1549 Return replay counter from BD header or RX meta info
1550
1551 DEPENDENCIES
1552
1553 PARAMETERS
1554
1555 IN
1556 pRxHeader RX meta info or BD header pointer
1557
1558 OUT
1559
1560 RETURN VALUE
1561 Replay Counter
1562
1563 SIDE EFFECTS
1564
1565============================================================================*/
1566v_U64_t
1567WDA_DS_GetReplayCounter
1568(
1569 v_PVOID_t pRxHeader
1570);
1571
1572/*==========================================================================
1573 FUNCTION WDA_DS_GetReplayCounter
1574
1575 DESCRIPTION
1576 HO support. Set RSSI threshold via HAL function for NON integrated SOC
1577
1578 TODO
1579 Same function should be provided by WDA/WDI for Prima.
1580
1581 DEPENDENCIES
1582
1583 PARAMETERS
1584
1585 IN
1586 pMac MAC global pointer
1587 pThresholds pointer of threshold structure to set.
1588
1589 OUT
1590
1591 RETURN VALUE
1592 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1593 VOS_STATUS_SUCCESS: Everything is good :)
1594
1595 SIDE EFFECTS
1596
1597============================================================================*/
1598VOS_STATUS
1599WDA_DS_SetRSSIThresholds
1600(
1601 tpAniSirGlobal pMac,
1602 tpSirRSSIThresholds pThresholds
1603);
1604
Jeff Johnson295189b2012-06-20 16:38:30 -07001605/*==========================================================================
1606 FUNCTION WDA_DS_TxFrames
1607
1608 DESCRIPTION
1609 Pull packets from TL and push them to WDI. It gets invoked upon
1610 WDA_DS_TX_START_XMIT.
1611
1612 This function is equivelant of WLANSSC_Transmit in Libra/Volans.
1613
1614 TODO
1615 This function should be implemented and moved in WDI.
1616
1617 DEPENDENCIES
1618
1619 PARAMETERS
1620
1621 IN
1622 pvosGCtx VOS context
1623
1624 OUT
1625
1626 RETURN VALUE
1627 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1628 VOS_STATUS_SUCCESS: Everything is good :)
1629
1630 SIDE EFFECTS
1631
1632============================================================================*/
1633VOS_STATUS
1634WDA_DS_TxFrames
1635(
1636 v_PVOID_t pvosGCtx
1637);
Jeff Johnson295189b2012-06-20 16:38:30 -07001638
1639/*==========================================================================
1640 FUNCTION WDA_DS_TxFlowControlCallback
1641
1642 DESCRIPTION
1643 Invoked by WDI to control TX flow.
1644
1645 DEPENDENCIES
1646
1647 PARAMETERS
1648
1649 IN
1650 pvosGCtx VOS context
1651 uFlowMask TX channel mask for flow control
1652 Defined in WDA_TXFlowEnumType
1653
1654 OUT
1655
1656 RETURN VALUE
1657
1658 SIDE EFFECTS
1659
1660============================================================================*/
1661v_VOID_t
1662WDA_DS_TxFlowControlCallback
1663(
1664 v_PVOID_t pvosGCtx,
1665 v_U8_t uFlowMask
1666);
1667
1668/*==========================================================================
1669 FUNCTION WDA_DS_GetTxFlowMask
1670
1671 DESCRIPTION
1672 return TX flow mask control value
1673
1674 DEPENDENCIES
1675
1676 PARAMETERS
1677
1678 IN
1679 pvosGCtx VOS context
1680
1681 OUT
1682 uFlowMask TX channel mask for flow control
1683 Defined in WDA_TXFlowEnumType
1684
1685 RETURN VALUE
1686 VOS_STATUS_E_INVAL: pointer is NULL and other errors
1687 VOS_STATUS_SUCCESS: Everything is good :)
1688
1689 SIDE EFFECTS
1690
1691============================================================================*/
1692VOS_STATUS
1693WDA_DS_GetTxFlowMask
1694(
1695 v_PVOID_t pvosGCtx,
1696 v_U8_t* puFlowMask
1697);
1698
1699/*==========================================================================
1700 FUNCTION WDA_HALDumpCmdReq
1701
1702 DESCRIPTION
1703 Send Dump commandsto WDI
1704
1705 DEPENDENCIES
1706
1707 PARAMETERS
1708
1709 IN
1710 pMac MAC global pointer
1711 cmd Hal dump command
1712 arg1 Dump command argument 1
1713 arg2 Dump command argument 2
1714 arg3 Dump command argument 3
1715 arg4 Dump command argument 4
1716
1717 OUT
1718 pBuffer Dump command Response buffer
1719
1720 RETURN VALUE
1721 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1722 VOS_STATUS_SUCCESS: Everything is good :)
1723
1724 SIDE EFFECTS
1725
1726============================================================================*/
1727VOS_STATUS WDA_HALDumpCmdReq(tpAniSirGlobal pMac,tANI_U32 cmd,
1728 tANI_U32 arg1, tANI_U32 arg2, tANI_U32 arg3,
1729 tANI_U32 arg4, tANI_U8 *pBuffer);
1730
1731/*==========================================================================
1732 FUNCTION WDA_featureCapsExchange
1733
1734 DESCRIPTION
1735 WDA API to invoke capability exchange between host and FW
1736
1737 DEPENDENCIES
1738
1739 PARAMETERS
1740
1741 IN
1742 pVosContext VOS context
1743
1744 OUT
1745 NONE
1746
1747 RETURN VALUE
1748 NONE
1749
1750 SIDE EFFECTS
1751============================================================================*/
1752void WDA_featureCapsExchange(v_PVOID_t pVosContext);
1753
Yathish9f22e662012-12-10 14:21:35 -08001754void WDA_disableCapablityFeature(tANI_U8 feature_index);
Jeff Johnson295189b2012-06-20 16:38:30 -07001755/*==========================================================================
1756 FUNCTION WDA_getHostWlanFeatCaps
1757
1758 DESCRIPTION
1759 Wrapper for WDI API, that will return if the feature (enum value).passed
1760 to this API is supported or not in Host
1761
1762 DEPENDENCIES
1763
1764 PARAMETERS
1765
1766 IN
1767 featEnumValue enum value for the feature as in placeHolderInCapBitmap in wlan_hal_msg.h.
1768
1769 OUT
1770 NONE
1771
1772 RETURN VALUE
1773 0 - implies feature is NOT Supported
1774 any non zero value - implies feature is SUPPORTED
1775
1776 SIDE EFFECTS
1777============================================================================*/
1778tANI_U8 WDA_getHostWlanFeatCaps(tANI_U8 featEnumValue);
1779
1780/*==========================================================================
1781 FUNCTION WDA_getFwWlanFeatCaps
1782
1783 DESCRIPTION
1784 Wrapper for WDI API, that will return if the feature (enum value).passed
1785 to this API is supported or not in FW
1786
1787 DEPENDENCIES
1788
1789 PARAMETERS
1790
1791 IN
1792 featEnumValue enum value for the feature as in placeHolderInCapBitmap in wlan_hal_msg.h.
1793
1794 OUT
1795 NONE
1796
1797 RETURN VALUE
1798 0 - implies feature is NOT Supported
1799 any non zero value - implies feature is SUPPORTED
1800
1801 SIDE EFFECTS
1802============================================================================*/
1803tANI_U8 WDA_getFwWlanFeatCaps(tANI_U8 featEnumValue);
1804
Madan Mohan Koyyalamudi8cb53982012-09-28 14:34:47 -07001805/*==========================================================================
1806 FUNCTION WDA_TransportChannelDebug
1807
1808 DESCRIPTION
1809 Display Transport Channel debugging information
1810 User may request to display DXE channel snapshot
1811 Or if host driver detects any abnormal stcuk may display
1812
1813 PARAMETERS
schang6295e542013-03-12 15:31:23 -07001814 pMac : upper MAC context pointer
Jeff Johnsonb88db982012-12-10 13:34:59 -08001815 displaySnapshot : Display DXE snapshot option
Madan Mohan Koyyalamudi8cb53982012-09-28 14:34:47 -07001816 enableStallDetect : Enable stall detect feature
1817 This feature will take effect to data performance
1818 Not integrate till fully verification
1819
1820 RETURN VALUE
1821 NONE
1822
1823===========================================================================*/
1824void WDA_TransportChannelDebug
1825(
schang6295e542013-03-12 15:31:23 -07001826 tpAniSirGlobal pMac,
1827 v_BOOL_t displaySnapshot,
1828 v_BOOL_t toggleStallDetect
Madan Mohan Koyyalamudi8cb53982012-09-28 14:34:47 -07001829);
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08001830
1831/*==========================================================================
1832 FUNCTION WDA_TrafficStatsTimerActivate
1833
1834 DESCRIPTION
1835 API to activate/deactivate Traffic Stats timer. Traffic stats timer is only needed during MCC
1836 PARAMETERS
1837 activate : Activate or not
1838
1839 RETURN VALUE
1840 NONE
1841
1842===========================================================================*/
1843void WDA_TrafficStatsTimerActivate(wpt_boolean activate);
1844
Gopichand Nakkalae620d5a2013-04-26 05:45:57 -07001845/*==========================================================================
1846 FUNCTION WDA_SetEnableSSR
1847
1848 DESCRIPTION
1849 API to enable/disable SSR on WDI timeout
1850
1851 PARAMETERS
1852 enableSSR : enable/disable SSR
1853
1854 RETURN VALUE
1855 NONE
1856
1857===========================================================================*/
1858void WDA_SetEnableSSR(v_BOOL_t enableSSR);
1859
Jeff Johnson295189b2012-06-20 16:38:30 -07001860#endif