blob: ebe8fd16b1024d9c343dc6d549d286a55b3f6c71 [file] [log] [blame]
Jeff Johnson295189b2012-06-20 16:38:30 -07001/*
Kiet Lam1ed83fc2014-02-19 01:15:45 -08002 * Copyright (c) 2012-2014 The Linux Foundation. All rights reserved.
3 *
4 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
5 *
6 *
7 * Permission to use, copy, modify, and/or distribute this software for
8 * any purpose with or without fee is hereby granted, provided that the
9 * above copyright notice and this permission notice appear in all
10 * copies.
11 *
12 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
13 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
14 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
15 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
16 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
17 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
18 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
19 * PERFORMANCE OF THIS SOFTWARE.
20 */
21
22/*
Kiet Lama7f454d2014-07-24 12:04:06 -070023 * This file was originally distributed by Qualcomm Atheros, Inc.
24 * under proprietary terms before Copyright ownership was assigned
25 * to the Linux Foundation.
Gopichand Nakkala92f07d82013-01-08 21:16:34 -080026 */
Kiet Lam1ed83fc2014-02-19 01:15:45 -080027
28
Kiet Lama7f454d2014-07-24 12:04:06 -070029
30
Jeff Johnson295189b2012-06-20 16:38:30 -070031#ifndef WLAN_QCT_WDA_H
32#define WLAN_QCT_WDA_H
33
34/*===========================================================================
35
Jeff Johnson6239e642013-02-22 21:22:26 -080036 W L A N DEVICE ADAPTATION L A Y E R
Jeff Johnson295189b2012-06-20 16:38:30 -070037 E X T E R N A L A P I
Jeff Johnson6239e642013-02-22 21:22:26 -080038
39
Jeff Johnson295189b2012-06-20 16:38:30 -070040DESCRIPTION
41 This file contains the external API exposed by the wlan adaptation layer for Prima
42 and Volans.
43
44 For Volans this layer is actually a thin layer that maps all WDA messages and
45 functions to equivalent HAL messages and functions. The reason this layer was introduced
Jeff Johnson6239e642013-02-22 21:22:26 -080046 was to keep the UMAC identical across Prima and Volans. This layer provides the glue
Jeff Johnson295189b2012-06-20 16:38:30 -070047 between SME, PE , TL and HAL.
48
Jeff Johnson295189b2012-06-20 16:38:30 -070049===========================================================================*/
50
51
52/*===========================================================================
53
54 EDIT HISTORY FOR FILE
55
56
57 This section contains comments describing changes made to the module.
58 Notice that changes are listed in reverse chronological order.
59
60
61 $Header:$ $DateTime: $ $Author: $
62
63
64when who what, where, why
65-------- --- ----------------------------------------------
6610/05/2011 haparna Adding support for Keep Alive Feature
6701/27/2011 rnair Adding WDA support for Volans.
6812/08/2010 seokyoun Move down HAL interfaces from TL to WDA
69 for UMAC convergence btween Volans/Libra and Prima
Jeff Johnson6239e642013-02-22 21:22:26 -08007008/25/2010 adwivedi WDA Context and exposed API's
Jeff Johnson295189b2012-06-20 16:38:30 -070071=========================================================================== */
72
73#include "aniGlobal.h"
74
Jeff Johnson295189b2012-06-20 16:38:30 -070075
76# include "wlan_qct_wdi_ds.h"
77
Jeff Johnson295189b2012-06-20 16:38:30 -070078
79/* Add Include */
80
81typedef enum
82{
83 WDA_INIT_STATE,
84 WDA_START_STATE,
85 WDA_READY_STATE,
86 WDA_PRE_ASSOC_STATE,
87 WDA_BA_UPDATE_TL_STATE,
88 WDA_BA_UPDATE_LIM_STATE,
89 WDA_STOP_STATE,
90 WDA_CLOSE_STATE
91}WDA_state;
92
93typedef enum
94{
95 WDA_PROCESS_SET_LINK_STATE,
96 WDA_IGNORE_SET_LINK_STATE
97}WDA_processSetLinkStateStatus;
98
99typedef enum
100{
101 WDA_DISABLE_BA,
102 WDA_ENABLE_BA
103}WDA_BaEnableFlags;
104
105typedef enum
106{
107 WDA_INVALID_STA_INDEX,
108 WDA_VALID_STA_INDEX
109}WDA_ValidStaIndex;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -0700110typedef enum
111{
112 eWDA_AUTH_TYPE_NONE, //never used
113 // MAC layer authentication types
114 eWDA_AUTH_TYPE_OPEN_SYSTEM,
115 // Upper layer authentication types
116 eWDA_AUTH_TYPE_WPA,
117 eWDA_AUTH_TYPE_WPA_PSK,
118
119 eWDA_AUTH_TYPE_RSN,
120 eWDA_AUTH_TYPE_RSN_PSK,
121 eWDA_AUTH_TYPE_FT_RSN,
122 eWDA_AUTH_TYPE_FT_RSN_PSK,
123 eWDA_AUTH_TYPE_WAPI_WAI_CERTIFICATE,
124 eWDA_AUTH_TYPE_WAPI_WAI_PSK,
125 eWDA_AUTH_TYPE_CCKM_WPA,
126 eWDA_AUTH_TYPE_CCKM_RSN,
127 eWDA_AUTH_TYPE_WPA_NONE,
128 eWDA_AUTH_TYPE_AUTOSWITCH,
129 eWDA_AUTH_TYPE_SHARED_KEY,
130 eWDA_NUM_OF_SUPPORT_AUTH_TYPE,
131 eWDA_AUTH_TYPE_FAILED = 0xff,
132 eWDA_AUTH_TYPE_UNKNOWN = eCSR_AUTH_TYPE_FAILED,
133}WDA_AuthType;
Jeff Johnson295189b2012-06-20 16:38:30 -0700134
Kanchanapally, Vidyullathaf9426e52013-12-24 17:28:54 +0530135#define IS_FW_IN_TX_PATH_FEATURE_ENABLE ((WDI_getHostWlanFeatCaps(FW_IN_TX_PATH)) & (WDA_getFwWlanFeatCaps(FW_IN_TX_PATH)))
Abhishek Singh6927fa02014-06-27 17:19:55 +0530136#define IS_MUMIMO_BFORMEE_CAPABLE ((WDI_getHostWlanFeatCaps(MU_MIMO)) & (WDA_getFwWlanFeatCaps(MU_MIMO)))
Jeff Johnson295189b2012-06-20 16:38:30 -0700137/*--------------------------------------------------------------------------
138 Utilities
139 --------------------------------------------------------------------------*/
140
141#define WDA_TLI_CEIL( _a, _b) (( 0 != (_a)%(_b))? (_a)/(_b) + 1: (_a)/(_b))
142
143/*
144 * Check the version number and find if MCC feature is supported or not
145 */
146#define IS_MCC_SUPPORTED (WDA_IsWcnssWlanReportedVersionGreaterThanOrEqual( 0, 1, 1, 0))
Viral Modid86bde22012-12-10 13:09:21 -0800147#define IS_FEATURE_SUPPORTED_BY_FW(featEnumValue) (!!WDA_getFwWlanFeatCaps(featEnumValue))
Kiet Lam0f320422013-11-21 19:29:17 +0530148#define IS_FEATURE_SUPPORTED_BY_DRIVER(featEnumValue) (!!WDA_getHostWlanFeatCaps(featEnumValue))
Jeff Johnson295189b2012-06-20 16:38:30 -0700149
Yathish9f22e662012-12-10 14:21:35 -0800150#ifdef WLAN_ACTIVEMODE_OFFLOAD_FEATURE
151#define IS_ACTIVEMODE_OFFLOAD_FEATURE_ENABLE ((WDA_getFwWlanFeatCaps(WLANACTIVE_OFFLOAD)) & (WDI_getHostWlanFeatCaps(WLANACTIVE_OFFLOAD)))
152#else
153#define IS_ACTIVEMODE_OFFLOAD_FEATURE_ENABLE 0
154#endif
155
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -0700156#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
157#define IS_ROAM_SCAN_OFFLOAD_FEATURE_ENABLE ((WDI_getHostWlanFeatCaps(WLAN_ROAM_SCAN_OFFLOAD)) & (WDA_getFwWlanFeatCaps(WLAN_ROAM_SCAN_OFFLOAD)))
158#else
159#define IS_ROAM_SCAN_OFFLOAD_FEATURE_ENABLE 0
160#endif
Yathish9f22e662012-12-10 14:21:35 -0800161
Ravi Joshid2ca7c42013-07-23 08:37:49 -0700162/* Check if heartbeat offload is enabled */
163#define IS_IBSS_HEARTBEAT_OFFLOAD_FEATURE_ENABLE ((WDI_getHostWlanFeatCaps(IBSS_HEARTBEAT_OFFLOAD)) & (WDA_getFwWlanFeatCaps(IBSS_HEARTBEAT_OFFLOAD)))
164
Madan Mohan Koyyalamudice419872013-09-13 19:36:52 +0530165#ifdef FEATURE_WLAN_TDLS
166#define IS_ADVANCE_TDLS_ENABLE ((WDI_getHostWlanFeatCaps(ADVANCE_TDLS)) & (WDA_getFwWlanFeatCaps(ADVANCE_TDLS)))
167#else
168#define IS_ADVANCE_TDLS_ENABLE 0
169#endif
Sandeep Puligilla60342762014-01-30 21:05:37 +0530170#define IS_HT40_OBSS_SCAN_FEATURE_ENABLE ((WDA_getFwWlanFeatCaps(HT40_OBSS_SCAN)) & (WDI_getHostWlanFeatCaps(HT40_OBSS_SCAN)))
171
Manjunathappa Prakash86f78ca2014-02-10 18:09:15 -0800172typedef enum {
173 MODE_11A = 0, /* 11a Mode */
174 MODE_11G = 1, /* 11b/g Mode */
175 MODE_11B = 2, /* 11b Mode */
176 MODE_11GONLY = 3, /* 11g only Mode */
177 MODE_11NA_HT20 = 4, /* 11a HT20 mode */
178 MODE_11NG_HT20 = 5, /* 11g HT20 mode */
179 MODE_11NA_HT40 = 6, /* 11a HT40 mode */
180 MODE_11NG_HT40 = 7, /* 11g HT40 mode */
181 MODE_11AC_VHT20 = 8,
182 MODE_11AC_VHT40 = 9,
183 MODE_11AC_VHT80 = 10,
184// MODE_11AC_VHT160 = 11,
185 MODE_11AC_VHT20_2G = 11,
186 MODE_11AC_VHT40_2G = 12,
187 MODE_11AC_VHT80_2G = 13,
188 MODE_UNKNOWN = 14,
189 MODE_MAX = 14
190} WLAN_PHY_MODE;
191
192#define WLAN_HAL_CHAN_FLAG_HT40_PLUS 6
193#define WLAN_HAL_CHAN_FLAG_PASSIVE 7
194#define WLAN_HAL_CHAN_ADHOC_ALLOWED 8
195#define WLAN_HAL_CHAN_AP_DISABLED 9
196#define WLAN_HAL_CHAN_FLAG_DFS 10
197#define WLAN_HAL_CHAN_FLAG_ALLOW_HT 11 /* HT is allowed on this channel */
198#define WLAN_HAL_CHAN_FLAG_ALLOW_VHT 12 /* VHT is allowed on this channel */
199
200#define WDA_SET_CHANNEL_FLAG(pwda_channel,flag) do { \
201 (pwda_channel)->channel_info |= (1 << flag); \
202 } while(0)
203
204#define WDA_SET_CHANNEL_MODE(pwda_channel,val) do { \
205 (pwda_channel)->channel_info &= 0xffffffc0; \
206 (pwda_channel)->channel_info |= (val); \
207 } while(0)
208
209#define WDA_SET_CHANNEL_MAX_POWER(pwda_channel,val) do { \
210 (pwda_channel)->reg_info_1 &= 0xffff00ff; \
211 (pwda_channel)->reg_info_1 |= ((val&0xff) << 8); \
212 } while(0)
213
214#define WDA_SET_CHANNEL_REG_POWER(pwda_channel,val) do { \
215 (pwda_channel)->reg_info_1 &= 0xff00ffff; \
216 (pwda_channel)->reg_info_1 |= ((val&0xff) << 16); \
217 } while(0)
218#define WDA_SET_CHANNEL_MIN_POWER(pwlan_hal_update_channel,val) do { \
219 (pwlan_hal_update_channel)->reg_info_1 &= 0xffffff00; \
220 (pwlan_hal_update_channel)->reg_info_1 |= (val&0xff); \
221 } while(0)
222#define WDA_SET_CHANNEL_ANTENNA_MAX(pwlan_hal_update_channel,val) do { \
223 (pwlan_hal_update_channel)->reg_info_2 &= 0xffffff00; \
224 (pwlan_hal_update_channel)->reg_info_2 |= (val&0xff); \
225 } while(0)
226#define WDA_SET_CHANNEL_REG_CLASSID(pwlan_hal_update_channel,val) do { \
227 (pwlan_hal_update_channel)->reg_info_1 &= 0x00ffffff; \
228 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 24); \
229 } while(0)
230
Amar Singhald08ce752014-03-21 16:28:27 -0700231#define WDA_IS_MCAST_FLT_ENABLE_IN_FW (WDA_getFwWlanFeatCaps(WLAN_MCADDR_FLT))
232
Jeff Johnson295189b2012-06-20 16:38:30 -0700233/*--------------------------------------------------------------------------
234 Definitions for Data path APIs
235 --------------------------------------------------------------------------*/
236
237/*As per 802.11 spec */
238#define WDA_TLI_MGMT_FRAME_TYPE 0x00
239#define WDA_TLI_CTRL_FRAME_TYPE 0x10
240#define WDA_TLI_DATA_FRAME_TYPE 0x20
241
242/*802.3 header definitions*/
243#define WDA_TLI_802_3_HEADER_LEN 14
244/*802.11 header definitions - header len without QOS ctrl field*/
245#define WDA_TLI_802_11_HEADER_LEN 24
246
247/*Determines the header len based on the disable xtl field*/
248#define WDA_TLI_MAC_HEADER_LEN( _dxtl) \
249 ( ( 0 == _dxtl )? \
250 WDA_TLI_802_3_HEADER_LEN:WDA_TLI_802_11_HEADER_LEN )
251
252/* TX channel enum type:
253
254 We have five types of TX packets so far and want to block/unblock each
255 traffic individually according to, for example, low resouce condition.
256 Define five TX channels for UMAC here. WDA can map these logical
257 channels to physical DXE channels if needed.
258*/
259typedef enum
260{
261 WDA_TXFLOW_AC_BK = 0,
262 WDA_TXFLOW_AC_BE = 1,
263 WDA_TXFLOW_AC_VI = 2,
264 WDA_TXFLOW_AC_VO = 3,
265 WDA_TXFLOW_MGMT = 4,
266 WDA_TXFLOW_BAP = 1, /* BAP is sent as BE */
267 WDA_TXFLOW_FC = 1, /* FC is sent as BE */
268 WDA_TXFLOW_MAX
269} WDA_TXFlowEnumType;
270
271#define WDA_TXFLOWMASK 0x1F /* 1~4bit:low priority ch / 5bit: high */
272
273/* ---------------------------------------------------------------------
274 Libra and Volans specifics
275
276 TODO Consider refactoring it and put it into two separate headers,
277 one for Prima and one for Volans
Jeff Johnson295189b2012-06-20 16:38:30 -0700278 ----------------------------------------------------------------------*/
279
280/* For backward compatability with SDIO. It's BAL header size for SDIO
281 interface. It's nothing for integrated SOC */
Jeff Johnson295189b2012-06-20 16:38:30 -0700282#define WDA_DXE_HEADER_SIZE 0
Jeff Johnson295189b2012-06-20 16:38:30 -0700283
Jeff Johnson295189b2012-06-20 16:38:30 -0700284
285/*Minimum resources needed - arbitrary*/
286
287/*DXE + SD*/
Madan Mohan Koyyalamudia53c4dc2012-11-13 10:35:42 -0800288#define WDA_WLAN_LIBRA_HEADER_LEN (20 + 8)
Jeff Johnson295189b2012-06-20 16:38:30 -0700289
Jeff Johnson295189b2012-06-20 16:38:30 -0700290#define WDA_TLI_BD_PDU_RESERVE_THRESHOLD 10
Jeff Johnson295189b2012-06-20 16:38:30 -0700291
292
Jeff Johnson295189b2012-06-20 16:38:30 -0700293# define WDA_TLI_MIN_RES_MF 1
294# define WDA_TLI_MIN_RES_BAP 2
295# define WDA_TLI_MIN_RES_DATA 3
Jeff Johnson295189b2012-06-20 16:38:30 -0700296
Jeff Johnson295189b2012-06-20 16:38:30 -0700297# define WDA_NUM_STA 8
Jeff Johnson295189b2012-06-20 16:38:30 -0700298
299/* For backward compatability with SDIO.
300
301 For SDIO interface, calculate the TX frame length and number of PDU
302 to transfter the frame.
303
304 _vosBuff: IN VOS pakcet buffer pointer
305 _usPktLen: OUT VOS packet length in bytes
306 _uResLen: OUT Number of PDU to hold this VOS packet
307 _uTotalPktLen: OUT Totoal packet length including BAL header size
308
309 For integrated SOC, _usPktLen and _uTotalPktLen is VOS pakcet length
310 which does include BD header length. _uResLen is hardcoded 2.
311 */
Jeff Johnson295189b2012-06-20 16:38:30 -0700312
313#ifdef WINDOWS_DT
314#define WDA_TLI_PROCESS_FRAME_LEN( _vosBuff, _usPktLen, \
315 _uResLen, _uTotalPktLen) \
316 do \
317 { \
318 _usPktLen = wpalPacketGetFragCount((wpt_packet*)_vosBuff) + 1/*BD*/;\
319 _uResLen = _usPktLen; \
320 _uTotalPktLen = _usPktLen; \
321 } \
322 while ( 0 )
323#else /* WINDOWS_DT */
324#define WDA_TLI_PROCESS_FRAME_LEN( _vosBuff, _usPktLen, \
325 _uResLen, _uTotalPktLen) \
326 do \
327 { \
328 _usPktLen = 2; /* Need 1 descriptor per a packet + packet*/ \
329 _uResLen = 2; /* Assume that we spends two DXE descriptor */ \
330 _uTotalPktLen = _usPktLen; \
331 } \
332 while ( 0 )
333#endif /* WINDOWS_DT */
334
Jeff Johnson295189b2012-06-20 16:38:30 -0700335
336
337/*--------------------------------------------------------------------------
338 Message Definitions
339 --------------------------------------------------------------------------*/
340
341/* TX Tranmit request message. It serializes TX request to TX thread.
342 The message is processed in TL.
343*/
344#define WDA_DS_TX_START_XMIT WLANTL_TX_START_XMIT
345#define WDA_DS_FINISH_ULA WLANTL_FINISH_ULA
346
Madan Mohan Koyyalamudi31e4cad2013-08-21 20:21:14 +0530347#define VOS_TO_WPAL_PKT(_vos_pkt) ((wpt_packet*)_vos_pkt)
Jeff Johnson295189b2012-06-20 16:38:30 -0700348
349#define WDA_TX_PACKET_FREED 0X0
350
Jeff Johnson43971f52012-07-17 12:26:56 -0700351/* Approximate amount of time to wait for WDA to stop WDI considering 1 pendig req too*/
352#define WDA_STOP_TIMEOUT ( (WDI_RESPONSE_TIMEOUT * 2) + WDI_SET_POWER_STATE_TIMEOUT + 5)
Jeff Johnson295189b2012-06-20 16:38:30 -0700353/*--------------------------------------------------------------------------
354 Functions
355 --------------------------------------------------------------------------*/
356
357/* For data client */
358typedef VOS_STATUS (*WDA_DS_TxCompleteCallback) ( v_PVOID_t pContext, vos_pkt_t *pFrameDataBuff, VOS_STATUS txStatus );
359typedef VOS_STATUS (*WDA_DS_RxPacketCallback) ( v_PVOID_t pContext, vos_pkt_t *pFrameDataBuff );
360typedef v_U32_t (*WDA_DS_TxPacketCallback) ( v_PVOID_t pContext,
361 vos_pkt_t **ppFrameDataBuff,
362 v_U32_t uSize,
Jeff Johnson295189b2012-06-20 16:38:30 -0700363 v_U8_t uFlowMask,
Jeff Johnson295189b2012-06-20 16:38:30 -0700364 v_BOOL_t *pbUrgent );
365typedef VOS_STATUS (*WDA_DS_ResourceCB) ( v_PVOID_t pContext, v_U32_t uCount );
366
367
Jeff Johnson295189b2012-06-20 16:38:30 -0700368/* For management client */
369typedef VOS_STATUS (*WDA_DS_TxCompleteCb)( v_PVOID_t pContext, wpt_packet *pFrame );
370typedef VOS_STATUS (*WDA_DS_RxCompleteCb)( v_PVOID_t pContext, wpt_packet *pFrame );
371typedef VOS_STATUS (*WDA_DS_TxFlowControlCb)( v_PVOID_t pContext, v_U8_t acMask );
372typedef void (*pWDATxRxCompFunc)( v_PVOID_t pContext, void *pData );
373
374//callback function for TX complete
375//parameter 1 - global pMac pointer
376//parameter 2 - txComplete status : 1- success, 0 - failure.
377typedef eHalStatus (*pWDAAckFnTxComp)(tpAniSirGlobal, tANI_U32);
378
379typedef struct
380{
381 tANI_U16 ucValidStaIndex ;
382 /*
383 * each bit in ucUseBaBitmap represent BA is enabled or not for this tid
384 * tid0 ..bit0, tid1..bit1 and so on..
385 */
386 tANI_U8 ucUseBaBitmap ;
387 tANI_U8 bssIdx;
388 tANI_U32 framesTxed[STACFG_MAX_TC];
389}tWdaStaInfo, *tpWdaStaInfo ;
390
391/* group all the WDA timers into this structure */
392typedef struct
393{
394 /* BA activity check timer */
395 TX_TIMER baActivityChkTmr ;
396
397 /* Tx Complete Timeout timer */
398 TX_TIMER TxCompleteTimer ;
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -0800399
400 /* Traffic Stats timer */
401 TX_TIMER trafficStatsTimer ;
Jeff Johnson295189b2012-06-20 16:38:30 -0700402}tWdaTimers ;
Siddharth Bhal85f99b12014-05-09 08:09:07 +0530403
Gopichand Nakkala976e3252013-01-03 15:45:56 -0800404#ifdef WLAN_SOFTAP_VSTA_FEATURE
Yathish Hanumapuradoddi Shivanna64dfc472013-03-08 10:48:34 -0800405#define WDA_MAX_STA (41)
Gopichand Nakkala976e3252013-01-03 15:45:56 -0800406#else
Jeff Johnson295189b2012-06-20 16:38:30 -0700407#define WDA_MAX_STA (16)
Gopichand Nakkala976e3252013-01-03 15:45:56 -0800408#endif
Siddharth Bhal85f99b12014-05-09 08:09:07 +0530409typedef enum
410{
411 WDA_ADDSTA_REQ_NO_MEM = 0,
412 WDA_ADDSTA_REQ_WDI_FAIL = 1,
413 WDA_ADDSTA_RSP_NO_MEM = 2,
414 WDA_ADDSTA_RSP_WDI_FAIL = 3,
415 WDA_ADDSTA_MAX
416} WDA_AddSelfStaFailReasonDebug;
417
418/*AddSelfSta Request and Response Debug*/
419typedef struct
420{
421 wpt_uint8 wdiAddStaSelfStaReqCounter;
422 wpt_uint8 wdiAddStaSelfStaRspCounter;
423 wpt_uint8 wdiAddStaSelfStaFailCounter;
424 wpt_uint8 ucSTASelfIdx; /* received SelfStaIdx*/
425 wpt_uint8 wdaAddSelfStaFailReason;
426} tWDA_AddSelfStaDebugParams;
427
Jeff Johnson295189b2012-06-20 16:38:30 -0700428typedef struct
429{
430 v_PVOID_t pVosContext; /* global VOSS context*/
431 v_PVOID_t pWdiContext; /* WDI context */
432 WDA_state wdaState ; /* WDA state tracking */
Jeff Johnson295189b2012-06-20 16:38:30 -0700433 v_PVOID_t wdaWdiCfgApiMsgParam ; /* WDI API paramter tracking */
434 vos_event_t wdaWdiEvent; /* WDI API sync event */
435
436 /* Event to wait for tx completion */
437 vos_event_t txFrameEvent;
438
439 /* call back function for tx complete*/
440 pWDATxRxCompFunc pTxCbFunc;
441 /* call back function for tx packet ack */
442 pWDAAckFnTxComp pAckTxCbFunc;
443 tANI_U32 frameTransRequired;
444 tSirMacAddr macBSSID; /*BSSID of the network */
445 tSirMacAddr macSTASelf; /*Self STA MAC*/
446
447 /* TX channel mask for flow control */
448 v_U8_t uTxFlowMask;
449 /* TL's TX resource callback */
450 WDA_DS_ResourceCB pfnTxResourceCB;
451 /* TL's TX complete callback */
452 WDA_DS_TxCompleteCallback pfnTxCompleteCallback;
453
454 tWdaStaInfo wdaStaInfo[WDA_MAX_STA];
455
456 tANI_U8 wdaMaxSta;
457 tWdaTimers wdaTimers;
458
459 /* STA, AP, IBSS, MULTI-BSS etc.*/
460 tBssSystemRole wdaGlobalSystemRole;
461
462 /* driver mode, PRODUCTION or FTM */
463 tDriverType driverMode;
464
Jeff Johnson295189b2012-06-20 16:38:30 -0700465 /* FTM Command Request tracking */
466 v_PVOID_t wdaFTMCmdReq;
Jeff Johnson295189b2012-06-20 16:38:30 -0700467
468 /* Event to wait for suspend data tx*/
469 vos_event_t suspendDataTxEvent;
470 /* Status frm TL after suspend/resume Tx */
471 tANI_U8 txStatus;
472 /* Flag set to true when TL suspend timesout.*/
473 tANI_U8 txSuspendTimedOut;
474
475 vos_event_t waitOnWdiIndicationCallBack;
476
477 /* version information */
478 tSirVersionType wcnssWlanCompiledVersion;
479 tSirVersionType wcnssWlanReportedVersion;
480 tSirVersionString wcnssSoftwareVersionString;
481 tSirVersionString wcnssHardwareVersionString;
482
483
484 tSirLinkState linkState;
485 /* set, when BT AMP session is going on */
486 v_BOOL_t wdaAmpSessionOn;
487 v_U32_t VosPacketToFree;
Jeff Johnsone7245742012-09-05 17:12:55 -0700488 v_BOOL_t needShutdown;
Madan Mohan Koyyalamudia2fc6412012-10-21 12:06:12 -0700489 v_BOOL_t wdiFailed;
Madan Mohan Koyyalamudid57ae632012-11-06 18:42:48 -0800490 v_BOOL_t wdaTimersCreated;
Leo Chang9d76f622013-08-23 16:34:52 -0700491
492 /* Event to wait for WDA stop on FTM mode */
493 vos_event_t ftmStopDoneEvent;
Siddharth Bhal85f99b12014-05-09 08:09:07 +0530494
495 tWDA_AddSelfStaDebugParams wdaAddSelfStaParams;
496
Jeff Johnson295189b2012-06-20 16:38:30 -0700497} tWDA_CbContext ;
498
499typedef struct
500{
501 v_PVOID_t pWdaContext; /* pointer to WDA context*/
502 v_PVOID_t wdaMsgParam; /* PE parameter tracking */
503 v_PVOID_t wdaWdiApiMsgParam; /* WDI API paramter tracking */
504} tWDA_ReqParams;
505
506/*
507 * FUNCTION: WDA_open
508 * open WDA context
509 */
510
Arun Kumar Khandavalliebb19482014-03-25 13:56:53 +0530511VOS_STATUS WDA_open(v_PVOID_t pVosContext, v_PVOID_t devHandle,
Jeff Johnson295189b2012-06-20 16:38:30 -0700512 tMacOpenParameters *pMacParams ) ;
513
514/*
515 * FUNCTION: WDA_preStart
516 * Trigger DAL-AL to start CFG download
517 */
518VOS_STATUS WDA_start(v_PVOID_t pVosContext) ;
519
520VOS_STATUS WDA_NVDownload_Start(v_PVOID_t pVosContext);
521
522/*
523 * FUNCTION: WDA_preStart
524 * Trigger WDA to start CFG download
525 */
526VOS_STATUS WDA_preStart(v_PVOID_t pVosContext) ;
527/*
528 * FUNCTION: WDA_stop
529 * stop WDA
530 */
531VOS_STATUS WDA_stop(v_PVOID_t pVosContext,tANI_U8 reason);
532
533/*
534 * FUNCTION: WDA_close
535 * close WDA context
536 */
537VOS_STATUS WDA_close(v_PVOID_t pVosContext);
538/*
539 * FUNCTION: WDA_shutdown
540 * Shutdown will not close the control transport, added by SSR
541 */
542VOS_STATUS WDA_shutdown(v_PVOID_t pVosContext, wpt_boolean closeTransport);
543
544/*
Madan Mohan Koyyalamudi9d7a27f2012-11-28 15:55:25 -0800545 * FUNCTION: WDA_setNeedShutdown
546 * WDA stop failed or WDA NV Download failed
Jeff Johnsone7245742012-09-05 17:12:55 -0700547 */
Madan Mohan Koyyalamudi9d7a27f2012-11-28 15:55:25 -0800548void WDA_setNeedShutdown(v_PVOID_t pVosContext);
Jeff Johnsone7245742012-09-05 17:12:55 -0700549/*
550 * FUNCTION: WDA_needShutdown
551 * WDA requires a shutdown rather than a close
552 */
553v_BOOL_t WDA_needShutdown(v_PVOID_t pVosContext);
554
555/*
Jeff Johnson295189b2012-06-20 16:38:30 -0700556 * FUNCTION: WDA_McProcessMsg
557 * DAL-AL message processing entry function
558 */
559
560VOS_STATUS WDA_McProcessMsg( v_CONTEXT_t pVosContext, vos_msg_t *pMsg ) ;
561
562/* -----------------------------------------------------------------
563 * WDA data path API's
564 * ----------------------------------------------------------------*/
565/*
566 * FUNCTION: WDA_MgmtDSRegister
567 * Send Message back to PE
568 */
569
570VOS_STATUS WDA_MgmtDSRegister(tWDA_CbContext *pWDA,
571 WDA_DS_TxCompleteCb WDA_TxCompleteCallback,
572 WDA_DS_RxCompleteCb WDA_RxCompleteCallback,
573 WDA_DS_TxFlowControlCb WDA_TxFlowCtrlCallback
574 ) ;
575/*
576 * FUNCTION: WDA_MgmtDSTxPacket
577 * Forward TX management frame to WDI
578 */
579
580VOS_STATUS WDA_TxPacket(tWDA_CbContext *pWDA,
581 void *pFrmBuf,
582 tANI_U16 frmLen,
583 eFrameType frmType,
584 eFrameTxDir txDir,
585 tANI_U8 tid,
586 pWDATxRxCompFunc pCompFunc,
587 void *pData,
588 pWDAAckFnTxComp pAckTxComp,
Kanchanapally, Vidyullathaf9426e52013-12-24 17:28:54 +0530589 tANI_U32 txFlag);
Jeff Johnson295189b2012-06-20 16:38:30 -0700590
591/*
592 * FUNCTION: WDA_PostMsgApi
593 * API fpr PE to post Message to WDA
594 */
595VOS_STATUS WDA_PostMsgApi(tpAniSirGlobal pMac, tSirMsgQ *pMsg) ;
596
597/* ---------------------------------------------------------
598 * FUNCTION: wdaGetGlobalSystemRole()
599 *
600 * Get the global HAL system role.
601 * ---------------------------------------------------------
602 */
603tBssSystemRole wdaGetGlobalSystemRole(tpAniSirGlobal pMac);
604
605/* maximum wait time for WDA complete event (correct value has to be derived)
606 * for now giving the value 1000 ms */
607#define WDA_WDI_COMPLETION_TIME_OUT 30000 /* in ms */
608
609#define WDA_TL_TX_FRAME_TIMEOUT 10000 /* in msec a very high upper limit of 5,000 msec */
610#define WDA_TL_SUSPEND_TIMEOUT 2000 /* in ms unit */
611
612/*Tag used by WDA to mark a timed out frame*/
613#define WDA_TL_TX_MGMT_TIMED_OUT 0xDEAD
614
615#define WDA_TL_TX_SUSPEND_SUCCESS 0
616#define WDA_TL_TX_SUSPEND_FAILURE 1
617
618// FIXME Temporary value for R33D integaration
619//#define WDA_TL_TX_FRAME_TIMEOUT 20000 /* in msec a very high upper limit */
620
Chet Lanctot186b5732013-03-18 10:26:30 -0700621#define DPU_FEEDBACK_UNPROTECTED_ERROR 0x0F
Jeff Johnson295189b2012-06-20 16:38:30 -0700622
Jeff Johnson295189b2012-06-20 16:38:30 -0700623
624/* ---------------------------------------------------------------------------
625
626 RX Meta info access for Integrated SOC
627 RX BD header access for NON Integrated SOC
628
629 These MACRO are for RX frames that are on flat buffers
630
631 ---------------------------------------------------------------------------*/
632
633/* WDA_GET_RX_MAC_HEADER *****************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700634# define WDA_GET_RX_MAC_HEADER(pRxMeta) \
635 (tpSirMacMgmtHdr)( ((WDI_DS_RxMetaInfoType *)(pRxMeta))->mpduHeaderPtr )
Jeff Johnson295189b2012-06-20 16:38:30 -0700636
637/* WDA_GET_RX_MPDUHEADER3A ****************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700638# define WDA_GET_RX_MPDUHEADER3A(pRxMeta) \
639 (tpSirMacDataHdr3a)( ((WDI_DS_RxMetaInfoType *)(pRxMeta))->mpduHeaderPtr )
Jeff Johnson295189b2012-06-20 16:38:30 -0700640
641/* WDA_GET_RX_MPDU_HEADER_LEN *************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700642# define WDA_GET_RX_MPDU_HEADER_LEN(pRxMeta) \
643 ( ((WDI_DS_RxMetaInfoType *)(pRxMeta))->mpduHeaderLength )
Jeff Johnson295189b2012-06-20 16:38:30 -0700644
645/* WDA_GET_RX_MPDU_LEN ********************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700646# define WDA_GET_RX_MPDU_LEN(pRxMeta) \
647 ( ((WDI_DS_RxMetaInfoType *)(pRxMeta))->mpduLength )
Jeff Johnson295189b2012-06-20 16:38:30 -0700648
649/* WDA_GET_RX_PAYLOAD_LEN ****************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700650# define WDA_GET_RX_PAYLOAD_LEN(pRxMeta) \
651 ( WDA_GET_RX_MPDU_LEN(pRxMeta) - WDA_GET_RX_MPDU_HEADER_LEN(pRxMeta) )
Jeff Johnson295189b2012-06-20 16:38:30 -0700652
653/* WDA_GET_RX_MAC_RATE_IDX ***************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700654# define WDA_GET_RX_MAC_RATE_IDX(pRxMeta) \
655 ( ((WDI_DS_RxMetaInfoType *)(pRxMeta))->rateIndex )
Jeff Johnson295189b2012-06-20 16:38:30 -0700656
657/* WDA_GET_RX_MPDU_DATA ******************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700658# define WDA_GET_RX_MPDU_DATA(pRxMeta) \
659 ( ((WDI_DS_RxMetaInfoType *)(pRxMeta))->mpduDataPtr )
Jeff Johnson295189b2012-06-20 16:38:30 -0700660
661/* WDA_GET_RX_MPDU_DATA_OFFSET ***********************************************/
662// For Integrated SOC: When UMAC receive the packet. BD is already stripped off.
663// Data offset is the MPDU header length
Jeff Johnson295189b2012-06-20 16:38:30 -0700664# define WDA_GET_RX_MPDU_DATA_OFFSET(pRxMeta) WDA_GET_RX_MPDU_HEADER_LEN(pRxMeta)
Jeff Johnson295189b2012-06-20 16:38:30 -0700665
666/* WDA_GET_RX_MPDU_HEADER_OFFSET *********************************************/
667// For Integrated SOC: We UMAC receive the frame,
668// BD is gone and MAC header at offset 0
Jeff Johnson295189b2012-06-20 16:38:30 -0700669# define WDA_GET_RX_MPDU_HEADER_OFFSET(pRxMeta) 0
Jeff Johnson295189b2012-06-20 16:38:30 -0700670
671/* WDA_GET_RX_UNKNOWN_UCAST **************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700672# define WDA_GET_RX_UNKNOWN_UCAST(pRxMeta) \
673 ( ((WDI_DS_RxMetaInfoType *)(pRxMeta))->unknownUcastPkt )
Jeff Johnson295189b2012-06-20 16:38:30 -0700674
675/* WDA_GET_RX_TID ************************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700676# define WDA_GET_RX_TID(pRxMeta) ( ((WDI_DS_RxMetaInfoType *)(pRxMeta))->tid )
Jeff Johnson295189b2012-06-20 16:38:30 -0700677
678/* WDA_GET_RX_STAID **********************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700679# define WDA_GET_RX_STAID(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->staId)
Jeff Johnson295189b2012-06-20 16:38:30 -0700680
681/* WDA_GET_RX_ADDR3_IDX ******************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700682# define WDA_GET_RX_ADDR3_IDX(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->addr3Idx)
Jeff Johnson295189b2012-06-20 16:38:30 -0700683
684/* WDA_GET_RX_CH *************************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700685# define WDA_GET_RX_CH(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->rxChannel)
Jeff Johnson295189b2012-06-20 16:38:30 -0700686
Kiran Kumar Lokere79540f92013-04-25 17:32:16 -0700687/* WDA_GET_RX_RFBAND *********************************************************/
688# define WDA_GET_RX_RFBAND(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->rfBand)
689
Jeff Johnson295189b2012-06-20 16:38:30 -0700690/* WDA_GET_RX_DPUSIG *********************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700691# define WDA_GET_RX_DPUSIG(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->dpuSig)
Jeff Johnson295189b2012-06-20 16:38:30 -0700692
693/* WDA_IS_RX_BCAST ***********************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700694# define WDA_IS_RX_BCAST(pRxMeta) \
695 ( (1 == ((WDI_DS_RxMetaInfoType*)(pRxMeta))->bcast) ? VOS_TRUE : VOS_FALSE )
Jeff Johnson295189b2012-06-20 16:38:30 -0700696
697/* WDA_GET_RX_FT_DONE ********************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700698# define WDA_GET_RX_FT_DONE(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->ft)
Jeff Johnson295189b2012-06-20 16:38:30 -0700699
700/* WDA_GET_RX_DPU_FEEDBACK **************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700701# define WDA_GET_RX_DPU_FEEDBACK(pRxMeta) \
702 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->dpuFeedback)
Jeff Johnson295189b2012-06-20 16:38:30 -0700703
704/* WDA_GET_RX_ASF ************************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700705# define WDA_GET_RX_ASF(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->amsdu_asf)
Jeff Johnson295189b2012-06-20 16:38:30 -0700706
707/* WDA_GET_RX_AEF ************************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700708# define WDA_GET_RX_AEF(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->amsdu_aef)
Jeff Johnson295189b2012-06-20 16:38:30 -0700709
710/* WDA_GET_RX_ESF ************************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700711# define WDA_GET_RX_ESF(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->amsdu_esf)
Jeff Johnson295189b2012-06-20 16:38:30 -0700712
713/* WDA_GET_RX_BEACON_SENT ****************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700714# define WDA_GET_RX_BEACON_SENT(pRxMeta) \
715 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->bsf)
Jeff Johnson295189b2012-06-20 16:38:30 -0700716
717/* WDA_GET_RX_TSF_LATER *****************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700718# define WDA_GET_RX_TSF_LATER(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->rtsf)
Jeff Johnson295189b2012-06-20 16:38:30 -0700719
720/* WDA_GET_RX_TYPE ***********************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700721# define WDA_GET_RX_TYPE(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->type)
Jeff Johnson295189b2012-06-20 16:38:30 -0700722
723/* WDA_GET_RX_SUBTYPE ********************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700724# define WDA_GET_RX_SUBTYPE(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->subtype)
Jeff Johnson295189b2012-06-20 16:38:30 -0700725
726/* WDA_GET_RX_TYPE_SUBTYPE ****************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700727# define WDA_GET_RX_TYPE_SUBTYPE(pRxMeta) \
728 ((WDA_GET_RX_TYPE(pRxMeta)<<4)|WDA_GET_RX_SUBTYPE(pRxMeta))
Jeff Johnson295189b2012-06-20 16:38:30 -0700729
730/* WDA_GET_RX_REORDER_OPCODE : For MSDU reorder *******************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700731# define WDA_GET_RX_REORDER_OPCODE(pRxMeta) \
732 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->ampdu_reorderOpcode)
Jeff Johnson295189b2012-06-20 16:38:30 -0700733
734/* WDA_GET_RX_REORDER_SLOT_IDX : For MSDU reorder ****************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700735# define WDA_GET_RX_REORDER_SLOT_IDX(pRxMeta) \
736 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->ampdu_reorderSlotIdx)
Jeff Johnson295189b2012-06-20 16:38:30 -0700737
738/* WDA_GET_RX_REORDER_FWD_IDX : For MSDU reorder *****************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700739# define WDA_GET_RX_REORDER_FWD_IDX(pRxMeta) \
740 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->ampdu_reorderFwdIdx)
Jeff Johnson295189b2012-06-20 16:38:30 -0700741
742/* WDA_GET_RX_REORDER_CUR_PKT_SEQ_NO : Fro MSDU reorder **********************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700743# define WDA_GET_RX_REORDER_CUR_PKT_SEQ_NO(pRxMeta) \
744 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->currentPktSeqNo)
Jeff Johnson295189b2012-06-20 16:38:30 -0700745
746/* WDA_IS_RX_LLC_PRESENT *****************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700747# define WDA_IS_RX_LLC_PRESENT(pRxMeta) \
748 ( (0 == ((WDI_DS_RxMetaInfoType*)(pRxMeta))->llcr) ? VOS_TRUE : VOS_FALSE )
Jeff Johnson295189b2012-06-20 16:38:30 -0700749
750#define WLANWDA_HO_IS_AN_AMPDU 0x4000
751#define WLANWDA_HO_LAST_MPDU_OF_AMPDU 0x400
752
753/* WDA_IS_RX_AN_AMPDU ********************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700754# define WDA_IS_RX_AN_AMPDU(pRxMeta) \
755 ( ((WDI_DS_RxMetaInfoType*)(pRxMeta))->rxpFlags & WLANWDA_HO_IS_AN_AMPDU )
Jeff Johnson295189b2012-06-20 16:38:30 -0700756
757/* WDA_IS_RX_LAST_MPDU *******************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700758# define WDA_IS_RX_LAST_MPDU(pRxMeta) \
759 ( ((WDI_DS_RxMetaInfoType*)(pRxMeta))->rxpFlags & WLANWDA_HO_LAST_MPDU_OF_AMPDU )
Jeff Johnson295189b2012-06-20 16:38:30 -0700760
761/* WDA_GET_RX_TIMESTAMP *****************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700762# define WDA_GET_RX_TIMESTAMP(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->mclkRxTimestamp)
Jeff Johnson295189b2012-06-20 16:38:30 -0700763
764/* WDA_IS_RX_IN_SCAN *********************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700765# define WDA_IS_RX_IN_SCAN(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->scan)
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -0700766#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
767/* WDA_GET_OFFLOADSCANLEARN **************************************************/
768# define WDA_GET_OFFLOADSCANLEARN(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->offloadScanLearn)
769/* WDA_GET_ROAMCANDIDATEIND **************************************************/
770# define WDA_GET_ROAMCANDIDATEIND(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->roamCandidateInd)
771#endif
Dino Mycle41bdc942014-06-10 11:30:24 +0530772#ifdef WLAN_FEATURE_EXTSCAN
773#define WDA_GET_EXTSCANFULLSCANRESIND(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->extscanBuffer)
774#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700775/* WDA_GET_RX_RSSI_DB ********************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700776// Volans RF
777# define WDA_RSSI_OFFSET 100
778# define WDA_GET_RSSI0_DB(rssi0) (rssi0 - WDA_RSSI_OFFSET)
779# define WDA_GET_RSSI1_DB(rssi0) (0 - WDA_RSSI_OFFSET)
780# define WDA_MAX_OF_TWO(val1, val2) ( ((val1) > (val2)) ? (val1) : (val2))
781# define WDA_GET_RSSI_DB(rssi0) \
782 WDA_MAX_OF_TWO(WDA_GET_RSSI0_DB(rssi0), WDA_GET_RSSI1_DB(rssi0))
783# define WDA_GET_RX_RSSI_DB(pRxMeta) \
784 WDA_GET_RSSI_DB((((WDI_DS_RxMetaInfoType*)(pRxMeta))->rssi0))
Jeff Johnson295189b2012-06-20 16:38:30 -0700785
786/* WDA_GET_RX_SNR ************************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700787# define WDA_GET_RX_SNR(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->snr)
Jeff Johnson295189b2012-06-20 16:38:30 -0700788
789/* WDA_IS_RX_FC **************************************************************/
790// Flow control frames
Jeff Johnson295189b2012-06-20 16:38:30 -0700791/* FIXME WDA should provide the meta info which indicates FC frame
792 In the meantime, use hardcoded FALSE, since we don't support FC yet */
793# define WDA_IS_RX_FC(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->fc)
Jeff Johnson295189b2012-06-20 16:38:30 -0700794
795/* WDA_GET_RX_FC_VALID_STA_MASK **********************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700796# define WDA_GET_RX_FC_VALID_STA_MASK(pRxMeta) \
797 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->fcSTAValidMask)
Jeff Johnson295189b2012-06-20 16:38:30 -0700798
799/* WDA_GET_RX_FC_PWRSAVE_STA_MASK ********************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700800# define WDA_GET_RX_FC_PWRSAVE_STA_MASK(pRxMeta) \
801 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->fcSTAPwrSaveStateMask)
Jeff Johnson295189b2012-06-20 16:38:30 -0700802
803/* WDA_GET_RX_FC_STA_THRD_IND_MASK ********************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700804# define WDA_GET_RX_FC_STA_THRD_IND_MASK(pRxMeta) \
805 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->fcSTAThreshIndMask)
Jeff Johnson295189b2012-06-20 16:38:30 -0700806
807/* WDA_GET_RX_FC_FORCED_STA_TX_DISABLED_BITMAP ********************************************/
808# define WDA_GET_RX_FC_STA_TX_DISABLED_BITMAP(pRxMeta) \
809 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->fcStaTxDisabledBitmap)
810
811/* WDA_GET_RX_FC_STA_TXQ_LEN *************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700812# define WDA_GET_RX_FC_STA_TXQ_LEN(pRxMeta, staId) \
813 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->fcSTATxQLen[(staId)])
Jeff Johnson295189b2012-06-20 16:38:30 -0700814
815/* WDA_GET_RX_FC_STA_CUR_TXRATE **********************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700816# define WDA_GET_RX_FC_STA_CUR_TXRATE(pRxMeta, staId) \
817 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->fcSTACurTxRate[(staId)])
Jeff Johnson295189b2012-06-20 16:38:30 -0700818
819/* WDA_GET_RX_REPLAY_COUNT ***************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700820# define WDA_GET_RX_REPLAY_COUNT(pRxMeta) \
821 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->replayCount)
Jeff Johnson295189b2012-06-20 16:38:30 -0700822
823/* WDA_GETRSSI0 ***************************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700824# define WDA_GETRSSI0(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->rssi0)
Jeff Johnson295189b2012-06-20 16:38:30 -0700825
826/* WDA_GETRSSI1 ***************************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700827# define WDA_GETRSSI1(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->rssi1)
Jeff Johnson295189b2012-06-20 16:38:30 -0700828
Chet Lanctot186b5732013-03-18 10:26:30 -0700829/* WDA_GET_RX_RMF *****************************************************/
830#ifdef WLAN_FEATURE_11W
831# define WDA_GET_RX_RMF(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->rmf)
832#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700833
834/* --------------------------------------------------------------------*/
835
Jeff Johnson295189b2012-06-20 16:38:30 -0700836uint8 WDA_IsWcnssWlanCompiledVersionGreaterThanOrEqual(uint8 major, uint8 minor, uint8 version, uint8 revision);
837uint8 WDA_IsWcnssWlanReportedVersionGreaterThanOrEqual(uint8 major, uint8 minor, uint8 version, uint8 revision);
838
839
840VOS_STATUS WDA_GetWcnssWlanCompiledVersion(v_PVOID_t pvosGCtx,
841 tSirVersionType *pVersion);
842VOS_STATUS WDA_GetWcnssWlanReportedVersion(v_PVOID_t pvosGCtx,
843 tSirVersionType *pVersion);
844VOS_STATUS WDA_GetWcnssSoftwareVersion(v_PVOID_t pvosGCtx,
845 tANI_U8 *pVersion,
846 tANI_U32 versionBufferSize);
847VOS_STATUS WDA_GetWcnssHardwareVersion(v_PVOID_t pvosGCtx,
848 tANI_U8 *pVersion,
849 tANI_U32 versionBufferSize);
850
851VOS_STATUS WDA_SetUapsdAcParamsReq(v_PVOID_t , v_U8_t , tUapsdInfo *);
852VOS_STATUS WDA_ClearUapsdAcParamsReq(v_PVOID_t , v_U8_t , wpt_uint8 );
853VOS_STATUS WDA_SetRSSIThresholdsReq(tpAniSirGlobal , tSirRSSIThresholds *);
854// Just declare the function extern here and save some time.
855extern tSirRetStatus halMmhForwardMBmsg(void*, tSirMbMsg*);
856tSirRetStatus uMacPostCtrlMsg(void* pSirGlobal, tSirMbMsg* pMb);
Jeff Johnson295189b2012-06-20 16:38:30 -0700857
858
Jeff Johnson295189b2012-06-20 16:38:30 -0700859#define WDA_MAX_TXPOWER_INVALID HAL_MAX_TXPOWER_INVALID
860
861//WDA Messages to HAL messages Mapping
862#if 0
863//Required by SME
864//#define WDA_SIGNAL_BT_EVENT SIR_HAL_SIGNAL_BT_EVENT - this is defined in sirParams.h
865//#define WDA_BTC_SET_CFG SIR_HAL_BTC_SET_CFG
866
867//Required by PE
868#define WDA_HOST_MSG_START SIR_HAL_HOST_MSG_START
869#define WDA_INITIAL_CAL_FAILED_NTF SIR_HAL_INITIAL_CAL_FAILED_NTF
870#define WDA_SHUTDOWN_REQ SIR_HAL_SHUTDOWN_REQ
871#define WDA_SHUTDOWN_CNF SIR_HAL_SHUTDOWN_CNF
872#define WDA_RADIO_ON_OFF_IND SIR_HAL_RADIO_ON_OFF_IND
873#define WDA_RESET_CNF SIR_HAL_RESET_CNF
874#define WDA_SetRegDomain \
Madan Mohan Koyyalamudic0d1b3f2012-11-13 10:41:07 -0800875 (eHalStatus halPhySetRegDomain(tHalHandle hHal, eRegDomainId regDomain))
Jeff Johnson295189b2012-06-20 16:38:30 -0700876#endif
877
878#define WDA_APP_SETUP_NTF SIR_HAL_APP_SETUP_NTF
879#define WDA_NIC_OPER_NTF SIR_HAL_NIC_OPER_NTF
880#define WDA_INIT_START_REQ SIR_HAL_INIT_START_REQ
881#define WDA_RESET_REQ SIR_HAL_RESET_REQ
882#define WDA_HDD_ADDBA_REQ SIR_HAL_HDD_ADDBA_REQ
883#define WDA_HDD_ADDBA_RSP SIR_HAL_HDD_ADDBA_RSP
884#define WDA_DELETEBA_IND SIR_HAL_DELETEBA_IND
885#define WDA_BA_FAIL_IND SIR_HAL_BA_FAIL_IND
886#define WDA_TL_FLUSH_AC_REQ SIR_TL_HAL_FLUSH_AC_REQ
887#define WDA_TL_FLUSH_AC_RSP SIR_HAL_TL_FLUSH_AC_RSP
888
889#define WDA_MSG_TYPES_BEGIN SIR_HAL_MSG_TYPES_BEGIN
890#define WDA_ITC_MSG_TYPES_BEGIN SIR_HAL_ITC_MSG_TYPES_BEGIN
891#define WDA_RADAR_DETECTED_IND SIR_HAL_RADAR_DETECTED_IND
892#define WDA_WDT_KAM_RSP SIR_HAL_WDT_KAM_RSP
893#define WDA_TIMER_TEMP_MEAS_REQ SIR_HAL_TIMER_TEMP_MEAS_REQ
894#define WDA_TIMER_PERIODIC_STATS_COLLECT_REQ SIR_HAL_TIMER_PERIODIC_STATS_COLLECT_REQ
895#define WDA_CAL_REQ_NTF SIR_HAL_CAL_REQ_NTF
896#define WDA_MNT_OPEN_TPC_TEMP_MEAS_REQ SIR_HAL_MNT_OPEN_TPC_TEMP_MEAS_REQ
897#define WDA_CCA_MONITOR_INTERVAL_TO SIR_HAL_CCA_MONITOR_INTERVAL_TO
898#define WDA_CCA_MONITOR_DURATION_TO SIR_HAL_CCA_MONITOR_DURATION_TO
899#define WDA_CCA_MONITOR_START SIR_HAL_CCA_MONITOR_START
900#define WDA_CCA_MONITOR_STOP SIR_HAL_CCA_MONITOR_STOP
901#define WDA_CCA_CHANGE_MODE SIR_HAL_CCA_CHANGE_MODE
902#define WDA_TIMER_WRAP_AROUND_STATS_COLLECT_REQ SIR_HAL_TIMER_WRAP_AROUND_STATS_COLLECT_REQ
903
904/*
905 * New Taurus related messages
906 */
907#define WDA_ADD_STA_REQ SIR_HAL_ADD_STA_REQ
908#define WDA_ADD_STA_RSP SIR_HAL_ADD_STA_RSP
909#define WDA_ADD_STA_SELF_RSP SIR_HAL_ADD_STA_SELF_RSP
910#define WDA_DEL_STA_SELF_RSP SIR_HAL_DEL_STA_SELF_RSP
911#define WDA_DELETE_STA_REQ SIR_HAL_DELETE_STA_REQ
912#define WDA_DELETE_STA_RSP SIR_HAL_DELETE_STA_RSP
913#define WDA_ADD_BSS_REQ SIR_HAL_ADD_BSS_REQ
914#define WDA_ADD_BSS_RSP SIR_HAL_ADD_BSS_RSP
915#define WDA_DELETE_BSS_REQ SIR_HAL_DELETE_BSS_REQ
916#define WDA_DELETE_BSS_RSP SIR_HAL_DELETE_BSS_RSP
917#define WDA_INIT_SCAN_REQ SIR_HAL_INIT_SCAN_REQ
918#define WDA_INIT_SCAN_RSP SIR_HAL_INIT_SCAN_RSP
919#define WDA_START_SCAN_REQ SIR_HAL_START_SCAN_REQ
920#define WDA_START_SCAN_RSP SIR_HAL_START_SCAN_RSP
921#define WDA_END_SCAN_REQ SIR_HAL_END_SCAN_REQ
922#define WDA_END_SCAN_RSP SIR_HAL_END_SCAN_RSP
923#define WDA_FINISH_SCAN_REQ SIR_HAL_FINISH_SCAN_REQ
924#define WDA_FINISH_SCAN_RSP SIR_HAL_FINISH_SCAN_RSP
925#define WDA_SEND_BEACON_REQ SIR_HAL_SEND_BEACON_REQ
926#define WDA_SEND_BEACON_RSP SIR_HAL_SEND_BEACON_RSP
927
928#define WDA_INIT_CFG_REQ SIR_HAL_INIT_CFG_REQ
929#define WDA_INIT_CFG_RSP SIR_HAL_INIT_CFG_RSP
930
931#define WDA_INIT_WM_CFG_REQ SIR_HAL_INIT_WM_CFG_REQ
932#define WDA_INIT_WM_CFG_RSP SIR_HAL_INIT_WM_CFG_RSP
933
934#define WDA_SET_BSSKEY_REQ SIR_HAL_SET_BSSKEY_REQ
935#define WDA_SET_BSSKEY_RSP SIR_HAL_SET_BSSKEY_RSP
936#define WDA_SET_STAKEY_REQ SIR_HAL_SET_STAKEY_REQ
937#define WDA_SET_STAKEY_RSP SIR_HAL_SET_STAKEY_RSP
938#define WDA_DPU_STATS_REQ SIR_HAL_DPU_STATS_REQ
939#define WDA_DPU_STATS_RSP SIR_HAL_DPU_STATS_RSP
940#define WDA_GET_DPUINFO_REQ SIR_HAL_GET_DPUINFO_REQ
941#define WDA_GET_DPUINFO_RSP SIR_HAL_GET_DPUINFO_RSP
942
943#define WDA_UPDATE_EDCA_PROFILE_IND SIR_HAL_UPDATE_EDCA_PROFILE_IND
944
945#define WDA_UPDATE_STARATEINFO_REQ SIR_HAL_UPDATE_STARATEINFO_REQ
946#define WDA_UPDATE_STARATEINFO_RSP SIR_HAL_UPDATE_STARATEINFO_RSP
947
948#define WDA_UPDATE_BEACON_IND SIR_HAL_UPDATE_BEACON_IND
949#define WDA_UPDATE_CF_IND SIR_HAL_UPDATE_CF_IND
950#define WDA_CHNL_SWITCH_REQ SIR_HAL_CHNL_SWITCH_REQ
951#define WDA_ADD_TS_REQ SIR_HAL_ADD_TS_REQ
952#define WDA_DEL_TS_REQ SIR_HAL_DEL_TS_REQ
953#define WDA_SOFTMAC_TXSTAT_REPORT SIR_HAL_SOFTMAC_TXSTAT_REPORT
954
955#define WDA_MBOX_SENDMSG_COMPLETE_IND SIR_HAL_MBOX_SENDMSG_COMPLETE_IND
956#define WDA_EXIT_BMPS_REQ SIR_HAL_EXIT_BMPS_REQ
957#define WDA_EXIT_BMPS_RSP SIR_HAL_EXIT_BMPS_RSP
958#define WDA_EXIT_BMPS_IND SIR_HAL_EXIT_BMPS_IND
959#define WDA_ENTER_BMPS_REQ SIR_HAL_ENTER_BMPS_REQ
960#define WDA_ENTER_BMPS_RSP SIR_HAL_ENTER_BMPS_RSP
961#define WDA_BMPS_STATUS_IND SIR_HAL_BMPS_STATUS_IND
962#define WDA_MISSED_BEACON_IND SIR_HAL_MISSED_BEACON_IND
963
964#define WDA_CFG_RXP_FILTER_REQ SIR_HAL_CFG_RXP_FILTER_REQ
965#define WDA_CFG_RXP_FILTER_RSP SIR_HAL_CFG_RXP_FILTER_RSP
966
967#define WDA_SWITCH_CHANNEL_RSP SIR_HAL_SWITCH_CHANNEL_RSP
968#define WDA_P2P_NOA_ATTR_IND SIR_HAL_P2P_NOA_ATTR_IND
Viral Modid86bde22012-12-10 13:09:21 -0800969#define WDA_P2P_NOA_START_IND SIR_HAL_P2P_NOA_START_IND
Jeff Johnson295189b2012-06-20 16:38:30 -0700970#define WDA_PWR_SAVE_CFG SIR_HAL_PWR_SAVE_CFG
971
972#define WDA_REGISTER_PE_CALLBACK SIR_HAL_REGISTER_PE_CALLBACK
973#define WDA_SOFTMAC_MEM_READREQUEST SIR_HAL_SOFTMAC_MEM_READREQUEST
974#define WDA_SOFTMAC_MEM_WRITEREQUEST SIR_HAL_SOFTMAC_MEM_WRITEREQUEST
975
976#define WDA_SOFTMAC_MEM_READRESPONSE SIR_HAL_SOFTMAC_MEM_READRESPONSE
977#define WDA_SOFTMAC_BULKREGWRITE_CONFIRM SIR_HAL_SOFTMAC_BULKREGWRITE_CONFIRM
978#define WDA_SOFTMAC_BULKREGREAD_RESPONSE SIR_HAL_SOFTMAC_BULKREGREAD_RESPONSE
979#define WDA_SOFTMAC_HOSTMESG_MSGPROCESSRESULT SIR_HAL_SOFTMAC_HOSTMESG_MSGPROCESSRESULT
980
981#define WDA_ADDBA_REQ SIR_HAL_ADDBA_REQ
982#define WDA_ADDBA_RSP SIR_HAL_ADDBA_RSP
983#define WDA_DELBA_IND SIR_HAL_DELBA_IND
984#define WDA_DEL_BA_IND SIR_HAL_DEL_BA_IND
985#define WDA_MIC_FAILURE_IND SIR_HAL_MIC_FAILURE_IND
986
987//message from sme to initiate delete block ack session.
988#define WDA_DELBA_REQ SIR_HAL_DELBA_REQ
989#define WDA_IBSS_STA_ADD SIR_HAL_IBSS_STA_ADD
990#define WDA_TIMER_ADJUST_ADAPTIVE_THRESHOLD_IND SIR_HAL_TIMER_ADJUST_ADAPTIVE_THRESHOLD_IND
991#define WDA_SET_LINK_STATE SIR_HAL_SET_LINK_STATE
992#define WDA_SET_LINK_STATE_RSP SIR_HAL_SET_LINK_STATE_RSP
993#define WDA_ENTER_IMPS_REQ SIR_HAL_ENTER_IMPS_REQ
994#define WDA_ENTER_IMPS_RSP SIR_HAL_ENTER_IMPS_RSP
995#define WDA_EXIT_IMPS_RSP SIR_HAL_EXIT_IMPS_RSP
996#define WDA_EXIT_IMPS_REQ SIR_HAL_EXIT_IMPS_REQ
997#define WDA_SOFTMAC_HOSTMESG_PS_STATUS_IND SIR_HAL_SOFTMAC_HOSTMESG_PS_STATUS_IND
998#define WDA_POSTPONE_ENTER_IMPS_RSP SIR_HAL_POSTPONE_ENTER_IMPS_RSP
999#define WDA_STA_STAT_REQ SIR_HAL_STA_STAT_REQ
1000#define WDA_GLOBAL_STAT_REQ SIR_HAL_GLOBAL_STAT_REQ
1001#define WDA_AGGR_STAT_REQ SIR_HAL_AGGR_STAT_REQ
1002#define WDA_STA_STAT_RSP SIR_HAL_STA_STAT_RSP
1003#define WDA_GLOBAL_STAT_RSP SIR_HAL_GLOBAL_STAT_RSP
1004#define WDA_AGGR_STAT_RSP SIR_HAL_AGGR_STAT_RSP
1005#define WDA_STAT_SUMM_REQ SIR_HAL_STAT_SUMM_REQ
1006#define WDA_STAT_SUMM_RSP SIR_HAL_STAT_SUMM_RSP
1007#define WDA_REMOVE_BSSKEY_REQ SIR_HAL_REMOVE_BSSKEY_REQ
1008#define WDA_REMOVE_BSSKEY_RSP SIR_HAL_REMOVE_BSSKEY_RSP
1009#define WDA_REMOVE_STAKEY_REQ SIR_HAL_REMOVE_STAKEY_REQ
1010#define WDA_REMOVE_STAKEY_RSP SIR_HAL_REMOVE_STAKEY_RSP
1011#define WDA_SET_STA_BCASTKEY_REQ SIR_HAL_SET_STA_BCASTKEY_REQ
1012#define WDA_SET_STA_BCASTKEY_RSP SIR_HAL_SET_STA_BCASTKEY_RSP
1013#define WDA_REMOVE_STA_BCASTKEY_REQ SIR_HAL_REMOVE_STA_BCASTKEY_REQ
1014#define WDA_REMOVE_STA_BCASTKEY_RSP SIR_HAL_REMOVE_STA_BCASTKEY_RSP
1015#define WDA_ADD_TS_RSP SIR_HAL_ADD_TS_RSP
1016#define WDA_DPU_MIC_ERROR SIR_HAL_DPU_MIC_ERROR
1017#define WDA_TIMER_BA_ACTIVITY_REQ SIR_HAL_TIMER_BA_ACTIVITY_REQ
1018#define WDA_TIMER_CHIP_MONITOR_TIMEOUT SIR_HAL_TIMER_CHIP_MONITOR_TIMEOUT
1019#define WDA_TIMER_TRAFFIC_ACTIVITY_REQ SIR_HAL_TIMER_TRAFFIC_ACTIVITY_REQ
1020#define WDA_TIMER_ADC_RSSI_STATS SIR_HAL_TIMER_ADC_RSSI_STATS
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08001021#define WDA_TIMER_TRAFFIC_STATS_IND SIR_HAL_TRAFFIC_STATS_IND
1022
Chet Lanctot186b5732013-03-18 10:26:30 -07001023#ifdef WLAN_FEATURE_11W
1024#define WDA_EXCLUDE_UNENCRYPTED_IND SIR_HAL_EXCLUDE_UNENCRYPTED_IND
1025#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07001026
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08001027#ifdef FEATURE_WLAN_ESE
Jeff Johnson295189b2012-06-20 16:38:30 -07001028#define WDA_TSM_STATS_REQ SIR_HAL_TSM_STATS_REQ
1029#define WDA_TSM_STATS_RSP SIR_HAL_TSM_STATS_RSP
1030#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07001031#define WDA_UPDATE_PROBE_RSP_IE_BITMAP_IND SIR_HAL_UPDATE_PROBE_RSP_IE_BITMAP_IND
1032#define WDA_UPDATE_UAPSD_IND SIR_HAL_UPDATE_UAPSD_IND
Jeff Johnson295189b2012-06-20 16:38:30 -07001033
1034#define WDA_SET_MIMOPS_REQ SIR_HAL_SET_MIMOPS_REQ
1035#define WDA_SET_MIMOPS_RSP SIR_HAL_SET_MIMOPS_RSP
1036#define WDA_SYS_READY_IND SIR_HAL_SYS_READY_IND
1037#define WDA_SET_TX_POWER_REQ SIR_HAL_SET_TX_POWER_REQ
1038#define WDA_SET_TX_POWER_RSP SIR_HAL_SET_TX_POWER_RSP
1039#define WDA_GET_TX_POWER_REQ SIR_HAL_GET_TX_POWER_REQ
1040#define WDA_GET_TX_POWER_RSP SIR_HAL_GET_TX_POWER_RSP
1041#define WDA_GET_NOISE_REQ SIR_HAL_GET_NOISE_REQ
1042#define WDA_GET_NOISE_RSP SIR_HAL_GET_NOISE_RSP
1043#define WDA_SET_TX_PER_TRACKING_REQ SIR_HAL_SET_TX_PER_TRACKING_REQ
1044
1045/* Messages to support transmit_halt and transmit_resume */
1046#define WDA_TRANSMISSION_CONTROL_IND SIR_HAL_TRANSMISSION_CONTROL_IND
1047/* Indication from LIM to HAL to Initialize radar interrupt */
1048#define WDA_INIT_RADAR_IND SIR_HAL_INIT_RADAR_IND
1049/* Messages to support transmit_halt and transmit_resume */
1050
1051
1052#define WDA_BEACON_PRE_IND SIR_HAL_BEACON_PRE_IND
1053#define WDA_ENTER_UAPSD_REQ SIR_HAL_ENTER_UAPSD_REQ
1054#define WDA_ENTER_UAPSD_RSP SIR_HAL_ENTER_UAPSD_RSP
1055#define WDA_EXIT_UAPSD_REQ SIR_HAL_EXIT_UAPSD_REQ
1056#define WDA_EXIT_UAPSD_RSP SIR_HAL_EXIT_UAPSD_RSP
1057#define WDA_LOW_RSSI_IND SIR_HAL_LOW_RSSI_IND
1058#define WDA_BEACON_FILTER_IND SIR_HAL_BEACON_FILTER_IND
1059/// PE <-> HAL WOWL messages
1060#define WDA_WOWL_ADD_BCAST_PTRN SIR_HAL_WOWL_ADD_BCAST_PTRN
1061#define WDA_WOWL_DEL_BCAST_PTRN SIR_HAL_WOWL_DEL_BCAST_PTRN
1062#define WDA_WOWL_ENTER_REQ SIR_HAL_WOWL_ENTER_REQ
1063#define WDA_WOWL_ENTER_RSP SIR_HAL_WOWL_ENTER_RSP
1064#define WDA_WOWL_EXIT_REQ SIR_HAL_WOWL_EXIT_REQ
1065#define WDA_WOWL_EXIT_RSP SIR_HAL_WOWL_EXIT_RSP
1066#define WDA_TX_COMPLETE_IND SIR_HAL_TX_COMPLETE_IND
1067#define WDA_TIMER_RA_COLLECT_AND_ADAPT SIR_HAL_TIMER_RA_COLLECT_AND_ADAPT
1068/// PE <-> HAL statistics messages
1069#define WDA_GET_STATISTICS_REQ SIR_HAL_GET_STATISTICS_REQ
1070#define WDA_GET_STATISTICS_RSP SIR_HAL_GET_STATISTICS_RSP
1071#define WDA_SET_KEY_DONE SIR_HAL_SET_KEY_DONE
1072
1073/// PE <-> HAL BTC messages
1074#define WDA_BTC_SET_CFG SIR_HAL_BTC_SET_CFG
1075#define WDA_SIGNAL_BT_EVENT SIR_HAL_SIGNAL_BT_EVENT
1076#define WDA_HANDLE_FW_MBOX_RSP SIR_HAL_HANDLE_FW_MBOX_RSP
1077#define WDA_UPDATE_PROBE_RSP_TEMPLATE_IND SIR_HAL_UPDATE_PROBE_RSP_TEMPLATE_IND
1078#define WDA_SIGNAL_BTAMP_EVENT SIR_HAL_SIGNAL_BTAMP_EVENT
1079
Jeff Johnsone7245742012-09-05 17:12:55 -07001080#ifdef FEATURE_OEM_DATA_SUPPORT
1081/* PE <-> HAL OEM_DATA RELATED MESSAGES */
1082#define WDA_START_OEM_DATA_REQ SIR_HAL_START_OEM_DATA_REQ
1083#define WDA_START_OEM_DATA_RSP SIR_HAL_START_OEM_DATA_RSP
1084#define WDA_FINISH_OEM_DATA_REQ SIR_HAL_FINISH_OEM_DATA_REQ
1085#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07001086
1087#define WDA_SET_MAX_TX_POWER_REQ SIR_HAL_SET_MAX_TX_POWER_REQ
1088#define WDA_SET_MAX_TX_POWER_RSP SIR_HAL_SET_MAX_TX_POWER_RSP
1089
Arif Hussaina5ebce02013-08-09 15:09:58 -07001090#define WDA_SET_MAX_TX_POWER_PER_BAND_REQ \
1091 SIR_HAL_SET_MAX_TX_POWER_PER_BAND_REQ
1092#define WDA_SET_MAX_TX_POWER_PER_BAND_RSP \
1093 SIR_HAL_SET_MAX_TX_POWER_PER_BAND_RSP
1094
Jeff Johnson295189b2012-06-20 16:38:30 -07001095#define WDA_SEND_MSG_COMPLETE SIR_HAL_SEND_MSG_COMPLETE
1096
1097/// PE <-> HAL Host Offload message
1098#define WDA_SET_HOST_OFFLOAD SIR_HAL_SET_HOST_OFFLOAD
1099
1100/// PE <-> HAL Keep Alive message
1101#define WDA_SET_KEEP_ALIVE SIR_HAL_SET_KEEP_ALIVE
1102
1103#ifdef WLAN_NS_OFFLOAD
1104#define WDA_SET_NS_OFFLOAD SIR_HAL_SET_NS_OFFLOAD
1105#endif //WLAN_NS_OFFLOAD
1106#define WDA_ADD_STA_SELF_REQ SIR_HAL_ADD_STA_SELF_REQ
1107#define WDA_DEL_STA_SELF_REQ SIR_HAL_DEL_STA_SELF_REQ
1108
Jeff Johnson295189b2012-06-20 16:38:30 -07001109#define WDA_SET_P2P_GO_NOA_REQ SIR_HAL_SET_P2P_GO_NOA_REQ
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05301110#define WDA_SET_TDLS_LINK_ESTABLISH_REQ SIR_HAL_TDLS_LINK_ESTABLISH_REQ
1111#define WDA_SET_TDLS_LINK_ESTABLISH_REQ_RSP SIR_HAL_TDLS_LINK_ESTABLISH_REQ_RSP
Jeff Johnson295189b2012-06-20 16:38:30 -07001112
Madan Mohan Koyyalamudia53c4dc2012-11-13 10:35:42 -08001113#define WDA_TX_COMPLETE_TIMEOUT_IND (WDA_MSG_TYPES_END - 1)
Jeff Johnson295189b2012-06-20 16:38:30 -07001114#define WDA_WLAN_SUSPEND_IND SIR_HAL_WLAN_SUSPEND_IND
1115#define WDA_WLAN_RESUME_REQ SIR_HAL_WLAN_RESUME_REQ
1116#define WDA_MSG_TYPES_END SIR_HAL_MSG_TYPES_END
1117
Jeff Johnson295189b2012-06-20 16:38:30 -07001118#define WDA_MMH_TXMB_READY_EVT SIR_HAL_MMH_TXMB_READY_EVT
1119#define WDA_MMH_RXMB_DONE_EVT SIR_HAL_MMH_RXMB_DONE_EVT
1120#define WDA_MMH_MSGQ_NE_EVT SIR_HAL_MMH_MSGQ_NE_EVT
Jeff Johnson295189b2012-06-20 16:38:30 -07001121
1122#ifdef WLAN_FEATURE_VOWIFI_11R
1123#define WDA_AGGR_QOS_REQ SIR_HAL_AGGR_QOS_REQ
1124#define WDA_AGGR_QOS_RSP SIR_HAL_AGGR_QOS_RSP
1125#endif /* WLAN_FEATURE_VOWIFI_11R */
1126
Jeff Johnson295189b2012-06-20 16:38:30 -07001127/* FTM CMD MSG */
1128#define WDA_FTM_CMD_REQ SIR_PTT_MSG_TYPES_BEGIN
1129#define WDA_FTM_CMD_RSP SIR_PTT_MSG_TYPES_END
Jeff Johnson295189b2012-06-20 16:38:30 -07001130
1131#ifdef FEATURE_WLAN_SCAN_PNO
1132/*Requests sent to lower driver*/
1133#define WDA_SET_PNO_REQ SIR_HAL_SET_PNO_REQ
1134#define WDA_SET_RSSI_FILTER_REQ SIR_HAL_SET_RSSI_FILTER_REQ
1135#define WDA_UPDATE_SCAN_PARAMS_REQ SIR_HAL_UPDATE_SCAN_PARAMS
1136
1137/*Indication comming from lower driver*/
1138#define WDA_SET_PNO_CHANGED_IND SIR_HAL_SET_PNO_CHANGED_IND
1139#endif // FEATURE_WLAN_SCAN_PNO
1140
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07001141#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
Varun Reddy Yeturu920df212013-05-22 08:07:23 -07001142#define WDA_ROAM_SCAN_OFFLOAD_REQ SIR_HAL_ROAM_SCAN_OFFLOAD_REQ
Varun Reddy Yeturucc661d22013-05-20 11:47:10 -07001143#define WDA_ROAM_SCAN_OFFLOAD_RSP SIR_HAL_ROAM_SCAN_OFFLOAD_RSP
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07001144#endif
1145
Jeff Johnson295189b2012-06-20 16:38:30 -07001146#ifdef WLAN_WAKEUP_EVENTS
1147#define WDA_WAKE_REASON_IND SIR_HAL_WAKE_REASON_IND
1148#endif // WLAN_WAKEUP_EVENTS
1149
1150#ifdef WLAN_FEATURE_PACKET_FILTERING
1151#define WDA_8023_MULTICAST_LIST_REQ SIR_HAL_8023_MULTICAST_LIST_REQ
1152#define WDA_RECEIVE_FILTER_SET_FILTER_REQ SIR_HAL_RECEIVE_FILTER_SET_FILTER_REQ
1153#define WDA_PACKET_COALESCING_FILTER_MATCH_COUNT_REQ SIR_HAL_PACKET_COALESCING_FILTER_MATCH_COUNT_REQ
1154#define WDA_PACKET_COALESCING_FILTER_MATCH_COUNT_RSP SIR_HAL_PACKET_COALESCING_FILTER_MATCH_COUNT_RSP
1155#define WDA_RECEIVE_FILTER_CLEAR_FILTER_REQ SIR_HAL_RECEIVE_FILTER_CLEAR_FILTER_REQ
1156#endif // WLAN_FEATURE_PACKET_FILTERING
1157
1158#define WDA_SET_POWER_PARAMS_REQ SIR_HAL_SET_POWER_PARAMS_REQ
Sundaresan Ramachandran76e48e82013-07-15 13:07:17 +05301159#define WDA_DHCP_START_IND SIR_HAL_DHCP_START_IND
1160#define WDA_DHCP_STOP_IND SIR_HAL_DHCP_STOP_IND
1161
Jeff Johnson295189b2012-06-20 16:38:30 -07001162
1163#ifdef WLAN_FEATURE_GTK_OFFLOAD
1164#define WDA_GTK_OFFLOAD_REQ SIR_HAL_GTK_OFFLOAD_REQ
1165#define WDA_GTK_OFFLOAD_GETINFO_REQ SIR_HAL_GTK_OFFLOAD_GETINFO_REQ
1166#define WDA_GTK_OFFLOAD_GETINFO_RSP SIR_HAL_GTK_OFFLOAD_GETINFO_RSP
1167#endif //WLAN_FEATURE_GTK_OFFLOAD
1168
1169#define WDA_SET_TM_LEVEL_REQ SIR_HAL_SET_TM_LEVEL_REQ
1170
Mohit Khanna4a70d262012-09-11 16:30:12 -07001171#ifdef WLAN_FEATURE_11AC
1172#define WDA_UPDATE_OP_MODE SIR_HAL_UPDATE_OP_MODE
1173#endif
1174
Srinivas Girigowdad34cedb2013-01-25 13:33:11 -08001175#define WDA_GET_ROAM_RSSI_REQ SIR_HAL_GET_ROAM_RSSI_REQ
1176#define WDA_GET_ROAM_RSSI_RSP SIR_HAL_GET_ROAM_RSSI_RSP
1177
Ganesh Kondabattinif0fa07c2013-06-11 17:47:49 +05301178#define WDA_START_SCAN_OFFLOAD_REQ SIR_HAL_START_SCAN_OFFLOAD_REQ
1179#define WDA_START_SCAN_OFFLOAD_RSP SIR_HAL_START_SCAN_OFFLOAD_RSP
Gopichand Nakkala09358592013-06-13 14:47:55 +05301180#define WDA_STOP_SCAN_OFFLOAD_REQ SIR_HAL_STOP_SCAN_OFFLOAD_REQ
1181#define WDA_STOP_SCAN_OFFLOAD_RSP SIR_HAL_STOP_SCAN_OFFLOAD_RSP
Ganesh Kondabattinif0fa07c2013-06-11 17:47:49 +05301182#define WDA_UPDATE_CHAN_LIST_REQ SIR_HAL_UPDATE_CHAN_LIST_REQ
1183#define WDA_UPDATE_CHAN_LIST_RSP SIR_HAL_UPDATE_CHAN_LIST_RSP
1184#define WDA_RX_SCAN_EVENT SIR_HAL_RX_SCAN_EVENT
Ravi Joshid2ca7c42013-07-23 08:37:49 -07001185#define WDA_IBSS_PEER_INACTIVITY_IND SIR_HAL_IBSS_PEER_INACTIVITY_IND
Ganesh Kondabattinif0fa07c2013-06-11 17:47:49 +05301186
Leo Chang9056f462013-08-01 19:21:11 -07001187#ifdef FEATURE_WLAN_LPHB
1188#define WDA_LPHB_CONF_REQ SIR_HAL_LPHB_CONF_IND
1189#define WDA_LPHB_WAIT_EXPIRE_IND SIR_HAL_LPHB_WAIT_EXPIRE_IND
1190#endif /* FEATURE_WLAN_LPHB */
1191
Yue Mab9c86f42013-08-14 15:59:08 -07001192#define WDA_ADD_PERIODIC_TX_PTRN_IND SIR_HAL_ADD_PERIODIC_TX_PTRN_IND
1193#define WDA_DEL_PERIODIC_TX_PTRN_IND SIR_HAL_DEL_PERIODIC_TX_PTRN_IND
1194
Rajeev79dbe4c2013-10-05 11:03:42 +05301195#ifdef FEATURE_WLAN_BATCH_SCAN
1196#define WDA_SET_BATCH_SCAN_REQ SIR_HAL_SET_BATCH_SCAN_REQ
1197#define WDA_SET_BATCH_SCAN_RSP SIR_HAL_SET_BATCH_SCAN_RSP
1198#define WDA_STOP_BATCH_SCAN_IND SIR_HAL_STOP_BATCH_SCAN_IND
1199#define WDA_TRIGGER_BATCH_SCAN_RESULT_IND SIR_HAL_TRIGGER_BATCH_SCAN_RESULT_IND
1200#endif
Chittajit Mitraf5413a42013-10-18 14:20:08 -07001201#define WDA_RATE_UPDATE_IND SIR_HAL_RATE_UPDATE_IND
1202
Rajeev79dbe4c2013-10-05 11:03:42 +05301203
Sandeep Puligilla8b8b74b2014-02-10 16:39:05 +05301204#define WDA_HT40_OBSS_SCAN_IND SIR_HAL_HT40_OBSS_SCAN_IND
1205#define WDA_HT40_OBSS_STOP_SCAN_IND SIR_HAL_HT40_OBSS_STOP_SCAN_IND
c_hpothu92367912014-05-01 15:18:17 +05301206
1207#define WDA_GET_BCN_MISS_RATE_REQ SIR_HAL_BCN_MISS_RATE_REQ
1208
Sunil Duttbd736ed2014-05-26 21:19:41 +05301209#ifdef WLAN_FEATURE_LINK_LAYER_STATS
1210#define WDA_LINK_LAYER_STATS_CLEAR_REQ SIR_HAL_LL_STATS_CLEAR_REQ
1211#define WDA_LINK_LAYER_STATS_SET_REQ SIR_HAL_LL_STATS_SET_REQ
1212#define WDA_LINK_LAYER_STATS_GET_REQ SIR_HAL_LL_STATS_GET_REQ
1213#define WDA_LINK_LAYER_STATS_RESULTS_RSP SIR_HAL_LL_STATS_RESULTS_RSP
1214#endif /* WLAN_FEATURE_LINK_LAYER_STATS */
1215
Jeff Johnson295189b2012-06-20 16:38:30 -07001216tSirRetStatus wdaPostCtrlMsg(tpAniSirGlobal pMac, tSirMsgQ *pMsg);
Jeff Johnson295189b2012-06-20 16:38:30 -07001217
Abhishek Singha306a442013-11-07 18:39:01 +05301218eHalStatus WDA_SetRegDomain(void * clientCtxt, v_REGDOMAIN_t regId,
1219 tAniBool sendRegHint);
Jeff Johnson295189b2012-06-20 16:38:30 -07001220
Dino Mycle41bdc942014-06-10 11:30:24 +05301221#ifdef WLAN_FEATURE_EXTSCAN
1222#define WDA_EXTSCAN_GET_CAPABILITIES_REQ SIR_HAL_EXTSCAN_GET_CAPABILITIES_REQ
1223#define WDA_EXTSCAN_GET_CAPABILITIES_RSP SIR_HAL_EXTSCAN_GET_CAPABILITIES_RSP
1224#define WDA_EXTSCAN_START_REQ SIR_HAL_EXTSCAN_START_REQ
1225#define WDA_EXTSCAN_START_RSP SIR_HAL_EXTSCAN_START_RSP
1226#define WDA_EXTSCAN_STOP_REQ SIR_HAL_EXTSCAN_STOP_REQ
1227#define WDA_EXTSCAN_STOP_RSP SIR_HAL_EXTSCAN_STOP_RSP
1228#define WDA_EXTSCAN_SET_BSSID_HOTLIST_REQ SIR_HAL_EXTSCAN_SET_BSS_HOTLIST_REQ
1229#define WDA_EXTSCAN_SET_BSSID_HOTLIST_RSP SIR_HAL_EXTSCAN_SET_BSS_HOTLIST_RSP
1230#define WDA_EXTSCAN_RESET_BSSID_HOTLIST_REQ SIR_HAL_EXTSCAN_RESET_BSS_HOTLIST_REQ
1231#define WDA_EXTSCAN_RESET_BSSID_HOTLIST_RSP SIR_HAL_EXTSCAN_RESET_BSS_HOTLIST_RSP
1232#define WDA_EXTSCAN_SET_SIGNF_RSSI_CHANGE_REQ SIR_HAL_EXTSCAN_SET_SIGNF_RSSI_CHANGE_REQ
1233#define WDA_EXTSCAN_SET_SIGNF_RSSI_CHANGE_RSP SIR_HAL_EXTSCAN_SET_SIGNF_RSSI_CHANGE_RSP
1234#define WDA_EXTSCAN_RESET_SIGNF_RSSI_CHANGE_REQ SIR_HAL_EXTSCAN_RESET_SIGNF_RSSI_CHANGE_REQ
1235#define WDA_EXTSCAN_RESET_SIGNF_RSSI_CHANGE_RSP SIR_HAL_EXTSCAN_RESET_SIGNF_RSSI_CHANGE_RSP
1236#define WDA_EXTSCAN_GET_CACHED_RESULTS_REQ SIR_HAL_EXTSCAN_GET_CACHED_RESULTS_REQ
1237#define WDA_EXTSCAN_GET_CACHED_RESULTS_RSP SIR_HAL_EXTSCAN_GET_CACHED_RESULTS_RSP
1238
1239#define WDA_EXTSCAN_PROGRESS_IND SIR_HAL_EXTSCAN_PROGRESS_IND
1240#define WDA_EXTSCAN_SCAN_AVAILABLE_IND SIR_HAL_EXTSCAN_SCAN_AVAILABLE_IND
1241#define WDA_EXTSCAN_SCAN_RESULT_IND SIR_HAL_EXTSCAN_SCAN_RESULT_IND
1242#define WDA_EXTSCAN_BSSID_HOTLIST_RESULT_IND SIR_HAL_EXTSCAN_HOTLIST_MATCH_IND
1243#define WDA_EXTSCAN_SIGNF_RSSI_RESULT_IND SIR_HAL_EXTSCAN_SIGNF_WIFI_CHANGE_IND
1244#endif /* WLAN_FEATURE_EXTSCAN */
1245
1246
Jeff Johnson295189b2012-06-20 16:38:30 -07001247#define HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME 0x40 // Bit 6 will be used to control BD rate for Management frames
1248
Jeff Johnson295189b2012-06-20 16:38:30 -07001249#define halTxFrame(hHal, pFrmBuf, frmLen, frmType, txDir, tid, pCompFunc, pData, txFlag) \
1250 (eHalStatus)( WDA_TxPacket(\
1251 vos_get_context(VOS_MODULE_ID_WDA, vos_get_global_context(VOS_MODULE_ID_WDA, (hHal))),\
1252 (pFrmBuf),\
1253 (frmLen),\
1254 (frmType),\
1255 (txDir),\
1256 (tid),\
1257 (pCompFunc),\
1258 (pData),\
1259 (NULL), \
1260 (txFlag)) )
1261
1262#define halTxFrameWithTxComplete(hHal, pFrmBuf, frmLen, frmType, txDir, tid, pCompFunc, pData, pCBackFnTxComp, txFlag) \
1263 (eHalStatus)( WDA_TxPacket(\
1264 vos_get_context(VOS_MODULE_ID_WDA, vos_get_global_context(VOS_MODULE_ID_WDA, (hHal))),\
1265 (pFrmBuf),\
1266 (frmLen),\
1267 (frmType),\
1268 (txDir),\
1269 (tid),\
1270 (pCompFunc),\
1271 (pData),\
1272 (pCBackFnTxComp), \
1273 (txFlag)) )
Jeff Johnson295189b2012-06-20 16:38:30 -07001274
1275/* -----------------------------------------------------------------
1276 WDA data path API's for TL
1277 -------------------------------------------------------------------*/
1278
Jeff Johnson295189b2012-06-20 16:38:30 -07001279v_BOOL_t WDA_IsHwFrameTxTranslationCapable(v_PVOID_t pVosGCtx,
1280 tANI_U8 staIdx);
Jeff Johnson295189b2012-06-20 16:38:30 -07001281
Katya Nigam6201c3e2014-05-27 17:51:42 +05301282v_BOOL_t WDA_IsSelfSTA(v_PVOID_t pVosGCtx,tANI_U8 staIdx);
1283
Jeff Johnson295189b2012-06-20 16:38:30 -07001284# define WDA_EnableUapsdAcParams(vosGCtx, staId, uapsdInfo) \
1285 WDA_SetUapsdAcParamsReq(vosGCtx, staId, uapsdInfo)
Jeff Johnson295189b2012-06-20 16:38:30 -07001286
Jeff Johnson295189b2012-06-20 16:38:30 -07001287# define WDA_DisableUapsdAcParams(vosGCtx, staId, ac) \
1288 WDA_ClearUapsdAcParamsReq(vosGCtx, staId, ac)
Jeff Johnson295189b2012-06-20 16:38:30 -07001289
Jeff Johnson295189b2012-06-20 16:38:30 -07001290# define WDA_SetRSSIThresholds(pMac, pThresholds) \
1291 WDA_SetRSSIThresholdsReq(pMac, pThresholds)
Jeff Johnson295189b2012-06-20 16:38:30 -07001292
Jeff Johnson295189b2012-06-20 16:38:30 -07001293#define WDA_UpdateRssiBmps(pvosGCtx, staId, rssi) \
Madan Mohan Koyyalamudia53c4dc2012-11-13 10:35:42 -08001294 WLANTL_UpdateRssiBmps(pvosGCtx, staId, rssi)
Jeff Johnson295189b2012-06-20 16:38:30 -07001295
Madan Mohan Koyyalamudid9383fd2013-08-13 09:27:30 +05301296#define WDA_UpdateSnrBmps(pvosGCtx, staId, rssi) \
1297 WLANTL_UpdateSnrBmps(pvosGCtx, staId, snr)
1298
1299#define WDA_GetSnr(staId, snr) \
1300 WLANTL_GetSnr(staId, snr)
1301
Gopichand Nakkala8a2b1442013-05-29 15:33:14 +05301302#define WDA_UpdateLinkCapacity(pvosGCtx, staId, linkCapacity) \
1303 WLANTL_UpdateLinkCapacity(pvosGCtx, staId, linkCapacity)
1304
Jeff Johnson295189b2012-06-20 16:38:30 -07001305#ifdef WLAN_PERF
1306/*==========================================================================
1307 FUNCTION WDA_TLI_FastHwFwdDataFrame
1308
1309 DESCRIPTION
1310 For NON integrated SOC, this function is called by TL.
1311
1312 Fast path function to quickly forward a data frame if HAL determines BD
1313 signature computed here matches the signature inside current VOSS packet.
1314 If there is a match, HAL and TL fills in the swapped packet length into
1315 BD header and DxE header, respectively. Otherwise, packet goes back to
1316 normal (slow) path and a new BD signature would be tagged into BD in this
1317 VOSS packet later by the WLANHAL_FillTxBd() function.
1318
1319 TODO For integrated SOC, this function does nothing yet. Pima SLM/HAL
1320 should provide the equivelant functionality.
1321
1322 DEPENDENCIES
1323
1324 PARAMETERS
1325
1326 IN
1327 pvosGCtx VOS context
1328 vosDataBuff Ptr to VOSS packet
1329 pMetaInfo For getting frame's TID
1330 pStaInfo For checking STA type
1331
1332 OUT
1333 pvosStatus returned status
1334 puFastFwdOK Flag to indicate whether frame could be fast forwarded
1335
1336 RETURN VALUE
1337 No return.
1338
1339 SIDE EFFECTS
1340
1341============================================================================*/
1342void WDA_TLI_FastHwFwdDataFrame
1343(
1344 v_PVOID_t pvosGCtx,
1345 vos_pkt_t* vosDataBuff,
1346 VOS_STATUS* pvosStatus,
1347 v_U32_t* puFastFwdOK,
1348 WLANTL_MetaInfoType* pMetaInfo,
1349 WLAN_STADescType* pStaInfo
1350);
1351#endif /* WLAN_PERF */
1352
1353/*==========================================================================
1354 FUNCTION WDA_DS_Register
1355
1356 DESCRIPTION
1357 Register TL client to WDA. This function registers TL RX/TX functions
1358 to WDI by calling WDI_DS_Register.
1359
1360
1361 For NON integrated SOC, this function calls WLANBAL_RegTlCbFunctions
1362 to register TL's RX/TX functions to BAL
1363
1364 TODO
1365 For Prima, pfnResourceCB gets called in WDTS_OOResourceNotification.
1366 The uCount parameter is AC mask. It should be redefined to use the
1367 same resource callback function.
1368
1369 DEPENDENCIES
1370
1371 PARAMETERS
1372
1373 IN
1374 pvosGCtx VOS context
1375 pfnTxCompleteCallback TX complete callback upon TX completion
1376 pfnRxPacketCallback RX callback
1377 pfnResourceCB gets called when updating TX PDU number
1378 uResTheshold minimum TX PDU size for a packet
1379 pCallbackContext WDI calls callback function with it
1380 VOS global context pointer
1381 OUT
1382 uAvailableTxBuf available TX PDU numbder.
1383 BAL returns it for NON integrated SOC
1384
1385 RETURN VALUE
1386 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1387 VOS_STATUS_SUCCESS: Everything is good :)
1388
1389 SIDE EFFECTS
1390
1391============================================================================*/
1392VOS_STATUS
1393WDA_DS_Register
1394(
1395 v_PVOID_t pvosGCtx,
1396 WDA_DS_TxCompleteCallback pfnTxCompleteCallback,
1397 WDA_DS_RxPacketCallback pfnRxPacketCallback,
1398 WDA_DS_TxPacketCallback pfnTxPacketCallback,
1399 WDA_DS_ResourceCB pfnResourceCB,
1400 v_U32_t uResTheshold,
1401 v_PVOID_t pCallbackContext,
1402 v_U32_t *uAvailableTxBuf
1403);
1404
1405/*==========================================================================
1406 FUNCTION WDA_DS_StartXmit
1407
1408 DESCRIPTION
1409 Serialize TX transmit reques to TX thread.
1410
1411 TODO This sends TX transmit request to TL. It should send to WDI for
1412 abstraction.
1413
1414 For NON integrated SOC, this function calls WLANBAL_StartXmit
1415
1416 DEPENDENCIES
1417
1418 PARAMETERS
1419
1420 IN
1421 pvosGCtx VOS context
1422
1423 RETURN VALUE
1424 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1425 VOS_STATUS_SUCCESS: Everything is good :)
1426
1427 SIDE EFFECTS
1428
1429============================================================================*/
1430VOS_STATUS
1431WDA_DS_StartXmit
1432(
1433 v_PVOID_t pvosGCtx
1434);
1435
1436/*==========================================================================
1437 FUNCTION WDA_DS_FinishULA
1438
1439 DESCRIPTION
1440 Serialize Finish Upper Level Authentication reques to TX thread.
1441
1442 DEPENDENCIES
1443
1444 PARAMETERS
1445
1446 IN
1447 callbackRoutine routine to be called in TX thread
1448 callbackContext user data for the above routine
1449
1450 RETURN VALUE
1451 please see vos_tx_mq_serialize
1452
1453 SIDE EFFECTS
1454
1455============================================================================*/
1456VOS_STATUS
1457WDA_DS_FinishULA
1458(
1459 void (*callbackRoutine) (void *callbackContext),
Tushnim Bhattacharyya39a8f182013-02-20 18:10:30 -08001460 void *callbackContext
Jeff Johnson295189b2012-06-20 16:38:30 -07001461);
1462
1463/*==========================================================================
1464 FUNCTION WDA_DS_BuildTxPacketInfo
1465
1466 DESCRIPTION
1467 Build TX meta info for integrated SOC.
1468
1469 Same function calls HAL for reserve BD header space into VOS packet and
1470 HAL function to fill it.
1471
1472 DEPENDENCIES
1473
1474 PARAMETERS
1475
1476 IN
1477 pvosGCtx VOS context
1478 vosDataBuff vos data buffer
1479 pvDestMacAddr destination MAC address ponter
1480 ucDisableFrmXtl Is frame xtl disabled?
1481 ucQosEnabled Is QoS enabled?
1482 ucWDSEnabled Is WDS enabled?
1483 extraHeadSpace Extra head bytes. If it's not 0 due to 4 bytes align
1484 of BD header.
1485 typeSubtype typeSubtype from MAC header or TX metainfo/BD
1486 pAddr2 address 2
1487 uTid tid
1488 txFlag
1489 timeStamp
1490 ucIsEapol
1491 ucUP
1492
1493 OUT
1494 *pusPktLen Packet length
1495
1496 RETURN VALUE
1497 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1498 VOS_STATUS_SUCCESS: Everything is good :)
1499
1500 SIDE EFFECTS
1501
1502============================================================================*/
1503VOS_STATUS
1504WDA_DS_BuildTxPacketInfo
1505(
1506 v_PVOID_t pvosGCtx,
1507 vos_pkt_t* vosDataBuff,
1508 v_MACADDR_t* pvDestMacAddr,
1509 v_U8_t ucDisableFrmXtl,
1510 v_U16_t* pusPktLen,
1511 v_U8_t ucQosEnabled,
1512 v_U8_t ucWDSEnabled,
1513 v_U8_t extraHeadSpace,
1514 v_U8_t typeSubtype,
1515 v_PVOID_t pAddr2,
1516 v_U8_t uTid,
Kanchanapally, Vidyullathaf9426e52013-12-24 17:28:54 +05301517 v_U32_t txFlag,
Jeff Johnson295189b2012-06-20 16:38:30 -07001518 v_U32_t timeStamp,
1519 v_U8_t ucIsEapol,
1520 v_U8_t ucUP
1521);
1522
1523/*==========================================================================
1524 FUNCTION WDA_DS_PeekRxPacketInfo
1525
1526 DESCRIPTION
1527 Return RX metainfo pointer for for integrated SOC.
1528
1529 Same function will return BD header pointer.
1530
1531 DEPENDENCIES
1532
1533 PARAMETERS
1534
1535 IN
1536 vosDataBuff vos data buffer
1537
1538 pvDestMacAddr destination MAC address ponter
1539 bSwap Want to swap BD header? For backward compatability
1540 It does nothing for integrated SOC
1541 OUT
1542 *ppRxHeader RX metainfo pointer
1543
1544 RETURN VALUE
1545 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1546 VOS_STATUS_SUCCESS: Everything is good :)
1547
1548 SIDE EFFECTS
1549
1550============================================================================*/
1551VOS_STATUS
1552WDA_DS_PeekRxPacketInfo
1553(
1554 vos_pkt_t *vosDataBuff,
1555 v_PVOID_t *ppRxHeader,
1556 v_BOOL_t bSwap
1557);
1558
1559/*==========================================================================
1560 FUNCTION WDA_DS_TrimRxPacketInfo
1561
1562 DESCRIPTION
1563 Trim/Remove RX BD header for NON integrated SOC.
1564 It does nothing for integrated SOC.
1565
1566 DEPENDENCIES
1567
1568 PARAMETERS
1569
1570 IN
1571 vosDataBuff vos data buffer
1572
1573 RETURN VALUE
1574 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1575 VOS_STATUS_SUCCESS: Everything is good :)
1576
1577 SIDE EFFECTS
1578
1579============================================================================*/
1580VOS_STATUS
1581WDA_DS_TrimRxPacketInfo
1582(
1583 vos_pkt_t *vosDataBuff
1584);
1585
1586/*==========================================================================
1587 FUNCTION WDA_DS_GetTxResources
1588
1589 DESCRIPTION
1590 It does return hardcoded value for Prima. It should bigger number than 0.
1591 Returning 0 will put TL in out-of-resource condition for TX.
1592
1593 Return current PDU resources from BAL for NON integrated SOC.
1594
1595 DEPENDENCIES
1596
1597 PARAMETERS
1598
1599 IN
1600 vosDataBuff vos data buffer
1601
1602 OUT
1603 puResCount available PDU number for TX
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_GetTxResources
1614(
1615 v_PVOID_t pvosGCtx,
1616 v_U32_t* puResCount
1617);
1618
1619/*==========================================================================
1620 FUNCTION WDA_DS_GetRssi
1621
1622 DESCRIPTION
1623 Get RSSI
1624
1625 TODO It returns hardcoded value in the meantime since WDA/WDI does nothing
1626 support it yet for Prima.
1627
1628 DEPENDENCIES
1629
1630 PARAMETERS
1631
1632 IN
1633 vosDataBuff vos data buffer
1634
1635 OUT
1636 puRssi RSSI
1637
1638 RETURN VALUE
1639 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1640 VOS_STATUS_SUCCESS: Everything is good :)
1641
1642 SIDE EFFECTS
1643
1644============================================================================*/
1645VOS_STATUS
1646WDA_DS_GetRssi
1647(
1648 v_PVOID_t pvosGCtx,
1649 v_S7_t* puRssi
1650);
1651
1652/*==========================================================================
1653 FUNCTION WDA_DS_RxAmsduBdFix
1654
1655 DESCRIPTION
1656 For backward compatability with Libra/Volans. Need to call HAL function
1657 for HW BD bug fix
1658
1659 It does nothing for integrated SOC.
1660
1661 DEPENDENCIES
1662
1663 PARAMETERS
1664
1665 IN
1666 pvosGCtx VOS context
1667 pvBDHeader BD header pointer
1668
1669 OUT
1670
1671 RETURN VALUE
1672 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1673 VOS_STATUS_SUCCESS: Everything is good :)
1674
1675 SIDE EFFECTS
1676
1677============================================================================*/
1678VOS_STATUS
1679WDA_DS_RxAmsduBdFix
1680(
1681 v_PVOID_t pvosGCtx,
1682 v_PVOID_t pvBDHeader
1683);
1684
1685/*==========================================================================
1686 FUNCTION WDA_DS_GetFrameTypeSubType
1687
1688 DESCRIPTION
1689 Get typeSubtype from the packet. The BD header should have this.
1690 But some reason, Libra/Volans read it from 802.11 header and save it
1691 back to BD header. So for NON integrated SOC, this function does
1692 the same.
1693
1694 For integrated SOC, WDI does the same, not TL.
1695 It does return typeSubtype from RX meta info for integrated SOC.
1696
1697 DEPENDENCIES
1698
1699 PARAMETERS
1700
1701 IN
1702 pvosGCtx VOS context
1703 vosDataBuff vos data buffer
1704 pRxHeader RX meta info or BD header pointer
1705
1706 OUT
1707 ucTypeSubtype typeSubtype
1708
1709 RETURN VALUE
1710 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1711 VOS_STATUS_SUCCESS: Everything is good :)
1712
1713 SIDE EFFECTS
1714
1715============================================================================*/
1716VOS_STATUS
1717WDA_DS_GetFrameTypeSubType
1718(
1719 v_PVOID_t pvosGCtx,
1720 vos_pkt_t *vosDataBuff,
1721 v_PVOID_t pRxHeader,
1722 v_U8_t *ucTypeSubtype
1723);
1724
1725/*==========================================================================
1726 FUNCTION WDA_DS_GetReplayCounter
1727
1728 DESCRIPTION
1729 Return replay counter from BD header or RX meta info
1730
1731 DEPENDENCIES
1732
1733 PARAMETERS
1734
1735 IN
1736 pRxHeader RX meta info or BD header pointer
1737
1738 OUT
1739
1740 RETURN VALUE
1741 Replay Counter
1742
1743 SIDE EFFECTS
1744
1745============================================================================*/
1746v_U64_t
1747WDA_DS_GetReplayCounter
1748(
1749 v_PVOID_t pRxHeader
1750);
1751
1752/*==========================================================================
1753 FUNCTION WDA_DS_GetReplayCounter
1754
1755 DESCRIPTION
1756 HO support. Set RSSI threshold via HAL function for NON integrated SOC
1757
1758 TODO
1759 Same function should be provided by WDA/WDI for Prima.
1760
1761 DEPENDENCIES
1762
1763 PARAMETERS
1764
1765 IN
1766 pMac MAC global pointer
1767 pThresholds pointer of threshold structure to set.
1768
1769 OUT
1770
1771 RETURN VALUE
1772 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1773 VOS_STATUS_SUCCESS: Everything is good :)
1774
1775 SIDE EFFECTS
1776
1777============================================================================*/
1778VOS_STATUS
1779WDA_DS_SetRSSIThresholds
1780(
1781 tpAniSirGlobal pMac,
1782 tpSirRSSIThresholds pThresholds
1783);
1784
Jeff Johnson295189b2012-06-20 16:38:30 -07001785/*==========================================================================
1786 FUNCTION WDA_DS_TxFrames
1787
1788 DESCRIPTION
1789 Pull packets from TL and push them to WDI. It gets invoked upon
1790 WDA_DS_TX_START_XMIT.
1791
1792 This function is equivelant of WLANSSC_Transmit in Libra/Volans.
1793
1794 TODO
1795 This function should be implemented and moved in WDI.
1796
1797 DEPENDENCIES
1798
1799 PARAMETERS
1800
1801 IN
1802 pvosGCtx VOS context
1803
1804 OUT
1805
1806 RETURN VALUE
1807 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1808 VOS_STATUS_SUCCESS: Everything is good :)
1809
1810 SIDE EFFECTS
1811
1812============================================================================*/
1813VOS_STATUS
1814WDA_DS_TxFrames
1815(
1816 v_PVOID_t pvosGCtx
1817);
Jeff Johnson295189b2012-06-20 16:38:30 -07001818
1819/*==========================================================================
1820 FUNCTION WDA_DS_TxFlowControlCallback
1821
1822 DESCRIPTION
1823 Invoked by WDI to control TX flow.
1824
1825 DEPENDENCIES
1826
1827 PARAMETERS
1828
1829 IN
1830 pvosGCtx VOS context
1831 uFlowMask TX channel mask for flow control
1832 Defined in WDA_TXFlowEnumType
1833
1834 OUT
1835
1836 RETURN VALUE
1837
1838 SIDE EFFECTS
1839
1840============================================================================*/
1841v_VOID_t
1842WDA_DS_TxFlowControlCallback
1843(
1844 v_PVOID_t pvosGCtx,
1845 v_U8_t uFlowMask
1846);
1847
1848/*==========================================================================
1849 FUNCTION WDA_DS_GetTxFlowMask
1850
1851 DESCRIPTION
1852 return TX flow mask control value
1853
1854 DEPENDENCIES
1855
1856 PARAMETERS
1857
1858 IN
1859 pvosGCtx VOS context
1860
1861 OUT
1862 uFlowMask TX channel mask for flow control
1863 Defined in WDA_TXFlowEnumType
1864
1865 RETURN VALUE
1866 VOS_STATUS_E_INVAL: pointer is NULL and other errors
1867 VOS_STATUS_SUCCESS: Everything is good :)
1868
1869 SIDE EFFECTS
1870
1871============================================================================*/
1872VOS_STATUS
1873WDA_DS_GetTxFlowMask
1874(
1875 v_PVOID_t pvosGCtx,
1876 v_U8_t* puFlowMask
1877);
1878
1879/*==========================================================================
1880 FUNCTION WDA_HALDumpCmdReq
1881
1882 DESCRIPTION
1883 Send Dump commandsto WDI
1884
1885 DEPENDENCIES
1886
1887 PARAMETERS
1888
1889 IN
1890 pMac MAC global pointer
1891 cmd Hal dump command
1892 arg1 Dump command argument 1
1893 arg2 Dump command argument 2
1894 arg3 Dump command argument 3
1895 arg4 Dump command argument 4
1896
1897 OUT
1898 pBuffer Dump command Response buffer
1899
1900 RETURN VALUE
1901 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1902 VOS_STATUS_SUCCESS: Everything is good :)
1903
1904 SIDE EFFECTS
1905
1906============================================================================*/
1907VOS_STATUS WDA_HALDumpCmdReq(tpAniSirGlobal pMac,tANI_U32 cmd,
1908 tANI_U32 arg1, tANI_U32 arg2, tANI_U32 arg3,
1909 tANI_U32 arg4, tANI_U8 *pBuffer);
1910
1911/*==========================================================================
1912 FUNCTION WDA_featureCapsExchange
1913
1914 DESCRIPTION
1915 WDA API to invoke capability exchange between host and FW
1916
1917 DEPENDENCIES
1918
1919 PARAMETERS
1920
1921 IN
1922 pVosContext VOS context
1923
1924 OUT
1925 NONE
1926
1927 RETURN VALUE
1928 NONE
1929
1930 SIDE EFFECTS
1931============================================================================*/
1932void WDA_featureCapsExchange(v_PVOID_t pVosContext);
1933
Yathish9f22e662012-12-10 14:21:35 -08001934void WDA_disableCapablityFeature(tANI_U8 feature_index);
Jeff Johnson295189b2012-06-20 16:38:30 -07001935/*==========================================================================
1936 FUNCTION WDA_getHostWlanFeatCaps
1937
1938 DESCRIPTION
1939 Wrapper for WDI API, that will return if the feature (enum value).passed
1940 to this API is supported or not in Host
1941
1942 DEPENDENCIES
1943
1944 PARAMETERS
1945
1946 IN
1947 featEnumValue enum value for the feature as in placeHolderInCapBitmap in wlan_hal_msg.h.
1948
1949 OUT
1950 NONE
1951
1952 RETURN VALUE
1953 0 - implies feature is NOT Supported
1954 any non zero value - implies feature is SUPPORTED
1955
1956 SIDE EFFECTS
1957============================================================================*/
1958tANI_U8 WDA_getHostWlanFeatCaps(tANI_U8 featEnumValue);
1959
1960/*==========================================================================
1961 FUNCTION WDA_getFwWlanFeatCaps
1962
1963 DESCRIPTION
1964 Wrapper for WDI API, that will return if the feature (enum value).passed
1965 to this API is supported or not in FW
1966
1967 DEPENDENCIES
1968
1969 PARAMETERS
1970
1971 IN
1972 featEnumValue enum value for the feature as in placeHolderInCapBitmap in wlan_hal_msg.h.
1973
1974 OUT
1975 NONE
1976
1977 RETURN VALUE
1978 0 - implies feature is NOT Supported
1979 any non zero value - implies feature is SUPPORTED
1980
1981 SIDE EFFECTS
1982============================================================================*/
1983tANI_U8 WDA_getFwWlanFeatCaps(tANI_U8 featEnumValue);
1984
Madan Mohan Koyyalamudi8cb53982012-09-28 14:34:47 -07001985/*==========================================================================
1986 FUNCTION WDA_TransportChannelDebug
1987
1988 DESCRIPTION
1989 Display Transport Channel debugging information
1990 User may request to display DXE channel snapshot
1991 Or if host driver detects any abnormal stcuk may display
1992
1993 PARAMETERS
schang6295e542013-03-12 15:31:23 -07001994 pMac : upper MAC context pointer
Jeff Johnsonb88db982012-12-10 13:34:59 -08001995 displaySnapshot : Display DXE snapshot option
Mihir Shete40a55652014-03-02 14:14:47 +05301996 debugFlags : Enable stall detect features
1997 defined by WPAL_DeviceDebugFlags
1998 These features may effect
1999 data performance.
Madan Mohan Koyyalamudi8cb53982012-09-28 14:34:47 -07002000
2001 RETURN VALUE
2002 NONE
2003
2004===========================================================================*/
2005void WDA_TransportChannelDebug
2006(
schang6295e542013-03-12 15:31:23 -07002007 tpAniSirGlobal pMac,
2008 v_BOOL_t displaySnapshot,
Mihir Shete40a55652014-03-02 14:14:47 +05302009 v_U8_t debugFlags
Madan Mohan Koyyalamudi8cb53982012-09-28 14:34:47 -07002010);
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08002011
2012/*==========================================================================
2013 FUNCTION WDA_TrafficStatsTimerActivate
2014
2015 DESCRIPTION
2016 API to activate/deactivate Traffic Stats timer. Traffic stats timer is only needed during MCC
2017 PARAMETERS
2018 activate : Activate or not
2019
2020 RETURN VALUE
2021 NONE
2022
2023===========================================================================*/
2024void WDA_TrafficStatsTimerActivate(wpt_boolean activate);
2025
Gopichand Nakkalae620d5a2013-04-26 05:45:57 -07002026/*==========================================================================
2027 FUNCTION WDA_SetEnableSSR
2028
2029 DESCRIPTION
2030 API to enable/disable SSR on WDI timeout
2031
2032 PARAMETERS
2033 enableSSR : enable/disable SSR
2034
2035 RETURN VALUE
2036 NONE
2037
2038===========================================================================*/
2039void WDA_SetEnableSSR(v_BOOL_t enableSSR);
Jeff Johnson295189b2012-06-20 16:38:30 -07002040#endif