blob: 167ca83271fbbab6531265a98fff27f690e2dec2 [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
Mohit Khanna4a70d262012-09-11 16:30:12 -07001272#ifdef WLAN_FEATURE_11AC
1273#define WDA_UPDATE_OP_MODE SIR_HAL_UPDATE_OP_MODE
1274#endif
1275
Jeff Johnson295189b2012-06-20 16:38:30 -07001276#ifdef FEATURE_WLAN_INTEGRATED_SOC
1277tSirRetStatus wdaPostCtrlMsg(tpAniSirGlobal pMac, tSirMsgQ *pMsg);
1278#endif
1279
1280#if defined(FEATURE_WLAN_NON_INTEGRATED_SOC)
1281#define VOS_MODULE_ID_WDA VOS_MODULE_ID_HAL
1282
1283//Required by TL
1284
1285//WDA Functions to HAL functions Mapping
1286//Required by SME and PE
1287#define WDA_SetRegDomain halPhySetRegDomain
1288#define wdaPostCtrlMsg halPostMsgApi
1289#else
1290eHalStatus WDA_SetRegDomain(void * clientCtxt, v_REGDOMAIN_t regId);
1291#endif //FEATURE_WLAN_NON_INTEGRATED_SOC
1292
1293#define HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME 0x40 // Bit 6 will be used to control BD rate for Management frames
1294
1295#if defined( FEATURE_WLAN_INTEGRATED_SOC )
1296#define halTxFrame(hHal, pFrmBuf, frmLen, frmType, txDir, tid, pCompFunc, pData, txFlag) \
1297 (eHalStatus)( WDA_TxPacket(\
1298 vos_get_context(VOS_MODULE_ID_WDA, vos_get_global_context(VOS_MODULE_ID_WDA, (hHal))),\
1299 (pFrmBuf),\
1300 (frmLen),\
1301 (frmType),\
1302 (txDir),\
1303 (tid),\
1304 (pCompFunc),\
1305 (pData),\
1306 (NULL), \
1307 (txFlag)) )
1308
1309#define halTxFrameWithTxComplete(hHal, pFrmBuf, frmLen, frmType, txDir, tid, pCompFunc, pData, pCBackFnTxComp, txFlag) \
1310 (eHalStatus)( WDA_TxPacket(\
1311 vos_get_context(VOS_MODULE_ID_WDA, vos_get_global_context(VOS_MODULE_ID_WDA, (hHal))),\
1312 (pFrmBuf),\
1313 (frmLen),\
1314 (frmType),\
1315 (txDir),\
1316 (tid),\
1317 (pCompFunc),\
1318 (pData),\
1319 (pCBackFnTxComp), \
1320 (txFlag)) )
1321#endif
1322
1323/* -----------------------------------------------------------------
1324 WDA data path API's for TL
1325 -------------------------------------------------------------------*/
1326
1327#if defined( FEATURE_WLAN_INTEGRATED_SOC )
1328v_BOOL_t WDA_IsHwFrameTxTranslationCapable(v_PVOID_t pVosGCtx,
1329 tANI_U8 staIdx);
1330#else
1331# define WDA_IsHwFrameTxTranslationCapable(vosGCtx, staId) \
1332 WLANHAL_IsHwFrameTxTranslationCapable(vosGCtx, staId)
1333#endif
1334
1335#if defined( FEATURE_WLAN_INTEGRATED_SOC )
1336# define WDA_EnableUapsdAcParams(vosGCtx, staId, uapsdInfo) \
1337 WDA_SetUapsdAcParamsReq(vosGCtx, staId, uapsdInfo)
1338#else
1339# define WDA_EnableUapsdAcParams(vosGCtx, staId, uapsdInfo) \
1340 WLANHAL_EnableUapsdAcParams(vosGCtx, staId, uapsdInfo)
1341#endif
1342
1343#if defined( FEATURE_WLAN_INTEGRATED_SOC )
1344# define WDA_DisableUapsdAcParams(vosGCtx, staId, ac) \
1345 WDA_ClearUapsdAcParamsReq(vosGCtx, staId, ac)
1346#else
1347# define WDA_DisableUapsdAcParams(vosGCtx, staId, ac) \
1348 WLANHAL_DisableUapsdAcParams(vosGCtx, staId, ac)
1349#endif
1350
1351#if defined( FEATURE_WLAN_INTEGRATED_SOC )
1352# define WDA_SetRSSIThresholds(pMac, pThresholds) \
1353 WDA_SetRSSIThresholdsReq(pMac, pThresholds)
1354#else
1355# define WDA_SetRSSIThresholds(pMac, pThresholds) \
1356 halPS_SetRSSIThresholds(pMac, pThresholds)
1357#endif
1358
1359#if defined( FEATURE_WLAN_INTEGRATED_SOC )
1360#define WDA_UpdateRssiBmps(pvosGCtx, staId, rssi) \
1361 WLANTL_UpdateRssiBmps (pvosGCtx, staId, rssi)
1362#endif
1363
1364#ifdef WLAN_PERF
1365/*==========================================================================
1366 FUNCTION WDA_TLI_FastHwFwdDataFrame
1367
1368 DESCRIPTION
1369 For NON integrated SOC, this function is called by TL.
1370
1371 Fast path function to quickly forward a data frame if HAL determines BD
1372 signature computed here matches the signature inside current VOSS packet.
1373 If there is a match, HAL and TL fills in the swapped packet length into
1374 BD header and DxE header, respectively. Otherwise, packet goes back to
1375 normal (slow) path and a new BD signature would be tagged into BD in this
1376 VOSS packet later by the WLANHAL_FillTxBd() function.
1377
1378 TODO For integrated SOC, this function does nothing yet. Pima SLM/HAL
1379 should provide the equivelant functionality.
1380
1381 DEPENDENCIES
1382
1383 PARAMETERS
1384
1385 IN
1386 pvosGCtx VOS context
1387 vosDataBuff Ptr to VOSS packet
1388 pMetaInfo For getting frame's TID
1389 pStaInfo For checking STA type
1390
1391 OUT
1392 pvosStatus returned status
1393 puFastFwdOK Flag to indicate whether frame could be fast forwarded
1394
1395 RETURN VALUE
1396 No return.
1397
1398 SIDE EFFECTS
1399
1400============================================================================*/
1401void WDA_TLI_FastHwFwdDataFrame
1402(
1403 v_PVOID_t pvosGCtx,
1404 vos_pkt_t* vosDataBuff,
1405 VOS_STATUS* pvosStatus,
1406 v_U32_t* puFastFwdOK,
1407 WLANTL_MetaInfoType* pMetaInfo,
1408 WLAN_STADescType* pStaInfo
1409);
1410#endif /* WLAN_PERF */
1411
1412/*==========================================================================
1413 FUNCTION WDA_DS_Register
1414
1415 DESCRIPTION
1416 Register TL client to WDA. This function registers TL RX/TX functions
1417 to WDI by calling WDI_DS_Register.
1418
1419
1420 For NON integrated SOC, this function calls WLANBAL_RegTlCbFunctions
1421 to register TL's RX/TX functions to BAL
1422
1423 TODO
1424 For Prima, pfnResourceCB gets called in WDTS_OOResourceNotification.
1425 The uCount parameter is AC mask. It should be redefined to use the
1426 same resource callback function.
1427
1428 DEPENDENCIES
1429
1430 PARAMETERS
1431
1432 IN
1433 pvosGCtx VOS context
1434 pfnTxCompleteCallback TX complete callback upon TX completion
1435 pfnRxPacketCallback RX callback
1436 pfnResourceCB gets called when updating TX PDU number
1437 uResTheshold minimum TX PDU size for a packet
1438 pCallbackContext WDI calls callback function with it
1439 VOS global context pointer
1440 OUT
1441 uAvailableTxBuf available TX PDU numbder.
1442 BAL returns it for NON integrated SOC
1443
1444 RETURN VALUE
1445 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1446 VOS_STATUS_SUCCESS: Everything is good :)
1447
1448 SIDE EFFECTS
1449
1450============================================================================*/
1451VOS_STATUS
1452WDA_DS_Register
1453(
1454 v_PVOID_t pvosGCtx,
1455 WDA_DS_TxCompleteCallback pfnTxCompleteCallback,
1456 WDA_DS_RxPacketCallback pfnRxPacketCallback,
1457 WDA_DS_TxPacketCallback pfnTxPacketCallback,
1458 WDA_DS_ResourceCB pfnResourceCB,
1459 v_U32_t uResTheshold,
1460 v_PVOID_t pCallbackContext,
1461 v_U32_t *uAvailableTxBuf
1462);
1463
1464/*==========================================================================
1465 FUNCTION WDA_DS_StartXmit
1466
1467 DESCRIPTION
1468 Serialize TX transmit reques to TX thread.
1469
1470 TODO This sends TX transmit request to TL. It should send to WDI for
1471 abstraction.
1472
1473 For NON integrated SOC, this function calls WLANBAL_StartXmit
1474
1475 DEPENDENCIES
1476
1477 PARAMETERS
1478
1479 IN
1480 pvosGCtx VOS context
1481
1482 RETURN VALUE
1483 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1484 VOS_STATUS_SUCCESS: Everything is good :)
1485
1486 SIDE EFFECTS
1487
1488============================================================================*/
1489VOS_STATUS
1490WDA_DS_StartXmit
1491(
1492 v_PVOID_t pvosGCtx
1493);
1494
1495/*==========================================================================
1496 FUNCTION WDA_DS_FinishULA
1497
1498 DESCRIPTION
1499 Serialize Finish Upper Level Authentication reques to TX thread.
1500
1501 DEPENDENCIES
1502
1503 PARAMETERS
1504
1505 IN
1506 callbackRoutine routine to be called in TX thread
1507 callbackContext user data for the above routine
1508
1509 RETURN VALUE
1510 please see vos_tx_mq_serialize
1511
1512 SIDE EFFECTS
1513
1514============================================================================*/
1515VOS_STATUS
1516WDA_DS_FinishULA
1517(
1518 void (*callbackRoutine) (void *callbackContext),
1519 void *callbackContext
1520);
1521
1522/*==========================================================================
1523 FUNCTION WDA_DS_BuildTxPacketInfo
1524
1525 DESCRIPTION
1526 Build TX meta info for integrated SOC.
1527
1528 Same function calls HAL for reserve BD header space into VOS packet and
1529 HAL function to fill it.
1530
1531 DEPENDENCIES
1532
1533 PARAMETERS
1534
1535 IN
1536 pvosGCtx VOS context
1537 vosDataBuff vos data buffer
1538 pvDestMacAddr destination MAC address ponter
1539 ucDisableFrmXtl Is frame xtl disabled?
1540 ucQosEnabled Is QoS enabled?
1541 ucWDSEnabled Is WDS enabled?
1542 extraHeadSpace Extra head bytes. If it's not 0 due to 4 bytes align
1543 of BD header.
1544 typeSubtype typeSubtype from MAC header or TX metainfo/BD
1545 pAddr2 address 2
1546 uTid tid
1547 txFlag
1548 timeStamp
1549 ucIsEapol
1550 ucUP
1551
1552 OUT
1553 *pusPktLen Packet length
1554
1555 RETURN VALUE
1556 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1557 VOS_STATUS_SUCCESS: Everything is good :)
1558
1559 SIDE EFFECTS
1560
1561============================================================================*/
1562VOS_STATUS
1563WDA_DS_BuildTxPacketInfo
1564(
1565 v_PVOID_t pvosGCtx,
1566 vos_pkt_t* vosDataBuff,
1567 v_MACADDR_t* pvDestMacAddr,
1568 v_U8_t ucDisableFrmXtl,
1569 v_U16_t* pusPktLen,
1570 v_U8_t ucQosEnabled,
1571 v_U8_t ucWDSEnabled,
1572 v_U8_t extraHeadSpace,
1573 v_U8_t typeSubtype,
1574 v_PVOID_t pAddr2,
1575 v_U8_t uTid,
1576 v_U8_t txFlag,
1577 v_U32_t timeStamp,
1578 v_U8_t ucIsEapol,
1579 v_U8_t ucUP
1580);
1581
1582/*==========================================================================
1583 FUNCTION WDA_DS_PeekRxPacketInfo
1584
1585 DESCRIPTION
1586 Return RX metainfo pointer for for integrated SOC.
1587
1588 Same function will return BD header pointer.
1589
1590 DEPENDENCIES
1591
1592 PARAMETERS
1593
1594 IN
1595 vosDataBuff vos data buffer
1596
1597 pvDestMacAddr destination MAC address ponter
1598 bSwap Want to swap BD header? For backward compatability
1599 It does nothing for integrated SOC
1600 OUT
1601 *ppRxHeader RX metainfo pointer
1602
1603 RETURN VALUE
1604 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1605 VOS_STATUS_SUCCESS: Everything is good :)
1606
1607 SIDE EFFECTS
1608
1609============================================================================*/
1610VOS_STATUS
1611WDA_DS_PeekRxPacketInfo
1612(
1613 vos_pkt_t *vosDataBuff,
1614 v_PVOID_t *ppRxHeader,
1615 v_BOOL_t bSwap
1616);
1617
1618/*==========================================================================
1619 FUNCTION WDA_DS_TrimRxPacketInfo
1620
1621 DESCRIPTION
1622 Trim/Remove RX BD header for NON integrated SOC.
1623 It does nothing for integrated SOC.
1624
1625 DEPENDENCIES
1626
1627 PARAMETERS
1628
1629 IN
1630 vosDataBuff vos data buffer
1631
1632 RETURN VALUE
1633 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1634 VOS_STATUS_SUCCESS: Everything is good :)
1635
1636 SIDE EFFECTS
1637
1638============================================================================*/
1639VOS_STATUS
1640WDA_DS_TrimRxPacketInfo
1641(
1642 vos_pkt_t *vosDataBuff
1643);
1644
1645/*==========================================================================
1646 FUNCTION WDA_DS_GetTxResources
1647
1648 DESCRIPTION
1649 It does return hardcoded value for Prima. It should bigger number than 0.
1650 Returning 0 will put TL in out-of-resource condition for TX.
1651
1652 Return current PDU resources from BAL for NON integrated SOC.
1653
1654 DEPENDENCIES
1655
1656 PARAMETERS
1657
1658 IN
1659 vosDataBuff vos data buffer
1660
1661 OUT
1662 puResCount available PDU number for TX
1663
1664 RETURN VALUE
1665 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1666 VOS_STATUS_SUCCESS: Everything is good :)
1667
1668 SIDE EFFECTS
1669
1670============================================================================*/
1671VOS_STATUS
1672WDA_DS_GetTxResources
1673(
1674 v_PVOID_t pvosGCtx,
1675 v_U32_t* puResCount
1676);
1677
1678/*==========================================================================
1679 FUNCTION WDA_DS_GetRssi
1680
1681 DESCRIPTION
1682 Get RSSI
1683
1684 TODO It returns hardcoded value in the meantime since WDA/WDI does nothing
1685 support it yet for Prima.
1686
1687 DEPENDENCIES
1688
1689 PARAMETERS
1690
1691 IN
1692 vosDataBuff vos data buffer
1693
1694 OUT
1695 puRssi RSSI
1696
1697 RETURN VALUE
1698 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1699 VOS_STATUS_SUCCESS: Everything is good :)
1700
1701 SIDE EFFECTS
1702
1703============================================================================*/
1704VOS_STATUS
1705WDA_DS_GetRssi
1706(
1707 v_PVOID_t pvosGCtx,
1708 v_S7_t* puRssi
1709);
1710
1711/*==========================================================================
1712 FUNCTION WDA_DS_RxAmsduBdFix
1713
1714 DESCRIPTION
1715 For backward compatability with Libra/Volans. Need to call HAL function
1716 for HW BD bug fix
1717
1718 It does nothing for integrated SOC.
1719
1720 DEPENDENCIES
1721
1722 PARAMETERS
1723
1724 IN
1725 pvosGCtx VOS context
1726 pvBDHeader BD header pointer
1727
1728 OUT
1729
1730 RETURN VALUE
1731 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1732 VOS_STATUS_SUCCESS: Everything is good :)
1733
1734 SIDE EFFECTS
1735
1736============================================================================*/
1737VOS_STATUS
1738WDA_DS_RxAmsduBdFix
1739(
1740 v_PVOID_t pvosGCtx,
1741 v_PVOID_t pvBDHeader
1742);
1743
1744/*==========================================================================
1745 FUNCTION WDA_DS_GetFrameTypeSubType
1746
1747 DESCRIPTION
1748 Get typeSubtype from the packet. The BD header should have this.
1749 But some reason, Libra/Volans read it from 802.11 header and save it
1750 back to BD header. So for NON integrated SOC, this function does
1751 the same.
1752
1753 For integrated SOC, WDI does the same, not TL.
1754 It does return typeSubtype from RX meta info for integrated SOC.
1755
1756 DEPENDENCIES
1757
1758 PARAMETERS
1759
1760 IN
1761 pvosGCtx VOS context
1762 vosDataBuff vos data buffer
1763 pRxHeader RX meta info or BD header pointer
1764
1765 OUT
1766 ucTypeSubtype typeSubtype
1767
1768 RETURN VALUE
1769 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1770 VOS_STATUS_SUCCESS: Everything is good :)
1771
1772 SIDE EFFECTS
1773
1774============================================================================*/
1775VOS_STATUS
1776WDA_DS_GetFrameTypeSubType
1777(
1778 v_PVOID_t pvosGCtx,
1779 vos_pkt_t *vosDataBuff,
1780 v_PVOID_t pRxHeader,
1781 v_U8_t *ucTypeSubtype
1782);
1783
1784/*==========================================================================
1785 FUNCTION WDA_DS_GetReplayCounter
1786
1787 DESCRIPTION
1788 Return replay counter from BD header or RX meta info
1789
1790 DEPENDENCIES
1791
1792 PARAMETERS
1793
1794 IN
1795 pRxHeader RX meta info or BD header pointer
1796
1797 OUT
1798
1799 RETURN VALUE
1800 Replay Counter
1801
1802 SIDE EFFECTS
1803
1804============================================================================*/
1805v_U64_t
1806WDA_DS_GetReplayCounter
1807(
1808 v_PVOID_t pRxHeader
1809);
1810
1811/*==========================================================================
1812 FUNCTION WDA_DS_GetReplayCounter
1813
1814 DESCRIPTION
1815 HO support. Set RSSI threshold via HAL function for NON integrated SOC
1816
1817 TODO
1818 Same function should be provided by WDA/WDI for Prima.
1819
1820 DEPENDENCIES
1821
1822 PARAMETERS
1823
1824 IN
1825 pMac MAC global pointer
1826 pThresholds pointer of threshold structure to set.
1827
1828 OUT
1829
1830 RETURN VALUE
1831 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1832 VOS_STATUS_SUCCESS: Everything is good :)
1833
1834 SIDE EFFECTS
1835
1836============================================================================*/
1837VOS_STATUS
1838WDA_DS_SetRSSIThresholds
1839(
1840 tpAniSirGlobal pMac,
1841 tpSirRSSIThresholds pThresholds
1842);
1843
1844#if defined( FEATURE_WLAN_INTEGRATED_SOC )
1845/*==========================================================================
1846 FUNCTION WDA_DS_TxFrames
1847
1848 DESCRIPTION
1849 Pull packets from TL and push them to WDI. It gets invoked upon
1850 WDA_DS_TX_START_XMIT.
1851
1852 This function is equivelant of WLANSSC_Transmit in Libra/Volans.
1853
1854 TODO
1855 This function should be implemented and moved in WDI.
1856
1857 DEPENDENCIES
1858
1859 PARAMETERS
1860
1861 IN
1862 pvosGCtx VOS context
1863
1864 OUT
1865
1866 RETURN VALUE
1867 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1868 VOS_STATUS_SUCCESS: Everything is good :)
1869
1870 SIDE EFFECTS
1871
1872============================================================================*/
1873VOS_STATUS
1874WDA_DS_TxFrames
1875(
1876 v_PVOID_t pvosGCtx
1877);
1878#endif
1879
1880/*==========================================================================
1881 FUNCTION WDA_DS_TxFlowControlCallback
1882
1883 DESCRIPTION
1884 Invoked by WDI to control TX flow.
1885
1886 DEPENDENCIES
1887
1888 PARAMETERS
1889
1890 IN
1891 pvosGCtx VOS context
1892 uFlowMask TX channel mask for flow control
1893 Defined in WDA_TXFlowEnumType
1894
1895 OUT
1896
1897 RETURN VALUE
1898
1899 SIDE EFFECTS
1900
1901============================================================================*/
1902v_VOID_t
1903WDA_DS_TxFlowControlCallback
1904(
1905 v_PVOID_t pvosGCtx,
1906 v_U8_t uFlowMask
1907);
1908
1909/*==========================================================================
1910 FUNCTION WDA_DS_GetTxFlowMask
1911
1912 DESCRIPTION
1913 return TX flow mask control value
1914
1915 DEPENDENCIES
1916
1917 PARAMETERS
1918
1919 IN
1920 pvosGCtx VOS context
1921
1922 OUT
1923 uFlowMask TX channel mask for flow control
1924 Defined in WDA_TXFlowEnumType
1925
1926 RETURN VALUE
1927 VOS_STATUS_E_INVAL: pointer is NULL and other errors
1928 VOS_STATUS_SUCCESS: Everything is good :)
1929
1930 SIDE EFFECTS
1931
1932============================================================================*/
1933VOS_STATUS
1934WDA_DS_GetTxFlowMask
1935(
1936 v_PVOID_t pvosGCtx,
1937 v_U8_t* puFlowMask
1938);
1939
1940/*==========================================================================
1941 FUNCTION WDA_HALDumpCmdReq
1942
1943 DESCRIPTION
1944 Send Dump commandsto WDI
1945
1946 DEPENDENCIES
1947
1948 PARAMETERS
1949
1950 IN
1951 pMac MAC global pointer
1952 cmd Hal dump command
1953 arg1 Dump command argument 1
1954 arg2 Dump command argument 2
1955 arg3 Dump command argument 3
1956 arg4 Dump command argument 4
1957
1958 OUT
1959 pBuffer Dump command Response buffer
1960
1961 RETURN VALUE
1962 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1963 VOS_STATUS_SUCCESS: Everything is good :)
1964
1965 SIDE EFFECTS
1966
1967============================================================================*/
1968VOS_STATUS WDA_HALDumpCmdReq(tpAniSirGlobal pMac,tANI_U32 cmd,
1969 tANI_U32 arg1, tANI_U32 arg2, tANI_U32 arg3,
1970 tANI_U32 arg4, tANI_U8 *pBuffer);
1971
1972/*==========================================================================
1973 FUNCTION WDA_featureCapsExchange
1974
1975 DESCRIPTION
1976 WDA API to invoke capability exchange between host and FW
1977
1978 DEPENDENCIES
1979
1980 PARAMETERS
1981
1982 IN
1983 pVosContext VOS context
1984
1985 OUT
1986 NONE
1987
1988 RETURN VALUE
1989 NONE
1990
1991 SIDE EFFECTS
1992============================================================================*/
1993void WDA_featureCapsExchange(v_PVOID_t pVosContext);
1994
1995/*==========================================================================
1996 FUNCTION WDA_getHostWlanFeatCaps
1997
1998 DESCRIPTION
1999 Wrapper for WDI API, that will return if the feature (enum value).passed
2000 to this API is supported or not in Host
2001
2002 DEPENDENCIES
2003
2004 PARAMETERS
2005
2006 IN
2007 featEnumValue enum value for the feature as in placeHolderInCapBitmap in wlan_hal_msg.h.
2008
2009 OUT
2010 NONE
2011
2012 RETURN VALUE
2013 0 - implies feature is NOT Supported
2014 any non zero value - implies feature is SUPPORTED
2015
2016 SIDE EFFECTS
2017============================================================================*/
2018tANI_U8 WDA_getHostWlanFeatCaps(tANI_U8 featEnumValue);
2019
2020/*==========================================================================
2021 FUNCTION WDA_getFwWlanFeatCaps
2022
2023 DESCRIPTION
2024 Wrapper for WDI API, that will return if the feature (enum value).passed
2025 to this API is supported or not in FW
2026
2027 DEPENDENCIES
2028
2029 PARAMETERS
2030
2031 IN
2032 featEnumValue enum value for the feature as in placeHolderInCapBitmap in wlan_hal_msg.h.
2033
2034 OUT
2035 NONE
2036
2037 RETURN VALUE
2038 0 - implies feature is NOT Supported
2039 any non zero value - implies feature is SUPPORTED
2040
2041 SIDE EFFECTS
2042============================================================================*/
2043tANI_U8 WDA_getFwWlanFeatCaps(tANI_U8 featEnumValue);
2044
2045#endif