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