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