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