blob: c681692ae89546609d09615aae15133a40a997bb [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
47 W L A N DEVICE ADAPTATION L A Y E R
48 E X T E R N A L A P I
49
50
51DESCRIPTION
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
57 was to keep the UMAC identical across Prima and Volans. This layer provides the glue
58 between SME, PE , TL and HAL.
59
60 Copyright (c) 2008 QUALCOMM Incorporated. All Rights Reserved.
61 Qualcomm Confidential and Proprietary
62===========================================================================*/
63
64
65/*===========================================================================
66
67 EDIT HISTORY FOR FILE
68
69
70 This section contains comments describing changes made to the module.
71 Notice that changes are listed in reverse chronological order.
72
73
74 $Header:$ $DateTime: $ $Author: $
75
76
77when who what, where, why
78-------- --- ----------------------------------------------
7910/05/2011 haparna Adding support for Keep Alive Feature
8001/27/2011 rnair Adding WDA support for Volans.
8112/08/2010 seokyoun Move down HAL interfaces from TL to WDA
82 for UMAC convergence btween Volans/Libra and Prima
8308/25/2010 adwivedi WDA Context and exposed API's
84=========================================================================== */
85
86#include "aniGlobal.h"
87
88#if defined( FEATURE_WLAN_INTEGRATED_SOC )
89
90# include "wlan_qct_wdi_ds.h"
91
92#else
93
94# include "sirParams.h"
95# include "limGlobal.h"
96# include "halTypes.h"
97# include "wlan_qct_bal.h"
98# include "wlan_qct_hal.h"
99/* This header is for ADD and remove BA session */
100# include "halCommonApi.h"
101
102#endif
103
104/* Add Include */
105
106typedef enum
107{
108 WDA_INIT_STATE,
109 WDA_START_STATE,
110 WDA_READY_STATE,
111 WDA_PRE_ASSOC_STATE,
112 WDA_BA_UPDATE_TL_STATE,
113 WDA_BA_UPDATE_LIM_STATE,
114 WDA_STOP_STATE,
115 WDA_CLOSE_STATE
116}WDA_state;
117
118typedef enum
119{
120 WDA_PROCESS_SET_LINK_STATE,
121 WDA_IGNORE_SET_LINK_STATE
122}WDA_processSetLinkStateStatus;
123
124typedef enum
125{
126 WDA_DISABLE_BA,
127 WDA_ENABLE_BA
128}WDA_BaEnableFlags;
129
130typedef enum
131{
132 WDA_INVALID_STA_INDEX,
133 WDA_VALID_STA_INDEX
134}WDA_ValidStaIndex;
135
136#if defined( FEATURE_WLAN_NON_INTEGRATED_SOC )
137#if !defined( VOS_MQ_ID_WDA )
138#define VOS_MQ_ID_WDA VOS_MQ_ID_HAL
139#endif
140#endif
141/*--------------------------------------------------------------------------
142 Utilities
143 --------------------------------------------------------------------------*/
144
145#define WDA_TLI_CEIL( _a, _b) (( 0 != (_a)%(_b))? (_a)/(_b) + 1: (_a)/(_b))
146
147/*
148 * Check the version number and find if MCC feature is supported or not
149 */
150#define IS_MCC_SUPPORTED (WDA_IsWcnssWlanReportedVersionGreaterThanOrEqual( 0, 1, 1, 0))
Viral Modid86bde22012-12-10 13:09:21 -0800151#define IS_FEATURE_SUPPORTED_BY_FW(featEnumValue) (!!WDA_getFwWlanFeatCaps(featEnumValue))
Jeff Johnson295189b2012-06-20 16:38:30 -0700152
Yathish9f22e662012-12-10 14:21:35 -0800153#ifdef WLAN_ACTIVEMODE_OFFLOAD_FEATURE
154#define IS_ACTIVEMODE_OFFLOAD_FEATURE_ENABLE ((WDA_getFwWlanFeatCaps(WLANACTIVE_OFFLOAD)) & (WDI_getHostWlanFeatCaps(WLANACTIVE_OFFLOAD)))
155#else
156#define IS_ACTIVEMODE_OFFLOAD_FEATURE_ENABLE 0
157#endif
158
159
Jeff Johnson295189b2012-06-20 16:38:30 -0700160/*--------------------------------------------------------------------------
161 Definitions for Data path APIs
162 --------------------------------------------------------------------------*/
163
164/*As per 802.11 spec */
165#define WDA_TLI_MGMT_FRAME_TYPE 0x00
166#define WDA_TLI_CTRL_FRAME_TYPE 0x10
167#define WDA_TLI_DATA_FRAME_TYPE 0x20
168
169/*802.3 header definitions*/
170#define WDA_TLI_802_3_HEADER_LEN 14
171/*802.11 header definitions - header len without QOS ctrl field*/
172#define WDA_TLI_802_11_HEADER_LEN 24
173
174/*Determines the header len based on the disable xtl field*/
175#define WDA_TLI_MAC_HEADER_LEN( _dxtl) \
176 ( ( 0 == _dxtl )? \
177 WDA_TLI_802_3_HEADER_LEN:WDA_TLI_802_11_HEADER_LEN )
178
179/* TX channel enum type:
180
181 We have five types of TX packets so far and want to block/unblock each
182 traffic individually according to, for example, low resouce condition.
183 Define five TX channels for UMAC here. WDA can map these logical
184 channels to physical DXE channels if needed.
185*/
186typedef enum
187{
188 WDA_TXFLOW_AC_BK = 0,
189 WDA_TXFLOW_AC_BE = 1,
190 WDA_TXFLOW_AC_VI = 2,
191 WDA_TXFLOW_AC_VO = 3,
192 WDA_TXFLOW_MGMT = 4,
193 WDA_TXFLOW_BAP = 1, /* BAP is sent as BE */
194 WDA_TXFLOW_FC = 1, /* FC is sent as BE */
195 WDA_TXFLOW_MAX
196} WDA_TXFlowEnumType;
197
198#define WDA_TXFLOWMASK 0x1F /* 1~4bit:low priority ch / 5bit: high */
199
200/* ---------------------------------------------------------------------
201 Libra and Volans specifics
202
203 TODO Consider refactoring it and put it into two separate headers,
204 one for Prima and one for Volans
205
206 feturized with FEATURE_WLAN_INTEGRATED_SOC for Prima
207 ----------------------------------------------------------------------*/
208
209/* For backward compatability with SDIO. It's BAL header size for SDIO
210 interface. It's nothing for integrated SOC */
211#if defined( FEATURE_WLAN_INTEGRATED_SOC )
212#define WDA_DXE_HEADER_SIZE 0
213#else /* FEATURE_WLAN_INTEGRATED_SOC */
214#define WDA_DXE_HEADER_SIZE WLAN_BAL_DXE_HEADER_SIZE
215#endif /* FEATURE_WLAN_INTEGRATED_SOC */
216
217#if defined( FEATURE_WLAN_INTEGRATED_SOC )
218#else /* FEATURE_WLAN_INTEGRATED_SOC */
219/*Libra PDU size*/
220#define WDA_TLI_PDU_RES_SIZE 124
221#endif /* FEATURE_WLAN_INTEGRATED_SOC */
222
223/*Minimum resources needed - arbitrary*/
224
225/*DXE + SD*/
226#if defined( FEATURE_WLAN_INTEGRATED_SOC )
Madan Mohan Koyyalamudia53c4dc2012-11-13 10:35:42 -0800227#define WDA_WLAN_LIBRA_HEADER_LEN (20 + 8)
Jeff Johnson295189b2012-06-20 16:38:30 -0700228#else /* FEATURE_WLAN_INTEGRATED_SOC */
Madan Mohan Koyyalamudia53c4dc2012-11-13 10:35:42 -0800229#define WLAN_LIBRA_HEADER_LEN (20 + 8)
Jeff Johnson295189b2012-06-20 16:38:30 -0700230#endif /* FEATURE_WLAN_INTEGRATED_SOC */
231
232#if defined( FEATURE_WLAN_INTEGRATED_SOC )
233#define WDA_TLI_BD_PDU_RESERVE_THRESHOLD 10
234#else /* FEATURE_WLAN_INTEGRATED_SOC */
235#define WDA_TLI_BD_PDU_RESERVE_THRESHOLD 150
236#endif /* FEATURE_WLAN_INTEGRATED_SOC */
237
238
239#if defined( FEATURE_WLAN_INTEGRATED_SOC )
240# define WDA_TLI_MIN_RES_MF 1
241# define WDA_TLI_MIN_RES_BAP 2
242# define WDA_TLI_MIN_RES_DATA 3
243#else
244# define WDA_TLI_MIN_RES_MF 13 /*Keeping for MF*/
Madan Mohan Koyyalamudia53c4dc2012-11-13 10:35:42 -0800245# define WDA_TLI_MIN_RES_BAP (WDA_TLI_MIN_RES_MF + 13) /*Another for BAP*/
246# define WDA_TLI_MIN_RES_DATA (WDA_TLI_MIN_RES_BAP + 13) /*Min 12 for data*/
Jeff Johnson295189b2012-06-20 16:38:30 -0700247# define WLANTL_TH_RES_DATA 254
248#endif
249
250#if defined( FEATURE_WLAN_INTEGRATED_SOC )
251# define WDA_NUM_STA 8
252#else
253# define WDA_NUM_STA HAL_NUM_STA
254#endif
255
256/* For backward compatability with SDIO.
257
258 For SDIO interface, calculate the TX frame length and number of PDU
259 to transfter the frame.
260
261 _vosBuff: IN VOS pakcet buffer pointer
262 _usPktLen: OUT VOS packet length in bytes
263 _uResLen: OUT Number of PDU to hold this VOS packet
264 _uTotalPktLen: OUT Totoal packet length including BAL header size
265
266 For integrated SOC, _usPktLen and _uTotalPktLen is VOS pakcet length
267 which does include BD header length. _uResLen is hardcoded 2.
268 */
269#if defined( FEATURE_WLAN_INTEGRATED_SOC )
270
271#ifdef WINDOWS_DT
272#define WDA_TLI_PROCESS_FRAME_LEN( _vosBuff, _usPktLen, \
273 _uResLen, _uTotalPktLen) \
274 do \
275 { \
276 _usPktLen = wpalPacketGetFragCount((wpt_packet*)_vosBuff) + 1/*BD*/;\
277 _uResLen = _usPktLen; \
278 _uTotalPktLen = _usPktLen; \
279 } \
280 while ( 0 )
281#else /* WINDOWS_DT */
282#define WDA_TLI_PROCESS_FRAME_LEN( _vosBuff, _usPktLen, \
283 _uResLen, _uTotalPktLen) \
284 do \
285 { \
286 _usPktLen = 2; /* Need 1 descriptor per a packet + packet*/ \
287 _uResLen = 2; /* Assume that we spends two DXE descriptor */ \
288 _uTotalPktLen = _usPktLen; \
289 } \
290 while ( 0 )
291#endif /* WINDOWS_DT */
292
293#else /* FEATURE_WLAN_INTEGRATED_SOC */
294
295#define WLANTL_PDU_RES_SIZE 124 /*Libra PDU size*/
296#define WLAN_LIBRA_BD_HEADER_LEN 128 /*The lenght of the tx BD header*/
297
298/*Minimum resources needed - arbitrary*/
299
300/*DXE + SD*/
Madan Mohan Koyyalamudia53c4dc2012-11-13 10:35:42 -0800301#define WLAN_LIBRA_HEADER_LEN (20 + 8)
Jeff Johnson295189b2012-06-20 16:38:30 -0700302
303#define WLANTL_MAX_MSDU 1538
304
305#define WDA_TLI_PROCESS_FRAME_LEN( _vosBuff, _usPktLen, \
306 _uResLen, _uTotalPktLen) \
307 do \
308 { \
309 vos_pkt_get_packet_length( _vosBuff, &_usPktLen ); \
310 _uResLen = WDA_TLI_CEIL( (_usPktLen - WLAN_LIBRA_BD_HEADER_LEN), \
311 WLANTL_PDU_RES_SIZE ) + 1/*The BD*/; \
312 _uTotalPktLen = _usPktLen + WLAN_BAL_DXE_HEADER_SIZE; \
313 } \
314 while ( 0 )
315#endif /* FEATURE_WLAN_INTEGRATED_SOC */
316
317
318/*--------------------------------------------------------------------------
319 Message Definitions
320 --------------------------------------------------------------------------*/
321
322/* TX Tranmit request message. It serializes TX request to TX thread.
323 The message is processed in TL.
324*/
325#define WDA_DS_TX_START_XMIT WLANTL_TX_START_XMIT
326#define WDA_DS_FINISH_ULA WLANTL_FINISH_ULA
327
328
329#define WDA_TX_PACKET_FREED 0X0
330
Jeff Johnson43971f52012-07-17 12:26:56 -0700331/* Approximate amount of time to wait for WDA to stop WDI considering 1 pendig req too*/
332#define WDA_STOP_TIMEOUT ( (WDI_RESPONSE_TIMEOUT * 2) + WDI_SET_POWER_STATE_TIMEOUT + 5)
Jeff Johnson295189b2012-06-20 16:38:30 -0700333/*--------------------------------------------------------------------------
334 Functions
335 --------------------------------------------------------------------------*/
336
337/* For data client */
338typedef VOS_STATUS (*WDA_DS_TxCompleteCallback) ( v_PVOID_t pContext, vos_pkt_t *pFrameDataBuff, VOS_STATUS txStatus );
339typedef VOS_STATUS (*WDA_DS_RxPacketCallback) ( v_PVOID_t pContext, vos_pkt_t *pFrameDataBuff );
340typedef v_U32_t (*WDA_DS_TxPacketCallback) ( v_PVOID_t pContext,
341 vos_pkt_t **ppFrameDataBuff,
342 v_U32_t uSize,
343#if defined( FEATURE_WLAN_INTEGRATED_SOC )
344 v_U8_t uFlowMask,
345#endif
346 v_BOOL_t *pbUrgent );
347typedef VOS_STATUS (*WDA_DS_ResourceCB) ( v_PVOID_t pContext, v_U32_t uCount );
348
349
350#if defined( FEATURE_WLAN_INTEGRATED_SOC )
351/* For management client */
352typedef VOS_STATUS (*WDA_DS_TxCompleteCb)( v_PVOID_t pContext, wpt_packet *pFrame );
353typedef VOS_STATUS (*WDA_DS_RxCompleteCb)( v_PVOID_t pContext, wpt_packet *pFrame );
354typedef VOS_STATUS (*WDA_DS_TxFlowControlCb)( v_PVOID_t pContext, v_U8_t acMask );
355typedef void (*pWDATxRxCompFunc)( v_PVOID_t pContext, void *pData );
356
357//callback function for TX complete
358//parameter 1 - global pMac pointer
359//parameter 2 - txComplete status : 1- success, 0 - failure.
360typedef eHalStatus (*pWDAAckFnTxComp)(tpAniSirGlobal, tANI_U32);
361
362typedef struct
363{
364 tANI_U16 ucValidStaIndex ;
365 /*
366 * each bit in ucUseBaBitmap represent BA is enabled or not for this tid
367 * tid0 ..bit0, tid1..bit1 and so on..
368 */
369 tANI_U8 ucUseBaBitmap ;
370 tANI_U8 bssIdx;
371 tANI_U32 framesTxed[STACFG_MAX_TC];
372}tWdaStaInfo, *tpWdaStaInfo ;
373
374/* group all the WDA timers into this structure */
375typedef struct
376{
377 /* BA activity check timer */
378 TX_TIMER baActivityChkTmr ;
379
380 /* Tx Complete Timeout timer */
381 TX_TIMER TxCompleteTimer ;
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -0800382
383 /* Traffic Stats timer */
384 TX_TIMER trafficStatsTimer ;
Jeff Johnson295189b2012-06-20 16:38:30 -0700385}tWdaTimers ;
Gopichand Nakkala976e3252013-01-03 15:45:56 -0800386#ifdef WLAN_SOFTAP_VSTA_FEATURE
387#define WDA_MAX_STA (38)
388#else
Jeff Johnson295189b2012-06-20 16:38:30 -0700389#define WDA_MAX_STA (16)
Gopichand Nakkala976e3252013-01-03 15:45:56 -0800390#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700391typedef struct
392{
393 v_PVOID_t pVosContext; /* global VOSS context*/
394 v_PVOID_t pWdiContext; /* WDI context */
395 WDA_state wdaState ; /* WDA state tracking */
Jeff Johnson295189b2012-06-20 16:38:30 -0700396 v_PVOID_t wdaWdiCfgApiMsgParam ; /* WDI API paramter tracking */
397 vos_event_t wdaWdiEvent; /* WDI API sync event */
398
399 /* Event to wait for tx completion */
400 vos_event_t txFrameEvent;
401
402 /* call back function for tx complete*/
403 pWDATxRxCompFunc pTxCbFunc;
404 /* call back function for tx packet ack */
405 pWDAAckFnTxComp pAckTxCbFunc;
406 tANI_U32 frameTransRequired;
407 tSirMacAddr macBSSID; /*BSSID of the network */
408 tSirMacAddr macSTASelf; /*Self STA MAC*/
409
410 /* TX channel mask for flow control */
411 v_U8_t uTxFlowMask;
412 /* TL's TX resource callback */
413 WDA_DS_ResourceCB pfnTxResourceCB;
414 /* TL's TX complete callback */
415 WDA_DS_TxCompleteCallback pfnTxCompleteCallback;
416
417 tWdaStaInfo wdaStaInfo[WDA_MAX_STA];
418
419 tANI_U8 wdaMaxSta;
420 tWdaTimers wdaTimers;
421
422 /* STA, AP, IBSS, MULTI-BSS etc.*/
423 tBssSystemRole wdaGlobalSystemRole;
424
425 /* driver mode, PRODUCTION or FTM */
426 tDriverType driverMode;
427
428#ifdef ANI_MANF_DIAG
429 /* FTM Command Request tracking */
430 v_PVOID_t wdaFTMCmdReq;
431#endif /* ANI_MANF_DIAG */
432
433 /* Event to wait for suspend data tx*/
434 vos_event_t suspendDataTxEvent;
435 /* Status frm TL after suspend/resume Tx */
436 tANI_U8 txStatus;
437 /* Flag set to true when TL suspend timesout.*/
438 tANI_U8 txSuspendTimedOut;
439
440 vos_event_t waitOnWdiIndicationCallBack;
441
442 /* version information */
443 tSirVersionType wcnssWlanCompiledVersion;
444 tSirVersionType wcnssWlanReportedVersion;
445 tSirVersionString wcnssSoftwareVersionString;
446 tSirVersionString wcnssHardwareVersionString;
447
448
449 tSirLinkState linkState;
450 /* set, when BT AMP session is going on */
451 v_BOOL_t wdaAmpSessionOn;
452 v_U32_t VosPacketToFree;
Jeff Johnsone7245742012-09-05 17:12:55 -0700453 v_BOOL_t needShutdown;
Madan Mohan Koyyalamudia2fc6412012-10-21 12:06:12 -0700454 v_BOOL_t wdiFailed;
Madan Mohan Koyyalamudid57ae632012-11-06 18:42:48 -0800455 v_BOOL_t wdaTimersCreated;
Jeff Johnson295189b2012-06-20 16:38:30 -0700456} tWDA_CbContext ;
457
458typedef struct
459{
460 v_PVOID_t pWdaContext; /* pointer to WDA context*/
461 v_PVOID_t wdaMsgParam; /* PE parameter tracking */
462 v_PVOID_t wdaWdiApiMsgParam; /* WDI API paramter tracking */
463} tWDA_ReqParams;
464
465/*
466 * FUNCTION: WDA_open
467 * open WDA context
468 */
469
470VOS_STATUS WDA_open(v_PVOID_t pVosContext, v_PVOID_t pOSContext,
471 tMacOpenParameters *pMacParams ) ;
472
473/*
474 * FUNCTION: WDA_preStart
475 * Trigger DAL-AL to start CFG download
476 */
477VOS_STATUS WDA_start(v_PVOID_t pVosContext) ;
478
479VOS_STATUS WDA_NVDownload_Start(v_PVOID_t pVosContext);
480
481/*
482 * FUNCTION: WDA_preStart
483 * Trigger WDA to start CFG download
484 */
485VOS_STATUS WDA_preStart(v_PVOID_t pVosContext) ;
486/*
487 * FUNCTION: WDA_stop
488 * stop WDA
489 */
490VOS_STATUS WDA_stop(v_PVOID_t pVosContext,tANI_U8 reason);
491
492/*
493 * FUNCTION: WDA_close
494 * close WDA context
495 */
496VOS_STATUS WDA_close(v_PVOID_t pVosContext);
497/*
498 * FUNCTION: WDA_shutdown
499 * Shutdown will not close the control transport, added by SSR
500 */
501VOS_STATUS WDA_shutdown(v_PVOID_t pVosContext, wpt_boolean closeTransport);
502
503/*
Madan Mohan Koyyalamudi9d7a27f2012-11-28 15:55:25 -0800504 * FUNCTION: WDA_setNeedShutdown
505 * WDA stop failed or WDA NV Download failed
Jeff Johnsone7245742012-09-05 17:12:55 -0700506 */
Madan Mohan Koyyalamudi9d7a27f2012-11-28 15:55:25 -0800507void WDA_setNeedShutdown(v_PVOID_t pVosContext);
Jeff Johnsone7245742012-09-05 17:12:55 -0700508/*
509 * FUNCTION: WDA_needShutdown
510 * WDA requires a shutdown rather than a close
511 */
512v_BOOL_t WDA_needShutdown(v_PVOID_t pVosContext);
513
514/*
Jeff Johnson295189b2012-06-20 16:38:30 -0700515 * FUNCTION: WDA_McProcessMsg
516 * DAL-AL message processing entry function
517 */
518
519VOS_STATUS WDA_McProcessMsg( v_CONTEXT_t pVosContext, vos_msg_t *pMsg ) ;
520
521/* -----------------------------------------------------------------
522 * WDA data path API's
523 * ----------------------------------------------------------------*/
524/*
525 * FUNCTION: WDA_MgmtDSRegister
526 * Send Message back to PE
527 */
528
529VOS_STATUS WDA_MgmtDSRegister(tWDA_CbContext *pWDA,
530 WDA_DS_TxCompleteCb WDA_TxCompleteCallback,
531 WDA_DS_RxCompleteCb WDA_RxCompleteCallback,
532 WDA_DS_TxFlowControlCb WDA_TxFlowCtrlCallback
533 ) ;
534/*
535 * FUNCTION: WDA_MgmtDSTxPacket
536 * Forward TX management frame to WDI
537 */
538
539VOS_STATUS WDA_TxPacket(tWDA_CbContext *pWDA,
540 void *pFrmBuf,
541 tANI_U16 frmLen,
542 eFrameType frmType,
543 eFrameTxDir txDir,
544 tANI_U8 tid,
545 pWDATxRxCompFunc pCompFunc,
546 void *pData,
547 pWDAAckFnTxComp pAckTxComp,
548 tANI_U8 txFlag);
549
550/*
551 * FUNCTION: WDA_PostMsgApi
552 * API fpr PE to post Message to WDA
553 */
554VOS_STATUS WDA_PostMsgApi(tpAniSirGlobal pMac, tSirMsgQ *pMsg) ;
555
556/* ---------------------------------------------------------
557 * FUNCTION: wdaGetGlobalSystemRole()
558 *
559 * Get the global HAL system role.
560 * ---------------------------------------------------------
561 */
562tBssSystemRole wdaGetGlobalSystemRole(tpAniSirGlobal pMac);
563
564/* maximum wait time for WDA complete event (correct value has to be derived)
565 * for now giving the value 1000 ms */
566#define WDA_WDI_COMPLETION_TIME_OUT 30000 /* in ms */
567
568#define WDA_TL_TX_FRAME_TIMEOUT 10000 /* in msec a very high upper limit of 5,000 msec */
569#define WDA_TL_SUSPEND_TIMEOUT 2000 /* in ms unit */
570
571/*Tag used by WDA to mark a timed out frame*/
572#define WDA_TL_TX_MGMT_TIMED_OUT 0xDEAD
573
574#define WDA_TL_TX_SUSPEND_SUCCESS 0
575#define WDA_TL_TX_SUSPEND_FAILURE 1
576
577// FIXME Temporary value for R33D integaration
578//#define WDA_TL_TX_FRAME_TIMEOUT 20000 /* in msec a very high upper limit */
579
580#endif /* FEATURE_WLAN_INTEGRATED_SOC */
581
582#if defined( FEATURE_WLAN_NON_INTEGRATED_SOC )
583#if !defined( wdaGetGlobalSystemRole )
584#define wdaGetGlobalSystemRole halGetGlobalSystemRole
585#endif
586#endif
587
588/* ---------------------------------------------------------------------------
589
590 RX Meta info access for Integrated SOC
591 RX BD header access for NON Integrated SOC
592
593 These MACRO are for RX frames that are on flat buffers
594
595 ---------------------------------------------------------------------------*/
596
597/* WDA_GET_RX_MAC_HEADER *****************************************************/
598#if defined( FEATURE_WLAN_INTEGRATED_SOC )
599# define WDA_GET_RX_MAC_HEADER(pRxMeta) \
600 (tpSirMacMgmtHdr)( ((WDI_DS_RxMetaInfoType *)(pRxMeta))->mpduHeaderPtr )
601#else
602# define WDA_GET_RX_MAC_HEADER(bdHd) SIR_MAC_BD_TO_MPDUHEADER(bdHd)
603#endif
604
605/* WDA_GET_RX_MPDUHEADER3A ****************************************************/
606#if defined( FEATURE_WLAN_INTEGRATED_SOC )
607# define WDA_GET_RX_MPDUHEADER3A(pRxMeta) \
608 (tpSirMacDataHdr3a)( ((WDI_DS_RxMetaInfoType *)(pRxMeta))->mpduHeaderPtr )
609#else
610# define WDA_GET_RX_MPDUHEADER3A(bdHd) SIR_MAC_BD_TO_MPDUHEADER3A(bdHd)
611#endif
612
613/* WDA_GET_RX_MPDU_HEADER_LEN *************************************************/
614#if defined( FEATURE_WLAN_INTEGRATED_SOC )
615# define WDA_GET_RX_MPDU_HEADER_LEN(pRxMeta) \
616 ( ((WDI_DS_RxMetaInfoType *)(pRxMeta))->mpduHeaderLength )
617#else
618# define WDA_GET_RX_MPDU_HEADER_LEN(bdHd) WLANHAL_RX_BD_GET_MPDU_H_LEN(bdHd)
619#endif
620
621/* WDA_GET_RX_MPDU_LEN ********************************************************/
622#if defined( FEATURE_WLAN_INTEGRATED_SOC )
623# define WDA_GET_RX_MPDU_LEN(pRxMeta) \
624 ( ((WDI_DS_RxMetaInfoType *)(pRxMeta))->mpduLength )
625#else
626# define WDA_GET_RX_MPDU_LEN(bdHd) WLANHAL_RX_BD_GET_MPDU_LEN(bdHd)
627#endif
628
629/* WDA_GET_RX_PAYLOAD_LEN ****************************************************/
630#if defined( FEATURE_WLAN_INTEGRATED_SOC )
631# define WDA_GET_RX_PAYLOAD_LEN(pRxMeta) \
632 ( WDA_GET_RX_MPDU_LEN(pRxMeta) - WDA_GET_RX_MPDU_HEADER_LEN(pRxMeta) )
633#else
634# define WDA_GET_RX_PAYLOAD_LEN(bdHd) SIR_MAC_BD_TO_PAYLOAD_LEN(bdHd)
635#endif
636
637/* WDA_GET_RX_MAC_RATE_IDX ***************************************************/
638#if defined( FEATURE_WLAN_INTEGRATED_SOC )
639# define WDA_GET_RX_MAC_RATE_IDX(pRxMeta) \
640 ( ((WDI_DS_RxMetaInfoType *)(pRxMeta))->rateIndex )
641#else
642# define WDA_GET_RX_MAC_RATE_IDX(bdHd) SIR_MAC_BD_TO_RATE_INDEX(bdHd)
643#endif
644
645/* WDA_GET_RX_MPDU_DATA ******************************************************/
646#if defined( FEATURE_WLAN_INTEGRATED_SOC )
647# define WDA_GET_RX_MPDU_DATA(pRxMeta) \
648 ( ((WDI_DS_RxMetaInfoType *)(pRxMeta))->mpduDataPtr )
649#else
650# define WDA_GET_RX_MPDU_DATA(bdHd) SIR_MAC_BD_TO_MPDUDATA(bdHd)
651#endif
652
653/* WDA_GET_RX_MPDU_DATA_OFFSET ***********************************************/
654// For Integrated SOC: When UMAC receive the packet. BD is already stripped off.
655// Data offset is the MPDU header length
656#if defined( FEATURE_WLAN_INTEGRATED_SOC )
657# define WDA_GET_RX_MPDU_DATA_OFFSET(pRxMeta) WDA_GET_RX_MPDU_HEADER_LEN(pRxMeta)
658#else
659# define WDA_GET_RX_MPDU_DATA_OFFSET(bdHd) \
660 WLANHAL_RX_BD_GET_MPDU_D_OFFSET(bdHd)
661#endif
662
663/* WDA_GET_RX_MPDU_HEADER_OFFSET *********************************************/
664// For Integrated SOC: We UMAC receive the frame,
665// BD is gone and MAC header at offset 0
666#if defined( FEATURE_WLAN_INTEGRATED_SOC )
667# define WDA_GET_RX_MPDU_HEADER_OFFSET(pRxMeta) 0
668#else
669# define WDA_GET_RX_MPDU_HEADER_OFFSET(bdHd) WLANHAL_RX_BD_GET_MPDU_H_OFFSET(bdHd)
670#endif
671
672/* WDA_GET_RX_UNKNOWN_UCAST **************************************************/
673#if defined( FEATURE_WLAN_INTEGRATED_SOC )
674# define WDA_GET_RX_UNKNOWN_UCAST(pRxMeta) \
675 ( ((WDI_DS_RxMetaInfoType *)(pRxMeta))->unknownUcastPkt )
676#else
677# define WDA_GET_RX_UNKNOWN_UCAST(bdHd) SIR_MAC_BD_IS_UNKNOWN_UCAST_FRAME(bdHd)
678#endif
679
680/* WDA_GET_RX_TID ************************************************************/
681#if defined( FEATURE_WLAN_INTEGRATED_SOC )
682# define WDA_GET_RX_TID(pRxMeta) ( ((WDI_DS_RxMetaInfoType *)(pRxMeta))->tid )
683#else
684# define WDA_GET_RX_TID(bdHd) WLANHAL_RX_BD_GET_TID(bdHd)
685#endif
686
687/* WDA_GET_RX_STAID **********************************************************/
688#if defined( FEATURE_WLAN_INTEGRATED_SOC )
689# define WDA_GET_RX_STAID(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->staId)
690#else
691# define WDA_GET_RX_STAID(bdHd) WLANHAL_RX_BD_GET_STA_ID(bdHd)
692#endif
693
694/* WDA_GET_RX_ADDR3_IDX ******************************************************/
695#if defined( FEATURE_WLAN_INTEGRATED_SOC )
696# define WDA_GET_RX_ADDR3_IDX(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->addr3Idx)
697#else
698# define WDA_GET_RX_ADDR3_IDX(bdHd) WLANHAL_RX_BD_GET_ADDR3_IDX(bdHd)
699#endif
700
701/* WDA_GET_RX_CH *************************************************************/
702#if defined( FEATURE_WLAN_INTEGRATED_SOC )
703# define WDA_GET_RX_CH(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->rxChannel)
704#else
705# define WDA_GET_RX_CH(bdHd) SIR_MAC_BD_TO_RX_CHANNEL(bdHd)
706#endif
707
708/* WDA_GET_RX_DPUSIG *********************************************************/
709#if defined( FEATURE_WLAN_INTEGRATED_SOC )
710# define WDA_GET_RX_DPUSIG(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->dpuSig)
711#else
712# define WDA_GET_RX_DPUSIG(bdHd) WLANHAL_RX_BD_GET_DPU_SIG(bdHd)
713#endif
714
715/* WDA_IS_RX_BCAST ***********************************************************/
716#if defined( FEATURE_WLAN_INTEGRATED_SOC )
717# define WDA_IS_RX_BCAST(pRxMeta) \
718 ( (1 == ((WDI_DS_RxMetaInfoType*)(pRxMeta))->bcast) ? VOS_TRUE : VOS_FALSE )
719#else
720# define WDA_IS_RX_BCAST(bdHd) \
721 ( ( 0xFF == WLANHAL_RX_BD_GET_ADDR1_IDX(bdHd)) ? VOS_TRUE : VOS_FALSE )
722#endif
723
724/* WDA_GET_RX_FT_DONE ********************************************************/
725#if defined( FEATURE_WLAN_INTEGRATED_SOC )
726# define WDA_GET_RX_FT_DONE(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->ft)
727#else
728# define WDA_GET_RX_FT_DONE(bdHd) WLANHAL_RX_BD_GET_FT(bdHd)
729#endif
730
731/* WDA_GET_RX_DPU_FEEDBACK **************************************************/
732#if defined( FEATURE_WLAN_INTEGRATED_SOC )
733# define WDA_GET_RX_DPU_FEEDBACK(pRxMeta) \
734 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->dpuFeedback)
735#endif
736
737/* WDA_GET_RX_ASF ************************************************************/
738#if defined( FEATURE_WLAN_INTEGRATED_SOC )
739# define WDA_GET_RX_ASF(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->amsdu_asf)
740#else
741# define WDA_GET_RX_ASF(bdHd) WLANHAL_RX_BD_GET_ASF(bdHd)
742#endif
743
744/* WDA_GET_RX_AEF ************************************************************/
745#if defined( FEATURE_WLAN_INTEGRATED_SOC )
746# define WDA_GET_RX_AEF(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->amsdu_aef)
747#else
748# define WDA_GET_RX_AEF(bdHd) WLANHAL_RX_BD_GET_AEF(bdHd)
749#endif
750
751/* WDA_GET_RX_ESF ************************************************************/
752#if defined( FEATURE_WLAN_INTEGRATED_SOC )
753# define WDA_GET_RX_ESF(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->amsdu_esf)
754#else
755# define WDA_GET_RX_ESF(bdHd) WLANHAL_RX_BD_GET_ESF(bdHd)
756#endif
757
758/* WDA_GET_RX_BEACON_SENT ****************************************************/
759#if defined( FEATURE_WLAN_INTEGRATED_SOC )
760# define WDA_GET_RX_BEACON_SENT(pRxMeta) \
761 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->bsf)
762#else
763# define WDA_GET_RX_BEACON_SENT(bdHd) SIR_MAC_BD_TO_IBSS_BCN_SENT(bdHd)
764#endif
765
766/* WDA_GET_RX_TSF_LATER *****************************************************/
767#if defined( FEATURE_WLAN_INTEGRATED_SOC )
768# define WDA_GET_RX_TSF_LATER(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->rtsf)
769#else
770# define WDA_GET_RX_TSF_LATER(bdHd) SIR_MAC_BD_TO_IBSS_TSF_LATER(bdHd)
771#endif
772
773/* WDA_GET_RX_TYPE ***********************************************************/
774#if defined( FEATURE_WLAN_INTEGRATED_SOC )
775# define WDA_GET_RX_TYPE(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->type)
776#else
777# define WDA_GET_RX_TYPE(bdHd) \
778 ( ( WLANHAL_RX_BD_GET_TYPE_SUBTYPE(bdHd) & 0x30 ) >> 4 )
779#endif
780
781/* WDA_GET_RX_SUBTYPE ********************************************************/
782#if defined( FEATURE_WLAN_INTEGRATED_SOC )
783# define WDA_GET_RX_SUBTYPE(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->subtype)
784#else
785# define WDA_GET_RX_SUBTYPE(bdHd) ( WLANHAL_RX_BD_GET_TYPE_SUBTYPE(bdHd) & 0x0F )
786#endif
787
788/* WDA_GET_RX_TYPE_SUBTYPE ****************************************************/
789#if defined( FEATURE_WLAN_INTEGRATED_SOC )
790# define WDA_GET_RX_TYPE_SUBTYPE(pRxMeta) \
791 ((WDA_GET_RX_TYPE(pRxMeta)<<4)|WDA_GET_RX_SUBTYPE(pRxMeta))
792#else
793# define WDA_GET_RX_TYPE_SUBTYPE(bdHd) WLANHAL_RX_BD_GET_TYPE_SUBTYPE(bdHd)
794#endif
795
796/* WDA_GET_RX_REORDER_OPCODE : For MSDU reorder *******************************/
797#if defined( FEATURE_WLAN_INTEGRATED_SOC )
798# define WDA_GET_RX_REORDER_OPCODE(pRxMeta) \
799 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->ampdu_reorderOpcode)
800#else
801# define WDA_GET_RX_REORDER_OPCODE(bdHd) WLANHAL_RX_BD_GET_BA_OPCODE(bdHd)
802#endif
803
804/* WDA_GET_RX_REORDER_SLOT_IDX : For MSDU reorder ****************************/
805#if defined( FEATURE_WLAN_INTEGRATED_SOC )
806# define WDA_GET_RX_REORDER_SLOT_IDX(pRxMeta) \
807 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->ampdu_reorderSlotIdx)
808#else
809# define WDA_GET_RX_REORDER_SLOT_IDX(bdHd) WLANHAL_RX_BD_GET_BA_SI(bdHd)
810#endif
811
812/* WDA_GET_RX_REORDER_FWD_IDX : For MSDU reorder *****************************/
813#if defined( FEATURE_WLAN_INTEGRATED_SOC )
814# define WDA_GET_RX_REORDER_FWD_IDX(pRxMeta) \
815 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->ampdu_reorderFwdIdx)
816#else
817# define WDA_GET_RX_REORDER_FWD_IDX(bdHd) WLANHAL_RX_BD_GET_BA_FI(bdHd)
818#endif
819
820/* WDA_GET_RX_REORDER_CUR_PKT_SEQ_NO : Fro MSDU reorder **********************/
821#if defined( FEATURE_WLAN_INTEGRATED_SOC )
822# define WDA_GET_RX_REORDER_CUR_PKT_SEQ_NO(pRxMeta) \
823 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->currentPktSeqNo)
824#else
825# define WDA_GET_RX_REORDER_CUR_PKT_SEQ_NO(bdHd) \
826 WLANHAL_RX_BD_GET_BA_CSN(bdHd)
827#endif
828
829/* WDA_IS_RX_LLC_PRESENT *****************************************************/
830#if defined( FEATURE_WLAN_INTEGRATED_SOC )
831# define WDA_IS_RX_LLC_PRESENT(pRxMeta) \
832 ( (0 == ((WDI_DS_RxMetaInfoType*)(pRxMeta))->llcr) ? VOS_TRUE : VOS_FALSE )
833#else
834# define WDA_IS_RX_LLC_PRESENT(bdHd) \
835 ( (0 == (v_U8_t)WLANHAL_RX_BD_GET_LLC(bdHd) ) ? VOS_TRUE : VOS_FALSE )
836#endif
837
838#define WLANWDA_HO_IS_AN_AMPDU 0x4000
839#define WLANWDA_HO_LAST_MPDU_OF_AMPDU 0x400
840
841/* WDA_IS_RX_AN_AMPDU ********************************************************/
842#if defined( FEATURE_WLAN_INTEGRATED_SOC )
843# define WDA_IS_RX_AN_AMPDU(pRxMeta) \
844 ( ((WDI_DS_RxMetaInfoType*)(pRxMeta))->rxpFlags & WLANWDA_HO_IS_AN_AMPDU )
845#else
846# define WDA_IS_RX_AN_AMPDU(bdHd) WLAN_HAL_IS_AN_AMPDU(bdHd)
847#endif
848
849/* WDA_IS_RX_LAST_MPDU *******************************************************/
850#if defined( FEATURE_WLAN_INTEGRATED_SOC )
851# define WDA_IS_RX_LAST_MPDU(pRxMeta) \
852 ( ((WDI_DS_RxMetaInfoType*)(pRxMeta))->rxpFlags & WLANWDA_HO_LAST_MPDU_OF_AMPDU )
853#else
854# define WDA_IS_RX_LAST_MPDU(bdHd) WLAN_HAL_IS_LAST_MPDU(bdHd)
855#endif
856
857/* WDA_GET_RX_TIMESTAMP *****************************************************/
858#if defined( FEATURE_WLAN_INTEGRATED_SOC )
859# define WDA_GET_RX_TIMESTAMP(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->mclkRxTimestamp)
860#else
861# define WDA_GET_RX_TIMESTAMP(bdHd) SIR_MAC_BD_RX_TIMESTAMP(bdHd)
862#endif
863
864/* WDA_IS_RX_IN_SCAN *********************************************************/
865#if defined( FEATURE_WLAN_INTEGRATED_SOC )
866# define WDA_IS_RX_IN_SCAN(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->scan)
867#else
868# define WDA_IS_RX_IN_SCAN(bdHd) SIR_MAC_BD_TO_SCAN_LEARN(bdHd)
869#endif
870
871/* WDA_GET_RX_RSSI_DB ********************************************************/
872#if defined( FEATURE_WLAN_INTEGRATED_SOC )
873// Volans RF
874# define WDA_RSSI_OFFSET 100
875# define WDA_GET_RSSI0_DB(rssi0) (rssi0 - WDA_RSSI_OFFSET)
876# define WDA_GET_RSSI1_DB(rssi0) (0 - WDA_RSSI_OFFSET)
877# define WDA_MAX_OF_TWO(val1, val2) ( ((val1) > (val2)) ? (val1) : (val2))
878# define WDA_GET_RSSI_DB(rssi0) \
879 WDA_MAX_OF_TWO(WDA_GET_RSSI0_DB(rssi0), WDA_GET_RSSI1_DB(rssi0))
880# define WDA_GET_RX_RSSI_DB(pRxMeta) \
881 WDA_GET_RSSI_DB((((WDI_DS_RxMetaInfoType*)(pRxMeta))->rssi0))
882#else
883# define WDA_GET_RX_RSSI_DB(bdHd) SIR_MAC_BD_TO_RSSI_DB(bdHd)
884#endif
885
886/* WDA_GET_RX_SNR ************************************************************/
887#if defined( FEATURE_WLAN_INTEGRATED_SOC )
888# define WDA_GET_RX_SNR(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->snr)
889#else
890# define WDA_GET_RX_SNR(bdHd) WLANHAL_RX_BD_GET_SNR(bdHd)
891#endif
892
893/* WDA_IS_RX_FC **************************************************************/
894// Flow control frames
895#if defined( FEATURE_WLAN_INTEGRATED_SOC )
896/* FIXME WDA should provide the meta info which indicates FC frame
897 In the meantime, use hardcoded FALSE, since we don't support FC yet */
898# define WDA_IS_RX_FC(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->fc)
899#else
900# define WDA_IS_RX_FC(bdHd) WLANHAL_RX_BD_GET_FC(bdHd)
901#endif
902
903/* WDA_GET_RX_FC_VALID_STA_MASK **********************************************/
904#if defined( FEATURE_WLAN_INTEGRATED_SOC )
905# define WDA_GET_RX_FC_VALID_STA_MASK(pRxMeta) \
906 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->fcSTAValidMask)
907#else
908# define WDA_GET_RX_FC_VALID_STA_MASK(bdHd) \
909 WLANHAL_RX_BD_GET_STA_VALID_MASK(bdHd)
910#endif
911
912/* WDA_GET_RX_FC_PWRSAVE_STA_MASK ********************************************/
913#if defined( FEATURE_WLAN_INTEGRATED_SOC )
914# define WDA_GET_RX_FC_PWRSAVE_STA_MASK(pRxMeta) \
915 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->fcSTAPwrSaveStateMask)
916#else
917# define WDA_GET_RX_FC_PWRSAVE_STA_MASK(bdHd) \
918 WLANHAL_RX_BD_GET_STA_PS_STATE(bdHd)
919#endif
920
921/* WDA_GET_RX_FC_STA_THRD_IND_MASK ********************************************/
922#if defined( FEATURE_WLAN_INTEGRATED_SOC )
923# define WDA_GET_RX_FC_STA_THRD_IND_MASK(pRxMeta) \
924 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->fcSTAThreshIndMask)
925#else
926# define WDA_GET_RX_FC_STA_THRD_IND_MASK(bdHd) \
927 WLANHAL_RX_BD_GET_STA_TH_IND(bdHd)
928#endif
929
930/* WDA_GET_RX_FC_FORCED_STA_TX_DISABLED_BITMAP ********************************************/
931# define WDA_GET_RX_FC_STA_TX_DISABLED_BITMAP(pRxMeta) \
932 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->fcStaTxDisabledBitmap)
933
934/* WDA_GET_RX_FC_STA_TXQ_LEN *************************************************/
935#if defined( FEATURE_WLAN_INTEGRATED_SOC )
936# define WDA_GET_RX_FC_STA_TXQ_LEN(pRxMeta, staId) \
937 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->fcSTATxQLen[(staId)])
938#else
939# define WDA_GET_RX_FC_STA_TXQ_LEN(bdHd, staId) \
940 WLANHAL_RX_BD_GET_STA_TXQ_LEN( _pvBDHeader, staId )
941#endif
942
943/* WDA_GET_RX_FC_STA_CUR_TXRATE **********************************************/
944#if defined( FEATURE_WLAN_INTEGRATED_SOC )
945# define WDA_GET_RX_FC_STA_CUR_TXRATE(pRxMeta, staId) \
946 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->fcSTACurTxRate[(staId)])
947#else
948# define WDA_GET_RX_FC_STA_CUR_TXRATE(bdHd, staId) \
949 WLANHAL_RX_BD_GET_STA_CUR_TX_RATE( bdHd, staIdx )
950#endif
951
952/* WDA_GET_RX_REPLAY_COUNT ***************************************************/
953#if defined( FEATURE_WLAN_INTEGRATED_SOC )
954# define WDA_GET_RX_REPLAY_COUNT(pRxMeta) \
955 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->replayCount)
956#endif
957
958/* WDA_GETRSSI0 ***************************************************************/
959#if defined( FEATURE_WLAN_INTEGRATED_SOC )
960# define WDA_GETRSSI0(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->rssi0)
961#else
962# define WDA_GETRSSI0(bdHd) (v_S7_t)(HAL_GET_RSSI0_DB(SIR_MAC_BD_TO_PHY_STATS0(bdHd)))
963#endif
964
965/* WDA_GETRSSI1 ***************************************************************/
966#if defined( FEATURE_WLAN_INTEGRATED_SOC )
967# define WDA_GETRSSI1(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->rssi1)
968#else
969# define WDA_GETRSSI1(bdHd) (v_S7_t)(HAL_GET_RSSI1_DB(SIR_MAC_BD_TO_PHY_STATS0(bdHd)))
970#endif
971
972
973
974/* --------------------------------------------------------------------*/
975
976#if defined( FEATURE_WLAN_INTEGRATED_SOC )
977uint8 WDA_IsWcnssWlanCompiledVersionGreaterThanOrEqual(uint8 major, uint8 minor, uint8 version, uint8 revision);
978uint8 WDA_IsWcnssWlanReportedVersionGreaterThanOrEqual(uint8 major, uint8 minor, uint8 version, uint8 revision);
979
980
981VOS_STATUS WDA_GetWcnssWlanCompiledVersion(v_PVOID_t pvosGCtx,
982 tSirVersionType *pVersion);
983VOS_STATUS WDA_GetWcnssWlanReportedVersion(v_PVOID_t pvosGCtx,
984 tSirVersionType *pVersion);
985VOS_STATUS WDA_GetWcnssSoftwareVersion(v_PVOID_t pvosGCtx,
986 tANI_U8 *pVersion,
987 tANI_U32 versionBufferSize);
988VOS_STATUS WDA_GetWcnssHardwareVersion(v_PVOID_t pvosGCtx,
989 tANI_U8 *pVersion,
990 tANI_U32 versionBufferSize);
991
992VOS_STATUS WDA_SetUapsdAcParamsReq(v_PVOID_t , v_U8_t , tUapsdInfo *);
993VOS_STATUS WDA_ClearUapsdAcParamsReq(v_PVOID_t , v_U8_t , wpt_uint8 );
994VOS_STATUS WDA_SetRSSIThresholdsReq(tpAniSirGlobal , tSirRSSIThresholds *);
995// Just declare the function extern here and save some time.
996extern tSirRetStatus halMmhForwardMBmsg(void*, tSirMbMsg*);
997tSirRetStatus uMacPostCtrlMsg(void* pSirGlobal, tSirMbMsg* pMb);
998#else
999# define uMacPostCtrlMsg(hal, msg) halMmhForwardMBmsg(hal, msg)
1000#endif
1001
1002
1003#if defined(FEATURE_WLAN_NON_INTEGRATED_SOC) || defined(FEATURE_WLAN_INTEGRATED_SOC)
1004#define WDA_MAX_TXPOWER_INVALID HAL_MAX_TXPOWER_INVALID
1005
1006//WDA Messages to HAL messages Mapping
1007#if 0
1008//Required by SME
1009//#define WDA_SIGNAL_BT_EVENT SIR_HAL_SIGNAL_BT_EVENT - this is defined in sirParams.h
1010//#define WDA_BTC_SET_CFG SIR_HAL_BTC_SET_CFG
1011
1012//Required by PE
1013#define WDA_HOST_MSG_START SIR_HAL_HOST_MSG_START
1014#define WDA_INITIAL_CAL_FAILED_NTF SIR_HAL_INITIAL_CAL_FAILED_NTF
1015#define WDA_SHUTDOWN_REQ SIR_HAL_SHUTDOWN_REQ
1016#define WDA_SHUTDOWN_CNF SIR_HAL_SHUTDOWN_CNF
1017#define WDA_RADIO_ON_OFF_IND SIR_HAL_RADIO_ON_OFF_IND
1018#define WDA_RESET_CNF SIR_HAL_RESET_CNF
1019#define WDA_SetRegDomain \
Madan Mohan Koyyalamudic0d1b3f2012-11-13 10:41:07 -08001020 (eHalStatus halPhySetRegDomain(tHalHandle hHal, eRegDomainId regDomain))
Jeff Johnson295189b2012-06-20 16:38:30 -07001021#endif
1022
1023#define WDA_APP_SETUP_NTF SIR_HAL_APP_SETUP_NTF
1024#define WDA_NIC_OPER_NTF SIR_HAL_NIC_OPER_NTF
1025#define WDA_INIT_START_REQ SIR_HAL_INIT_START_REQ
1026#define WDA_RESET_REQ SIR_HAL_RESET_REQ
1027#define WDA_HDD_ADDBA_REQ SIR_HAL_HDD_ADDBA_REQ
1028#define WDA_HDD_ADDBA_RSP SIR_HAL_HDD_ADDBA_RSP
1029#define WDA_DELETEBA_IND SIR_HAL_DELETEBA_IND
1030#define WDA_BA_FAIL_IND SIR_HAL_BA_FAIL_IND
1031#define WDA_TL_FLUSH_AC_REQ SIR_TL_HAL_FLUSH_AC_REQ
1032#define WDA_TL_FLUSH_AC_RSP SIR_HAL_TL_FLUSH_AC_RSP
1033
1034#define WDA_MSG_TYPES_BEGIN SIR_HAL_MSG_TYPES_BEGIN
1035#define WDA_ITC_MSG_TYPES_BEGIN SIR_HAL_ITC_MSG_TYPES_BEGIN
1036#define WDA_RADAR_DETECTED_IND SIR_HAL_RADAR_DETECTED_IND
1037#define WDA_WDT_KAM_RSP SIR_HAL_WDT_KAM_RSP
1038#define WDA_TIMER_TEMP_MEAS_REQ SIR_HAL_TIMER_TEMP_MEAS_REQ
1039#define WDA_TIMER_PERIODIC_STATS_COLLECT_REQ SIR_HAL_TIMER_PERIODIC_STATS_COLLECT_REQ
1040#define WDA_CAL_REQ_NTF SIR_HAL_CAL_REQ_NTF
1041#define WDA_MNT_OPEN_TPC_TEMP_MEAS_REQ SIR_HAL_MNT_OPEN_TPC_TEMP_MEAS_REQ
1042#define WDA_CCA_MONITOR_INTERVAL_TO SIR_HAL_CCA_MONITOR_INTERVAL_TO
1043#define WDA_CCA_MONITOR_DURATION_TO SIR_HAL_CCA_MONITOR_DURATION_TO
1044#define WDA_CCA_MONITOR_START SIR_HAL_CCA_MONITOR_START
1045#define WDA_CCA_MONITOR_STOP SIR_HAL_CCA_MONITOR_STOP
1046#define WDA_CCA_CHANGE_MODE SIR_HAL_CCA_CHANGE_MODE
1047#define WDA_TIMER_WRAP_AROUND_STATS_COLLECT_REQ SIR_HAL_TIMER_WRAP_AROUND_STATS_COLLECT_REQ
1048
1049/*
1050 * New Taurus related messages
1051 */
1052#define WDA_ADD_STA_REQ SIR_HAL_ADD_STA_REQ
1053#define WDA_ADD_STA_RSP SIR_HAL_ADD_STA_RSP
1054#define WDA_ADD_STA_SELF_RSP SIR_HAL_ADD_STA_SELF_RSP
1055#define WDA_DEL_STA_SELF_RSP SIR_HAL_DEL_STA_SELF_RSP
1056#define WDA_DELETE_STA_REQ SIR_HAL_DELETE_STA_REQ
1057#define WDA_DELETE_STA_RSP SIR_HAL_DELETE_STA_RSP
1058#define WDA_ADD_BSS_REQ SIR_HAL_ADD_BSS_REQ
1059#define WDA_ADD_BSS_RSP SIR_HAL_ADD_BSS_RSP
1060#define WDA_DELETE_BSS_REQ SIR_HAL_DELETE_BSS_REQ
1061#define WDA_DELETE_BSS_RSP SIR_HAL_DELETE_BSS_RSP
1062#define WDA_INIT_SCAN_REQ SIR_HAL_INIT_SCAN_REQ
1063#define WDA_INIT_SCAN_RSP SIR_HAL_INIT_SCAN_RSP
1064#define WDA_START_SCAN_REQ SIR_HAL_START_SCAN_REQ
1065#define WDA_START_SCAN_RSP SIR_HAL_START_SCAN_RSP
1066#define WDA_END_SCAN_REQ SIR_HAL_END_SCAN_REQ
1067#define WDA_END_SCAN_RSP SIR_HAL_END_SCAN_RSP
1068#define WDA_FINISH_SCAN_REQ SIR_HAL_FINISH_SCAN_REQ
1069#define WDA_FINISH_SCAN_RSP SIR_HAL_FINISH_SCAN_RSP
1070#define WDA_SEND_BEACON_REQ SIR_HAL_SEND_BEACON_REQ
1071#define WDA_SEND_BEACON_RSP SIR_HAL_SEND_BEACON_RSP
1072
1073#define WDA_INIT_CFG_REQ SIR_HAL_INIT_CFG_REQ
1074#define WDA_INIT_CFG_RSP SIR_HAL_INIT_CFG_RSP
1075
1076#define WDA_INIT_WM_CFG_REQ SIR_HAL_INIT_WM_CFG_REQ
1077#define WDA_INIT_WM_CFG_RSP SIR_HAL_INIT_WM_CFG_RSP
1078
1079#define WDA_SET_BSSKEY_REQ SIR_HAL_SET_BSSKEY_REQ
1080#define WDA_SET_BSSKEY_RSP SIR_HAL_SET_BSSKEY_RSP
1081#define WDA_SET_STAKEY_REQ SIR_HAL_SET_STAKEY_REQ
1082#define WDA_SET_STAKEY_RSP SIR_HAL_SET_STAKEY_RSP
1083#define WDA_DPU_STATS_REQ SIR_HAL_DPU_STATS_REQ
1084#define WDA_DPU_STATS_RSP SIR_HAL_DPU_STATS_RSP
1085#define WDA_GET_DPUINFO_REQ SIR_HAL_GET_DPUINFO_REQ
1086#define WDA_GET_DPUINFO_RSP SIR_HAL_GET_DPUINFO_RSP
1087
1088#define WDA_UPDATE_EDCA_PROFILE_IND SIR_HAL_UPDATE_EDCA_PROFILE_IND
1089
1090#define WDA_UPDATE_STARATEINFO_REQ SIR_HAL_UPDATE_STARATEINFO_REQ
1091#define WDA_UPDATE_STARATEINFO_RSP SIR_HAL_UPDATE_STARATEINFO_RSP
1092
1093#define WDA_UPDATE_BEACON_IND SIR_HAL_UPDATE_BEACON_IND
1094#define WDA_UPDATE_CF_IND SIR_HAL_UPDATE_CF_IND
1095#define WDA_CHNL_SWITCH_REQ SIR_HAL_CHNL_SWITCH_REQ
1096#define WDA_ADD_TS_REQ SIR_HAL_ADD_TS_REQ
1097#define WDA_DEL_TS_REQ SIR_HAL_DEL_TS_REQ
1098#define WDA_SOFTMAC_TXSTAT_REPORT SIR_HAL_SOFTMAC_TXSTAT_REPORT
1099
1100#define WDA_MBOX_SENDMSG_COMPLETE_IND SIR_HAL_MBOX_SENDMSG_COMPLETE_IND
1101#define WDA_EXIT_BMPS_REQ SIR_HAL_EXIT_BMPS_REQ
1102#define WDA_EXIT_BMPS_RSP SIR_HAL_EXIT_BMPS_RSP
1103#define WDA_EXIT_BMPS_IND SIR_HAL_EXIT_BMPS_IND
1104#define WDA_ENTER_BMPS_REQ SIR_HAL_ENTER_BMPS_REQ
1105#define WDA_ENTER_BMPS_RSP SIR_HAL_ENTER_BMPS_RSP
1106#define WDA_BMPS_STATUS_IND SIR_HAL_BMPS_STATUS_IND
1107#define WDA_MISSED_BEACON_IND SIR_HAL_MISSED_BEACON_IND
1108
1109#define WDA_CFG_RXP_FILTER_REQ SIR_HAL_CFG_RXP_FILTER_REQ
1110#define WDA_CFG_RXP_FILTER_RSP SIR_HAL_CFG_RXP_FILTER_RSP
1111
1112#define WDA_SWITCH_CHANNEL_RSP SIR_HAL_SWITCH_CHANNEL_RSP
1113#define WDA_P2P_NOA_ATTR_IND SIR_HAL_P2P_NOA_ATTR_IND
Viral Modid86bde22012-12-10 13:09:21 -08001114#define WDA_P2P_NOA_START_IND SIR_HAL_P2P_NOA_START_IND
Jeff Johnson295189b2012-06-20 16:38:30 -07001115#define WDA_PWR_SAVE_CFG SIR_HAL_PWR_SAVE_CFG
1116
1117#define WDA_REGISTER_PE_CALLBACK SIR_HAL_REGISTER_PE_CALLBACK
1118#define WDA_SOFTMAC_MEM_READREQUEST SIR_HAL_SOFTMAC_MEM_READREQUEST
1119#define WDA_SOFTMAC_MEM_WRITEREQUEST SIR_HAL_SOFTMAC_MEM_WRITEREQUEST
1120
1121#define WDA_SOFTMAC_MEM_READRESPONSE SIR_HAL_SOFTMAC_MEM_READRESPONSE
1122#define WDA_SOFTMAC_BULKREGWRITE_CONFIRM SIR_HAL_SOFTMAC_BULKREGWRITE_CONFIRM
1123#define WDA_SOFTMAC_BULKREGREAD_RESPONSE SIR_HAL_SOFTMAC_BULKREGREAD_RESPONSE
1124#define WDA_SOFTMAC_HOSTMESG_MSGPROCESSRESULT SIR_HAL_SOFTMAC_HOSTMESG_MSGPROCESSRESULT
1125
1126#define WDA_ADDBA_REQ SIR_HAL_ADDBA_REQ
1127#define WDA_ADDBA_RSP SIR_HAL_ADDBA_RSP
1128#define WDA_DELBA_IND SIR_HAL_DELBA_IND
1129#define WDA_DEL_BA_IND SIR_HAL_DEL_BA_IND
1130#define WDA_MIC_FAILURE_IND SIR_HAL_MIC_FAILURE_IND
1131
1132//message from sme to initiate delete block ack session.
1133#define WDA_DELBA_REQ SIR_HAL_DELBA_REQ
1134#define WDA_IBSS_STA_ADD SIR_HAL_IBSS_STA_ADD
1135#define WDA_TIMER_ADJUST_ADAPTIVE_THRESHOLD_IND SIR_HAL_TIMER_ADJUST_ADAPTIVE_THRESHOLD_IND
1136#define WDA_SET_LINK_STATE SIR_HAL_SET_LINK_STATE
1137#define WDA_SET_LINK_STATE_RSP SIR_HAL_SET_LINK_STATE_RSP
1138#define WDA_ENTER_IMPS_REQ SIR_HAL_ENTER_IMPS_REQ
1139#define WDA_ENTER_IMPS_RSP SIR_HAL_ENTER_IMPS_RSP
1140#define WDA_EXIT_IMPS_RSP SIR_HAL_EXIT_IMPS_RSP
1141#define WDA_EXIT_IMPS_REQ SIR_HAL_EXIT_IMPS_REQ
1142#define WDA_SOFTMAC_HOSTMESG_PS_STATUS_IND SIR_HAL_SOFTMAC_HOSTMESG_PS_STATUS_IND
1143#define WDA_POSTPONE_ENTER_IMPS_RSP SIR_HAL_POSTPONE_ENTER_IMPS_RSP
1144#define WDA_STA_STAT_REQ SIR_HAL_STA_STAT_REQ
1145#define WDA_GLOBAL_STAT_REQ SIR_HAL_GLOBAL_STAT_REQ
1146#define WDA_AGGR_STAT_REQ SIR_HAL_AGGR_STAT_REQ
1147#define WDA_STA_STAT_RSP SIR_HAL_STA_STAT_RSP
1148#define WDA_GLOBAL_STAT_RSP SIR_HAL_GLOBAL_STAT_RSP
1149#define WDA_AGGR_STAT_RSP SIR_HAL_AGGR_STAT_RSP
1150#define WDA_STAT_SUMM_REQ SIR_HAL_STAT_SUMM_REQ
1151#define WDA_STAT_SUMM_RSP SIR_HAL_STAT_SUMM_RSP
1152#define WDA_REMOVE_BSSKEY_REQ SIR_HAL_REMOVE_BSSKEY_REQ
1153#define WDA_REMOVE_BSSKEY_RSP SIR_HAL_REMOVE_BSSKEY_RSP
1154#define WDA_REMOVE_STAKEY_REQ SIR_HAL_REMOVE_STAKEY_REQ
1155#define WDA_REMOVE_STAKEY_RSP SIR_HAL_REMOVE_STAKEY_RSP
1156#define WDA_SET_STA_BCASTKEY_REQ SIR_HAL_SET_STA_BCASTKEY_REQ
1157#define WDA_SET_STA_BCASTKEY_RSP SIR_HAL_SET_STA_BCASTKEY_RSP
1158#define WDA_REMOVE_STA_BCASTKEY_REQ SIR_HAL_REMOVE_STA_BCASTKEY_REQ
1159#define WDA_REMOVE_STA_BCASTKEY_RSP SIR_HAL_REMOVE_STA_BCASTKEY_RSP
1160#define WDA_ADD_TS_RSP SIR_HAL_ADD_TS_RSP
1161#define WDA_DPU_MIC_ERROR SIR_HAL_DPU_MIC_ERROR
1162#define WDA_TIMER_BA_ACTIVITY_REQ SIR_HAL_TIMER_BA_ACTIVITY_REQ
1163#define WDA_TIMER_CHIP_MONITOR_TIMEOUT SIR_HAL_TIMER_CHIP_MONITOR_TIMEOUT
1164#define WDA_TIMER_TRAFFIC_ACTIVITY_REQ SIR_HAL_TIMER_TRAFFIC_ACTIVITY_REQ
1165#define WDA_TIMER_ADC_RSSI_STATS SIR_HAL_TIMER_ADC_RSSI_STATS
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08001166#define WDA_TIMER_TRAFFIC_STATS_IND SIR_HAL_TRAFFIC_STATS_IND
1167
Jeff Johnson295189b2012-06-20 16:38:30 -07001168
1169#ifdef FEATURE_WLAN_CCX
1170#define WDA_TSM_STATS_REQ SIR_HAL_TSM_STATS_REQ
1171#define WDA_TSM_STATS_RSP SIR_HAL_TSM_STATS_RSP
1172#endif
1173#ifdef WLAN_SOFTAP_FEATURE
1174#define WDA_UPDATE_PROBE_RSP_IE_BITMAP_IND SIR_HAL_UPDATE_PROBE_RSP_IE_BITMAP_IND
1175#define WDA_UPDATE_UAPSD_IND SIR_HAL_UPDATE_UAPSD_IND
1176#endif
1177
1178#define WDA_SET_MIMOPS_REQ SIR_HAL_SET_MIMOPS_REQ
1179#define WDA_SET_MIMOPS_RSP SIR_HAL_SET_MIMOPS_RSP
1180#define WDA_SYS_READY_IND SIR_HAL_SYS_READY_IND
1181#define WDA_SET_TX_POWER_REQ SIR_HAL_SET_TX_POWER_REQ
1182#define WDA_SET_TX_POWER_RSP SIR_HAL_SET_TX_POWER_RSP
1183#define WDA_GET_TX_POWER_REQ SIR_HAL_GET_TX_POWER_REQ
1184#define WDA_GET_TX_POWER_RSP SIR_HAL_GET_TX_POWER_RSP
1185#define WDA_GET_NOISE_REQ SIR_HAL_GET_NOISE_REQ
1186#define WDA_GET_NOISE_RSP SIR_HAL_GET_NOISE_RSP
1187#define WDA_SET_TX_PER_TRACKING_REQ SIR_HAL_SET_TX_PER_TRACKING_REQ
1188
1189/* Messages to support transmit_halt and transmit_resume */
1190#define WDA_TRANSMISSION_CONTROL_IND SIR_HAL_TRANSMISSION_CONTROL_IND
1191/* Indication from LIM to HAL to Initialize radar interrupt */
1192#define WDA_INIT_RADAR_IND SIR_HAL_INIT_RADAR_IND
1193/* Messages to support transmit_halt and transmit_resume */
1194
1195
1196#define WDA_BEACON_PRE_IND SIR_HAL_BEACON_PRE_IND
1197#define WDA_ENTER_UAPSD_REQ SIR_HAL_ENTER_UAPSD_REQ
1198#define WDA_ENTER_UAPSD_RSP SIR_HAL_ENTER_UAPSD_RSP
1199#define WDA_EXIT_UAPSD_REQ SIR_HAL_EXIT_UAPSD_REQ
1200#define WDA_EXIT_UAPSD_RSP SIR_HAL_EXIT_UAPSD_RSP
1201#define WDA_LOW_RSSI_IND SIR_HAL_LOW_RSSI_IND
1202#define WDA_BEACON_FILTER_IND SIR_HAL_BEACON_FILTER_IND
1203/// PE <-> HAL WOWL messages
1204#define WDA_WOWL_ADD_BCAST_PTRN SIR_HAL_WOWL_ADD_BCAST_PTRN
1205#define WDA_WOWL_DEL_BCAST_PTRN SIR_HAL_WOWL_DEL_BCAST_PTRN
1206#define WDA_WOWL_ENTER_REQ SIR_HAL_WOWL_ENTER_REQ
1207#define WDA_WOWL_ENTER_RSP SIR_HAL_WOWL_ENTER_RSP
1208#define WDA_WOWL_EXIT_REQ SIR_HAL_WOWL_EXIT_REQ
1209#define WDA_WOWL_EXIT_RSP SIR_HAL_WOWL_EXIT_RSP
1210#define WDA_TX_COMPLETE_IND SIR_HAL_TX_COMPLETE_IND
1211#define WDA_TIMER_RA_COLLECT_AND_ADAPT SIR_HAL_TIMER_RA_COLLECT_AND_ADAPT
1212/// PE <-> HAL statistics messages
1213#define WDA_GET_STATISTICS_REQ SIR_HAL_GET_STATISTICS_REQ
1214#define WDA_GET_STATISTICS_RSP SIR_HAL_GET_STATISTICS_RSP
1215#define WDA_SET_KEY_DONE SIR_HAL_SET_KEY_DONE
1216
1217/// PE <-> HAL BTC messages
1218#define WDA_BTC_SET_CFG SIR_HAL_BTC_SET_CFG
1219#define WDA_SIGNAL_BT_EVENT SIR_HAL_SIGNAL_BT_EVENT
1220#define WDA_HANDLE_FW_MBOX_RSP SIR_HAL_HANDLE_FW_MBOX_RSP
1221#define WDA_UPDATE_PROBE_RSP_TEMPLATE_IND SIR_HAL_UPDATE_PROBE_RSP_TEMPLATE_IND
1222#define WDA_SIGNAL_BTAMP_EVENT SIR_HAL_SIGNAL_BTAMP_EVENT
1223
1224#ifdef ANI_CHIPSET_VOLANS
Jeff Johnsone7245742012-09-05 17:12:55 -07001225#ifdef FEATURE_OEM_DATA_SUPPORT
1226/* PE <-> HAL OEM_DATA RELATED MESSAGES */
1227#define WDA_START_OEM_DATA_REQ SIR_HAL_START_OEM_DATA_REQ
1228#define WDA_START_OEM_DATA_RSP SIR_HAL_START_OEM_DATA_RSP
1229#define WDA_FINISH_OEM_DATA_REQ SIR_HAL_FINISH_OEM_DATA_REQ
1230#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07001231#endif
1232
1233#define WDA_SET_MAX_TX_POWER_REQ SIR_HAL_SET_MAX_TX_POWER_REQ
1234#define WDA_SET_MAX_TX_POWER_RSP SIR_HAL_SET_MAX_TX_POWER_RSP
1235
1236#define WDA_SEND_MSG_COMPLETE SIR_HAL_SEND_MSG_COMPLETE
1237
1238/// PE <-> HAL Host Offload message
1239#define WDA_SET_HOST_OFFLOAD SIR_HAL_SET_HOST_OFFLOAD
1240
1241/// PE <-> HAL Keep Alive message
1242#define WDA_SET_KEEP_ALIVE SIR_HAL_SET_KEEP_ALIVE
1243
1244#ifdef WLAN_NS_OFFLOAD
1245#define WDA_SET_NS_OFFLOAD SIR_HAL_SET_NS_OFFLOAD
1246#endif //WLAN_NS_OFFLOAD
1247#define WDA_ADD_STA_SELF_REQ SIR_HAL_ADD_STA_SELF_REQ
1248#define WDA_DEL_STA_SELF_REQ SIR_HAL_DEL_STA_SELF_REQ
1249
1250#ifdef WLAN_FEATURE_P2P
1251#define WDA_SET_P2P_GO_NOA_REQ SIR_HAL_SET_P2P_GO_NOA_REQ
1252#endif
1253
Madan Mohan Koyyalamudia53c4dc2012-11-13 10:35:42 -08001254#define WDA_TX_COMPLETE_TIMEOUT_IND (WDA_MSG_TYPES_END - 1)
Jeff Johnson295189b2012-06-20 16:38:30 -07001255#define WDA_WLAN_SUSPEND_IND SIR_HAL_WLAN_SUSPEND_IND
1256#define WDA_WLAN_RESUME_REQ SIR_HAL_WLAN_RESUME_REQ
1257#define WDA_MSG_TYPES_END SIR_HAL_MSG_TYPES_END
1258
Jeff Johnson295189b2012-06-20 16:38:30 -07001259#define WDA_MMH_TXMB_READY_EVT SIR_HAL_MMH_TXMB_READY_EVT
1260#define WDA_MMH_RXMB_DONE_EVT SIR_HAL_MMH_RXMB_DONE_EVT
1261#define WDA_MMH_MSGQ_NE_EVT SIR_HAL_MMH_MSGQ_NE_EVT
1262#endif
1263
1264#ifdef WLAN_FEATURE_VOWIFI_11R
1265#define WDA_AGGR_QOS_REQ SIR_HAL_AGGR_QOS_REQ
1266#define WDA_AGGR_QOS_RSP SIR_HAL_AGGR_QOS_RSP
1267#endif /* WLAN_FEATURE_VOWIFI_11R */
1268
1269#ifdef ANI_MANF_DIAG
1270/* FTM CMD MSG */
1271#define WDA_FTM_CMD_REQ SIR_PTT_MSG_TYPES_BEGIN
1272#define WDA_FTM_CMD_RSP SIR_PTT_MSG_TYPES_END
1273#endif /* ANI_MANF_DIAG */
1274
1275#ifdef FEATURE_WLAN_SCAN_PNO
1276/*Requests sent to lower driver*/
1277#define WDA_SET_PNO_REQ SIR_HAL_SET_PNO_REQ
1278#define WDA_SET_RSSI_FILTER_REQ SIR_HAL_SET_RSSI_FILTER_REQ
1279#define WDA_UPDATE_SCAN_PARAMS_REQ SIR_HAL_UPDATE_SCAN_PARAMS
1280
1281/*Indication comming from lower driver*/
1282#define WDA_SET_PNO_CHANGED_IND SIR_HAL_SET_PNO_CHANGED_IND
1283#endif // FEATURE_WLAN_SCAN_PNO
1284
1285#ifdef WLAN_WAKEUP_EVENTS
1286#define WDA_WAKE_REASON_IND SIR_HAL_WAKE_REASON_IND
1287#endif // WLAN_WAKEUP_EVENTS
1288
1289#ifdef WLAN_FEATURE_PACKET_FILTERING
1290#define WDA_8023_MULTICAST_LIST_REQ SIR_HAL_8023_MULTICAST_LIST_REQ
1291#define WDA_RECEIVE_FILTER_SET_FILTER_REQ SIR_HAL_RECEIVE_FILTER_SET_FILTER_REQ
1292#define WDA_PACKET_COALESCING_FILTER_MATCH_COUNT_REQ SIR_HAL_PACKET_COALESCING_FILTER_MATCH_COUNT_REQ
1293#define WDA_PACKET_COALESCING_FILTER_MATCH_COUNT_RSP SIR_HAL_PACKET_COALESCING_FILTER_MATCH_COUNT_RSP
1294#define WDA_RECEIVE_FILTER_CLEAR_FILTER_REQ SIR_HAL_RECEIVE_FILTER_CLEAR_FILTER_REQ
1295#endif // WLAN_FEATURE_PACKET_FILTERING
1296
1297#define WDA_SET_POWER_PARAMS_REQ SIR_HAL_SET_POWER_PARAMS_REQ
1298
1299#ifdef WLAN_FEATURE_GTK_OFFLOAD
1300#define WDA_GTK_OFFLOAD_REQ SIR_HAL_GTK_OFFLOAD_REQ
1301#define WDA_GTK_OFFLOAD_GETINFO_REQ SIR_HAL_GTK_OFFLOAD_GETINFO_REQ
1302#define WDA_GTK_OFFLOAD_GETINFO_RSP SIR_HAL_GTK_OFFLOAD_GETINFO_RSP
1303#endif //WLAN_FEATURE_GTK_OFFLOAD
1304
1305#define WDA_SET_TM_LEVEL_REQ SIR_HAL_SET_TM_LEVEL_REQ
1306
Mohit Khanna4a70d262012-09-11 16:30:12 -07001307#ifdef WLAN_FEATURE_11AC
1308#define WDA_UPDATE_OP_MODE SIR_HAL_UPDATE_OP_MODE
1309#endif
1310
Jeff Johnson295189b2012-06-20 16:38:30 -07001311#ifdef FEATURE_WLAN_INTEGRATED_SOC
1312tSirRetStatus wdaPostCtrlMsg(tpAniSirGlobal pMac, tSirMsgQ *pMsg);
1313#endif
1314
1315#if defined(FEATURE_WLAN_NON_INTEGRATED_SOC)
1316#define VOS_MODULE_ID_WDA VOS_MODULE_ID_HAL
1317
1318//Required by TL
1319
1320//WDA Functions to HAL functions Mapping
1321//Required by SME and PE
1322#define WDA_SetRegDomain halPhySetRegDomain
1323#define wdaPostCtrlMsg halPostMsgApi
1324#else
1325eHalStatus WDA_SetRegDomain(void * clientCtxt, v_REGDOMAIN_t regId);
1326#endif //FEATURE_WLAN_NON_INTEGRATED_SOC
1327
1328#define HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME 0x40 // Bit 6 will be used to control BD rate for Management frames
1329
1330#if defined( FEATURE_WLAN_INTEGRATED_SOC )
1331#define halTxFrame(hHal, pFrmBuf, frmLen, frmType, txDir, tid, pCompFunc, pData, txFlag) \
1332 (eHalStatus)( WDA_TxPacket(\
1333 vos_get_context(VOS_MODULE_ID_WDA, vos_get_global_context(VOS_MODULE_ID_WDA, (hHal))),\
1334 (pFrmBuf),\
1335 (frmLen),\
1336 (frmType),\
1337 (txDir),\
1338 (tid),\
1339 (pCompFunc),\
1340 (pData),\
1341 (NULL), \
1342 (txFlag)) )
1343
1344#define halTxFrameWithTxComplete(hHal, pFrmBuf, frmLen, frmType, txDir, tid, pCompFunc, pData, pCBackFnTxComp, txFlag) \
1345 (eHalStatus)( WDA_TxPacket(\
1346 vos_get_context(VOS_MODULE_ID_WDA, vos_get_global_context(VOS_MODULE_ID_WDA, (hHal))),\
1347 (pFrmBuf),\
1348 (frmLen),\
1349 (frmType),\
1350 (txDir),\
1351 (tid),\
1352 (pCompFunc),\
1353 (pData),\
1354 (pCBackFnTxComp), \
1355 (txFlag)) )
1356#endif
1357
1358/* -----------------------------------------------------------------
1359 WDA data path API's for TL
1360 -------------------------------------------------------------------*/
1361
1362#if defined( FEATURE_WLAN_INTEGRATED_SOC )
1363v_BOOL_t WDA_IsHwFrameTxTranslationCapable(v_PVOID_t pVosGCtx,
1364 tANI_U8 staIdx);
1365#else
1366# define WDA_IsHwFrameTxTranslationCapable(vosGCtx, staId) \
1367 WLANHAL_IsHwFrameTxTranslationCapable(vosGCtx, staId)
1368#endif
1369
1370#if defined( FEATURE_WLAN_INTEGRATED_SOC )
1371# define WDA_EnableUapsdAcParams(vosGCtx, staId, uapsdInfo) \
1372 WDA_SetUapsdAcParamsReq(vosGCtx, staId, uapsdInfo)
1373#else
1374# define WDA_EnableUapsdAcParams(vosGCtx, staId, uapsdInfo) \
1375 WLANHAL_EnableUapsdAcParams(vosGCtx, staId, uapsdInfo)
1376#endif
1377
1378#if defined( FEATURE_WLAN_INTEGRATED_SOC )
1379# define WDA_DisableUapsdAcParams(vosGCtx, staId, ac) \
1380 WDA_ClearUapsdAcParamsReq(vosGCtx, staId, ac)
1381#else
1382# define WDA_DisableUapsdAcParams(vosGCtx, staId, ac) \
1383 WLANHAL_DisableUapsdAcParams(vosGCtx, staId, ac)
1384#endif
1385
1386#if defined( FEATURE_WLAN_INTEGRATED_SOC )
1387# define WDA_SetRSSIThresholds(pMac, pThresholds) \
1388 WDA_SetRSSIThresholdsReq(pMac, pThresholds)
1389#else
1390# define WDA_SetRSSIThresholds(pMac, pThresholds) \
1391 halPS_SetRSSIThresholds(pMac, pThresholds)
1392#endif
1393
1394#if defined( FEATURE_WLAN_INTEGRATED_SOC )
1395#define WDA_UpdateRssiBmps(pvosGCtx, staId, rssi) \
Madan Mohan Koyyalamudia53c4dc2012-11-13 10:35:42 -08001396 WLANTL_UpdateRssiBmps(pvosGCtx, staId, rssi)
Jeff Johnson295189b2012-06-20 16:38:30 -07001397#endif
1398
1399#ifdef WLAN_PERF
1400/*==========================================================================
1401 FUNCTION WDA_TLI_FastHwFwdDataFrame
1402
1403 DESCRIPTION
1404 For NON integrated SOC, this function is called by TL.
1405
1406 Fast path function to quickly forward a data frame if HAL determines BD
1407 signature computed here matches the signature inside current VOSS packet.
1408 If there is a match, HAL and TL fills in the swapped packet length into
1409 BD header and DxE header, respectively. Otherwise, packet goes back to
1410 normal (slow) path and a new BD signature would be tagged into BD in this
1411 VOSS packet later by the WLANHAL_FillTxBd() function.
1412
1413 TODO For integrated SOC, this function does nothing yet. Pima SLM/HAL
1414 should provide the equivelant functionality.
1415
1416 DEPENDENCIES
1417
1418 PARAMETERS
1419
1420 IN
1421 pvosGCtx VOS context
1422 vosDataBuff Ptr to VOSS packet
1423 pMetaInfo For getting frame's TID
1424 pStaInfo For checking STA type
1425
1426 OUT
1427 pvosStatus returned status
1428 puFastFwdOK Flag to indicate whether frame could be fast forwarded
1429
1430 RETURN VALUE
1431 No return.
1432
1433 SIDE EFFECTS
1434
1435============================================================================*/
1436void WDA_TLI_FastHwFwdDataFrame
1437(
1438 v_PVOID_t pvosGCtx,
1439 vos_pkt_t* vosDataBuff,
1440 VOS_STATUS* pvosStatus,
1441 v_U32_t* puFastFwdOK,
1442 WLANTL_MetaInfoType* pMetaInfo,
1443 WLAN_STADescType* pStaInfo
1444);
1445#endif /* WLAN_PERF */
1446
1447/*==========================================================================
1448 FUNCTION WDA_DS_Register
1449
1450 DESCRIPTION
1451 Register TL client to WDA. This function registers TL RX/TX functions
1452 to WDI by calling WDI_DS_Register.
1453
1454
1455 For NON integrated SOC, this function calls WLANBAL_RegTlCbFunctions
1456 to register TL's RX/TX functions to BAL
1457
1458 TODO
1459 For Prima, pfnResourceCB gets called in WDTS_OOResourceNotification.
1460 The uCount parameter is AC mask. It should be redefined to use the
1461 same resource callback function.
1462
1463 DEPENDENCIES
1464
1465 PARAMETERS
1466
1467 IN
1468 pvosGCtx VOS context
1469 pfnTxCompleteCallback TX complete callback upon TX completion
1470 pfnRxPacketCallback RX callback
1471 pfnResourceCB gets called when updating TX PDU number
1472 uResTheshold minimum TX PDU size for a packet
1473 pCallbackContext WDI calls callback function with it
1474 VOS global context pointer
1475 OUT
1476 uAvailableTxBuf available TX PDU numbder.
1477 BAL returns it for NON integrated SOC
1478
1479 RETURN VALUE
1480 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1481 VOS_STATUS_SUCCESS: Everything is good :)
1482
1483 SIDE EFFECTS
1484
1485============================================================================*/
1486VOS_STATUS
1487WDA_DS_Register
1488(
1489 v_PVOID_t pvosGCtx,
1490 WDA_DS_TxCompleteCallback pfnTxCompleteCallback,
1491 WDA_DS_RxPacketCallback pfnRxPacketCallback,
1492 WDA_DS_TxPacketCallback pfnTxPacketCallback,
1493 WDA_DS_ResourceCB pfnResourceCB,
1494 v_U32_t uResTheshold,
1495 v_PVOID_t pCallbackContext,
1496 v_U32_t *uAvailableTxBuf
1497);
1498
1499/*==========================================================================
1500 FUNCTION WDA_DS_StartXmit
1501
1502 DESCRIPTION
1503 Serialize TX transmit reques to TX thread.
1504
1505 TODO This sends TX transmit request to TL. It should send to WDI for
1506 abstraction.
1507
1508 For NON integrated SOC, this function calls WLANBAL_StartXmit
1509
1510 DEPENDENCIES
1511
1512 PARAMETERS
1513
1514 IN
1515 pvosGCtx VOS context
1516
1517 RETURN VALUE
1518 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1519 VOS_STATUS_SUCCESS: Everything is good :)
1520
1521 SIDE EFFECTS
1522
1523============================================================================*/
1524VOS_STATUS
1525WDA_DS_StartXmit
1526(
1527 v_PVOID_t pvosGCtx
1528);
1529
1530/*==========================================================================
1531 FUNCTION WDA_DS_FinishULA
1532
1533 DESCRIPTION
1534 Serialize Finish Upper Level Authentication reques to TX thread.
1535
1536 DEPENDENCIES
1537
1538 PARAMETERS
1539
1540 IN
1541 callbackRoutine routine to be called in TX thread
1542 callbackContext user data for the above routine
1543
1544 RETURN VALUE
1545 please see vos_tx_mq_serialize
1546
1547 SIDE EFFECTS
1548
1549============================================================================*/
1550VOS_STATUS
1551WDA_DS_FinishULA
1552(
1553 void (*callbackRoutine) (void *callbackContext),
Tushnim Bhattacharyya39a8f182013-02-20 18:10:30 -08001554 void *callbackContext
Jeff Johnson295189b2012-06-20 16:38:30 -07001555);
1556
1557/*==========================================================================
1558 FUNCTION WDA_DS_BuildTxPacketInfo
1559
1560 DESCRIPTION
1561 Build TX meta info for integrated SOC.
1562
1563 Same function calls HAL for reserve BD header space into VOS packet and
1564 HAL function to fill it.
1565
1566 DEPENDENCIES
1567
1568 PARAMETERS
1569
1570 IN
1571 pvosGCtx VOS context
1572 vosDataBuff vos data buffer
1573 pvDestMacAddr destination MAC address ponter
1574 ucDisableFrmXtl Is frame xtl disabled?
1575 ucQosEnabled Is QoS enabled?
1576 ucWDSEnabled Is WDS enabled?
1577 extraHeadSpace Extra head bytes. If it's not 0 due to 4 bytes align
1578 of BD header.
1579 typeSubtype typeSubtype from MAC header or TX metainfo/BD
1580 pAddr2 address 2
1581 uTid tid
1582 txFlag
1583 timeStamp
1584 ucIsEapol
1585 ucUP
1586
1587 OUT
1588 *pusPktLen Packet length
1589
1590 RETURN VALUE
1591 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1592 VOS_STATUS_SUCCESS: Everything is good :)
1593
1594 SIDE EFFECTS
1595
1596============================================================================*/
1597VOS_STATUS
1598WDA_DS_BuildTxPacketInfo
1599(
1600 v_PVOID_t pvosGCtx,
1601 vos_pkt_t* vosDataBuff,
1602 v_MACADDR_t* pvDestMacAddr,
1603 v_U8_t ucDisableFrmXtl,
1604 v_U16_t* pusPktLen,
1605 v_U8_t ucQosEnabled,
1606 v_U8_t ucWDSEnabled,
1607 v_U8_t extraHeadSpace,
1608 v_U8_t typeSubtype,
1609 v_PVOID_t pAddr2,
1610 v_U8_t uTid,
1611 v_U8_t txFlag,
1612 v_U32_t timeStamp,
1613 v_U8_t ucIsEapol,
1614 v_U8_t ucUP
1615);
1616
1617/*==========================================================================
1618 FUNCTION WDA_DS_PeekRxPacketInfo
1619
1620 DESCRIPTION
1621 Return RX metainfo pointer for for integrated SOC.
1622
1623 Same function will return BD header pointer.
1624
1625 DEPENDENCIES
1626
1627 PARAMETERS
1628
1629 IN
1630 vosDataBuff vos data buffer
1631
1632 pvDestMacAddr destination MAC address ponter
1633 bSwap Want to swap BD header? For backward compatability
1634 It does nothing for integrated SOC
1635 OUT
1636 *ppRxHeader RX metainfo pointer
1637
1638 RETURN VALUE
1639 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1640 VOS_STATUS_SUCCESS: Everything is good :)
1641
1642 SIDE EFFECTS
1643
1644============================================================================*/
1645VOS_STATUS
1646WDA_DS_PeekRxPacketInfo
1647(
1648 vos_pkt_t *vosDataBuff,
1649 v_PVOID_t *ppRxHeader,
1650 v_BOOL_t bSwap
1651);
1652
1653/*==========================================================================
1654 FUNCTION WDA_DS_TrimRxPacketInfo
1655
1656 DESCRIPTION
1657 Trim/Remove RX BD header for NON integrated SOC.
1658 It does nothing for integrated SOC.
1659
1660 DEPENDENCIES
1661
1662 PARAMETERS
1663
1664 IN
1665 vosDataBuff vos data buffer
1666
1667 RETURN VALUE
1668 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1669 VOS_STATUS_SUCCESS: Everything is good :)
1670
1671 SIDE EFFECTS
1672
1673============================================================================*/
1674VOS_STATUS
1675WDA_DS_TrimRxPacketInfo
1676(
1677 vos_pkt_t *vosDataBuff
1678);
1679
1680/*==========================================================================
1681 FUNCTION WDA_DS_GetTxResources
1682
1683 DESCRIPTION
1684 It does return hardcoded value for Prima. It should bigger number than 0.
1685 Returning 0 will put TL in out-of-resource condition for TX.
1686
1687 Return current PDU resources from BAL for NON integrated SOC.
1688
1689 DEPENDENCIES
1690
1691 PARAMETERS
1692
1693 IN
1694 vosDataBuff vos data buffer
1695
1696 OUT
1697 puResCount available PDU number for TX
1698
1699 RETURN VALUE
1700 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1701 VOS_STATUS_SUCCESS: Everything is good :)
1702
1703 SIDE EFFECTS
1704
1705============================================================================*/
1706VOS_STATUS
1707WDA_DS_GetTxResources
1708(
1709 v_PVOID_t pvosGCtx,
1710 v_U32_t* puResCount
1711);
1712
1713/*==========================================================================
1714 FUNCTION WDA_DS_GetRssi
1715
1716 DESCRIPTION
1717 Get RSSI
1718
1719 TODO It returns hardcoded value in the meantime since WDA/WDI does nothing
1720 support it yet for Prima.
1721
1722 DEPENDENCIES
1723
1724 PARAMETERS
1725
1726 IN
1727 vosDataBuff vos data buffer
1728
1729 OUT
1730 puRssi RSSI
1731
1732 RETURN VALUE
1733 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1734 VOS_STATUS_SUCCESS: Everything is good :)
1735
1736 SIDE EFFECTS
1737
1738============================================================================*/
1739VOS_STATUS
1740WDA_DS_GetRssi
1741(
1742 v_PVOID_t pvosGCtx,
1743 v_S7_t* puRssi
1744);
1745
1746/*==========================================================================
1747 FUNCTION WDA_DS_RxAmsduBdFix
1748
1749 DESCRIPTION
1750 For backward compatability with Libra/Volans. Need to call HAL function
1751 for HW BD bug fix
1752
1753 It does nothing for integrated SOC.
1754
1755 DEPENDENCIES
1756
1757 PARAMETERS
1758
1759 IN
1760 pvosGCtx VOS context
1761 pvBDHeader BD header pointer
1762
1763 OUT
1764
1765 RETURN VALUE
1766 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1767 VOS_STATUS_SUCCESS: Everything is good :)
1768
1769 SIDE EFFECTS
1770
1771============================================================================*/
1772VOS_STATUS
1773WDA_DS_RxAmsduBdFix
1774(
1775 v_PVOID_t pvosGCtx,
1776 v_PVOID_t pvBDHeader
1777);
1778
1779/*==========================================================================
1780 FUNCTION WDA_DS_GetFrameTypeSubType
1781
1782 DESCRIPTION
1783 Get typeSubtype from the packet. The BD header should have this.
1784 But some reason, Libra/Volans read it from 802.11 header and save it
1785 back to BD header. So for NON integrated SOC, this function does
1786 the same.
1787
1788 For integrated SOC, WDI does the same, not TL.
1789 It does return typeSubtype from RX meta info for integrated SOC.
1790
1791 DEPENDENCIES
1792
1793 PARAMETERS
1794
1795 IN
1796 pvosGCtx VOS context
1797 vosDataBuff vos data buffer
1798 pRxHeader RX meta info or BD header pointer
1799
1800 OUT
1801 ucTypeSubtype typeSubtype
1802
1803 RETURN VALUE
1804 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1805 VOS_STATUS_SUCCESS: Everything is good :)
1806
1807 SIDE EFFECTS
1808
1809============================================================================*/
1810VOS_STATUS
1811WDA_DS_GetFrameTypeSubType
1812(
1813 v_PVOID_t pvosGCtx,
1814 vos_pkt_t *vosDataBuff,
1815 v_PVOID_t pRxHeader,
1816 v_U8_t *ucTypeSubtype
1817);
1818
1819/*==========================================================================
1820 FUNCTION WDA_DS_GetReplayCounter
1821
1822 DESCRIPTION
1823 Return replay counter from BD header or RX meta info
1824
1825 DEPENDENCIES
1826
1827 PARAMETERS
1828
1829 IN
1830 pRxHeader RX meta info or BD header pointer
1831
1832 OUT
1833
1834 RETURN VALUE
1835 Replay Counter
1836
1837 SIDE EFFECTS
1838
1839============================================================================*/
1840v_U64_t
1841WDA_DS_GetReplayCounter
1842(
1843 v_PVOID_t pRxHeader
1844);
1845
1846/*==========================================================================
1847 FUNCTION WDA_DS_GetReplayCounter
1848
1849 DESCRIPTION
1850 HO support. Set RSSI threshold via HAL function for NON integrated SOC
1851
1852 TODO
1853 Same function should be provided by WDA/WDI for Prima.
1854
1855 DEPENDENCIES
1856
1857 PARAMETERS
1858
1859 IN
1860 pMac MAC global pointer
1861 pThresholds pointer of threshold structure to set.
1862
1863 OUT
1864
1865 RETURN VALUE
1866 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1867 VOS_STATUS_SUCCESS: Everything is good :)
1868
1869 SIDE EFFECTS
1870
1871============================================================================*/
1872VOS_STATUS
1873WDA_DS_SetRSSIThresholds
1874(
1875 tpAniSirGlobal pMac,
1876 tpSirRSSIThresholds pThresholds
1877);
1878
1879#if defined( FEATURE_WLAN_INTEGRATED_SOC )
1880/*==========================================================================
1881 FUNCTION WDA_DS_TxFrames
1882
1883 DESCRIPTION
1884 Pull packets from TL and push them to WDI. It gets invoked upon
1885 WDA_DS_TX_START_XMIT.
1886
1887 This function is equivelant of WLANSSC_Transmit in Libra/Volans.
1888
1889 TODO
1890 This function should be implemented and moved in WDI.
1891
1892 DEPENDENCIES
1893
1894 PARAMETERS
1895
1896 IN
1897 pvosGCtx VOS context
1898
1899 OUT
1900
1901 RETURN VALUE
1902 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1903 VOS_STATUS_SUCCESS: Everything is good :)
1904
1905 SIDE EFFECTS
1906
1907============================================================================*/
1908VOS_STATUS
1909WDA_DS_TxFrames
1910(
1911 v_PVOID_t pvosGCtx
1912);
1913#endif
1914
1915/*==========================================================================
1916 FUNCTION WDA_DS_TxFlowControlCallback
1917
1918 DESCRIPTION
1919 Invoked by WDI to control TX flow.
1920
1921 DEPENDENCIES
1922
1923 PARAMETERS
1924
1925 IN
1926 pvosGCtx VOS context
1927 uFlowMask TX channel mask for flow control
1928 Defined in WDA_TXFlowEnumType
1929
1930 OUT
1931
1932 RETURN VALUE
1933
1934 SIDE EFFECTS
1935
1936============================================================================*/
1937v_VOID_t
1938WDA_DS_TxFlowControlCallback
1939(
1940 v_PVOID_t pvosGCtx,
1941 v_U8_t uFlowMask
1942);
1943
1944/*==========================================================================
1945 FUNCTION WDA_DS_GetTxFlowMask
1946
1947 DESCRIPTION
1948 return TX flow mask control value
1949
1950 DEPENDENCIES
1951
1952 PARAMETERS
1953
1954 IN
1955 pvosGCtx VOS context
1956
1957 OUT
1958 uFlowMask TX channel mask for flow control
1959 Defined in WDA_TXFlowEnumType
1960
1961 RETURN VALUE
1962 VOS_STATUS_E_INVAL: pointer is NULL and other errors
1963 VOS_STATUS_SUCCESS: Everything is good :)
1964
1965 SIDE EFFECTS
1966
1967============================================================================*/
1968VOS_STATUS
1969WDA_DS_GetTxFlowMask
1970(
1971 v_PVOID_t pvosGCtx,
1972 v_U8_t* puFlowMask
1973);
1974
1975/*==========================================================================
1976 FUNCTION WDA_HALDumpCmdReq
1977
1978 DESCRIPTION
1979 Send Dump commandsto WDI
1980
1981 DEPENDENCIES
1982
1983 PARAMETERS
1984
1985 IN
1986 pMac MAC global pointer
1987 cmd Hal dump command
1988 arg1 Dump command argument 1
1989 arg2 Dump command argument 2
1990 arg3 Dump command argument 3
1991 arg4 Dump command argument 4
1992
1993 OUT
1994 pBuffer Dump command Response buffer
1995
1996 RETURN VALUE
1997 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1998 VOS_STATUS_SUCCESS: Everything is good :)
1999
2000 SIDE EFFECTS
2001
2002============================================================================*/
2003VOS_STATUS WDA_HALDumpCmdReq(tpAniSirGlobal pMac,tANI_U32 cmd,
2004 tANI_U32 arg1, tANI_U32 arg2, tANI_U32 arg3,
2005 tANI_U32 arg4, tANI_U8 *pBuffer);
2006
2007/*==========================================================================
2008 FUNCTION WDA_featureCapsExchange
2009
2010 DESCRIPTION
2011 WDA API to invoke capability exchange between host and FW
2012
2013 DEPENDENCIES
2014
2015 PARAMETERS
2016
2017 IN
2018 pVosContext VOS context
2019
2020 OUT
2021 NONE
2022
2023 RETURN VALUE
2024 NONE
2025
2026 SIDE EFFECTS
2027============================================================================*/
2028void WDA_featureCapsExchange(v_PVOID_t pVosContext);
2029
Yathish9f22e662012-12-10 14:21:35 -08002030void WDA_disableCapablityFeature(tANI_U8 feature_index);
Jeff Johnson295189b2012-06-20 16:38:30 -07002031/*==========================================================================
2032 FUNCTION WDA_getHostWlanFeatCaps
2033
2034 DESCRIPTION
2035 Wrapper for WDI API, that will return if the feature (enum value).passed
2036 to this API is supported or not in Host
2037
2038 DEPENDENCIES
2039
2040 PARAMETERS
2041
2042 IN
2043 featEnumValue enum value for the feature as in placeHolderInCapBitmap in wlan_hal_msg.h.
2044
2045 OUT
2046 NONE
2047
2048 RETURN VALUE
2049 0 - implies feature is NOT Supported
2050 any non zero value - implies feature is SUPPORTED
2051
2052 SIDE EFFECTS
2053============================================================================*/
2054tANI_U8 WDA_getHostWlanFeatCaps(tANI_U8 featEnumValue);
2055
2056/*==========================================================================
2057 FUNCTION WDA_getFwWlanFeatCaps
2058
2059 DESCRIPTION
2060 Wrapper for WDI API, that will return if the feature (enum value).passed
2061 to this API is supported or not in FW
2062
2063 DEPENDENCIES
2064
2065 PARAMETERS
2066
2067 IN
2068 featEnumValue enum value for the feature as in placeHolderInCapBitmap in wlan_hal_msg.h.
2069
2070 OUT
2071 NONE
2072
2073 RETURN VALUE
2074 0 - implies feature is NOT Supported
2075 any non zero value - implies feature is SUPPORTED
2076
2077 SIDE EFFECTS
2078============================================================================*/
2079tANI_U8 WDA_getFwWlanFeatCaps(tANI_U8 featEnumValue);
2080
Madan Mohan Koyyalamudi8cb53982012-09-28 14:34:47 -07002081/*==========================================================================
2082 FUNCTION WDA_TransportChannelDebug
2083
2084 DESCRIPTION
2085 Display Transport Channel debugging information
2086 User may request to display DXE channel snapshot
2087 Or if host driver detects any abnormal stcuk may display
2088
2089 PARAMETERS
Jeff Johnsonb88db982012-12-10 13:34:59 -08002090 displaySnapshot : Display DXE snapshot option
Madan Mohan Koyyalamudi8cb53982012-09-28 14:34:47 -07002091 enableStallDetect : Enable stall detect feature
2092 This feature will take effect to data performance
2093 Not integrate till fully verification
2094
2095 RETURN VALUE
2096 NONE
2097
2098===========================================================================*/
2099void WDA_TransportChannelDebug
2100(
2101 v_BOOL_t displaySnapshot,
Madan Mohan Koyyalamudi24a00f92012-10-22 15:21:02 -07002102 v_BOOL_t toggleStallDetect
Madan Mohan Koyyalamudi8cb53982012-09-28 14:34:47 -07002103);
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08002104
2105/*==========================================================================
2106 FUNCTION WDA_TrafficStatsTimerActivate
2107
2108 DESCRIPTION
2109 API to activate/deactivate Traffic Stats timer. Traffic stats timer is only needed during MCC
2110 PARAMETERS
2111 activate : Activate or not
2112
2113 RETURN VALUE
2114 NONE
2115
2116===========================================================================*/
2117void WDA_TrafficStatsTimerActivate(wpt_boolean activate);
2118
Jeff Johnson295189b2012-06-20 16:38:30 -07002119#endif