blob: dde480e874749fd1a2eaa3e299429b319c4a0616 [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
Ravi Joshid2ca7c42013-07-23 08:37:49 -0700170/* Check if heartbeat offload is enabled */
171#define IS_IBSS_HEARTBEAT_OFFLOAD_FEATURE_ENABLE ((WDI_getHostWlanFeatCaps(IBSS_HEARTBEAT_OFFLOAD)) & (WDA_getFwWlanFeatCaps(IBSS_HEARTBEAT_OFFLOAD)))
172
Madan Mohan Koyyalamudice419872013-09-13 19:36:52 +0530173#ifdef FEATURE_WLAN_TDLS
174#define IS_ADVANCE_TDLS_ENABLE ((WDI_getHostWlanFeatCaps(ADVANCE_TDLS)) & (WDA_getFwWlanFeatCaps(ADVANCE_TDLS)))
175#else
176#define IS_ADVANCE_TDLS_ENABLE 0
177#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700178/*--------------------------------------------------------------------------
179 Definitions for Data path APIs
180 --------------------------------------------------------------------------*/
181
182/*As per 802.11 spec */
183#define WDA_TLI_MGMT_FRAME_TYPE 0x00
184#define WDA_TLI_CTRL_FRAME_TYPE 0x10
185#define WDA_TLI_DATA_FRAME_TYPE 0x20
186
187/*802.3 header definitions*/
188#define WDA_TLI_802_3_HEADER_LEN 14
189/*802.11 header definitions - header len without QOS ctrl field*/
190#define WDA_TLI_802_11_HEADER_LEN 24
191
192/*Determines the header len based on the disable xtl field*/
193#define WDA_TLI_MAC_HEADER_LEN( _dxtl) \
194 ( ( 0 == _dxtl )? \
195 WDA_TLI_802_3_HEADER_LEN:WDA_TLI_802_11_HEADER_LEN )
196
197/* TX channel enum type:
198
199 We have five types of TX packets so far and want to block/unblock each
200 traffic individually according to, for example, low resouce condition.
201 Define five TX channels for UMAC here. WDA can map these logical
202 channels to physical DXE channels if needed.
203*/
204typedef enum
205{
206 WDA_TXFLOW_AC_BK = 0,
207 WDA_TXFLOW_AC_BE = 1,
208 WDA_TXFLOW_AC_VI = 2,
209 WDA_TXFLOW_AC_VO = 3,
210 WDA_TXFLOW_MGMT = 4,
211 WDA_TXFLOW_BAP = 1, /* BAP is sent as BE */
212 WDA_TXFLOW_FC = 1, /* FC is sent as BE */
213 WDA_TXFLOW_MAX
214} WDA_TXFlowEnumType;
215
216#define WDA_TXFLOWMASK 0x1F /* 1~4bit:low priority ch / 5bit: high */
217
218/* ---------------------------------------------------------------------
219 Libra and Volans specifics
220
221 TODO Consider refactoring it and put it into two separate headers,
222 one for Prima and one for Volans
Jeff Johnson295189b2012-06-20 16:38:30 -0700223 ----------------------------------------------------------------------*/
224
225/* For backward compatability with SDIO. It's BAL header size for SDIO
226 interface. It's nothing for integrated SOC */
Jeff Johnson295189b2012-06-20 16:38:30 -0700227#define WDA_DXE_HEADER_SIZE 0
Jeff Johnson295189b2012-06-20 16:38:30 -0700228
Jeff Johnson295189b2012-06-20 16:38:30 -0700229
230/*Minimum resources needed - arbitrary*/
231
232/*DXE + SD*/
Madan Mohan Koyyalamudia53c4dc2012-11-13 10:35:42 -0800233#define WDA_WLAN_LIBRA_HEADER_LEN (20 + 8)
Jeff Johnson295189b2012-06-20 16:38:30 -0700234
Jeff Johnson295189b2012-06-20 16:38:30 -0700235#define WDA_TLI_BD_PDU_RESERVE_THRESHOLD 10
Jeff Johnson295189b2012-06-20 16:38:30 -0700236
237
Jeff Johnson295189b2012-06-20 16:38:30 -0700238# define WDA_TLI_MIN_RES_MF 1
239# define WDA_TLI_MIN_RES_BAP 2
240# define WDA_TLI_MIN_RES_DATA 3
Jeff Johnson295189b2012-06-20 16:38:30 -0700241
Jeff Johnson295189b2012-06-20 16:38:30 -0700242# define WDA_NUM_STA 8
Jeff Johnson295189b2012-06-20 16:38:30 -0700243
244/* For backward compatability with SDIO.
245
246 For SDIO interface, calculate the TX frame length and number of PDU
247 to transfter the frame.
248
249 _vosBuff: IN VOS pakcet buffer pointer
250 _usPktLen: OUT VOS packet length in bytes
251 _uResLen: OUT Number of PDU to hold this VOS packet
252 _uTotalPktLen: OUT Totoal packet length including BAL header size
253
254 For integrated SOC, _usPktLen and _uTotalPktLen is VOS pakcet length
255 which does include BD header length. _uResLen is hardcoded 2.
256 */
Jeff Johnson295189b2012-06-20 16:38:30 -0700257
258#ifdef WINDOWS_DT
259#define WDA_TLI_PROCESS_FRAME_LEN( _vosBuff, _usPktLen, \
260 _uResLen, _uTotalPktLen) \
261 do \
262 { \
263 _usPktLen = wpalPacketGetFragCount((wpt_packet*)_vosBuff) + 1/*BD*/;\
264 _uResLen = _usPktLen; \
265 _uTotalPktLen = _usPktLen; \
266 } \
267 while ( 0 )
268#else /* WINDOWS_DT */
269#define WDA_TLI_PROCESS_FRAME_LEN( _vosBuff, _usPktLen, \
270 _uResLen, _uTotalPktLen) \
271 do \
272 { \
273 _usPktLen = 2; /* Need 1 descriptor per a packet + packet*/ \
274 _uResLen = 2; /* Assume that we spends two DXE descriptor */ \
275 _uTotalPktLen = _usPktLen; \
276 } \
277 while ( 0 )
278#endif /* WINDOWS_DT */
279
Jeff Johnson295189b2012-06-20 16:38:30 -0700280
281
282/*--------------------------------------------------------------------------
283 Message Definitions
284 --------------------------------------------------------------------------*/
285
286/* TX Tranmit request message. It serializes TX request to TX thread.
287 The message is processed in TL.
288*/
289#define WDA_DS_TX_START_XMIT WLANTL_TX_START_XMIT
290#define WDA_DS_FINISH_ULA WLANTL_FINISH_ULA
291
Madan Mohan Koyyalamudi31e4cad2013-08-21 20:21:14 +0530292#define VOS_TO_WPAL_PKT(_vos_pkt) ((wpt_packet*)_vos_pkt)
Jeff Johnson295189b2012-06-20 16:38:30 -0700293
294#define WDA_TX_PACKET_FREED 0X0
295
Jeff Johnson43971f52012-07-17 12:26:56 -0700296/* Approximate amount of time to wait for WDA to stop WDI considering 1 pendig req too*/
297#define WDA_STOP_TIMEOUT ( (WDI_RESPONSE_TIMEOUT * 2) + WDI_SET_POWER_STATE_TIMEOUT + 5)
Jeff Johnson295189b2012-06-20 16:38:30 -0700298/*--------------------------------------------------------------------------
299 Functions
300 --------------------------------------------------------------------------*/
301
302/* For data client */
303typedef VOS_STATUS (*WDA_DS_TxCompleteCallback) ( v_PVOID_t pContext, vos_pkt_t *pFrameDataBuff, VOS_STATUS txStatus );
304typedef VOS_STATUS (*WDA_DS_RxPacketCallback) ( v_PVOID_t pContext, vos_pkt_t *pFrameDataBuff );
305typedef v_U32_t (*WDA_DS_TxPacketCallback) ( v_PVOID_t pContext,
306 vos_pkt_t **ppFrameDataBuff,
307 v_U32_t uSize,
Jeff Johnson295189b2012-06-20 16:38:30 -0700308 v_U8_t uFlowMask,
Jeff Johnson295189b2012-06-20 16:38:30 -0700309 v_BOOL_t *pbUrgent );
310typedef VOS_STATUS (*WDA_DS_ResourceCB) ( v_PVOID_t pContext, v_U32_t uCount );
311
312
Jeff Johnson295189b2012-06-20 16:38:30 -0700313/* For management client */
314typedef VOS_STATUS (*WDA_DS_TxCompleteCb)( v_PVOID_t pContext, wpt_packet *pFrame );
315typedef VOS_STATUS (*WDA_DS_RxCompleteCb)( v_PVOID_t pContext, wpt_packet *pFrame );
316typedef VOS_STATUS (*WDA_DS_TxFlowControlCb)( v_PVOID_t pContext, v_U8_t acMask );
317typedef void (*pWDATxRxCompFunc)( v_PVOID_t pContext, void *pData );
318
319//callback function for TX complete
320//parameter 1 - global pMac pointer
321//parameter 2 - txComplete status : 1- success, 0 - failure.
322typedef eHalStatus (*pWDAAckFnTxComp)(tpAniSirGlobal, tANI_U32);
323
324typedef struct
325{
326 tANI_U16 ucValidStaIndex ;
327 /*
328 * each bit in ucUseBaBitmap represent BA is enabled or not for this tid
329 * tid0 ..bit0, tid1..bit1 and so on..
330 */
331 tANI_U8 ucUseBaBitmap ;
332 tANI_U8 bssIdx;
333 tANI_U32 framesTxed[STACFG_MAX_TC];
334}tWdaStaInfo, *tpWdaStaInfo ;
335
336/* group all the WDA timers into this structure */
337typedef struct
338{
339 /* BA activity check timer */
340 TX_TIMER baActivityChkTmr ;
341
342 /* Tx Complete Timeout timer */
343 TX_TIMER TxCompleteTimer ;
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -0800344
345 /* Traffic Stats timer */
346 TX_TIMER trafficStatsTimer ;
Jeff Johnson295189b2012-06-20 16:38:30 -0700347}tWdaTimers ;
Gopichand Nakkala976e3252013-01-03 15:45:56 -0800348#ifdef WLAN_SOFTAP_VSTA_FEATURE
Yathish Hanumapuradoddi Shivanna64dfc472013-03-08 10:48:34 -0800349#define WDA_MAX_STA (41)
Gopichand Nakkala976e3252013-01-03 15:45:56 -0800350#else
Jeff Johnson295189b2012-06-20 16:38:30 -0700351#define WDA_MAX_STA (16)
Gopichand Nakkala976e3252013-01-03 15:45:56 -0800352#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700353typedef struct
354{
355 v_PVOID_t pVosContext; /* global VOSS context*/
356 v_PVOID_t pWdiContext; /* WDI context */
357 WDA_state wdaState ; /* WDA state tracking */
Jeff Johnson295189b2012-06-20 16:38:30 -0700358 v_PVOID_t wdaWdiCfgApiMsgParam ; /* WDI API paramter tracking */
359 vos_event_t wdaWdiEvent; /* WDI API sync event */
360
361 /* Event to wait for tx completion */
362 vos_event_t txFrameEvent;
363
364 /* call back function for tx complete*/
365 pWDATxRxCompFunc pTxCbFunc;
366 /* call back function for tx packet ack */
367 pWDAAckFnTxComp pAckTxCbFunc;
368 tANI_U32 frameTransRequired;
369 tSirMacAddr macBSSID; /*BSSID of the network */
370 tSirMacAddr macSTASelf; /*Self STA MAC*/
371
372 /* TX channel mask for flow control */
373 v_U8_t uTxFlowMask;
374 /* TL's TX resource callback */
375 WDA_DS_ResourceCB pfnTxResourceCB;
376 /* TL's TX complete callback */
377 WDA_DS_TxCompleteCallback pfnTxCompleteCallback;
378
379 tWdaStaInfo wdaStaInfo[WDA_MAX_STA];
380
381 tANI_U8 wdaMaxSta;
382 tWdaTimers wdaTimers;
383
384 /* STA, AP, IBSS, MULTI-BSS etc.*/
385 tBssSystemRole wdaGlobalSystemRole;
386
387 /* driver mode, PRODUCTION or FTM */
388 tDriverType driverMode;
389
Jeff Johnson295189b2012-06-20 16:38:30 -0700390 /* FTM Command Request tracking */
391 v_PVOID_t wdaFTMCmdReq;
Jeff Johnson295189b2012-06-20 16:38:30 -0700392
393 /* Event to wait for suspend data tx*/
394 vos_event_t suspendDataTxEvent;
395 /* Status frm TL after suspend/resume Tx */
396 tANI_U8 txStatus;
397 /* Flag set to true when TL suspend timesout.*/
398 tANI_U8 txSuspendTimedOut;
399
400 vos_event_t waitOnWdiIndicationCallBack;
401
402 /* version information */
403 tSirVersionType wcnssWlanCompiledVersion;
404 tSirVersionType wcnssWlanReportedVersion;
405 tSirVersionString wcnssSoftwareVersionString;
406 tSirVersionString wcnssHardwareVersionString;
407
408
409 tSirLinkState linkState;
410 /* set, when BT AMP session is going on */
411 v_BOOL_t wdaAmpSessionOn;
412 v_U32_t VosPacketToFree;
Jeff Johnsone7245742012-09-05 17:12:55 -0700413 v_BOOL_t needShutdown;
Madan Mohan Koyyalamudia2fc6412012-10-21 12:06:12 -0700414 v_BOOL_t wdiFailed;
Madan Mohan Koyyalamudid57ae632012-11-06 18:42:48 -0800415 v_BOOL_t wdaTimersCreated;
Leo Chang9d76f622013-08-23 16:34:52 -0700416
417 /* Event to wait for WDA stop on FTM mode */
418 vos_event_t ftmStopDoneEvent;
Jeff Johnson295189b2012-06-20 16:38:30 -0700419} tWDA_CbContext ;
420
421typedef struct
422{
423 v_PVOID_t pWdaContext; /* pointer to WDA context*/
424 v_PVOID_t wdaMsgParam; /* PE parameter tracking */
425 v_PVOID_t wdaWdiApiMsgParam; /* WDI API paramter tracking */
426} tWDA_ReqParams;
427
428/*
429 * FUNCTION: WDA_open
430 * open WDA context
431 */
432
433VOS_STATUS WDA_open(v_PVOID_t pVosContext, v_PVOID_t pOSContext,
434 tMacOpenParameters *pMacParams ) ;
435
436/*
437 * FUNCTION: WDA_preStart
438 * Trigger DAL-AL to start CFG download
439 */
440VOS_STATUS WDA_start(v_PVOID_t pVosContext) ;
441
442VOS_STATUS WDA_NVDownload_Start(v_PVOID_t pVosContext);
443
444/*
445 * FUNCTION: WDA_preStart
446 * Trigger WDA to start CFG download
447 */
448VOS_STATUS WDA_preStart(v_PVOID_t pVosContext) ;
449/*
450 * FUNCTION: WDA_stop
451 * stop WDA
452 */
453VOS_STATUS WDA_stop(v_PVOID_t pVosContext,tANI_U8 reason);
454
455/*
456 * FUNCTION: WDA_close
457 * close WDA context
458 */
459VOS_STATUS WDA_close(v_PVOID_t pVosContext);
460/*
461 * FUNCTION: WDA_shutdown
462 * Shutdown will not close the control transport, added by SSR
463 */
464VOS_STATUS WDA_shutdown(v_PVOID_t pVosContext, wpt_boolean closeTransport);
465
466/*
Madan Mohan Koyyalamudi9d7a27f2012-11-28 15:55:25 -0800467 * FUNCTION: WDA_setNeedShutdown
468 * WDA stop failed or WDA NV Download failed
Jeff Johnsone7245742012-09-05 17:12:55 -0700469 */
Madan Mohan Koyyalamudi9d7a27f2012-11-28 15:55:25 -0800470void WDA_setNeedShutdown(v_PVOID_t pVosContext);
Jeff Johnsone7245742012-09-05 17:12:55 -0700471/*
472 * FUNCTION: WDA_needShutdown
473 * WDA requires a shutdown rather than a close
474 */
475v_BOOL_t WDA_needShutdown(v_PVOID_t pVosContext);
476
477/*
Jeff Johnson295189b2012-06-20 16:38:30 -0700478 * FUNCTION: WDA_McProcessMsg
479 * DAL-AL message processing entry function
480 */
481
482VOS_STATUS WDA_McProcessMsg( v_CONTEXT_t pVosContext, vos_msg_t *pMsg ) ;
483
484/* -----------------------------------------------------------------
485 * WDA data path API's
486 * ----------------------------------------------------------------*/
487/*
488 * FUNCTION: WDA_MgmtDSRegister
489 * Send Message back to PE
490 */
491
492VOS_STATUS WDA_MgmtDSRegister(tWDA_CbContext *pWDA,
493 WDA_DS_TxCompleteCb WDA_TxCompleteCallback,
494 WDA_DS_RxCompleteCb WDA_RxCompleteCallback,
495 WDA_DS_TxFlowControlCb WDA_TxFlowCtrlCallback
496 ) ;
497/*
498 * FUNCTION: WDA_MgmtDSTxPacket
499 * Forward TX management frame to WDI
500 */
501
502VOS_STATUS WDA_TxPacket(tWDA_CbContext *pWDA,
503 void *pFrmBuf,
504 tANI_U16 frmLen,
505 eFrameType frmType,
506 eFrameTxDir txDir,
507 tANI_U8 tid,
508 pWDATxRxCompFunc pCompFunc,
509 void *pData,
510 pWDAAckFnTxComp pAckTxComp,
511 tANI_U8 txFlag);
512
513/*
514 * FUNCTION: WDA_PostMsgApi
515 * API fpr PE to post Message to WDA
516 */
517VOS_STATUS WDA_PostMsgApi(tpAniSirGlobal pMac, tSirMsgQ *pMsg) ;
518
519/* ---------------------------------------------------------
520 * FUNCTION: wdaGetGlobalSystemRole()
521 *
522 * Get the global HAL system role.
523 * ---------------------------------------------------------
524 */
525tBssSystemRole wdaGetGlobalSystemRole(tpAniSirGlobal pMac);
526
527/* maximum wait time for WDA complete event (correct value has to be derived)
528 * for now giving the value 1000 ms */
529#define WDA_WDI_COMPLETION_TIME_OUT 30000 /* in ms */
530
531#define WDA_TL_TX_FRAME_TIMEOUT 10000 /* in msec a very high upper limit of 5,000 msec */
532#define WDA_TL_SUSPEND_TIMEOUT 2000 /* in ms unit */
533
534/*Tag used by WDA to mark a timed out frame*/
535#define WDA_TL_TX_MGMT_TIMED_OUT 0xDEAD
536
537#define WDA_TL_TX_SUSPEND_SUCCESS 0
538#define WDA_TL_TX_SUSPEND_FAILURE 1
539
540// FIXME Temporary value for R33D integaration
541//#define WDA_TL_TX_FRAME_TIMEOUT 20000 /* in msec a very high upper limit */
542
Chet Lanctot186b5732013-03-18 10:26:30 -0700543#define DPU_FEEDBACK_UNPROTECTED_ERROR 0x0F
Jeff Johnson295189b2012-06-20 16:38:30 -0700544
Jeff Johnson295189b2012-06-20 16:38:30 -0700545
546/* ---------------------------------------------------------------------------
547
548 RX Meta info access for Integrated SOC
549 RX BD header access for NON Integrated SOC
550
551 These MACRO are for RX frames that are on flat buffers
552
553 ---------------------------------------------------------------------------*/
554
555/* WDA_GET_RX_MAC_HEADER *****************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700556# define WDA_GET_RX_MAC_HEADER(pRxMeta) \
557 (tpSirMacMgmtHdr)( ((WDI_DS_RxMetaInfoType *)(pRxMeta))->mpduHeaderPtr )
Jeff Johnson295189b2012-06-20 16:38:30 -0700558
559/* WDA_GET_RX_MPDUHEADER3A ****************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700560# define WDA_GET_RX_MPDUHEADER3A(pRxMeta) \
561 (tpSirMacDataHdr3a)( ((WDI_DS_RxMetaInfoType *)(pRxMeta))->mpduHeaderPtr )
Jeff Johnson295189b2012-06-20 16:38:30 -0700562
563/* WDA_GET_RX_MPDU_HEADER_LEN *************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700564# define WDA_GET_RX_MPDU_HEADER_LEN(pRxMeta) \
565 ( ((WDI_DS_RxMetaInfoType *)(pRxMeta))->mpduHeaderLength )
Jeff Johnson295189b2012-06-20 16:38:30 -0700566
567/* WDA_GET_RX_MPDU_LEN ********************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700568# define WDA_GET_RX_MPDU_LEN(pRxMeta) \
569 ( ((WDI_DS_RxMetaInfoType *)(pRxMeta))->mpduLength )
Jeff Johnson295189b2012-06-20 16:38:30 -0700570
571/* WDA_GET_RX_PAYLOAD_LEN ****************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700572# define WDA_GET_RX_PAYLOAD_LEN(pRxMeta) \
573 ( WDA_GET_RX_MPDU_LEN(pRxMeta) - WDA_GET_RX_MPDU_HEADER_LEN(pRxMeta) )
Jeff Johnson295189b2012-06-20 16:38:30 -0700574
575/* WDA_GET_RX_MAC_RATE_IDX ***************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700576# define WDA_GET_RX_MAC_RATE_IDX(pRxMeta) \
577 ( ((WDI_DS_RxMetaInfoType *)(pRxMeta))->rateIndex )
Jeff Johnson295189b2012-06-20 16:38:30 -0700578
579/* WDA_GET_RX_MPDU_DATA ******************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700580# define WDA_GET_RX_MPDU_DATA(pRxMeta) \
581 ( ((WDI_DS_RxMetaInfoType *)(pRxMeta))->mpduDataPtr )
Jeff Johnson295189b2012-06-20 16:38:30 -0700582
583/* WDA_GET_RX_MPDU_DATA_OFFSET ***********************************************/
584// For Integrated SOC: When UMAC receive the packet. BD is already stripped off.
585// Data offset is the MPDU header length
Jeff Johnson295189b2012-06-20 16:38:30 -0700586# define WDA_GET_RX_MPDU_DATA_OFFSET(pRxMeta) WDA_GET_RX_MPDU_HEADER_LEN(pRxMeta)
Jeff Johnson295189b2012-06-20 16:38:30 -0700587
588/* WDA_GET_RX_MPDU_HEADER_OFFSET *********************************************/
589// For Integrated SOC: We UMAC receive the frame,
590// BD is gone and MAC header at offset 0
Jeff Johnson295189b2012-06-20 16:38:30 -0700591# define WDA_GET_RX_MPDU_HEADER_OFFSET(pRxMeta) 0
Jeff Johnson295189b2012-06-20 16:38:30 -0700592
593/* WDA_GET_RX_UNKNOWN_UCAST **************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700594# define WDA_GET_RX_UNKNOWN_UCAST(pRxMeta) \
595 ( ((WDI_DS_RxMetaInfoType *)(pRxMeta))->unknownUcastPkt )
Jeff Johnson295189b2012-06-20 16:38:30 -0700596
597/* WDA_GET_RX_TID ************************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700598# define WDA_GET_RX_TID(pRxMeta) ( ((WDI_DS_RxMetaInfoType *)(pRxMeta))->tid )
Jeff Johnson295189b2012-06-20 16:38:30 -0700599
600/* WDA_GET_RX_STAID **********************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700601# define WDA_GET_RX_STAID(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->staId)
Jeff Johnson295189b2012-06-20 16:38:30 -0700602
603/* WDA_GET_RX_ADDR3_IDX ******************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700604# define WDA_GET_RX_ADDR3_IDX(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->addr3Idx)
Jeff Johnson295189b2012-06-20 16:38:30 -0700605
606/* WDA_GET_RX_CH *************************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700607# define WDA_GET_RX_CH(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->rxChannel)
Jeff Johnson295189b2012-06-20 16:38:30 -0700608
Kiran Kumar Lokere79540f92013-04-25 17:32:16 -0700609/* WDA_GET_RX_RFBAND *********************************************************/
610# define WDA_GET_RX_RFBAND(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->rfBand)
611
Jeff Johnson295189b2012-06-20 16:38:30 -0700612/* WDA_GET_RX_DPUSIG *********************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700613# define WDA_GET_RX_DPUSIG(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->dpuSig)
Jeff Johnson295189b2012-06-20 16:38:30 -0700614
615/* WDA_IS_RX_BCAST ***********************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700616# define WDA_IS_RX_BCAST(pRxMeta) \
617 ( (1 == ((WDI_DS_RxMetaInfoType*)(pRxMeta))->bcast) ? VOS_TRUE : VOS_FALSE )
Jeff Johnson295189b2012-06-20 16:38:30 -0700618
619/* WDA_GET_RX_FT_DONE ********************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700620# define WDA_GET_RX_FT_DONE(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->ft)
Jeff Johnson295189b2012-06-20 16:38:30 -0700621
622/* WDA_GET_RX_DPU_FEEDBACK **************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700623# define WDA_GET_RX_DPU_FEEDBACK(pRxMeta) \
624 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->dpuFeedback)
Jeff Johnson295189b2012-06-20 16:38:30 -0700625
626/* WDA_GET_RX_ASF ************************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700627# define WDA_GET_RX_ASF(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->amsdu_asf)
Jeff Johnson295189b2012-06-20 16:38:30 -0700628
629/* WDA_GET_RX_AEF ************************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700630# define WDA_GET_RX_AEF(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->amsdu_aef)
Jeff Johnson295189b2012-06-20 16:38:30 -0700631
632/* WDA_GET_RX_ESF ************************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700633# define WDA_GET_RX_ESF(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->amsdu_esf)
Jeff Johnson295189b2012-06-20 16:38:30 -0700634
635/* WDA_GET_RX_BEACON_SENT ****************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700636# define WDA_GET_RX_BEACON_SENT(pRxMeta) \
637 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->bsf)
Jeff Johnson295189b2012-06-20 16:38:30 -0700638
639/* WDA_GET_RX_TSF_LATER *****************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700640# define WDA_GET_RX_TSF_LATER(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->rtsf)
Jeff Johnson295189b2012-06-20 16:38:30 -0700641
642/* WDA_GET_RX_TYPE ***********************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700643# define WDA_GET_RX_TYPE(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->type)
Jeff Johnson295189b2012-06-20 16:38:30 -0700644
645/* WDA_GET_RX_SUBTYPE ********************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700646# define WDA_GET_RX_SUBTYPE(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->subtype)
Jeff Johnson295189b2012-06-20 16:38:30 -0700647
648/* WDA_GET_RX_TYPE_SUBTYPE ****************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700649# define WDA_GET_RX_TYPE_SUBTYPE(pRxMeta) \
650 ((WDA_GET_RX_TYPE(pRxMeta)<<4)|WDA_GET_RX_SUBTYPE(pRxMeta))
Jeff Johnson295189b2012-06-20 16:38:30 -0700651
652/* WDA_GET_RX_REORDER_OPCODE : For MSDU reorder *******************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700653# define WDA_GET_RX_REORDER_OPCODE(pRxMeta) \
654 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->ampdu_reorderOpcode)
Jeff Johnson295189b2012-06-20 16:38:30 -0700655
656/* WDA_GET_RX_REORDER_SLOT_IDX : For MSDU reorder ****************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700657# define WDA_GET_RX_REORDER_SLOT_IDX(pRxMeta) \
658 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->ampdu_reorderSlotIdx)
Jeff Johnson295189b2012-06-20 16:38:30 -0700659
660/* WDA_GET_RX_REORDER_FWD_IDX : For MSDU reorder *****************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700661# define WDA_GET_RX_REORDER_FWD_IDX(pRxMeta) \
662 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->ampdu_reorderFwdIdx)
Jeff Johnson295189b2012-06-20 16:38:30 -0700663
664/* WDA_GET_RX_REORDER_CUR_PKT_SEQ_NO : Fro MSDU reorder **********************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700665# define WDA_GET_RX_REORDER_CUR_PKT_SEQ_NO(pRxMeta) \
666 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->currentPktSeqNo)
Jeff Johnson295189b2012-06-20 16:38:30 -0700667
668/* WDA_IS_RX_LLC_PRESENT *****************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700669# define WDA_IS_RX_LLC_PRESENT(pRxMeta) \
670 ( (0 == ((WDI_DS_RxMetaInfoType*)(pRxMeta))->llcr) ? VOS_TRUE : VOS_FALSE )
Jeff Johnson295189b2012-06-20 16:38:30 -0700671
672#define WLANWDA_HO_IS_AN_AMPDU 0x4000
673#define WLANWDA_HO_LAST_MPDU_OF_AMPDU 0x400
674
675/* WDA_IS_RX_AN_AMPDU ********************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700676# define WDA_IS_RX_AN_AMPDU(pRxMeta) \
677 ( ((WDI_DS_RxMetaInfoType*)(pRxMeta))->rxpFlags & WLANWDA_HO_IS_AN_AMPDU )
Jeff Johnson295189b2012-06-20 16:38:30 -0700678
679/* WDA_IS_RX_LAST_MPDU *******************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700680# define WDA_IS_RX_LAST_MPDU(pRxMeta) \
681 ( ((WDI_DS_RxMetaInfoType*)(pRxMeta))->rxpFlags & WLANWDA_HO_LAST_MPDU_OF_AMPDU )
Jeff Johnson295189b2012-06-20 16:38:30 -0700682
683/* WDA_GET_RX_TIMESTAMP *****************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700684# define WDA_GET_RX_TIMESTAMP(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->mclkRxTimestamp)
Jeff Johnson295189b2012-06-20 16:38:30 -0700685
686/* WDA_IS_RX_IN_SCAN *********************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700687# define WDA_IS_RX_IN_SCAN(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->scan)
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -0700688#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
689/* WDA_GET_OFFLOADSCANLEARN **************************************************/
690# define WDA_GET_OFFLOADSCANLEARN(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->offloadScanLearn)
691/* WDA_GET_ROAMCANDIDATEIND **************************************************/
692# define WDA_GET_ROAMCANDIDATEIND(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->roamCandidateInd)
693#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700694/* WDA_GET_RX_RSSI_DB ********************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700695// Volans RF
696# define WDA_RSSI_OFFSET 100
697# define WDA_GET_RSSI0_DB(rssi0) (rssi0 - WDA_RSSI_OFFSET)
698# define WDA_GET_RSSI1_DB(rssi0) (0 - WDA_RSSI_OFFSET)
699# define WDA_MAX_OF_TWO(val1, val2) ( ((val1) > (val2)) ? (val1) : (val2))
700# define WDA_GET_RSSI_DB(rssi0) \
701 WDA_MAX_OF_TWO(WDA_GET_RSSI0_DB(rssi0), WDA_GET_RSSI1_DB(rssi0))
702# define WDA_GET_RX_RSSI_DB(pRxMeta) \
703 WDA_GET_RSSI_DB((((WDI_DS_RxMetaInfoType*)(pRxMeta))->rssi0))
Jeff Johnson295189b2012-06-20 16:38:30 -0700704
705/* WDA_GET_RX_SNR ************************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700706# define WDA_GET_RX_SNR(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->snr)
Jeff Johnson295189b2012-06-20 16:38:30 -0700707
708/* WDA_IS_RX_FC **************************************************************/
709// Flow control frames
Jeff Johnson295189b2012-06-20 16:38:30 -0700710/* FIXME WDA should provide the meta info which indicates FC frame
711 In the meantime, use hardcoded FALSE, since we don't support FC yet */
712# define WDA_IS_RX_FC(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->fc)
Jeff Johnson295189b2012-06-20 16:38:30 -0700713
714/* WDA_GET_RX_FC_VALID_STA_MASK **********************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700715# define WDA_GET_RX_FC_VALID_STA_MASK(pRxMeta) \
716 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->fcSTAValidMask)
Jeff Johnson295189b2012-06-20 16:38:30 -0700717
718/* WDA_GET_RX_FC_PWRSAVE_STA_MASK ********************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700719# define WDA_GET_RX_FC_PWRSAVE_STA_MASK(pRxMeta) \
720 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->fcSTAPwrSaveStateMask)
Jeff Johnson295189b2012-06-20 16:38:30 -0700721
722/* WDA_GET_RX_FC_STA_THRD_IND_MASK ********************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700723# define WDA_GET_RX_FC_STA_THRD_IND_MASK(pRxMeta) \
724 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->fcSTAThreshIndMask)
Jeff Johnson295189b2012-06-20 16:38:30 -0700725
726/* WDA_GET_RX_FC_FORCED_STA_TX_DISABLED_BITMAP ********************************************/
727# define WDA_GET_RX_FC_STA_TX_DISABLED_BITMAP(pRxMeta) \
728 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->fcStaTxDisabledBitmap)
729
730/* WDA_GET_RX_FC_STA_TXQ_LEN *************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700731# define WDA_GET_RX_FC_STA_TXQ_LEN(pRxMeta, staId) \
732 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->fcSTATxQLen[(staId)])
Jeff Johnson295189b2012-06-20 16:38:30 -0700733
734/* WDA_GET_RX_FC_STA_CUR_TXRATE **********************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700735# define WDA_GET_RX_FC_STA_CUR_TXRATE(pRxMeta, staId) \
736 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->fcSTACurTxRate[(staId)])
Jeff Johnson295189b2012-06-20 16:38:30 -0700737
738/* WDA_GET_RX_REPLAY_COUNT ***************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700739# define WDA_GET_RX_REPLAY_COUNT(pRxMeta) \
740 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->replayCount)
Jeff Johnson295189b2012-06-20 16:38:30 -0700741
742/* WDA_GETRSSI0 ***************************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700743# define WDA_GETRSSI0(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->rssi0)
Jeff Johnson295189b2012-06-20 16:38:30 -0700744
745/* WDA_GETRSSI1 ***************************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700746# define WDA_GETRSSI1(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->rssi1)
Jeff Johnson295189b2012-06-20 16:38:30 -0700747
Chet Lanctot186b5732013-03-18 10:26:30 -0700748/* WDA_GET_RX_RMF *****************************************************/
749#ifdef WLAN_FEATURE_11W
750# define WDA_GET_RX_RMF(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->rmf)
751#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700752
753/* --------------------------------------------------------------------*/
754
Jeff Johnson295189b2012-06-20 16:38:30 -0700755uint8 WDA_IsWcnssWlanCompiledVersionGreaterThanOrEqual(uint8 major, uint8 minor, uint8 version, uint8 revision);
756uint8 WDA_IsWcnssWlanReportedVersionGreaterThanOrEqual(uint8 major, uint8 minor, uint8 version, uint8 revision);
757
758
759VOS_STATUS WDA_GetWcnssWlanCompiledVersion(v_PVOID_t pvosGCtx,
760 tSirVersionType *pVersion);
761VOS_STATUS WDA_GetWcnssWlanReportedVersion(v_PVOID_t pvosGCtx,
762 tSirVersionType *pVersion);
763VOS_STATUS WDA_GetWcnssSoftwareVersion(v_PVOID_t pvosGCtx,
764 tANI_U8 *pVersion,
765 tANI_U32 versionBufferSize);
766VOS_STATUS WDA_GetWcnssHardwareVersion(v_PVOID_t pvosGCtx,
767 tANI_U8 *pVersion,
768 tANI_U32 versionBufferSize);
769
770VOS_STATUS WDA_SetUapsdAcParamsReq(v_PVOID_t , v_U8_t , tUapsdInfo *);
771VOS_STATUS WDA_ClearUapsdAcParamsReq(v_PVOID_t , v_U8_t , wpt_uint8 );
772VOS_STATUS WDA_SetRSSIThresholdsReq(tpAniSirGlobal , tSirRSSIThresholds *);
773// Just declare the function extern here and save some time.
774extern tSirRetStatus halMmhForwardMBmsg(void*, tSirMbMsg*);
775tSirRetStatus uMacPostCtrlMsg(void* pSirGlobal, tSirMbMsg* pMb);
Jeff Johnson295189b2012-06-20 16:38:30 -0700776
777
Jeff Johnson295189b2012-06-20 16:38:30 -0700778#define WDA_MAX_TXPOWER_INVALID HAL_MAX_TXPOWER_INVALID
779
780//WDA Messages to HAL messages Mapping
781#if 0
782//Required by SME
783//#define WDA_SIGNAL_BT_EVENT SIR_HAL_SIGNAL_BT_EVENT - this is defined in sirParams.h
784//#define WDA_BTC_SET_CFG SIR_HAL_BTC_SET_CFG
785
786//Required by PE
787#define WDA_HOST_MSG_START SIR_HAL_HOST_MSG_START
788#define WDA_INITIAL_CAL_FAILED_NTF SIR_HAL_INITIAL_CAL_FAILED_NTF
789#define WDA_SHUTDOWN_REQ SIR_HAL_SHUTDOWN_REQ
790#define WDA_SHUTDOWN_CNF SIR_HAL_SHUTDOWN_CNF
791#define WDA_RADIO_ON_OFF_IND SIR_HAL_RADIO_ON_OFF_IND
792#define WDA_RESET_CNF SIR_HAL_RESET_CNF
793#define WDA_SetRegDomain \
Madan Mohan Koyyalamudic0d1b3f2012-11-13 10:41:07 -0800794 (eHalStatus halPhySetRegDomain(tHalHandle hHal, eRegDomainId regDomain))
Jeff Johnson295189b2012-06-20 16:38:30 -0700795#endif
796
797#define WDA_APP_SETUP_NTF SIR_HAL_APP_SETUP_NTF
798#define WDA_NIC_OPER_NTF SIR_HAL_NIC_OPER_NTF
799#define WDA_INIT_START_REQ SIR_HAL_INIT_START_REQ
800#define WDA_RESET_REQ SIR_HAL_RESET_REQ
801#define WDA_HDD_ADDBA_REQ SIR_HAL_HDD_ADDBA_REQ
802#define WDA_HDD_ADDBA_RSP SIR_HAL_HDD_ADDBA_RSP
803#define WDA_DELETEBA_IND SIR_HAL_DELETEBA_IND
804#define WDA_BA_FAIL_IND SIR_HAL_BA_FAIL_IND
805#define WDA_TL_FLUSH_AC_REQ SIR_TL_HAL_FLUSH_AC_REQ
806#define WDA_TL_FLUSH_AC_RSP SIR_HAL_TL_FLUSH_AC_RSP
807
808#define WDA_MSG_TYPES_BEGIN SIR_HAL_MSG_TYPES_BEGIN
809#define WDA_ITC_MSG_TYPES_BEGIN SIR_HAL_ITC_MSG_TYPES_BEGIN
810#define WDA_RADAR_DETECTED_IND SIR_HAL_RADAR_DETECTED_IND
811#define WDA_WDT_KAM_RSP SIR_HAL_WDT_KAM_RSP
812#define WDA_TIMER_TEMP_MEAS_REQ SIR_HAL_TIMER_TEMP_MEAS_REQ
813#define WDA_TIMER_PERIODIC_STATS_COLLECT_REQ SIR_HAL_TIMER_PERIODIC_STATS_COLLECT_REQ
814#define WDA_CAL_REQ_NTF SIR_HAL_CAL_REQ_NTF
815#define WDA_MNT_OPEN_TPC_TEMP_MEAS_REQ SIR_HAL_MNT_OPEN_TPC_TEMP_MEAS_REQ
816#define WDA_CCA_MONITOR_INTERVAL_TO SIR_HAL_CCA_MONITOR_INTERVAL_TO
817#define WDA_CCA_MONITOR_DURATION_TO SIR_HAL_CCA_MONITOR_DURATION_TO
818#define WDA_CCA_MONITOR_START SIR_HAL_CCA_MONITOR_START
819#define WDA_CCA_MONITOR_STOP SIR_HAL_CCA_MONITOR_STOP
820#define WDA_CCA_CHANGE_MODE SIR_HAL_CCA_CHANGE_MODE
821#define WDA_TIMER_WRAP_AROUND_STATS_COLLECT_REQ SIR_HAL_TIMER_WRAP_AROUND_STATS_COLLECT_REQ
822
823/*
824 * New Taurus related messages
825 */
826#define WDA_ADD_STA_REQ SIR_HAL_ADD_STA_REQ
827#define WDA_ADD_STA_RSP SIR_HAL_ADD_STA_RSP
828#define WDA_ADD_STA_SELF_RSP SIR_HAL_ADD_STA_SELF_RSP
829#define WDA_DEL_STA_SELF_RSP SIR_HAL_DEL_STA_SELF_RSP
830#define WDA_DELETE_STA_REQ SIR_HAL_DELETE_STA_REQ
831#define WDA_DELETE_STA_RSP SIR_HAL_DELETE_STA_RSP
832#define WDA_ADD_BSS_REQ SIR_HAL_ADD_BSS_REQ
833#define WDA_ADD_BSS_RSP SIR_HAL_ADD_BSS_RSP
834#define WDA_DELETE_BSS_REQ SIR_HAL_DELETE_BSS_REQ
835#define WDA_DELETE_BSS_RSP SIR_HAL_DELETE_BSS_RSP
836#define WDA_INIT_SCAN_REQ SIR_HAL_INIT_SCAN_REQ
837#define WDA_INIT_SCAN_RSP SIR_HAL_INIT_SCAN_RSP
838#define WDA_START_SCAN_REQ SIR_HAL_START_SCAN_REQ
839#define WDA_START_SCAN_RSP SIR_HAL_START_SCAN_RSP
840#define WDA_END_SCAN_REQ SIR_HAL_END_SCAN_REQ
841#define WDA_END_SCAN_RSP SIR_HAL_END_SCAN_RSP
842#define WDA_FINISH_SCAN_REQ SIR_HAL_FINISH_SCAN_REQ
843#define WDA_FINISH_SCAN_RSP SIR_HAL_FINISH_SCAN_RSP
844#define WDA_SEND_BEACON_REQ SIR_HAL_SEND_BEACON_REQ
845#define WDA_SEND_BEACON_RSP SIR_HAL_SEND_BEACON_RSP
846
847#define WDA_INIT_CFG_REQ SIR_HAL_INIT_CFG_REQ
848#define WDA_INIT_CFG_RSP SIR_HAL_INIT_CFG_RSP
849
850#define WDA_INIT_WM_CFG_REQ SIR_HAL_INIT_WM_CFG_REQ
851#define WDA_INIT_WM_CFG_RSP SIR_HAL_INIT_WM_CFG_RSP
852
853#define WDA_SET_BSSKEY_REQ SIR_HAL_SET_BSSKEY_REQ
854#define WDA_SET_BSSKEY_RSP SIR_HAL_SET_BSSKEY_RSP
855#define WDA_SET_STAKEY_REQ SIR_HAL_SET_STAKEY_REQ
856#define WDA_SET_STAKEY_RSP SIR_HAL_SET_STAKEY_RSP
857#define WDA_DPU_STATS_REQ SIR_HAL_DPU_STATS_REQ
858#define WDA_DPU_STATS_RSP SIR_HAL_DPU_STATS_RSP
859#define WDA_GET_DPUINFO_REQ SIR_HAL_GET_DPUINFO_REQ
860#define WDA_GET_DPUINFO_RSP SIR_HAL_GET_DPUINFO_RSP
861
862#define WDA_UPDATE_EDCA_PROFILE_IND SIR_HAL_UPDATE_EDCA_PROFILE_IND
863
864#define WDA_UPDATE_STARATEINFO_REQ SIR_HAL_UPDATE_STARATEINFO_REQ
865#define WDA_UPDATE_STARATEINFO_RSP SIR_HAL_UPDATE_STARATEINFO_RSP
866
867#define WDA_UPDATE_BEACON_IND SIR_HAL_UPDATE_BEACON_IND
868#define WDA_UPDATE_CF_IND SIR_HAL_UPDATE_CF_IND
869#define WDA_CHNL_SWITCH_REQ SIR_HAL_CHNL_SWITCH_REQ
870#define WDA_ADD_TS_REQ SIR_HAL_ADD_TS_REQ
871#define WDA_DEL_TS_REQ SIR_HAL_DEL_TS_REQ
872#define WDA_SOFTMAC_TXSTAT_REPORT SIR_HAL_SOFTMAC_TXSTAT_REPORT
873
874#define WDA_MBOX_SENDMSG_COMPLETE_IND SIR_HAL_MBOX_SENDMSG_COMPLETE_IND
875#define WDA_EXIT_BMPS_REQ SIR_HAL_EXIT_BMPS_REQ
876#define WDA_EXIT_BMPS_RSP SIR_HAL_EXIT_BMPS_RSP
877#define WDA_EXIT_BMPS_IND SIR_HAL_EXIT_BMPS_IND
878#define WDA_ENTER_BMPS_REQ SIR_HAL_ENTER_BMPS_REQ
879#define WDA_ENTER_BMPS_RSP SIR_HAL_ENTER_BMPS_RSP
880#define WDA_BMPS_STATUS_IND SIR_HAL_BMPS_STATUS_IND
881#define WDA_MISSED_BEACON_IND SIR_HAL_MISSED_BEACON_IND
882
883#define WDA_CFG_RXP_FILTER_REQ SIR_HAL_CFG_RXP_FILTER_REQ
884#define WDA_CFG_RXP_FILTER_RSP SIR_HAL_CFG_RXP_FILTER_RSP
885
886#define WDA_SWITCH_CHANNEL_RSP SIR_HAL_SWITCH_CHANNEL_RSP
887#define WDA_P2P_NOA_ATTR_IND SIR_HAL_P2P_NOA_ATTR_IND
Viral Modid86bde22012-12-10 13:09:21 -0800888#define WDA_P2P_NOA_START_IND SIR_HAL_P2P_NOA_START_IND
Jeff Johnson295189b2012-06-20 16:38:30 -0700889#define WDA_PWR_SAVE_CFG SIR_HAL_PWR_SAVE_CFG
890
891#define WDA_REGISTER_PE_CALLBACK SIR_HAL_REGISTER_PE_CALLBACK
892#define WDA_SOFTMAC_MEM_READREQUEST SIR_HAL_SOFTMAC_MEM_READREQUEST
893#define WDA_SOFTMAC_MEM_WRITEREQUEST SIR_HAL_SOFTMAC_MEM_WRITEREQUEST
894
895#define WDA_SOFTMAC_MEM_READRESPONSE SIR_HAL_SOFTMAC_MEM_READRESPONSE
896#define WDA_SOFTMAC_BULKREGWRITE_CONFIRM SIR_HAL_SOFTMAC_BULKREGWRITE_CONFIRM
897#define WDA_SOFTMAC_BULKREGREAD_RESPONSE SIR_HAL_SOFTMAC_BULKREGREAD_RESPONSE
898#define WDA_SOFTMAC_HOSTMESG_MSGPROCESSRESULT SIR_HAL_SOFTMAC_HOSTMESG_MSGPROCESSRESULT
899
900#define WDA_ADDBA_REQ SIR_HAL_ADDBA_REQ
901#define WDA_ADDBA_RSP SIR_HAL_ADDBA_RSP
902#define WDA_DELBA_IND SIR_HAL_DELBA_IND
903#define WDA_DEL_BA_IND SIR_HAL_DEL_BA_IND
904#define WDA_MIC_FAILURE_IND SIR_HAL_MIC_FAILURE_IND
905
906//message from sme to initiate delete block ack session.
907#define WDA_DELBA_REQ SIR_HAL_DELBA_REQ
908#define WDA_IBSS_STA_ADD SIR_HAL_IBSS_STA_ADD
909#define WDA_TIMER_ADJUST_ADAPTIVE_THRESHOLD_IND SIR_HAL_TIMER_ADJUST_ADAPTIVE_THRESHOLD_IND
910#define WDA_SET_LINK_STATE SIR_HAL_SET_LINK_STATE
911#define WDA_SET_LINK_STATE_RSP SIR_HAL_SET_LINK_STATE_RSP
912#define WDA_ENTER_IMPS_REQ SIR_HAL_ENTER_IMPS_REQ
913#define WDA_ENTER_IMPS_RSP SIR_HAL_ENTER_IMPS_RSP
914#define WDA_EXIT_IMPS_RSP SIR_HAL_EXIT_IMPS_RSP
915#define WDA_EXIT_IMPS_REQ SIR_HAL_EXIT_IMPS_REQ
916#define WDA_SOFTMAC_HOSTMESG_PS_STATUS_IND SIR_HAL_SOFTMAC_HOSTMESG_PS_STATUS_IND
917#define WDA_POSTPONE_ENTER_IMPS_RSP SIR_HAL_POSTPONE_ENTER_IMPS_RSP
918#define WDA_STA_STAT_REQ SIR_HAL_STA_STAT_REQ
919#define WDA_GLOBAL_STAT_REQ SIR_HAL_GLOBAL_STAT_REQ
920#define WDA_AGGR_STAT_REQ SIR_HAL_AGGR_STAT_REQ
921#define WDA_STA_STAT_RSP SIR_HAL_STA_STAT_RSP
922#define WDA_GLOBAL_STAT_RSP SIR_HAL_GLOBAL_STAT_RSP
923#define WDA_AGGR_STAT_RSP SIR_HAL_AGGR_STAT_RSP
924#define WDA_STAT_SUMM_REQ SIR_HAL_STAT_SUMM_REQ
925#define WDA_STAT_SUMM_RSP SIR_HAL_STAT_SUMM_RSP
926#define WDA_REMOVE_BSSKEY_REQ SIR_HAL_REMOVE_BSSKEY_REQ
927#define WDA_REMOVE_BSSKEY_RSP SIR_HAL_REMOVE_BSSKEY_RSP
928#define WDA_REMOVE_STAKEY_REQ SIR_HAL_REMOVE_STAKEY_REQ
929#define WDA_REMOVE_STAKEY_RSP SIR_HAL_REMOVE_STAKEY_RSP
930#define WDA_SET_STA_BCASTKEY_REQ SIR_HAL_SET_STA_BCASTKEY_REQ
931#define WDA_SET_STA_BCASTKEY_RSP SIR_HAL_SET_STA_BCASTKEY_RSP
932#define WDA_REMOVE_STA_BCASTKEY_REQ SIR_HAL_REMOVE_STA_BCASTKEY_REQ
933#define WDA_REMOVE_STA_BCASTKEY_RSP SIR_HAL_REMOVE_STA_BCASTKEY_RSP
934#define WDA_ADD_TS_RSP SIR_HAL_ADD_TS_RSP
935#define WDA_DPU_MIC_ERROR SIR_HAL_DPU_MIC_ERROR
936#define WDA_TIMER_BA_ACTIVITY_REQ SIR_HAL_TIMER_BA_ACTIVITY_REQ
937#define WDA_TIMER_CHIP_MONITOR_TIMEOUT SIR_HAL_TIMER_CHIP_MONITOR_TIMEOUT
938#define WDA_TIMER_TRAFFIC_ACTIVITY_REQ SIR_HAL_TIMER_TRAFFIC_ACTIVITY_REQ
939#define WDA_TIMER_ADC_RSSI_STATS SIR_HAL_TIMER_ADC_RSSI_STATS
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -0800940#define WDA_TIMER_TRAFFIC_STATS_IND SIR_HAL_TRAFFIC_STATS_IND
941
Chet Lanctot186b5732013-03-18 10:26:30 -0700942#ifdef WLAN_FEATURE_11W
943#define WDA_EXCLUDE_UNENCRYPTED_IND SIR_HAL_EXCLUDE_UNENCRYPTED_IND
944#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700945
946#ifdef FEATURE_WLAN_CCX
947#define WDA_TSM_STATS_REQ SIR_HAL_TSM_STATS_REQ
948#define WDA_TSM_STATS_RSP SIR_HAL_TSM_STATS_RSP
949#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700950#define WDA_UPDATE_PROBE_RSP_IE_BITMAP_IND SIR_HAL_UPDATE_PROBE_RSP_IE_BITMAP_IND
951#define WDA_UPDATE_UAPSD_IND SIR_HAL_UPDATE_UAPSD_IND
Jeff Johnson295189b2012-06-20 16:38:30 -0700952
953#define WDA_SET_MIMOPS_REQ SIR_HAL_SET_MIMOPS_REQ
954#define WDA_SET_MIMOPS_RSP SIR_HAL_SET_MIMOPS_RSP
955#define WDA_SYS_READY_IND SIR_HAL_SYS_READY_IND
956#define WDA_SET_TX_POWER_REQ SIR_HAL_SET_TX_POWER_REQ
957#define WDA_SET_TX_POWER_RSP SIR_HAL_SET_TX_POWER_RSP
958#define WDA_GET_TX_POWER_REQ SIR_HAL_GET_TX_POWER_REQ
959#define WDA_GET_TX_POWER_RSP SIR_HAL_GET_TX_POWER_RSP
960#define WDA_GET_NOISE_REQ SIR_HAL_GET_NOISE_REQ
961#define WDA_GET_NOISE_RSP SIR_HAL_GET_NOISE_RSP
962#define WDA_SET_TX_PER_TRACKING_REQ SIR_HAL_SET_TX_PER_TRACKING_REQ
963
964/* Messages to support transmit_halt and transmit_resume */
965#define WDA_TRANSMISSION_CONTROL_IND SIR_HAL_TRANSMISSION_CONTROL_IND
966/* Indication from LIM to HAL to Initialize radar interrupt */
967#define WDA_INIT_RADAR_IND SIR_HAL_INIT_RADAR_IND
968/* Messages to support transmit_halt and transmit_resume */
969
970
971#define WDA_BEACON_PRE_IND SIR_HAL_BEACON_PRE_IND
972#define WDA_ENTER_UAPSD_REQ SIR_HAL_ENTER_UAPSD_REQ
973#define WDA_ENTER_UAPSD_RSP SIR_HAL_ENTER_UAPSD_RSP
974#define WDA_EXIT_UAPSD_REQ SIR_HAL_EXIT_UAPSD_REQ
975#define WDA_EXIT_UAPSD_RSP SIR_HAL_EXIT_UAPSD_RSP
976#define WDA_LOW_RSSI_IND SIR_HAL_LOW_RSSI_IND
977#define WDA_BEACON_FILTER_IND SIR_HAL_BEACON_FILTER_IND
978/// PE <-> HAL WOWL messages
979#define WDA_WOWL_ADD_BCAST_PTRN SIR_HAL_WOWL_ADD_BCAST_PTRN
980#define WDA_WOWL_DEL_BCAST_PTRN SIR_HAL_WOWL_DEL_BCAST_PTRN
981#define WDA_WOWL_ENTER_REQ SIR_HAL_WOWL_ENTER_REQ
982#define WDA_WOWL_ENTER_RSP SIR_HAL_WOWL_ENTER_RSP
983#define WDA_WOWL_EXIT_REQ SIR_HAL_WOWL_EXIT_REQ
984#define WDA_WOWL_EXIT_RSP SIR_HAL_WOWL_EXIT_RSP
985#define WDA_TX_COMPLETE_IND SIR_HAL_TX_COMPLETE_IND
986#define WDA_TIMER_RA_COLLECT_AND_ADAPT SIR_HAL_TIMER_RA_COLLECT_AND_ADAPT
987/// PE <-> HAL statistics messages
988#define WDA_GET_STATISTICS_REQ SIR_HAL_GET_STATISTICS_REQ
989#define WDA_GET_STATISTICS_RSP SIR_HAL_GET_STATISTICS_RSP
990#define WDA_SET_KEY_DONE SIR_HAL_SET_KEY_DONE
991
992/// PE <-> HAL BTC messages
993#define WDA_BTC_SET_CFG SIR_HAL_BTC_SET_CFG
994#define WDA_SIGNAL_BT_EVENT SIR_HAL_SIGNAL_BT_EVENT
995#define WDA_HANDLE_FW_MBOX_RSP SIR_HAL_HANDLE_FW_MBOX_RSP
996#define WDA_UPDATE_PROBE_RSP_TEMPLATE_IND SIR_HAL_UPDATE_PROBE_RSP_TEMPLATE_IND
997#define WDA_SIGNAL_BTAMP_EVENT SIR_HAL_SIGNAL_BTAMP_EVENT
998
Jeff Johnsone7245742012-09-05 17:12:55 -0700999#ifdef FEATURE_OEM_DATA_SUPPORT
1000/* PE <-> HAL OEM_DATA RELATED MESSAGES */
1001#define WDA_START_OEM_DATA_REQ SIR_HAL_START_OEM_DATA_REQ
1002#define WDA_START_OEM_DATA_RSP SIR_HAL_START_OEM_DATA_RSP
1003#define WDA_FINISH_OEM_DATA_REQ SIR_HAL_FINISH_OEM_DATA_REQ
1004#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07001005
1006#define WDA_SET_MAX_TX_POWER_REQ SIR_HAL_SET_MAX_TX_POWER_REQ
1007#define WDA_SET_MAX_TX_POWER_RSP SIR_HAL_SET_MAX_TX_POWER_RSP
1008
1009#define WDA_SEND_MSG_COMPLETE SIR_HAL_SEND_MSG_COMPLETE
1010
1011/// PE <-> HAL Host Offload message
1012#define WDA_SET_HOST_OFFLOAD SIR_HAL_SET_HOST_OFFLOAD
1013
1014/// PE <-> HAL Keep Alive message
1015#define WDA_SET_KEEP_ALIVE SIR_HAL_SET_KEEP_ALIVE
1016
1017#ifdef WLAN_NS_OFFLOAD
1018#define WDA_SET_NS_OFFLOAD SIR_HAL_SET_NS_OFFLOAD
1019#endif //WLAN_NS_OFFLOAD
1020#define WDA_ADD_STA_SELF_REQ SIR_HAL_ADD_STA_SELF_REQ
1021#define WDA_DEL_STA_SELF_REQ SIR_HAL_DEL_STA_SELF_REQ
1022
Jeff Johnson295189b2012-06-20 16:38:30 -07001023#define WDA_SET_P2P_GO_NOA_REQ SIR_HAL_SET_P2P_GO_NOA_REQ
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05301024#define WDA_SET_TDLS_LINK_ESTABLISH_REQ SIR_HAL_TDLS_LINK_ESTABLISH_REQ
1025#define WDA_SET_TDLS_LINK_ESTABLISH_REQ_RSP SIR_HAL_TDLS_LINK_ESTABLISH_REQ_RSP
Jeff Johnson295189b2012-06-20 16:38:30 -07001026
Madan Mohan Koyyalamudia53c4dc2012-11-13 10:35:42 -08001027#define WDA_TX_COMPLETE_TIMEOUT_IND (WDA_MSG_TYPES_END - 1)
Jeff Johnson295189b2012-06-20 16:38:30 -07001028#define WDA_WLAN_SUSPEND_IND SIR_HAL_WLAN_SUSPEND_IND
1029#define WDA_WLAN_RESUME_REQ SIR_HAL_WLAN_RESUME_REQ
1030#define WDA_MSG_TYPES_END SIR_HAL_MSG_TYPES_END
1031
Jeff Johnson295189b2012-06-20 16:38:30 -07001032#define WDA_MMH_TXMB_READY_EVT SIR_HAL_MMH_TXMB_READY_EVT
1033#define WDA_MMH_RXMB_DONE_EVT SIR_HAL_MMH_RXMB_DONE_EVT
1034#define WDA_MMH_MSGQ_NE_EVT SIR_HAL_MMH_MSGQ_NE_EVT
Jeff Johnson295189b2012-06-20 16:38:30 -07001035
1036#ifdef WLAN_FEATURE_VOWIFI_11R
1037#define WDA_AGGR_QOS_REQ SIR_HAL_AGGR_QOS_REQ
1038#define WDA_AGGR_QOS_RSP SIR_HAL_AGGR_QOS_RSP
1039#endif /* WLAN_FEATURE_VOWIFI_11R */
1040
Jeff Johnson295189b2012-06-20 16:38:30 -07001041/* FTM CMD MSG */
1042#define WDA_FTM_CMD_REQ SIR_PTT_MSG_TYPES_BEGIN
1043#define WDA_FTM_CMD_RSP SIR_PTT_MSG_TYPES_END
Jeff Johnson295189b2012-06-20 16:38:30 -07001044
1045#ifdef FEATURE_WLAN_SCAN_PNO
1046/*Requests sent to lower driver*/
1047#define WDA_SET_PNO_REQ SIR_HAL_SET_PNO_REQ
1048#define WDA_SET_RSSI_FILTER_REQ SIR_HAL_SET_RSSI_FILTER_REQ
1049#define WDA_UPDATE_SCAN_PARAMS_REQ SIR_HAL_UPDATE_SCAN_PARAMS
1050
1051/*Indication comming from lower driver*/
1052#define WDA_SET_PNO_CHANGED_IND SIR_HAL_SET_PNO_CHANGED_IND
1053#endif // FEATURE_WLAN_SCAN_PNO
1054
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07001055#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
Varun Reddy Yeturu920df212013-05-22 08:07:23 -07001056#define WDA_ROAM_SCAN_OFFLOAD_REQ SIR_HAL_ROAM_SCAN_OFFLOAD_REQ
Varun Reddy Yeturucc661d22013-05-20 11:47:10 -07001057#define WDA_ROAM_SCAN_OFFLOAD_RSP SIR_HAL_ROAM_SCAN_OFFLOAD_RSP
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07001058#endif
1059
Jeff Johnson295189b2012-06-20 16:38:30 -07001060#ifdef WLAN_WAKEUP_EVENTS
1061#define WDA_WAKE_REASON_IND SIR_HAL_WAKE_REASON_IND
1062#endif // WLAN_WAKEUP_EVENTS
1063
1064#ifdef WLAN_FEATURE_PACKET_FILTERING
1065#define WDA_8023_MULTICAST_LIST_REQ SIR_HAL_8023_MULTICAST_LIST_REQ
1066#define WDA_RECEIVE_FILTER_SET_FILTER_REQ SIR_HAL_RECEIVE_FILTER_SET_FILTER_REQ
1067#define WDA_PACKET_COALESCING_FILTER_MATCH_COUNT_REQ SIR_HAL_PACKET_COALESCING_FILTER_MATCH_COUNT_REQ
1068#define WDA_PACKET_COALESCING_FILTER_MATCH_COUNT_RSP SIR_HAL_PACKET_COALESCING_FILTER_MATCH_COUNT_RSP
1069#define WDA_RECEIVE_FILTER_CLEAR_FILTER_REQ SIR_HAL_RECEIVE_FILTER_CLEAR_FILTER_REQ
1070#endif // WLAN_FEATURE_PACKET_FILTERING
1071
1072#define WDA_SET_POWER_PARAMS_REQ SIR_HAL_SET_POWER_PARAMS_REQ
Sundaresan Ramachandran76e48e82013-07-15 13:07:17 +05301073#define WDA_DHCP_START_IND SIR_HAL_DHCP_START_IND
1074#define WDA_DHCP_STOP_IND SIR_HAL_DHCP_STOP_IND
1075
Jeff Johnson295189b2012-06-20 16:38:30 -07001076
1077#ifdef WLAN_FEATURE_GTK_OFFLOAD
1078#define WDA_GTK_OFFLOAD_REQ SIR_HAL_GTK_OFFLOAD_REQ
1079#define WDA_GTK_OFFLOAD_GETINFO_REQ SIR_HAL_GTK_OFFLOAD_GETINFO_REQ
1080#define WDA_GTK_OFFLOAD_GETINFO_RSP SIR_HAL_GTK_OFFLOAD_GETINFO_RSP
1081#endif //WLAN_FEATURE_GTK_OFFLOAD
1082
1083#define WDA_SET_TM_LEVEL_REQ SIR_HAL_SET_TM_LEVEL_REQ
1084
Mohit Khanna4a70d262012-09-11 16:30:12 -07001085#ifdef WLAN_FEATURE_11AC
1086#define WDA_UPDATE_OP_MODE SIR_HAL_UPDATE_OP_MODE
1087#endif
1088
Srinivas Girigowdad34cedb2013-01-25 13:33:11 -08001089#define WDA_GET_ROAM_RSSI_REQ SIR_HAL_GET_ROAM_RSSI_REQ
1090#define WDA_GET_ROAM_RSSI_RSP SIR_HAL_GET_ROAM_RSSI_RSP
1091
Ganesh Kondabattinif0fa07c2013-06-11 17:47:49 +05301092#define WDA_START_SCAN_OFFLOAD_REQ SIR_HAL_START_SCAN_OFFLOAD_REQ
1093#define WDA_START_SCAN_OFFLOAD_RSP SIR_HAL_START_SCAN_OFFLOAD_RSP
Gopichand Nakkala09358592013-06-13 14:47:55 +05301094#define WDA_STOP_SCAN_OFFLOAD_REQ SIR_HAL_STOP_SCAN_OFFLOAD_REQ
1095#define WDA_STOP_SCAN_OFFLOAD_RSP SIR_HAL_STOP_SCAN_OFFLOAD_RSP
Ganesh Kondabattinif0fa07c2013-06-11 17:47:49 +05301096#define WDA_UPDATE_CHAN_LIST_REQ SIR_HAL_UPDATE_CHAN_LIST_REQ
1097#define WDA_UPDATE_CHAN_LIST_RSP SIR_HAL_UPDATE_CHAN_LIST_RSP
1098#define WDA_RX_SCAN_EVENT SIR_HAL_RX_SCAN_EVENT
Ravi Joshid2ca7c42013-07-23 08:37:49 -07001099#define WDA_IBSS_PEER_INACTIVITY_IND SIR_HAL_IBSS_PEER_INACTIVITY_IND
Ganesh Kondabattinif0fa07c2013-06-11 17:47:49 +05301100
Leo Chang9056f462013-08-01 19:21:11 -07001101#ifdef FEATURE_WLAN_LPHB
1102#define WDA_LPHB_CONF_REQ SIR_HAL_LPHB_CONF_IND
1103#define WDA_LPHB_WAIT_EXPIRE_IND SIR_HAL_LPHB_WAIT_EXPIRE_IND
1104#endif /* FEATURE_WLAN_LPHB */
1105
Yue Mab9c86f42013-08-14 15:59:08 -07001106#define WDA_ADD_PERIODIC_TX_PTRN_IND SIR_HAL_ADD_PERIODIC_TX_PTRN_IND
1107#define WDA_DEL_PERIODIC_TX_PTRN_IND SIR_HAL_DEL_PERIODIC_TX_PTRN_IND
1108
Rajeev79dbe4c2013-10-05 11:03:42 +05301109#ifdef FEATURE_WLAN_BATCH_SCAN
1110#define WDA_SET_BATCH_SCAN_REQ SIR_HAL_SET_BATCH_SCAN_REQ
1111#define WDA_SET_BATCH_SCAN_RSP SIR_HAL_SET_BATCH_SCAN_RSP
1112#define WDA_STOP_BATCH_SCAN_IND SIR_HAL_STOP_BATCH_SCAN_IND
1113#define WDA_TRIGGER_BATCH_SCAN_RESULT_IND SIR_HAL_TRIGGER_BATCH_SCAN_RESULT_IND
1114#endif
1115
Jeff Johnson295189b2012-06-20 16:38:30 -07001116tSirRetStatus wdaPostCtrlMsg(tpAniSirGlobal pMac, tSirMsgQ *pMsg);
Jeff Johnson295189b2012-06-20 16:38:30 -07001117
Jeff Johnson295189b2012-06-20 16:38:30 -07001118eHalStatus WDA_SetRegDomain(void * clientCtxt, v_REGDOMAIN_t regId);
Jeff Johnson295189b2012-06-20 16:38:30 -07001119
1120#define HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME 0x40 // Bit 6 will be used to control BD rate for Management frames
1121
Jeff Johnson295189b2012-06-20 16:38:30 -07001122#define halTxFrame(hHal, pFrmBuf, frmLen, frmType, txDir, tid, pCompFunc, pData, txFlag) \
1123 (eHalStatus)( WDA_TxPacket(\
1124 vos_get_context(VOS_MODULE_ID_WDA, vos_get_global_context(VOS_MODULE_ID_WDA, (hHal))),\
1125 (pFrmBuf),\
1126 (frmLen),\
1127 (frmType),\
1128 (txDir),\
1129 (tid),\
1130 (pCompFunc),\
1131 (pData),\
1132 (NULL), \
1133 (txFlag)) )
1134
1135#define halTxFrameWithTxComplete(hHal, pFrmBuf, frmLen, frmType, txDir, tid, pCompFunc, pData, pCBackFnTxComp, txFlag) \
1136 (eHalStatus)( WDA_TxPacket(\
1137 vos_get_context(VOS_MODULE_ID_WDA, vos_get_global_context(VOS_MODULE_ID_WDA, (hHal))),\
1138 (pFrmBuf),\
1139 (frmLen),\
1140 (frmType),\
1141 (txDir),\
1142 (tid),\
1143 (pCompFunc),\
1144 (pData),\
1145 (pCBackFnTxComp), \
1146 (txFlag)) )
Jeff Johnson295189b2012-06-20 16:38:30 -07001147
1148/* -----------------------------------------------------------------
1149 WDA data path API's for TL
1150 -------------------------------------------------------------------*/
1151
Jeff Johnson295189b2012-06-20 16:38:30 -07001152v_BOOL_t WDA_IsHwFrameTxTranslationCapable(v_PVOID_t pVosGCtx,
1153 tANI_U8 staIdx);
Jeff Johnson295189b2012-06-20 16:38:30 -07001154
Jeff Johnson295189b2012-06-20 16:38:30 -07001155# define WDA_EnableUapsdAcParams(vosGCtx, staId, uapsdInfo) \
1156 WDA_SetUapsdAcParamsReq(vosGCtx, staId, uapsdInfo)
Jeff Johnson295189b2012-06-20 16:38:30 -07001157
Jeff Johnson295189b2012-06-20 16:38:30 -07001158# define WDA_DisableUapsdAcParams(vosGCtx, staId, ac) \
1159 WDA_ClearUapsdAcParamsReq(vosGCtx, staId, ac)
Jeff Johnson295189b2012-06-20 16:38:30 -07001160
Jeff Johnson295189b2012-06-20 16:38:30 -07001161# define WDA_SetRSSIThresholds(pMac, pThresholds) \
1162 WDA_SetRSSIThresholdsReq(pMac, pThresholds)
Jeff Johnson295189b2012-06-20 16:38:30 -07001163
Jeff Johnson295189b2012-06-20 16:38:30 -07001164#define WDA_UpdateRssiBmps(pvosGCtx, staId, rssi) \
Madan Mohan Koyyalamudia53c4dc2012-11-13 10:35:42 -08001165 WLANTL_UpdateRssiBmps(pvosGCtx, staId, rssi)
Jeff Johnson295189b2012-06-20 16:38:30 -07001166
Madan Mohan Koyyalamudid9383fd2013-08-13 09:27:30 +05301167#define WDA_UpdateSnrBmps(pvosGCtx, staId, rssi) \
1168 WLANTL_UpdateSnrBmps(pvosGCtx, staId, snr)
1169
1170#define WDA_GetSnr(staId, snr) \
1171 WLANTL_GetSnr(staId, snr)
1172
Gopichand Nakkala8a2b1442013-05-29 15:33:14 +05301173#define WDA_UpdateLinkCapacity(pvosGCtx, staId, linkCapacity) \
1174 WLANTL_UpdateLinkCapacity(pvosGCtx, staId, linkCapacity)
1175
Jeff Johnson295189b2012-06-20 16:38:30 -07001176#ifdef WLAN_PERF
1177/*==========================================================================
1178 FUNCTION WDA_TLI_FastHwFwdDataFrame
1179
1180 DESCRIPTION
1181 For NON integrated SOC, this function is called by TL.
1182
1183 Fast path function to quickly forward a data frame if HAL determines BD
1184 signature computed here matches the signature inside current VOSS packet.
1185 If there is a match, HAL and TL fills in the swapped packet length into
1186 BD header and DxE header, respectively. Otherwise, packet goes back to
1187 normal (slow) path and a new BD signature would be tagged into BD in this
1188 VOSS packet later by the WLANHAL_FillTxBd() function.
1189
1190 TODO For integrated SOC, this function does nothing yet. Pima SLM/HAL
1191 should provide the equivelant functionality.
1192
1193 DEPENDENCIES
1194
1195 PARAMETERS
1196
1197 IN
1198 pvosGCtx VOS context
1199 vosDataBuff Ptr to VOSS packet
1200 pMetaInfo For getting frame's TID
1201 pStaInfo For checking STA type
1202
1203 OUT
1204 pvosStatus returned status
1205 puFastFwdOK Flag to indicate whether frame could be fast forwarded
1206
1207 RETURN VALUE
1208 No return.
1209
1210 SIDE EFFECTS
1211
1212============================================================================*/
1213void WDA_TLI_FastHwFwdDataFrame
1214(
1215 v_PVOID_t pvosGCtx,
1216 vos_pkt_t* vosDataBuff,
1217 VOS_STATUS* pvosStatus,
1218 v_U32_t* puFastFwdOK,
1219 WLANTL_MetaInfoType* pMetaInfo,
1220 WLAN_STADescType* pStaInfo
1221);
1222#endif /* WLAN_PERF */
1223
1224/*==========================================================================
1225 FUNCTION WDA_DS_Register
1226
1227 DESCRIPTION
1228 Register TL client to WDA. This function registers TL RX/TX functions
1229 to WDI by calling WDI_DS_Register.
1230
1231
1232 For NON integrated SOC, this function calls WLANBAL_RegTlCbFunctions
1233 to register TL's RX/TX functions to BAL
1234
1235 TODO
1236 For Prima, pfnResourceCB gets called in WDTS_OOResourceNotification.
1237 The uCount parameter is AC mask. It should be redefined to use the
1238 same resource callback function.
1239
1240 DEPENDENCIES
1241
1242 PARAMETERS
1243
1244 IN
1245 pvosGCtx VOS context
1246 pfnTxCompleteCallback TX complete callback upon TX completion
1247 pfnRxPacketCallback RX callback
1248 pfnResourceCB gets called when updating TX PDU number
1249 uResTheshold minimum TX PDU size for a packet
1250 pCallbackContext WDI calls callback function with it
1251 VOS global context pointer
1252 OUT
1253 uAvailableTxBuf available TX PDU numbder.
1254 BAL returns it for NON integrated SOC
1255
1256 RETURN VALUE
1257 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1258 VOS_STATUS_SUCCESS: Everything is good :)
1259
1260 SIDE EFFECTS
1261
1262============================================================================*/
1263VOS_STATUS
1264WDA_DS_Register
1265(
1266 v_PVOID_t pvosGCtx,
1267 WDA_DS_TxCompleteCallback pfnTxCompleteCallback,
1268 WDA_DS_RxPacketCallback pfnRxPacketCallback,
1269 WDA_DS_TxPacketCallback pfnTxPacketCallback,
1270 WDA_DS_ResourceCB pfnResourceCB,
1271 v_U32_t uResTheshold,
1272 v_PVOID_t pCallbackContext,
1273 v_U32_t *uAvailableTxBuf
1274);
1275
1276/*==========================================================================
1277 FUNCTION WDA_DS_StartXmit
1278
1279 DESCRIPTION
1280 Serialize TX transmit reques to TX thread.
1281
1282 TODO This sends TX transmit request to TL. It should send to WDI for
1283 abstraction.
1284
1285 For NON integrated SOC, this function calls WLANBAL_StartXmit
1286
1287 DEPENDENCIES
1288
1289 PARAMETERS
1290
1291 IN
1292 pvosGCtx VOS context
1293
1294 RETURN VALUE
1295 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1296 VOS_STATUS_SUCCESS: Everything is good :)
1297
1298 SIDE EFFECTS
1299
1300============================================================================*/
1301VOS_STATUS
1302WDA_DS_StartXmit
1303(
1304 v_PVOID_t pvosGCtx
1305);
1306
1307/*==========================================================================
1308 FUNCTION WDA_DS_FinishULA
1309
1310 DESCRIPTION
1311 Serialize Finish Upper Level Authentication reques to TX thread.
1312
1313 DEPENDENCIES
1314
1315 PARAMETERS
1316
1317 IN
1318 callbackRoutine routine to be called in TX thread
1319 callbackContext user data for the above routine
1320
1321 RETURN VALUE
1322 please see vos_tx_mq_serialize
1323
1324 SIDE EFFECTS
1325
1326============================================================================*/
1327VOS_STATUS
1328WDA_DS_FinishULA
1329(
1330 void (*callbackRoutine) (void *callbackContext),
Tushnim Bhattacharyya39a8f182013-02-20 18:10:30 -08001331 void *callbackContext
Jeff Johnson295189b2012-06-20 16:38:30 -07001332);
1333
1334/*==========================================================================
1335 FUNCTION WDA_DS_BuildTxPacketInfo
1336
1337 DESCRIPTION
1338 Build TX meta info for integrated SOC.
1339
1340 Same function calls HAL for reserve BD header space into VOS packet and
1341 HAL function to fill it.
1342
1343 DEPENDENCIES
1344
1345 PARAMETERS
1346
1347 IN
1348 pvosGCtx VOS context
1349 vosDataBuff vos data buffer
1350 pvDestMacAddr destination MAC address ponter
1351 ucDisableFrmXtl Is frame xtl disabled?
1352 ucQosEnabled Is QoS enabled?
1353 ucWDSEnabled Is WDS enabled?
1354 extraHeadSpace Extra head bytes. If it's not 0 due to 4 bytes align
1355 of BD header.
1356 typeSubtype typeSubtype from MAC header or TX metainfo/BD
1357 pAddr2 address 2
1358 uTid tid
1359 txFlag
1360 timeStamp
1361 ucIsEapol
1362 ucUP
1363
1364 OUT
1365 *pusPktLen Packet length
1366
1367 RETURN VALUE
1368 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1369 VOS_STATUS_SUCCESS: Everything is good :)
1370
1371 SIDE EFFECTS
1372
1373============================================================================*/
1374VOS_STATUS
1375WDA_DS_BuildTxPacketInfo
1376(
1377 v_PVOID_t pvosGCtx,
1378 vos_pkt_t* vosDataBuff,
1379 v_MACADDR_t* pvDestMacAddr,
1380 v_U8_t ucDisableFrmXtl,
1381 v_U16_t* pusPktLen,
1382 v_U8_t ucQosEnabled,
1383 v_U8_t ucWDSEnabled,
1384 v_U8_t extraHeadSpace,
1385 v_U8_t typeSubtype,
1386 v_PVOID_t pAddr2,
1387 v_U8_t uTid,
1388 v_U8_t txFlag,
1389 v_U32_t timeStamp,
1390 v_U8_t ucIsEapol,
1391 v_U8_t ucUP
1392);
1393
1394/*==========================================================================
1395 FUNCTION WDA_DS_PeekRxPacketInfo
1396
1397 DESCRIPTION
1398 Return RX metainfo pointer for for integrated SOC.
1399
1400 Same function will return BD header pointer.
1401
1402 DEPENDENCIES
1403
1404 PARAMETERS
1405
1406 IN
1407 vosDataBuff vos data buffer
1408
1409 pvDestMacAddr destination MAC address ponter
1410 bSwap Want to swap BD header? For backward compatability
1411 It does nothing for integrated SOC
1412 OUT
1413 *ppRxHeader RX metainfo pointer
1414
1415 RETURN VALUE
1416 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1417 VOS_STATUS_SUCCESS: Everything is good :)
1418
1419 SIDE EFFECTS
1420
1421============================================================================*/
1422VOS_STATUS
1423WDA_DS_PeekRxPacketInfo
1424(
1425 vos_pkt_t *vosDataBuff,
1426 v_PVOID_t *ppRxHeader,
1427 v_BOOL_t bSwap
1428);
1429
1430/*==========================================================================
1431 FUNCTION WDA_DS_TrimRxPacketInfo
1432
1433 DESCRIPTION
1434 Trim/Remove RX BD header for NON integrated SOC.
1435 It does nothing for integrated SOC.
1436
1437 DEPENDENCIES
1438
1439 PARAMETERS
1440
1441 IN
1442 vosDataBuff vos data buffer
1443
1444 RETURN VALUE
1445 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1446 VOS_STATUS_SUCCESS: Everything is good :)
1447
1448 SIDE EFFECTS
1449
1450============================================================================*/
1451VOS_STATUS
1452WDA_DS_TrimRxPacketInfo
1453(
1454 vos_pkt_t *vosDataBuff
1455);
1456
1457/*==========================================================================
1458 FUNCTION WDA_DS_GetTxResources
1459
1460 DESCRIPTION
1461 It does return hardcoded value for Prima. It should bigger number than 0.
1462 Returning 0 will put TL in out-of-resource condition for TX.
1463
1464 Return current PDU resources from BAL for NON integrated SOC.
1465
1466 DEPENDENCIES
1467
1468 PARAMETERS
1469
1470 IN
1471 vosDataBuff vos data buffer
1472
1473 OUT
1474 puResCount available PDU number for TX
1475
1476 RETURN VALUE
1477 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1478 VOS_STATUS_SUCCESS: Everything is good :)
1479
1480 SIDE EFFECTS
1481
1482============================================================================*/
1483VOS_STATUS
1484WDA_DS_GetTxResources
1485(
1486 v_PVOID_t pvosGCtx,
1487 v_U32_t* puResCount
1488);
1489
1490/*==========================================================================
1491 FUNCTION WDA_DS_GetRssi
1492
1493 DESCRIPTION
1494 Get RSSI
1495
1496 TODO It returns hardcoded value in the meantime since WDA/WDI does nothing
1497 support it yet for Prima.
1498
1499 DEPENDENCIES
1500
1501 PARAMETERS
1502
1503 IN
1504 vosDataBuff vos data buffer
1505
1506 OUT
1507 puRssi RSSI
1508
1509 RETURN VALUE
1510 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1511 VOS_STATUS_SUCCESS: Everything is good :)
1512
1513 SIDE EFFECTS
1514
1515============================================================================*/
1516VOS_STATUS
1517WDA_DS_GetRssi
1518(
1519 v_PVOID_t pvosGCtx,
1520 v_S7_t* puRssi
1521);
1522
1523/*==========================================================================
1524 FUNCTION WDA_DS_RxAmsduBdFix
1525
1526 DESCRIPTION
1527 For backward compatability with Libra/Volans. Need to call HAL function
1528 for HW BD bug fix
1529
1530 It does nothing for integrated SOC.
1531
1532 DEPENDENCIES
1533
1534 PARAMETERS
1535
1536 IN
1537 pvosGCtx VOS context
1538 pvBDHeader BD header pointer
1539
1540 OUT
1541
1542 RETURN VALUE
1543 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1544 VOS_STATUS_SUCCESS: Everything is good :)
1545
1546 SIDE EFFECTS
1547
1548============================================================================*/
1549VOS_STATUS
1550WDA_DS_RxAmsduBdFix
1551(
1552 v_PVOID_t pvosGCtx,
1553 v_PVOID_t pvBDHeader
1554);
1555
1556/*==========================================================================
1557 FUNCTION WDA_DS_GetFrameTypeSubType
1558
1559 DESCRIPTION
1560 Get typeSubtype from the packet. The BD header should have this.
1561 But some reason, Libra/Volans read it from 802.11 header and save it
1562 back to BD header. So for NON integrated SOC, this function does
1563 the same.
1564
1565 For integrated SOC, WDI does the same, not TL.
1566 It does return typeSubtype from RX meta info for integrated SOC.
1567
1568 DEPENDENCIES
1569
1570 PARAMETERS
1571
1572 IN
1573 pvosGCtx VOS context
1574 vosDataBuff vos data buffer
1575 pRxHeader RX meta info or BD header pointer
1576
1577 OUT
1578 ucTypeSubtype typeSubtype
1579
1580 RETURN VALUE
1581 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1582 VOS_STATUS_SUCCESS: Everything is good :)
1583
1584 SIDE EFFECTS
1585
1586============================================================================*/
1587VOS_STATUS
1588WDA_DS_GetFrameTypeSubType
1589(
1590 v_PVOID_t pvosGCtx,
1591 vos_pkt_t *vosDataBuff,
1592 v_PVOID_t pRxHeader,
1593 v_U8_t *ucTypeSubtype
1594);
1595
1596/*==========================================================================
1597 FUNCTION WDA_DS_GetReplayCounter
1598
1599 DESCRIPTION
1600 Return replay counter from BD header or RX meta info
1601
1602 DEPENDENCIES
1603
1604 PARAMETERS
1605
1606 IN
1607 pRxHeader RX meta info or BD header pointer
1608
1609 OUT
1610
1611 RETURN VALUE
1612 Replay Counter
1613
1614 SIDE EFFECTS
1615
1616============================================================================*/
1617v_U64_t
1618WDA_DS_GetReplayCounter
1619(
1620 v_PVOID_t pRxHeader
1621);
1622
1623/*==========================================================================
1624 FUNCTION WDA_DS_GetReplayCounter
1625
1626 DESCRIPTION
1627 HO support. Set RSSI threshold via HAL function for NON integrated SOC
1628
1629 TODO
1630 Same function should be provided by WDA/WDI for Prima.
1631
1632 DEPENDENCIES
1633
1634 PARAMETERS
1635
1636 IN
1637 pMac MAC global pointer
1638 pThresholds pointer of threshold structure to set.
1639
1640 OUT
1641
1642 RETURN VALUE
1643 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1644 VOS_STATUS_SUCCESS: Everything is good :)
1645
1646 SIDE EFFECTS
1647
1648============================================================================*/
1649VOS_STATUS
1650WDA_DS_SetRSSIThresholds
1651(
1652 tpAniSirGlobal pMac,
1653 tpSirRSSIThresholds pThresholds
1654);
1655
Jeff Johnson295189b2012-06-20 16:38:30 -07001656/*==========================================================================
1657 FUNCTION WDA_DS_TxFrames
1658
1659 DESCRIPTION
1660 Pull packets from TL and push them to WDI. It gets invoked upon
1661 WDA_DS_TX_START_XMIT.
1662
1663 This function is equivelant of WLANSSC_Transmit in Libra/Volans.
1664
1665 TODO
1666 This function should be implemented and moved in WDI.
1667
1668 DEPENDENCIES
1669
1670 PARAMETERS
1671
1672 IN
1673 pvosGCtx VOS context
1674
1675 OUT
1676
1677 RETURN VALUE
1678 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1679 VOS_STATUS_SUCCESS: Everything is good :)
1680
1681 SIDE EFFECTS
1682
1683============================================================================*/
1684VOS_STATUS
1685WDA_DS_TxFrames
1686(
1687 v_PVOID_t pvosGCtx
1688);
Jeff Johnson295189b2012-06-20 16:38:30 -07001689
1690/*==========================================================================
1691 FUNCTION WDA_DS_TxFlowControlCallback
1692
1693 DESCRIPTION
1694 Invoked by WDI to control TX flow.
1695
1696 DEPENDENCIES
1697
1698 PARAMETERS
1699
1700 IN
1701 pvosGCtx VOS context
1702 uFlowMask TX channel mask for flow control
1703 Defined in WDA_TXFlowEnumType
1704
1705 OUT
1706
1707 RETURN VALUE
1708
1709 SIDE EFFECTS
1710
1711============================================================================*/
1712v_VOID_t
1713WDA_DS_TxFlowControlCallback
1714(
1715 v_PVOID_t pvosGCtx,
1716 v_U8_t uFlowMask
1717);
1718
1719/*==========================================================================
1720 FUNCTION WDA_DS_GetTxFlowMask
1721
1722 DESCRIPTION
1723 return TX flow mask control value
1724
1725 DEPENDENCIES
1726
1727 PARAMETERS
1728
1729 IN
1730 pvosGCtx VOS context
1731
1732 OUT
1733 uFlowMask TX channel mask for flow control
1734 Defined in WDA_TXFlowEnumType
1735
1736 RETURN VALUE
1737 VOS_STATUS_E_INVAL: pointer is NULL and other errors
1738 VOS_STATUS_SUCCESS: Everything is good :)
1739
1740 SIDE EFFECTS
1741
1742============================================================================*/
1743VOS_STATUS
1744WDA_DS_GetTxFlowMask
1745(
1746 v_PVOID_t pvosGCtx,
1747 v_U8_t* puFlowMask
1748);
1749
1750/*==========================================================================
1751 FUNCTION WDA_HALDumpCmdReq
1752
1753 DESCRIPTION
1754 Send Dump commandsto WDI
1755
1756 DEPENDENCIES
1757
1758 PARAMETERS
1759
1760 IN
1761 pMac MAC global pointer
1762 cmd Hal dump command
1763 arg1 Dump command argument 1
1764 arg2 Dump command argument 2
1765 arg3 Dump command argument 3
1766 arg4 Dump command argument 4
1767
1768 OUT
1769 pBuffer Dump command Response buffer
1770
1771 RETURN VALUE
1772 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1773 VOS_STATUS_SUCCESS: Everything is good :)
1774
1775 SIDE EFFECTS
1776
1777============================================================================*/
1778VOS_STATUS WDA_HALDumpCmdReq(tpAniSirGlobal pMac,tANI_U32 cmd,
1779 tANI_U32 arg1, tANI_U32 arg2, tANI_U32 arg3,
1780 tANI_U32 arg4, tANI_U8 *pBuffer);
1781
1782/*==========================================================================
1783 FUNCTION WDA_featureCapsExchange
1784
1785 DESCRIPTION
1786 WDA API to invoke capability exchange between host and FW
1787
1788 DEPENDENCIES
1789
1790 PARAMETERS
1791
1792 IN
1793 pVosContext VOS context
1794
1795 OUT
1796 NONE
1797
1798 RETURN VALUE
1799 NONE
1800
1801 SIDE EFFECTS
1802============================================================================*/
1803void WDA_featureCapsExchange(v_PVOID_t pVosContext);
1804
Yathish9f22e662012-12-10 14:21:35 -08001805void WDA_disableCapablityFeature(tANI_U8 feature_index);
Jeff Johnson295189b2012-06-20 16:38:30 -07001806/*==========================================================================
1807 FUNCTION WDA_getHostWlanFeatCaps
1808
1809 DESCRIPTION
1810 Wrapper for WDI API, that will return if the feature (enum value).passed
1811 to this API is supported or not in Host
1812
1813 DEPENDENCIES
1814
1815 PARAMETERS
1816
1817 IN
1818 featEnumValue enum value for the feature as in placeHolderInCapBitmap in wlan_hal_msg.h.
1819
1820 OUT
1821 NONE
1822
1823 RETURN VALUE
1824 0 - implies feature is NOT Supported
1825 any non zero value - implies feature is SUPPORTED
1826
1827 SIDE EFFECTS
1828============================================================================*/
1829tANI_U8 WDA_getHostWlanFeatCaps(tANI_U8 featEnumValue);
1830
1831/*==========================================================================
1832 FUNCTION WDA_getFwWlanFeatCaps
1833
1834 DESCRIPTION
1835 Wrapper for WDI API, that will return if the feature (enum value).passed
1836 to this API is supported or not in FW
1837
1838 DEPENDENCIES
1839
1840 PARAMETERS
1841
1842 IN
1843 featEnumValue enum value for the feature as in placeHolderInCapBitmap in wlan_hal_msg.h.
1844
1845 OUT
1846 NONE
1847
1848 RETURN VALUE
1849 0 - implies feature is NOT Supported
1850 any non zero value - implies feature is SUPPORTED
1851
1852 SIDE EFFECTS
1853============================================================================*/
1854tANI_U8 WDA_getFwWlanFeatCaps(tANI_U8 featEnumValue);
1855
Madan Mohan Koyyalamudi8cb53982012-09-28 14:34:47 -07001856/*==========================================================================
1857 FUNCTION WDA_TransportChannelDebug
1858
1859 DESCRIPTION
1860 Display Transport Channel debugging information
1861 User may request to display DXE channel snapshot
1862 Or if host driver detects any abnormal stcuk may display
1863
1864 PARAMETERS
schang6295e542013-03-12 15:31:23 -07001865 pMac : upper MAC context pointer
Jeff Johnsonb88db982012-12-10 13:34:59 -08001866 displaySnapshot : Display DXE snapshot option
Madan Mohan Koyyalamudi8cb53982012-09-28 14:34:47 -07001867 enableStallDetect : Enable stall detect feature
1868 This feature will take effect to data performance
1869 Not integrate till fully verification
1870
1871 RETURN VALUE
1872 NONE
1873
1874===========================================================================*/
1875void WDA_TransportChannelDebug
1876(
schang6295e542013-03-12 15:31:23 -07001877 tpAniSirGlobal pMac,
1878 v_BOOL_t displaySnapshot,
1879 v_BOOL_t toggleStallDetect
Madan Mohan Koyyalamudi8cb53982012-09-28 14:34:47 -07001880);
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08001881
1882/*==========================================================================
1883 FUNCTION WDA_TrafficStatsTimerActivate
1884
1885 DESCRIPTION
1886 API to activate/deactivate Traffic Stats timer. Traffic stats timer is only needed during MCC
1887 PARAMETERS
1888 activate : Activate or not
1889
1890 RETURN VALUE
1891 NONE
1892
1893===========================================================================*/
1894void WDA_TrafficStatsTimerActivate(wpt_boolean activate);
1895
Gopichand Nakkalae620d5a2013-04-26 05:45:57 -07001896/*==========================================================================
1897 FUNCTION WDA_SetEnableSSR
1898
1899 DESCRIPTION
1900 API to enable/disable SSR on WDI timeout
1901
1902 PARAMETERS
1903 enableSSR : enable/disable SSR
1904
1905 RETURN VALUE
1906 NONE
1907
1908===========================================================================*/
1909void WDA_SetEnableSSR(v_BOOL_t enableSSR);
1910
Jeff Johnson295189b2012-06-20 16:38:30 -07001911#endif