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