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