blob: d469841e0dcdb0b6eecb7216ead43303f09806e7 [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
Jeff Johnson295189b2012-06-20 16:38:30 -07001009
Madan Mohan Koyyalamudia53c4dc2012-11-13 10:35:42 -08001010#define WDA_TX_COMPLETE_TIMEOUT_IND (WDA_MSG_TYPES_END - 1)
Jeff Johnson295189b2012-06-20 16:38:30 -07001011#define WDA_WLAN_SUSPEND_IND SIR_HAL_WLAN_SUSPEND_IND
1012#define WDA_WLAN_RESUME_REQ SIR_HAL_WLAN_RESUME_REQ
1013#define WDA_MSG_TYPES_END SIR_HAL_MSG_TYPES_END
1014
Jeff Johnson295189b2012-06-20 16:38:30 -07001015#define WDA_MMH_TXMB_READY_EVT SIR_HAL_MMH_TXMB_READY_EVT
1016#define WDA_MMH_RXMB_DONE_EVT SIR_HAL_MMH_RXMB_DONE_EVT
1017#define WDA_MMH_MSGQ_NE_EVT SIR_HAL_MMH_MSGQ_NE_EVT
Jeff Johnson295189b2012-06-20 16:38:30 -07001018
1019#ifdef WLAN_FEATURE_VOWIFI_11R
1020#define WDA_AGGR_QOS_REQ SIR_HAL_AGGR_QOS_REQ
1021#define WDA_AGGR_QOS_RSP SIR_HAL_AGGR_QOS_RSP
1022#endif /* WLAN_FEATURE_VOWIFI_11R */
1023
Jeff Johnson295189b2012-06-20 16:38:30 -07001024/* FTM CMD MSG */
1025#define WDA_FTM_CMD_REQ SIR_PTT_MSG_TYPES_BEGIN
1026#define WDA_FTM_CMD_RSP SIR_PTT_MSG_TYPES_END
Jeff Johnson295189b2012-06-20 16:38:30 -07001027
1028#ifdef FEATURE_WLAN_SCAN_PNO
1029/*Requests sent to lower driver*/
1030#define WDA_SET_PNO_REQ SIR_HAL_SET_PNO_REQ
1031#define WDA_SET_RSSI_FILTER_REQ SIR_HAL_SET_RSSI_FILTER_REQ
1032#define WDA_UPDATE_SCAN_PARAMS_REQ SIR_HAL_UPDATE_SCAN_PARAMS
1033
1034/*Indication comming from lower driver*/
1035#define WDA_SET_PNO_CHANGED_IND SIR_HAL_SET_PNO_CHANGED_IND
1036#endif // FEATURE_WLAN_SCAN_PNO
1037
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07001038#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
Varun Reddy Yeturu920df212013-05-22 08:07:23 -07001039#define WDA_ROAM_SCAN_OFFLOAD_REQ SIR_HAL_ROAM_SCAN_OFFLOAD_REQ
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07001040#endif
1041
Jeff Johnson295189b2012-06-20 16:38:30 -07001042#ifdef WLAN_WAKEUP_EVENTS
1043#define WDA_WAKE_REASON_IND SIR_HAL_WAKE_REASON_IND
1044#endif // WLAN_WAKEUP_EVENTS
1045
1046#ifdef WLAN_FEATURE_PACKET_FILTERING
1047#define WDA_8023_MULTICAST_LIST_REQ SIR_HAL_8023_MULTICAST_LIST_REQ
1048#define WDA_RECEIVE_FILTER_SET_FILTER_REQ SIR_HAL_RECEIVE_FILTER_SET_FILTER_REQ
1049#define WDA_PACKET_COALESCING_FILTER_MATCH_COUNT_REQ SIR_HAL_PACKET_COALESCING_FILTER_MATCH_COUNT_REQ
1050#define WDA_PACKET_COALESCING_FILTER_MATCH_COUNT_RSP SIR_HAL_PACKET_COALESCING_FILTER_MATCH_COUNT_RSP
1051#define WDA_RECEIVE_FILTER_CLEAR_FILTER_REQ SIR_HAL_RECEIVE_FILTER_CLEAR_FILTER_REQ
1052#endif // WLAN_FEATURE_PACKET_FILTERING
1053
1054#define WDA_SET_POWER_PARAMS_REQ SIR_HAL_SET_POWER_PARAMS_REQ
1055
1056#ifdef WLAN_FEATURE_GTK_OFFLOAD
1057#define WDA_GTK_OFFLOAD_REQ SIR_HAL_GTK_OFFLOAD_REQ
1058#define WDA_GTK_OFFLOAD_GETINFO_REQ SIR_HAL_GTK_OFFLOAD_GETINFO_REQ
1059#define WDA_GTK_OFFLOAD_GETINFO_RSP SIR_HAL_GTK_OFFLOAD_GETINFO_RSP
1060#endif //WLAN_FEATURE_GTK_OFFLOAD
1061
1062#define WDA_SET_TM_LEVEL_REQ SIR_HAL_SET_TM_LEVEL_REQ
1063
Mohit Khanna4a70d262012-09-11 16:30:12 -07001064#ifdef WLAN_FEATURE_11AC
1065#define WDA_UPDATE_OP_MODE SIR_HAL_UPDATE_OP_MODE
1066#endif
1067
Srinivas Girigowdad34cedb2013-01-25 13:33:11 -08001068#define WDA_GET_ROAM_RSSI_REQ SIR_HAL_GET_ROAM_RSSI_REQ
1069#define WDA_GET_ROAM_RSSI_RSP SIR_HAL_GET_ROAM_RSSI_RSP
1070
Jeff Johnson295189b2012-06-20 16:38:30 -07001071tSirRetStatus wdaPostCtrlMsg(tpAniSirGlobal pMac, tSirMsgQ *pMsg);
Jeff Johnson295189b2012-06-20 16:38:30 -07001072
Jeff Johnson295189b2012-06-20 16:38:30 -07001073eHalStatus WDA_SetRegDomain(void * clientCtxt, v_REGDOMAIN_t regId);
Jeff Johnson295189b2012-06-20 16:38:30 -07001074
1075#define HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME 0x40 // Bit 6 will be used to control BD rate for Management frames
1076
Jeff Johnson295189b2012-06-20 16:38:30 -07001077#define halTxFrame(hHal, pFrmBuf, frmLen, frmType, txDir, tid, pCompFunc, pData, txFlag) \
1078 (eHalStatus)( WDA_TxPacket(\
1079 vos_get_context(VOS_MODULE_ID_WDA, vos_get_global_context(VOS_MODULE_ID_WDA, (hHal))),\
1080 (pFrmBuf),\
1081 (frmLen),\
1082 (frmType),\
1083 (txDir),\
1084 (tid),\
1085 (pCompFunc),\
1086 (pData),\
1087 (NULL), \
1088 (txFlag)) )
1089
1090#define halTxFrameWithTxComplete(hHal, pFrmBuf, frmLen, frmType, txDir, tid, pCompFunc, pData, pCBackFnTxComp, txFlag) \
1091 (eHalStatus)( WDA_TxPacket(\
1092 vos_get_context(VOS_MODULE_ID_WDA, vos_get_global_context(VOS_MODULE_ID_WDA, (hHal))),\
1093 (pFrmBuf),\
1094 (frmLen),\
1095 (frmType),\
1096 (txDir),\
1097 (tid),\
1098 (pCompFunc),\
1099 (pData),\
1100 (pCBackFnTxComp), \
1101 (txFlag)) )
Jeff Johnson295189b2012-06-20 16:38:30 -07001102
1103/* -----------------------------------------------------------------
1104 WDA data path API's for TL
1105 -------------------------------------------------------------------*/
1106
Jeff Johnson295189b2012-06-20 16:38:30 -07001107v_BOOL_t WDA_IsHwFrameTxTranslationCapable(v_PVOID_t pVosGCtx,
1108 tANI_U8 staIdx);
Jeff Johnson295189b2012-06-20 16:38:30 -07001109
Jeff Johnson295189b2012-06-20 16:38:30 -07001110# define WDA_EnableUapsdAcParams(vosGCtx, staId, uapsdInfo) \
1111 WDA_SetUapsdAcParamsReq(vosGCtx, staId, uapsdInfo)
Jeff Johnson295189b2012-06-20 16:38:30 -07001112
Jeff Johnson295189b2012-06-20 16:38:30 -07001113# define WDA_DisableUapsdAcParams(vosGCtx, staId, ac) \
1114 WDA_ClearUapsdAcParamsReq(vosGCtx, staId, ac)
Jeff Johnson295189b2012-06-20 16:38:30 -07001115
Jeff Johnson295189b2012-06-20 16:38:30 -07001116# define WDA_SetRSSIThresholds(pMac, pThresholds) \
1117 WDA_SetRSSIThresholdsReq(pMac, pThresholds)
Jeff Johnson295189b2012-06-20 16:38:30 -07001118
Jeff Johnson295189b2012-06-20 16:38:30 -07001119#define WDA_UpdateRssiBmps(pvosGCtx, staId, rssi) \
Madan Mohan Koyyalamudia53c4dc2012-11-13 10:35:42 -08001120 WLANTL_UpdateRssiBmps(pvosGCtx, staId, rssi)
Jeff Johnson295189b2012-06-20 16:38:30 -07001121
1122#ifdef WLAN_PERF
1123/*==========================================================================
1124 FUNCTION WDA_TLI_FastHwFwdDataFrame
1125
1126 DESCRIPTION
1127 For NON integrated SOC, this function is called by TL.
1128
1129 Fast path function to quickly forward a data frame if HAL determines BD
1130 signature computed here matches the signature inside current VOSS packet.
1131 If there is a match, HAL and TL fills in the swapped packet length into
1132 BD header and DxE header, respectively. Otherwise, packet goes back to
1133 normal (slow) path and a new BD signature would be tagged into BD in this
1134 VOSS packet later by the WLANHAL_FillTxBd() function.
1135
1136 TODO For integrated SOC, this function does nothing yet. Pima SLM/HAL
1137 should provide the equivelant functionality.
1138
1139 DEPENDENCIES
1140
1141 PARAMETERS
1142
1143 IN
1144 pvosGCtx VOS context
1145 vosDataBuff Ptr to VOSS packet
1146 pMetaInfo For getting frame's TID
1147 pStaInfo For checking STA type
1148
1149 OUT
1150 pvosStatus returned status
1151 puFastFwdOK Flag to indicate whether frame could be fast forwarded
1152
1153 RETURN VALUE
1154 No return.
1155
1156 SIDE EFFECTS
1157
1158============================================================================*/
1159void WDA_TLI_FastHwFwdDataFrame
1160(
1161 v_PVOID_t pvosGCtx,
1162 vos_pkt_t* vosDataBuff,
1163 VOS_STATUS* pvosStatus,
1164 v_U32_t* puFastFwdOK,
1165 WLANTL_MetaInfoType* pMetaInfo,
1166 WLAN_STADescType* pStaInfo
1167);
1168#endif /* WLAN_PERF */
1169
1170/*==========================================================================
1171 FUNCTION WDA_DS_Register
1172
1173 DESCRIPTION
1174 Register TL client to WDA. This function registers TL RX/TX functions
1175 to WDI by calling WDI_DS_Register.
1176
1177
1178 For NON integrated SOC, this function calls WLANBAL_RegTlCbFunctions
1179 to register TL's RX/TX functions to BAL
1180
1181 TODO
1182 For Prima, pfnResourceCB gets called in WDTS_OOResourceNotification.
1183 The uCount parameter is AC mask. It should be redefined to use the
1184 same resource callback function.
1185
1186 DEPENDENCIES
1187
1188 PARAMETERS
1189
1190 IN
1191 pvosGCtx VOS context
1192 pfnTxCompleteCallback TX complete callback upon TX completion
1193 pfnRxPacketCallback RX callback
1194 pfnResourceCB gets called when updating TX PDU number
1195 uResTheshold minimum TX PDU size for a packet
1196 pCallbackContext WDI calls callback function with it
1197 VOS global context pointer
1198 OUT
1199 uAvailableTxBuf available TX PDU numbder.
1200 BAL returns it for NON integrated SOC
1201
1202 RETURN VALUE
1203 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1204 VOS_STATUS_SUCCESS: Everything is good :)
1205
1206 SIDE EFFECTS
1207
1208============================================================================*/
1209VOS_STATUS
1210WDA_DS_Register
1211(
1212 v_PVOID_t pvosGCtx,
1213 WDA_DS_TxCompleteCallback pfnTxCompleteCallback,
1214 WDA_DS_RxPacketCallback pfnRxPacketCallback,
1215 WDA_DS_TxPacketCallback pfnTxPacketCallback,
1216 WDA_DS_ResourceCB pfnResourceCB,
1217 v_U32_t uResTheshold,
1218 v_PVOID_t pCallbackContext,
1219 v_U32_t *uAvailableTxBuf
1220);
1221
1222/*==========================================================================
1223 FUNCTION WDA_DS_StartXmit
1224
1225 DESCRIPTION
1226 Serialize TX transmit reques to TX thread.
1227
1228 TODO This sends TX transmit request to TL. It should send to WDI for
1229 abstraction.
1230
1231 For NON integrated SOC, this function calls WLANBAL_StartXmit
1232
1233 DEPENDENCIES
1234
1235 PARAMETERS
1236
1237 IN
1238 pvosGCtx VOS context
1239
1240 RETURN VALUE
1241 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1242 VOS_STATUS_SUCCESS: Everything is good :)
1243
1244 SIDE EFFECTS
1245
1246============================================================================*/
1247VOS_STATUS
1248WDA_DS_StartXmit
1249(
1250 v_PVOID_t pvosGCtx
1251);
1252
1253/*==========================================================================
1254 FUNCTION WDA_DS_FinishULA
1255
1256 DESCRIPTION
1257 Serialize Finish Upper Level Authentication reques to TX thread.
1258
1259 DEPENDENCIES
1260
1261 PARAMETERS
1262
1263 IN
1264 callbackRoutine routine to be called in TX thread
1265 callbackContext user data for the above routine
1266
1267 RETURN VALUE
1268 please see vos_tx_mq_serialize
1269
1270 SIDE EFFECTS
1271
1272============================================================================*/
1273VOS_STATUS
1274WDA_DS_FinishULA
1275(
1276 void (*callbackRoutine) (void *callbackContext),
Tushnim Bhattacharyya39a8f182013-02-20 18:10:30 -08001277 void *callbackContext
Jeff Johnson295189b2012-06-20 16:38:30 -07001278);
1279
1280/*==========================================================================
1281 FUNCTION WDA_DS_BuildTxPacketInfo
1282
1283 DESCRIPTION
1284 Build TX meta info for integrated SOC.
1285
1286 Same function calls HAL for reserve BD header space into VOS packet and
1287 HAL function to fill it.
1288
1289 DEPENDENCIES
1290
1291 PARAMETERS
1292
1293 IN
1294 pvosGCtx VOS context
1295 vosDataBuff vos data buffer
1296 pvDestMacAddr destination MAC address ponter
1297 ucDisableFrmXtl Is frame xtl disabled?
1298 ucQosEnabled Is QoS enabled?
1299 ucWDSEnabled Is WDS enabled?
1300 extraHeadSpace Extra head bytes. If it's not 0 due to 4 bytes align
1301 of BD header.
1302 typeSubtype typeSubtype from MAC header or TX metainfo/BD
1303 pAddr2 address 2
1304 uTid tid
1305 txFlag
1306 timeStamp
1307 ucIsEapol
1308 ucUP
1309
1310 OUT
1311 *pusPktLen Packet length
1312
1313 RETURN VALUE
1314 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1315 VOS_STATUS_SUCCESS: Everything is good :)
1316
1317 SIDE EFFECTS
1318
1319============================================================================*/
1320VOS_STATUS
1321WDA_DS_BuildTxPacketInfo
1322(
1323 v_PVOID_t pvosGCtx,
1324 vos_pkt_t* vosDataBuff,
1325 v_MACADDR_t* pvDestMacAddr,
1326 v_U8_t ucDisableFrmXtl,
1327 v_U16_t* pusPktLen,
1328 v_U8_t ucQosEnabled,
1329 v_U8_t ucWDSEnabled,
1330 v_U8_t extraHeadSpace,
1331 v_U8_t typeSubtype,
1332 v_PVOID_t pAddr2,
1333 v_U8_t uTid,
1334 v_U8_t txFlag,
1335 v_U32_t timeStamp,
1336 v_U8_t ucIsEapol,
1337 v_U8_t ucUP
1338);
1339
1340/*==========================================================================
1341 FUNCTION WDA_DS_PeekRxPacketInfo
1342
1343 DESCRIPTION
1344 Return RX metainfo pointer for for integrated SOC.
1345
1346 Same function will return BD header pointer.
1347
1348 DEPENDENCIES
1349
1350 PARAMETERS
1351
1352 IN
1353 vosDataBuff vos data buffer
1354
1355 pvDestMacAddr destination MAC address ponter
1356 bSwap Want to swap BD header? For backward compatability
1357 It does nothing for integrated SOC
1358 OUT
1359 *ppRxHeader RX metainfo pointer
1360
1361 RETURN VALUE
1362 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1363 VOS_STATUS_SUCCESS: Everything is good :)
1364
1365 SIDE EFFECTS
1366
1367============================================================================*/
1368VOS_STATUS
1369WDA_DS_PeekRxPacketInfo
1370(
1371 vos_pkt_t *vosDataBuff,
1372 v_PVOID_t *ppRxHeader,
1373 v_BOOL_t bSwap
1374);
1375
1376/*==========================================================================
1377 FUNCTION WDA_DS_TrimRxPacketInfo
1378
1379 DESCRIPTION
1380 Trim/Remove RX BD header for NON integrated SOC.
1381 It does nothing for integrated SOC.
1382
1383 DEPENDENCIES
1384
1385 PARAMETERS
1386
1387 IN
1388 vosDataBuff vos data buffer
1389
1390 RETURN VALUE
1391 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1392 VOS_STATUS_SUCCESS: Everything is good :)
1393
1394 SIDE EFFECTS
1395
1396============================================================================*/
1397VOS_STATUS
1398WDA_DS_TrimRxPacketInfo
1399(
1400 vos_pkt_t *vosDataBuff
1401);
1402
1403/*==========================================================================
1404 FUNCTION WDA_DS_GetTxResources
1405
1406 DESCRIPTION
1407 It does return hardcoded value for Prima. It should bigger number than 0.
1408 Returning 0 will put TL in out-of-resource condition for TX.
1409
1410 Return current PDU resources from BAL for NON integrated SOC.
1411
1412 DEPENDENCIES
1413
1414 PARAMETERS
1415
1416 IN
1417 vosDataBuff vos data buffer
1418
1419 OUT
1420 puResCount available PDU number for TX
1421
1422 RETURN VALUE
1423 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1424 VOS_STATUS_SUCCESS: Everything is good :)
1425
1426 SIDE EFFECTS
1427
1428============================================================================*/
1429VOS_STATUS
1430WDA_DS_GetTxResources
1431(
1432 v_PVOID_t pvosGCtx,
1433 v_U32_t* puResCount
1434);
1435
1436/*==========================================================================
1437 FUNCTION WDA_DS_GetRssi
1438
1439 DESCRIPTION
1440 Get RSSI
1441
1442 TODO It returns hardcoded value in the meantime since WDA/WDI does nothing
1443 support it yet for Prima.
1444
1445 DEPENDENCIES
1446
1447 PARAMETERS
1448
1449 IN
1450 vosDataBuff vos data buffer
1451
1452 OUT
1453 puRssi RSSI
1454
1455 RETURN VALUE
1456 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1457 VOS_STATUS_SUCCESS: Everything is good :)
1458
1459 SIDE EFFECTS
1460
1461============================================================================*/
1462VOS_STATUS
1463WDA_DS_GetRssi
1464(
1465 v_PVOID_t pvosGCtx,
1466 v_S7_t* puRssi
1467);
1468
1469/*==========================================================================
1470 FUNCTION WDA_DS_RxAmsduBdFix
1471
1472 DESCRIPTION
1473 For backward compatability with Libra/Volans. Need to call HAL function
1474 for HW BD bug fix
1475
1476 It does nothing for integrated SOC.
1477
1478 DEPENDENCIES
1479
1480 PARAMETERS
1481
1482 IN
1483 pvosGCtx VOS context
1484 pvBDHeader BD header pointer
1485
1486 OUT
1487
1488 RETURN VALUE
1489 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1490 VOS_STATUS_SUCCESS: Everything is good :)
1491
1492 SIDE EFFECTS
1493
1494============================================================================*/
1495VOS_STATUS
1496WDA_DS_RxAmsduBdFix
1497(
1498 v_PVOID_t pvosGCtx,
1499 v_PVOID_t pvBDHeader
1500);
1501
1502/*==========================================================================
1503 FUNCTION WDA_DS_GetFrameTypeSubType
1504
1505 DESCRIPTION
1506 Get typeSubtype from the packet. The BD header should have this.
1507 But some reason, Libra/Volans read it from 802.11 header and save it
1508 back to BD header. So for NON integrated SOC, this function does
1509 the same.
1510
1511 For integrated SOC, WDI does the same, not TL.
1512 It does return typeSubtype from RX meta info for integrated SOC.
1513
1514 DEPENDENCIES
1515
1516 PARAMETERS
1517
1518 IN
1519 pvosGCtx VOS context
1520 vosDataBuff vos data buffer
1521 pRxHeader RX meta info or BD header pointer
1522
1523 OUT
1524 ucTypeSubtype typeSubtype
1525
1526 RETURN VALUE
1527 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1528 VOS_STATUS_SUCCESS: Everything is good :)
1529
1530 SIDE EFFECTS
1531
1532============================================================================*/
1533VOS_STATUS
1534WDA_DS_GetFrameTypeSubType
1535(
1536 v_PVOID_t pvosGCtx,
1537 vos_pkt_t *vosDataBuff,
1538 v_PVOID_t pRxHeader,
1539 v_U8_t *ucTypeSubtype
1540);
1541
1542/*==========================================================================
1543 FUNCTION WDA_DS_GetReplayCounter
1544
1545 DESCRIPTION
1546 Return replay counter from BD header or RX meta info
1547
1548 DEPENDENCIES
1549
1550 PARAMETERS
1551
1552 IN
1553 pRxHeader RX meta info or BD header pointer
1554
1555 OUT
1556
1557 RETURN VALUE
1558 Replay Counter
1559
1560 SIDE EFFECTS
1561
1562============================================================================*/
1563v_U64_t
1564WDA_DS_GetReplayCounter
1565(
1566 v_PVOID_t pRxHeader
1567);
1568
1569/*==========================================================================
1570 FUNCTION WDA_DS_GetReplayCounter
1571
1572 DESCRIPTION
1573 HO support. Set RSSI threshold via HAL function for NON integrated SOC
1574
1575 TODO
1576 Same function should be provided by WDA/WDI for Prima.
1577
1578 DEPENDENCIES
1579
1580 PARAMETERS
1581
1582 IN
1583 pMac MAC global pointer
1584 pThresholds pointer of threshold structure to set.
1585
1586 OUT
1587
1588 RETURN VALUE
1589 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1590 VOS_STATUS_SUCCESS: Everything is good :)
1591
1592 SIDE EFFECTS
1593
1594============================================================================*/
1595VOS_STATUS
1596WDA_DS_SetRSSIThresholds
1597(
1598 tpAniSirGlobal pMac,
1599 tpSirRSSIThresholds pThresholds
1600);
1601
Jeff Johnson295189b2012-06-20 16:38:30 -07001602/*==========================================================================
1603 FUNCTION WDA_DS_TxFrames
1604
1605 DESCRIPTION
1606 Pull packets from TL and push them to WDI. It gets invoked upon
1607 WDA_DS_TX_START_XMIT.
1608
1609 This function is equivelant of WLANSSC_Transmit in Libra/Volans.
1610
1611 TODO
1612 This function should be implemented and moved in WDI.
1613
1614 DEPENDENCIES
1615
1616 PARAMETERS
1617
1618 IN
1619 pvosGCtx VOS context
1620
1621 OUT
1622
1623 RETURN VALUE
1624 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1625 VOS_STATUS_SUCCESS: Everything is good :)
1626
1627 SIDE EFFECTS
1628
1629============================================================================*/
1630VOS_STATUS
1631WDA_DS_TxFrames
1632(
1633 v_PVOID_t pvosGCtx
1634);
Jeff Johnson295189b2012-06-20 16:38:30 -07001635
1636/*==========================================================================
1637 FUNCTION WDA_DS_TxFlowControlCallback
1638
1639 DESCRIPTION
1640 Invoked by WDI to control TX flow.
1641
1642 DEPENDENCIES
1643
1644 PARAMETERS
1645
1646 IN
1647 pvosGCtx VOS context
1648 uFlowMask TX channel mask for flow control
1649 Defined in WDA_TXFlowEnumType
1650
1651 OUT
1652
1653 RETURN VALUE
1654
1655 SIDE EFFECTS
1656
1657============================================================================*/
1658v_VOID_t
1659WDA_DS_TxFlowControlCallback
1660(
1661 v_PVOID_t pvosGCtx,
1662 v_U8_t uFlowMask
1663);
1664
1665/*==========================================================================
1666 FUNCTION WDA_DS_GetTxFlowMask
1667
1668 DESCRIPTION
1669 return TX flow mask control value
1670
1671 DEPENDENCIES
1672
1673 PARAMETERS
1674
1675 IN
1676 pvosGCtx VOS context
1677
1678 OUT
1679 uFlowMask TX channel mask for flow control
1680 Defined in WDA_TXFlowEnumType
1681
1682 RETURN VALUE
1683 VOS_STATUS_E_INVAL: pointer is NULL and other errors
1684 VOS_STATUS_SUCCESS: Everything is good :)
1685
1686 SIDE EFFECTS
1687
1688============================================================================*/
1689VOS_STATUS
1690WDA_DS_GetTxFlowMask
1691(
1692 v_PVOID_t pvosGCtx,
1693 v_U8_t* puFlowMask
1694);
1695
1696/*==========================================================================
1697 FUNCTION WDA_HALDumpCmdReq
1698
1699 DESCRIPTION
1700 Send Dump commandsto WDI
1701
1702 DEPENDENCIES
1703
1704 PARAMETERS
1705
1706 IN
1707 pMac MAC global pointer
1708 cmd Hal dump command
1709 arg1 Dump command argument 1
1710 arg2 Dump command argument 2
1711 arg3 Dump command argument 3
1712 arg4 Dump command argument 4
1713
1714 OUT
1715 pBuffer Dump command Response buffer
1716
1717 RETURN VALUE
1718 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1719 VOS_STATUS_SUCCESS: Everything is good :)
1720
1721 SIDE EFFECTS
1722
1723============================================================================*/
1724VOS_STATUS WDA_HALDumpCmdReq(tpAniSirGlobal pMac,tANI_U32 cmd,
1725 tANI_U32 arg1, tANI_U32 arg2, tANI_U32 arg3,
1726 tANI_U32 arg4, tANI_U8 *pBuffer);
1727
1728/*==========================================================================
1729 FUNCTION WDA_featureCapsExchange
1730
1731 DESCRIPTION
1732 WDA API to invoke capability exchange between host and FW
1733
1734 DEPENDENCIES
1735
1736 PARAMETERS
1737
1738 IN
1739 pVosContext VOS context
1740
1741 OUT
1742 NONE
1743
1744 RETURN VALUE
1745 NONE
1746
1747 SIDE EFFECTS
1748============================================================================*/
1749void WDA_featureCapsExchange(v_PVOID_t pVosContext);
1750
Yathish9f22e662012-12-10 14:21:35 -08001751void WDA_disableCapablityFeature(tANI_U8 feature_index);
Jeff Johnson295189b2012-06-20 16:38:30 -07001752/*==========================================================================
1753 FUNCTION WDA_getHostWlanFeatCaps
1754
1755 DESCRIPTION
1756 Wrapper for WDI API, that will return if the feature (enum value).passed
1757 to this API is supported or not in Host
1758
1759 DEPENDENCIES
1760
1761 PARAMETERS
1762
1763 IN
1764 featEnumValue enum value for the feature as in placeHolderInCapBitmap in wlan_hal_msg.h.
1765
1766 OUT
1767 NONE
1768
1769 RETURN VALUE
1770 0 - implies feature is NOT Supported
1771 any non zero value - implies feature is SUPPORTED
1772
1773 SIDE EFFECTS
1774============================================================================*/
1775tANI_U8 WDA_getHostWlanFeatCaps(tANI_U8 featEnumValue);
1776
1777/*==========================================================================
1778 FUNCTION WDA_getFwWlanFeatCaps
1779
1780 DESCRIPTION
1781 Wrapper for WDI API, that will return if the feature (enum value).passed
1782 to this API is supported or not in FW
1783
1784 DEPENDENCIES
1785
1786 PARAMETERS
1787
1788 IN
1789 featEnumValue enum value for the feature as in placeHolderInCapBitmap in wlan_hal_msg.h.
1790
1791 OUT
1792 NONE
1793
1794 RETURN VALUE
1795 0 - implies feature is NOT Supported
1796 any non zero value - implies feature is SUPPORTED
1797
1798 SIDE EFFECTS
1799============================================================================*/
1800tANI_U8 WDA_getFwWlanFeatCaps(tANI_U8 featEnumValue);
1801
Madan Mohan Koyyalamudi8cb53982012-09-28 14:34:47 -07001802/*==========================================================================
1803 FUNCTION WDA_TransportChannelDebug
1804
1805 DESCRIPTION
1806 Display Transport Channel debugging information
1807 User may request to display DXE channel snapshot
1808 Or if host driver detects any abnormal stcuk may display
1809
1810 PARAMETERS
schang6295e542013-03-12 15:31:23 -07001811 pMac : upper MAC context pointer
Jeff Johnsonb88db982012-12-10 13:34:59 -08001812 displaySnapshot : Display DXE snapshot option
Madan Mohan Koyyalamudi8cb53982012-09-28 14:34:47 -07001813 enableStallDetect : Enable stall detect feature
1814 This feature will take effect to data performance
1815 Not integrate till fully verification
1816
1817 RETURN VALUE
1818 NONE
1819
1820===========================================================================*/
1821void WDA_TransportChannelDebug
1822(
schang6295e542013-03-12 15:31:23 -07001823 tpAniSirGlobal pMac,
1824 v_BOOL_t displaySnapshot,
1825 v_BOOL_t toggleStallDetect
Madan Mohan Koyyalamudi8cb53982012-09-28 14:34:47 -07001826);
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08001827
1828/*==========================================================================
1829 FUNCTION WDA_TrafficStatsTimerActivate
1830
1831 DESCRIPTION
1832 API to activate/deactivate Traffic Stats timer. Traffic stats timer is only needed during MCC
1833 PARAMETERS
1834 activate : Activate or not
1835
1836 RETURN VALUE
1837 NONE
1838
1839===========================================================================*/
1840void WDA_TrafficStatsTimerActivate(wpt_boolean activate);
1841
Gopichand Nakkalae620d5a2013-04-26 05:45:57 -07001842/*==========================================================================
1843 FUNCTION WDA_SetEnableSSR
1844
1845 DESCRIPTION
1846 API to enable/disable SSR on WDI timeout
1847
1848 PARAMETERS
1849 enableSSR : enable/disable SSR
1850
1851 RETURN VALUE
1852 NONE
1853
1854===========================================================================*/
1855void WDA_SetEnableSSR(v_BOOL_t enableSSR);
1856
Jeff Johnson295189b2012-06-20 16:38:30 -07001857#endif