blob: 9a9a76522b9ee27b1d1c54fb077b7f3d138f022f [file] [log] [blame]
Jeff Johnson295189b2012-06-20 16:38:30 -07001/*
Rajeev Kumar Sirasanagandla8701da32018-02-05 16:59:08 +05302 * Copyright (c) 2012-2018 The Linux Foundation. All rights reserved.
Kiet Lam1ed83fc2014-02-19 01:15:45 -08003 *
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,
Kanchanapally, Vidyullatha3355dd32015-06-09 14:56:56 +0530127 eWDA_AUTH_TYPE_RSN_PSK_SHA256,
128 eWDA_AUTH_TYPE_RSN_8021X_SHA256,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -0700129}WDA_AuthType;
Jeff Johnson295189b2012-06-20 16:38:30 -0700130
Kanchanapally, Vidyullathaf9426e52013-12-24 17:28:54 +0530131#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 +0530132#define IS_MUMIMO_BFORMEE_CAPABLE ((WDI_getHostWlanFeatCaps(MU_MIMO)) & (WDA_getFwWlanFeatCaps(MU_MIMO)))
Abhishek Singh5fef4042014-11-25 18:33:00 +0530133#define IS_FEATURE_BCN_FLT_DELTA_ENABLE ((WDI_getHostWlanFeatCaps(BCN_IE_FLT_DELTA)) & (WDA_getFwWlanFeatCaps(BCN_IE_FLT_DELTA)))
Abhishek Singh85b74712014-10-08 11:38:19 +0530134#define IS_FEATURE_FW_STATS_ENABLE ((WDI_getHostWlanFeatCaps(FW_STATS)) & (WDA_getFwWlanFeatCaps(FW_STATS)))
Jeff Johnson295189b2012-06-20 16:38:30 -0700135/*--------------------------------------------------------------------------
136 Utilities
137 --------------------------------------------------------------------------*/
138
139#define WDA_TLI_CEIL( _a, _b) (( 0 != (_a)%(_b))? (_a)/(_b) + 1: (_a)/(_b))
140
141/*
142 * Check the version number and find if MCC feature is supported or not
143 */
144#define IS_MCC_SUPPORTED (WDA_IsWcnssWlanReportedVersionGreaterThanOrEqual( 0, 1, 1, 0))
Viral Modid86bde22012-12-10 13:09:21 -0800145#define IS_FEATURE_SUPPORTED_BY_FW(featEnumValue) (!!WDA_getFwWlanFeatCaps(featEnumValue))
Kiet Lam0f320422013-11-21 19:29:17 +0530146#define IS_FEATURE_SUPPORTED_BY_DRIVER(featEnumValue) (!!WDA_getHostWlanFeatCaps(featEnumValue))
Jeff Johnson295189b2012-06-20 16:38:30 -0700147
Yathish9f22e662012-12-10 14:21:35 -0800148#ifdef WLAN_ACTIVEMODE_OFFLOAD_FEATURE
149#define IS_ACTIVEMODE_OFFLOAD_FEATURE_ENABLE ((WDA_getFwWlanFeatCaps(WLANACTIVE_OFFLOAD)) & (WDI_getHostWlanFeatCaps(WLANACTIVE_OFFLOAD)))
150#else
151#define IS_ACTIVEMODE_OFFLOAD_FEATURE_ENABLE 0
152#endif
153
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -0700154#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
155#define IS_ROAM_SCAN_OFFLOAD_FEATURE_ENABLE ((WDI_getHostWlanFeatCaps(WLAN_ROAM_SCAN_OFFLOAD)) & (WDA_getFwWlanFeatCaps(WLAN_ROAM_SCAN_OFFLOAD)))
156#else
157#define IS_ROAM_SCAN_OFFLOAD_FEATURE_ENABLE 0
158#endif
Yathish9f22e662012-12-10 14:21:35 -0800159
Mihir Shete9c238772014-10-15 14:35:16 +0530160#define IS_DYNAMIC_WMM_PS_ENABLED ((WDI_getHostWlanFeatCaps(DYNAMIC_WMM_PS)) & (WDA_getFwWlanFeatCaps(DYNAMIC_WMM_PS)))
161
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)))
Mihir Sheted6274602015-04-28 16:13:21 +0530171#define IS_FRAME_LOGGING_SUPPORTED_BY_FW WDA_getFwWlanFeatCaps(MGMT_FRAME_LOGGING)
Sandeep Puligilla60342762014-01-30 21:05:37 +0530172
Manjunathappa Prakash86f78ca2014-02-10 18:09:15 -0800173typedef enum {
174 MODE_11A = 0, /* 11a Mode */
175 MODE_11G = 1, /* 11b/g Mode */
176 MODE_11B = 2, /* 11b Mode */
177 MODE_11GONLY = 3, /* 11g only Mode */
178 MODE_11NA_HT20 = 4, /* 11a HT20 mode */
179 MODE_11NG_HT20 = 5, /* 11g HT20 mode */
180 MODE_11NA_HT40 = 6, /* 11a HT40 mode */
181 MODE_11NG_HT40 = 7, /* 11g HT40 mode */
182 MODE_11AC_VHT20 = 8,
183 MODE_11AC_VHT40 = 9,
184 MODE_11AC_VHT80 = 10,
185// MODE_11AC_VHT160 = 11,
186 MODE_11AC_VHT20_2G = 11,
187 MODE_11AC_VHT40_2G = 12,
188 MODE_11AC_VHT80_2G = 13,
189 MODE_UNKNOWN = 14,
190 MODE_MAX = 14
191} WLAN_PHY_MODE;
192
193#define WLAN_HAL_CHAN_FLAG_HT40_PLUS 6
194#define WLAN_HAL_CHAN_FLAG_PASSIVE 7
195#define WLAN_HAL_CHAN_ADHOC_ALLOWED 8
196#define WLAN_HAL_CHAN_AP_DISABLED 9
197#define WLAN_HAL_CHAN_FLAG_DFS 10
198#define WLAN_HAL_CHAN_FLAG_ALLOW_HT 11 /* HT is allowed on this channel */
199#define WLAN_HAL_CHAN_FLAG_ALLOW_VHT 12 /* VHT is allowed on this channel */
200
201#define WDA_SET_CHANNEL_FLAG(pwda_channel,flag) do { \
202 (pwda_channel)->channel_info |= (1 << flag); \
203 } while(0)
204
205#define WDA_SET_CHANNEL_MODE(pwda_channel,val) do { \
206 (pwda_channel)->channel_info &= 0xffffffc0; \
207 (pwda_channel)->channel_info |= (val); \
208 } while(0)
209
210#define WDA_SET_CHANNEL_MAX_POWER(pwda_channel,val) do { \
211 (pwda_channel)->reg_info_1 &= 0xffff00ff; \
212 (pwda_channel)->reg_info_1 |= ((val&0xff) << 8); \
213 } while(0)
214
215#define WDA_SET_CHANNEL_REG_POWER(pwda_channel,val) do { \
216 (pwda_channel)->reg_info_1 &= 0xff00ffff; \
217 (pwda_channel)->reg_info_1 |= ((val&0xff) << 16); \
218 } while(0)
Sachin Ahujacb64fc82015-01-12 17:01:05 +0530219#define WDA_SET_CUURENT_REG_DOMAIN(pwda_channel, val) do { \
220 (pwda_channel)->reg_info_2 |= ((val&0x7) << 24); \
221 (pwda_channel)->reg_info_2 |= 0x80000000; \
222 } while(0)
Manjunathappa Prakash86f78ca2014-02-10 18:09:15 -0800223#define WDA_SET_CHANNEL_MIN_POWER(pwlan_hal_update_channel,val) do { \
224 (pwlan_hal_update_channel)->reg_info_1 &= 0xffffff00; \
225 (pwlan_hal_update_channel)->reg_info_1 |= (val&0xff); \
226 } while(0)
227#define WDA_SET_CHANNEL_ANTENNA_MAX(pwlan_hal_update_channel,val) do { \
228 (pwlan_hal_update_channel)->reg_info_2 &= 0xffffff00; \
229 (pwlan_hal_update_channel)->reg_info_2 |= (val&0xff); \
230 } while(0)
231#define WDA_SET_CHANNEL_REG_CLASSID(pwlan_hal_update_channel,val) do { \
232 (pwlan_hal_update_channel)->reg_info_1 &= 0x00ffffff; \
233 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 24); \
234 } while(0)
235
Amar Singhald08ce752014-03-21 16:28:27 -0700236#define WDA_IS_MCAST_FLT_ENABLE_IN_FW (WDA_getFwWlanFeatCaps(WLAN_MCADDR_FLT))
237
Jeff Johnson295189b2012-06-20 16:38:30 -0700238/*--------------------------------------------------------------------------
239 Definitions for Data path APIs
240 --------------------------------------------------------------------------*/
241
242/*As per 802.11 spec */
243#define WDA_TLI_MGMT_FRAME_TYPE 0x00
244#define WDA_TLI_CTRL_FRAME_TYPE 0x10
245#define WDA_TLI_DATA_FRAME_TYPE 0x20
246
247/*802.3 header definitions*/
248#define WDA_TLI_802_3_HEADER_LEN 14
249/*802.11 header definitions - header len without QOS ctrl field*/
250#define WDA_TLI_802_11_HEADER_LEN 24
251
252/*Determines the header len based on the disable xtl field*/
253#define WDA_TLI_MAC_HEADER_LEN( _dxtl) \
254 ( ( 0 == _dxtl )? \
255 WDA_TLI_802_3_HEADER_LEN:WDA_TLI_802_11_HEADER_LEN )
256
257/* TX channel enum type:
258
259 We have five types of TX packets so far and want to block/unblock each
260 traffic individually according to, for example, low resouce condition.
261 Define five TX channels for UMAC here. WDA can map these logical
262 channels to physical DXE channels if needed.
263*/
264typedef enum
265{
266 WDA_TXFLOW_AC_BK = 0,
267 WDA_TXFLOW_AC_BE = 1,
268 WDA_TXFLOW_AC_VI = 2,
269 WDA_TXFLOW_AC_VO = 3,
270 WDA_TXFLOW_MGMT = 4,
271 WDA_TXFLOW_BAP = 1, /* BAP is sent as BE */
272 WDA_TXFLOW_FC = 1, /* FC is sent as BE */
273 WDA_TXFLOW_MAX
274} WDA_TXFlowEnumType;
275
276#define WDA_TXFLOWMASK 0x1F /* 1~4bit:low priority ch / 5bit: high */
277
278/* ---------------------------------------------------------------------
279 Libra and Volans specifics
280
281 TODO Consider refactoring it and put it into two separate headers,
282 one for Prima and one for Volans
Jeff Johnson295189b2012-06-20 16:38:30 -0700283 ----------------------------------------------------------------------*/
284
285/* For backward compatability with SDIO. It's BAL header size for SDIO
286 interface. It's nothing for integrated SOC */
Jeff Johnson295189b2012-06-20 16:38:30 -0700287#define WDA_DXE_HEADER_SIZE 0
Jeff Johnson295189b2012-06-20 16:38:30 -0700288
Jeff Johnson295189b2012-06-20 16:38:30 -0700289
290/*Minimum resources needed - arbitrary*/
291
292/*DXE + SD*/
Madan Mohan Koyyalamudia53c4dc2012-11-13 10:35:42 -0800293#define WDA_WLAN_LIBRA_HEADER_LEN (20 + 8)
Jeff Johnson295189b2012-06-20 16:38:30 -0700294
Jeff Johnson295189b2012-06-20 16:38:30 -0700295#define WDA_TLI_BD_PDU_RESERVE_THRESHOLD 10
Jeff Johnson295189b2012-06-20 16:38:30 -0700296
297
Jeff Johnson295189b2012-06-20 16:38:30 -0700298# define WDA_TLI_MIN_RES_MF 1
299# define WDA_TLI_MIN_RES_BAP 2
300# define WDA_TLI_MIN_RES_DATA 3
Jeff Johnson295189b2012-06-20 16:38:30 -0700301
Jeff Johnson295189b2012-06-20 16:38:30 -0700302# define WDA_NUM_STA 8
Jeff Johnson295189b2012-06-20 16:38:30 -0700303
304/* For backward compatability with SDIO.
305
306 For SDIO interface, calculate the TX frame length and number of PDU
307 to transfter the frame.
308
309 _vosBuff: IN VOS pakcet buffer pointer
310 _usPktLen: OUT VOS packet length in bytes
311 _uResLen: OUT Number of PDU to hold this VOS packet
312 _uTotalPktLen: OUT Totoal packet length including BAL header size
313
314 For integrated SOC, _usPktLen and _uTotalPktLen is VOS pakcet length
315 which does include BD header length. _uResLen is hardcoded 2.
316 */
Jeff Johnson295189b2012-06-20 16:38:30 -0700317
318#ifdef WINDOWS_DT
319#define WDA_TLI_PROCESS_FRAME_LEN( _vosBuff, _usPktLen, \
320 _uResLen, _uTotalPktLen) \
321 do \
322 { \
323 _usPktLen = wpalPacketGetFragCount((wpt_packet*)_vosBuff) + 1/*BD*/;\
324 _uResLen = _usPktLen; \
325 _uTotalPktLen = _usPktLen; \
326 } \
327 while ( 0 )
328#else /* WINDOWS_DT */
329#define WDA_TLI_PROCESS_FRAME_LEN( _vosBuff, _usPktLen, \
330 _uResLen, _uTotalPktLen) \
331 do \
332 { \
333 _usPktLen = 2; /* Need 1 descriptor per a packet + packet*/ \
334 _uResLen = 2; /* Assume that we spends two DXE descriptor */ \
335 _uTotalPktLen = _usPktLen; \
336 } \
337 while ( 0 )
338#endif /* WINDOWS_DT */
339
Jeff Johnson295189b2012-06-20 16:38:30 -0700340
341
342/*--------------------------------------------------------------------------
343 Message Definitions
344 --------------------------------------------------------------------------*/
345
346/* TX Tranmit request message. It serializes TX request to TX thread.
347 The message is processed in TL.
348*/
349#define WDA_DS_TX_START_XMIT WLANTL_TX_START_XMIT
350#define WDA_DS_FINISH_ULA WLANTL_FINISH_ULA
351
Madan Mohan Koyyalamudi31e4cad2013-08-21 20:21:14 +0530352#define VOS_TO_WPAL_PKT(_vos_pkt) ((wpt_packet*)_vos_pkt)
Jeff Johnson295189b2012-06-20 16:38:30 -0700353
354#define WDA_TX_PACKET_FREED 0X0
355
Jeff Johnson43971f52012-07-17 12:26:56 -0700356/* Approximate amount of time to wait for WDA to stop WDI considering 1 pendig req too*/
357#define WDA_STOP_TIMEOUT ( (WDI_RESPONSE_TIMEOUT * 2) + WDI_SET_POWER_STATE_TIMEOUT + 5)
Jeff Johnson295189b2012-06-20 16:38:30 -0700358/*--------------------------------------------------------------------------
359 Functions
360 --------------------------------------------------------------------------*/
361
362/* For data client */
363typedef VOS_STATUS (*WDA_DS_TxCompleteCallback) ( v_PVOID_t pContext, vos_pkt_t *pFrameDataBuff, VOS_STATUS txStatus );
364typedef VOS_STATUS (*WDA_DS_RxPacketCallback) ( v_PVOID_t pContext, vos_pkt_t *pFrameDataBuff );
365typedef v_U32_t (*WDA_DS_TxPacketCallback) ( v_PVOID_t pContext,
366 vos_pkt_t **ppFrameDataBuff,
367 v_U32_t uSize,
Jeff Johnson295189b2012-06-20 16:38:30 -0700368 v_U8_t uFlowMask,
Jeff Johnson295189b2012-06-20 16:38:30 -0700369 v_BOOL_t *pbUrgent );
370typedef VOS_STATUS (*WDA_DS_ResourceCB) ( v_PVOID_t pContext, v_U32_t uCount );
371
372
Jeff Johnson295189b2012-06-20 16:38:30 -0700373/* For management client */
374typedef VOS_STATUS (*WDA_DS_TxCompleteCb)( v_PVOID_t pContext, wpt_packet *pFrame );
375typedef VOS_STATUS (*WDA_DS_RxCompleteCb)( v_PVOID_t pContext, wpt_packet *pFrame );
376typedef VOS_STATUS (*WDA_DS_TxFlowControlCb)( v_PVOID_t pContext, v_U8_t acMask );
377typedef void (*pWDATxRxCompFunc)( v_PVOID_t pContext, void *pData );
378
379//callback function for TX complete
380//parameter 1 - global pMac pointer
381//parameter 2 - txComplete status : 1- success, 0 - failure.
Ganesh Kondabattini358fc9b2015-03-11 16:14:25 +0530382typedef eHalStatus (*pWDAAckFnTxComp)(tpAniSirGlobal, void *pData);
Jeff Johnson295189b2012-06-20 16:38:30 -0700383
Abhishek Singh00b71972016-01-07 10:51:04 +0530384#ifdef WLAN_FEATURE_RMC
385typedef void (*WDA_txFailIndCallback)(tANI_U8 *, tANI_U8);
386#endif /* WLAN_FEATURE_RMC */
387
Kapil Gupta2b44acb2016-12-30 16:49:51 +0530388typedef void (*WDA_suspend_req_callback)(tANI_U8 *, tANI_U8);
389
Jeff Johnson295189b2012-06-20 16:38:30 -0700390typedef struct
391{
392 tANI_U16 ucValidStaIndex ;
393 /*
394 * each bit in ucUseBaBitmap represent BA is enabled or not for this tid
395 * tid0 ..bit0, tid1..bit1 and so on..
396 */
397 tANI_U8 ucUseBaBitmap ;
398 tANI_U8 bssIdx;
Abhishek Singh0644e482014-10-06 18:38:23 +0530399 tANI_U32 currentOperChan;
Jeff Johnson295189b2012-06-20 16:38:30 -0700400 tANI_U32 framesTxed[STACFG_MAX_TC];
401}tWdaStaInfo, *tpWdaStaInfo ;
402
403/* group all the WDA timers into this structure */
404typedef struct
405{
406 /* BA activity check timer */
407 TX_TIMER baActivityChkTmr ;
408
409 /* Tx Complete Timeout timer */
410 TX_TIMER TxCompleteTimer ;
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -0800411
412 /* Traffic Stats timer */
413 TX_TIMER trafficStatsTimer ;
Jeff Johnson295189b2012-06-20 16:38:30 -0700414}tWdaTimers ;
Siddharth Bhal85f99b12014-05-09 08:09:07 +0530415
Gopichand Nakkala976e3252013-01-03 15:45:56 -0800416#ifdef WLAN_SOFTAP_VSTA_FEATURE
Yathish Hanumapuradoddi Shivanna64dfc472013-03-08 10:48:34 -0800417#define WDA_MAX_STA (41)
Gopichand Nakkala976e3252013-01-03 15:45:56 -0800418#else
Jeff Johnson295189b2012-06-20 16:38:30 -0700419#define WDA_MAX_STA (16)
Gopichand Nakkala976e3252013-01-03 15:45:56 -0800420#endif
Siddharth Bhal85f99b12014-05-09 08:09:07 +0530421typedef enum
422{
423 WDA_ADDSTA_REQ_NO_MEM = 0,
424 WDA_ADDSTA_REQ_WDI_FAIL = 1,
425 WDA_ADDSTA_RSP_NO_MEM = 2,
426 WDA_ADDSTA_RSP_WDI_FAIL = 3,
427 WDA_ADDSTA_MAX
428} WDA_AddSelfStaFailReasonDebug;
429
430/*AddSelfSta Request and Response Debug*/
431typedef struct
432{
433 wpt_uint8 wdiAddStaSelfStaReqCounter;
434 wpt_uint8 wdiAddStaSelfStaRspCounter;
435 wpt_uint8 wdiAddStaSelfStaFailCounter;
436 wpt_uint8 ucSTASelfIdx; /* received SelfStaIdx*/
437 wpt_uint8 wdaAddSelfStaFailReason;
438} tWDA_AddSelfStaDebugParams;
439
Abhishek Singh837adf22015-10-01 17:37:37 +0530440#define BMPS_IMPS_FAILURE_REPORT_THRESHOLD 10
441
442/* Continous Response failure counts */
443typedef struct
444{
445 wpt_uint8 enterBmpsFailureCount;
446 wpt_uint8 exitBmpsFailureCount;
447 wpt_uint8 enterImpsFailureCount;
448 wpt_uint8 exitImpsFailureCount;
449} tWDA_RespFailureCounts;
450
451
Jeff Johnson295189b2012-06-20 16:38:30 -0700452typedef struct
453{
454 v_PVOID_t pVosContext; /* global VOSS context*/
455 v_PVOID_t pWdiContext; /* WDI context */
456 WDA_state wdaState ; /* WDA state tracking */
Jeff Johnson295189b2012-06-20 16:38:30 -0700457 v_PVOID_t wdaWdiCfgApiMsgParam ; /* WDI API paramter tracking */
mukul sharma6b53e202016-11-23 19:29:18 +0530458 v_PVOID_t wdaWdiCfgUpdateIntMsg ; /* WDI API CFG update param tracking */
Jeff Johnson295189b2012-06-20 16:38:30 -0700459 vos_event_t wdaWdiEvent; /* WDI API sync event */
460
461 /* Event to wait for tx completion */
462 vos_event_t txFrameEvent;
463
464 /* call back function for tx complete*/
465 pWDATxRxCompFunc pTxCbFunc;
466 /* call back function for tx packet ack */
467 pWDAAckFnTxComp pAckTxCbFunc;
468 tANI_U32 frameTransRequired;
469 tSirMacAddr macBSSID; /*BSSID of the network */
470 tSirMacAddr macSTASelf; /*Self STA MAC*/
471
472 /* TX channel mask for flow control */
473 v_U8_t uTxFlowMask;
474 /* TL's TX resource callback */
475 WDA_DS_ResourceCB pfnTxResourceCB;
476 /* TL's TX complete callback */
477 WDA_DS_TxCompleteCallback pfnTxCompleteCallback;
478
479 tWdaStaInfo wdaStaInfo[WDA_MAX_STA];
480
481 tANI_U8 wdaMaxSta;
482 tWdaTimers wdaTimers;
483
484 /* STA, AP, IBSS, MULTI-BSS etc.*/
485 tBssSystemRole wdaGlobalSystemRole;
486
487 /* driver mode, PRODUCTION or FTM */
488 tDriverType driverMode;
489
Jeff Johnson295189b2012-06-20 16:38:30 -0700490 /* FTM Command Request tracking */
491 v_PVOID_t wdaFTMCmdReq;
Jeff Johnson295189b2012-06-20 16:38:30 -0700492
493 /* Event to wait for suspend data tx*/
494 vos_event_t suspendDataTxEvent;
495 /* Status frm TL after suspend/resume Tx */
496 tANI_U8 txStatus;
497 /* Flag set to true when TL suspend timesout.*/
498 tANI_U8 txSuspendTimedOut;
499
500 vos_event_t waitOnWdiIndicationCallBack;
501
502 /* version information */
503 tSirVersionType wcnssWlanCompiledVersion;
504 tSirVersionType wcnssWlanReportedVersion;
505 tSirVersionString wcnssSoftwareVersionString;
506 tSirVersionString wcnssHardwareVersionString;
507
508
509 tSirLinkState linkState;
510 /* set, when BT AMP session is going on */
511 v_BOOL_t wdaAmpSessionOn;
Jeff Johnsone7245742012-09-05 17:12:55 -0700512 v_BOOL_t needShutdown;
Madan Mohan Koyyalamudia2fc6412012-10-21 12:06:12 -0700513 v_BOOL_t wdiFailed;
Madan Mohan Koyyalamudid57ae632012-11-06 18:42:48 -0800514 v_BOOL_t wdaTimersCreated;
Mahesh A Saptasagarcadc3542014-12-01 19:00:02 +0530515 uintptr_t VosPacketToFree;
Leo Chang9d76f622013-08-23 16:34:52 -0700516
517 /* Event to wait for WDA stop on FTM mode */
518 vos_event_t ftmStopDoneEvent;
Siddharth Bhal85f99b12014-05-09 08:09:07 +0530519
520 tWDA_AddSelfStaDebugParams wdaAddSelfStaParams;
Abhishek Singh00b71972016-01-07 10:51:04 +0530521
522#ifdef WLAN_FEATURE_RMC
523 WDA_txFailIndCallback txFailIndCallback;
524#endif /* WLAN_FEATURE_RMC */
Abhishek Singh837adf22015-10-01 17:37:37 +0530525 tWDA_RespFailureCounts failureCounts;
Abhishek Singhe721fb42015-11-30 14:22:10 +0530526 wpt_uint8 mgmtTxfailureCnt;
Sravan Kumar Kairambe037222016-06-19 12:56:24 +0530527 uint8_t mgmt_pktfree_fail;
528 vos_lock_t mgmt_pkt_lock;
Abhishek Singhe721fb42015-11-30 14:22:10 +0530529
Jeff Johnson295189b2012-06-20 16:38:30 -0700530} tWDA_CbContext ;
531
532typedef struct
533{
534 v_PVOID_t pWdaContext; /* pointer to WDA context*/
535 v_PVOID_t wdaMsgParam; /* PE parameter tracking */
536 v_PVOID_t wdaWdiApiMsgParam; /* WDI API paramter tracking */
537} tWDA_ReqParams;
538
Siddharth Bhal68115602015-01-18 20:44:55 +0530539typedef struct
540{
541 v_PVOID_t pWdaContext; /* pointer to WDA context*/
542 v_PVOID_t wdaMsgParam; /* PE parameter tracking */
543 v_PVOID_t wdaWdiApiMsgParam; /* WDI API paramter tracking */
544 v_BOOL_t wdaHALDumpAsync; /* Async Request */
545
546} tWDA_HalDumpReqParams;
547
Jeff Johnson295189b2012-06-20 16:38:30 -0700548/*
549 * FUNCTION: WDA_open
550 * open WDA context
551 */
552
Arun Kumar Khandavalliebb19482014-03-25 13:56:53 +0530553VOS_STATUS WDA_open(v_PVOID_t pVosContext, v_PVOID_t devHandle,
Jeff Johnson295189b2012-06-20 16:38:30 -0700554 tMacOpenParameters *pMacParams ) ;
555
556/*
557 * FUNCTION: WDA_preStart
558 * Trigger DAL-AL to start CFG download
559 */
560VOS_STATUS WDA_start(v_PVOID_t pVosContext) ;
561
562VOS_STATUS WDA_NVDownload_Start(v_PVOID_t pVosContext);
563
564/*
565 * FUNCTION: WDA_preStart
566 * Trigger WDA to start CFG download
567 */
568VOS_STATUS WDA_preStart(v_PVOID_t pVosContext) ;
569/*
570 * FUNCTION: WDA_stop
571 * stop WDA
572 */
573VOS_STATUS WDA_stop(v_PVOID_t pVosContext,tANI_U8 reason);
574
575/*
576 * FUNCTION: WDA_close
577 * close WDA context
578 */
579VOS_STATUS WDA_close(v_PVOID_t pVosContext);
580/*
581 * FUNCTION: WDA_shutdown
582 * Shutdown will not close the control transport, added by SSR
583 */
584VOS_STATUS WDA_shutdown(v_PVOID_t pVosContext, wpt_boolean closeTransport);
585
586/*
Madan Mohan Koyyalamudi9d7a27f2012-11-28 15:55:25 -0800587 * FUNCTION: WDA_setNeedShutdown
588 * WDA stop failed or WDA NV Download failed
Jeff Johnsone7245742012-09-05 17:12:55 -0700589 */
Madan Mohan Koyyalamudi9d7a27f2012-11-28 15:55:25 -0800590void WDA_setNeedShutdown(v_PVOID_t pVosContext);
Jeff Johnsone7245742012-09-05 17:12:55 -0700591/*
592 * FUNCTION: WDA_needShutdown
593 * WDA requires a shutdown rather than a close
594 */
595v_BOOL_t WDA_needShutdown(v_PVOID_t pVosContext);
596
597/*
Jeff Johnson295189b2012-06-20 16:38:30 -0700598 * FUNCTION: WDA_McProcessMsg
599 * DAL-AL message processing entry function
600 */
601
602VOS_STATUS WDA_McProcessMsg( v_CONTEXT_t pVosContext, vos_msg_t *pMsg ) ;
603
604/* -----------------------------------------------------------------
605 * WDA data path API's
606 * ----------------------------------------------------------------*/
607/*
608 * FUNCTION: WDA_MgmtDSRegister
609 * Send Message back to PE
610 */
611
612VOS_STATUS WDA_MgmtDSRegister(tWDA_CbContext *pWDA,
613 WDA_DS_TxCompleteCb WDA_TxCompleteCallback,
614 WDA_DS_RxCompleteCb WDA_RxCompleteCallback,
615 WDA_DS_TxFlowControlCb WDA_TxFlowCtrlCallback
616 ) ;
617/*
618 * FUNCTION: WDA_MgmtDSTxPacket
619 * Forward TX management frame to WDI
620 */
621
622VOS_STATUS WDA_TxPacket(tWDA_CbContext *pWDA,
623 void *pFrmBuf,
624 tANI_U16 frmLen,
625 eFrameType frmType,
626 eFrameTxDir txDir,
627 tANI_U8 tid,
628 pWDATxRxCompFunc pCompFunc,
629 void *pData,
630 pWDAAckFnTxComp pAckTxComp,
Ganesh Kondabattini10e67352015-03-16 17:41:57 +0530631 tANI_U32 txFlag,
632 tANI_U32 txBdToken
633 );
Jeff Johnson295189b2012-06-20 16:38:30 -0700634
635/*
636 * FUNCTION: WDA_PostMsgApi
637 * API fpr PE to post Message to WDA
638 */
639VOS_STATUS WDA_PostMsgApi(tpAniSirGlobal pMac, tSirMsgQ *pMsg) ;
640
641/* ---------------------------------------------------------
642 * FUNCTION: wdaGetGlobalSystemRole()
643 *
644 * Get the global HAL system role.
645 * ---------------------------------------------------------
646 */
647tBssSystemRole wdaGetGlobalSystemRole(tpAniSirGlobal pMac);
648
649/* maximum wait time for WDA complete event (correct value has to be derived)
650 * for now giving the value 1000 ms */
651#define WDA_WDI_COMPLETION_TIME_OUT 30000 /* in ms */
652
653#define WDA_TL_TX_FRAME_TIMEOUT 10000 /* in msec a very high upper limit of 5,000 msec */
654#define WDA_TL_SUSPEND_TIMEOUT 2000 /* in ms unit */
655
656/*Tag used by WDA to mark a timed out frame*/
657#define WDA_TL_TX_MGMT_TIMED_OUT 0xDEAD
658
659#define WDA_TL_TX_SUSPEND_SUCCESS 0
660#define WDA_TL_TX_SUSPEND_FAILURE 1
661
Chet Lanctot186b5732013-03-18 10:26:30 -0700662#define DPU_FEEDBACK_UNPROTECTED_ERROR 0x0F
Jeff Johnson295189b2012-06-20 16:38:30 -0700663
Jeff Johnson295189b2012-06-20 16:38:30 -0700664
665/* ---------------------------------------------------------------------------
666
667 RX Meta info access for Integrated SOC
668 RX BD header access for NON Integrated SOC
669
670 These MACRO are for RX frames that are on flat buffers
671
672 ---------------------------------------------------------------------------*/
673
674/* WDA_GET_RX_MAC_HEADER *****************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700675# define WDA_GET_RX_MAC_HEADER(pRxMeta) \
676 (tpSirMacMgmtHdr)( ((WDI_DS_RxMetaInfoType *)(pRxMeta))->mpduHeaderPtr )
Jeff Johnson295189b2012-06-20 16:38:30 -0700677
678/* WDA_GET_RX_MPDUHEADER3A ****************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700679# define WDA_GET_RX_MPDUHEADER3A(pRxMeta) \
680 (tpSirMacDataHdr3a)( ((WDI_DS_RxMetaInfoType *)(pRxMeta))->mpduHeaderPtr )
Jeff Johnson295189b2012-06-20 16:38:30 -0700681
682/* WDA_GET_RX_MPDU_HEADER_LEN *************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700683# define WDA_GET_RX_MPDU_HEADER_LEN(pRxMeta) \
684 ( ((WDI_DS_RxMetaInfoType *)(pRxMeta))->mpduHeaderLength )
Jeff Johnson295189b2012-06-20 16:38:30 -0700685
686/* WDA_GET_RX_MPDU_LEN ********************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700687# define WDA_GET_RX_MPDU_LEN(pRxMeta) \
688 ( ((WDI_DS_RxMetaInfoType *)(pRxMeta))->mpduLength )
Jeff Johnson295189b2012-06-20 16:38:30 -0700689
690/* WDA_GET_RX_PAYLOAD_LEN ****************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700691# define WDA_GET_RX_PAYLOAD_LEN(pRxMeta) \
692 ( WDA_GET_RX_MPDU_LEN(pRxMeta) - WDA_GET_RX_MPDU_HEADER_LEN(pRxMeta) )
Jeff Johnson295189b2012-06-20 16:38:30 -0700693
694/* WDA_GET_RX_MAC_RATE_IDX ***************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700695# define WDA_GET_RX_MAC_RATE_IDX(pRxMeta) \
696 ( ((WDI_DS_RxMetaInfoType *)(pRxMeta))->rateIndex )
Jeff Johnson295189b2012-06-20 16:38:30 -0700697
698/* WDA_GET_RX_MPDU_DATA ******************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700699# define WDA_GET_RX_MPDU_DATA(pRxMeta) \
700 ( ((WDI_DS_RxMetaInfoType *)(pRxMeta))->mpduDataPtr )
Jeff Johnson295189b2012-06-20 16:38:30 -0700701
702/* WDA_GET_RX_MPDU_DATA_OFFSET ***********************************************/
703// For Integrated SOC: When UMAC receive the packet. BD is already stripped off.
704// Data offset is the MPDU header length
Jeff Johnson295189b2012-06-20 16:38:30 -0700705# define WDA_GET_RX_MPDU_DATA_OFFSET(pRxMeta) WDA_GET_RX_MPDU_HEADER_LEN(pRxMeta)
Jeff Johnson295189b2012-06-20 16:38:30 -0700706
707/* WDA_GET_RX_MPDU_HEADER_OFFSET *********************************************/
708// For Integrated SOC: We UMAC receive the frame,
709// BD is gone and MAC header at offset 0
Jeff Johnson295189b2012-06-20 16:38:30 -0700710# define WDA_GET_RX_MPDU_HEADER_OFFSET(pRxMeta) 0
Jeff Johnson295189b2012-06-20 16:38:30 -0700711
712/* WDA_GET_RX_UNKNOWN_UCAST **************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700713# define WDA_GET_RX_UNKNOWN_UCAST(pRxMeta) \
714 ( ((WDI_DS_RxMetaInfoType *)(pRxMeta))->unknownUcastPkt )
Jeff Johnson295189b2012-06-20 16:38:30 -0700715
716/* WDA_GET_RX_TID ************************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700717# define WDA_GET_RX_TID(pRxMeta) ( ((WDI_DS_RxMetaInfoType *)(pRxMeta))->tid )
Jeff Johnson295189b2012-06-20 16:38:30 -0700718
719/* WDA_GET_RX_STAID **********************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700720# define WDA_GET_RX_STAID(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->staId)
Jeff Johnson295189b2012-06-20 16:38:30 -0700721
722/* WDA_GET_RX_ADDR3_IDX ******************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700723# define WDA_GET_RX_ADDR3_IDX(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->addr3Idx)
Jeff Johnson295189b2012-06-20 16:38:30 -0700724
Rajeev Kumar Sirasanagandla8701da32018-02-05 16:59:08 +0530725/* WDA_GET_RX_ADDR1_IDX ******************************************************/
726# define WDA_GET_RX_ADDR1_IDX(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->addr1Idx)
727
Jeff Johnson295189b2012-06-20 16:38:30 -0700728/* WDA_GET_RX_CH *************************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700729# define WDA_GET_RX_CH(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->rxChannel)
Jeff Johnson295189b2012-06-20 16:38:30 -0700730
Kiran Kumar Lokere79540f92013-04-25 17:32:16 -0700731/* WDA_GET_RX_RFBAND *********************************************************/
732# define WDA_GET_RX_RFBAND(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->rfBand)
733
Jeff Johnson295189b2012-06-20 16:38:30 -0700734/* WDA_GET_RX_DPUSIG *********************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700735# define WDA_GET_RX_DPUSIG(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->dpuSig)
Jeff Johnson295189b2012-06-20 16:38:30 -0700736
737/* WDA_IS_RX_BCAST ***********************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700738# define WDA_IS_RX_BCAST(pRxMeta) \
739 ( (1 == ((WDI_DS_RxMetaInfoType*)(pRxMeta))->bcast) ? VOS_TRUE : VOS_FALSE )
Jeff Johnson295189b2012-06-20 16:38:30 -0700740
741/* WDA_GET_RX_FT_DONE ********************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700742# define WDA_GET_RX_FT_DONE(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->ft)
Jeff Johnson295189b2012-06-20 16:38:30 -0700743
744/* WDA_GET_RX_DPU_FEEDBACK **************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700745# define WDA_GET_RX_DPU_FEEDBACK(pRxMeta) \
746 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->dpuFeedback)
Jeff Johnson295189b2012-06-20 16:38:30 -0700747
748/* WDA_GET_RX_ASF ************************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700749# define WDA_GET_RX_ASF(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->amsdu_asf)
Jeff Johnson295189b2012-06-20 16:38:30 -0700750
751/* WDA_GET_RX_AEF ************************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700752# define WDA_GET_RX_AEF(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->amsdu_aef)
Jeff Johnson295189b2012-06-20 16:38:30 -0700753
754/* WDA_GET_RX_ESF ************************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700755# define WDA_GET_RX_ESF(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->amsdu_esf)
Jeff Johnson295189b2012-06-20 16:38:30 -0700756
757/* WDA_GET_RX_BEACON_SENT ****************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700758# define WDA_GET_RX_BEACON_SENT(pRxMeta) \
759 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->bsf)
Jeff Johnson295189b2012-06-20 16:38:30 -0700760
761/* WDA_GET_RX_TSF_LATER *****************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700762# define WDA_GET_RX_TSF_LATER(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->rtsf)
Jeff Johnson295189b2012-06-20 16:38:30 -0700763
764/* WDA_GET_RX_TYPE ***********************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700765# define WDA_GET_RX_TYPE(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->type)
Jeff Johnson295189b2012-06-20 16:38:30 -0700766
767/* WDA_GET_RX_SUBTYPE ********************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700768# define WDA_GET_RX_SUBTYPE(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->subtype)
Jeff Johnson295189b2012-06-20 16:38:30 -0700769
770/* WDA_GET_RX_TYPE_SUBTYPE ****************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700771# define WDA_GET_RX_TYPE_SUBTYPE(pRxMeta) \
772 ((WDA_GET_RX_TYPE(pRxMeta)<<4)|WDA_GET_RX_SUBTYPE(pRxMeta))
Jeff Johnson295189b2012-06-20 16:38:30 -0700773
774/* WDA_GET_RX_REORDER_OPCODE : For MSDU reorder *******************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700775# define WDA_GET_RX_REORDER_OPCODE(pRxMeta) \
776 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->ampdu_reorderOpcode)
Jeff Johnson295189b2012-06-20 16:38:30 -0700777
778/* WDA_GET_RX_REORDER_SLOT_IDX : For MSDU reorder ****************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700779# define WDA_GET_RX_REORDER_SLOT_IDX(pRxMeta) \
780 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->ampdu_reorderSlotIdx)
Jeff Johnson295189b2012-06-20 16:38:30 -0700781
782/* WDA_GET_RX_REORDER_FWD_IDX : For MSDU reorder *****************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700783# define WDA_GET_RX_REORDER_FWD_IDX(pRxMeta) \
784 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->ampdu_reorderFwdIdx)
Jeff Johnson295189b2012-06-20 16:38:30 -0700785
786/* WDA_GET_RX_REORDER_CUR_PKT_SEQ_NO : Fro MSDU reorder **********************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700787# define WDA_GET_RX_REORDER_CUR_PKT_SEQ_NO(pRxMeta) \
788 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->currentPktSeqNo)
Jeff Johnson295189b2012-06-20 16:38:30 -0700789
790/* WDA_IS_RX_LLC_PRESENT *****************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700791# define WDA_IS_RX_LLC_PRESENT(pRxMeta) \
792 ( (0 == ((WDI_DS_RxMetaInfoType*)(pRxMeta))->llcr) ? VOS_TRUE : VOS_FALSE )
Jeff Johnson295189b2012-06-20 16:38:30 -0700793
Mihir Shete2187b8c2015-03-18 16:54:29 +0530794# define WDA_IS_LOGGING_DATA(pRxMeta) \
795 ((0 == ((WDI_DS_RxMetaInfoType*)(pRxMeta))->loggingData) ? VOS_FALSE \
796 : VOS_TRUE)
797
Jeff Johnson295189b2012-06-20 16:38:30 -0700798#define WLANWDA_HO_IS_AN_AMPDU 0x4000
799#define WLANWDA_HO_LAST_MPDU_OF_AMPDU 0x400
800
Vignesh Viswanathan5ab5cde2017-11-21 16:21:34 +0530801#define WDA_MAX_MGMT_MPDU_LEN 2000
802
Jeff Johnson295189b2012-06-20 16:38:30 -0700803/* WDA_IS_RX_AN_AMPDU ********************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700804# define WDA_IS_RX_AN_AMPDU(pRxMeta) \
805 ( ((WDI_DS_RxMetaInfoType*)(pRxMeta))->rxpFlags & WLANWDA_HO_IS_AN_AMPDU )
Jeff Johnson295189b2012-06-20 16:38:30 -0700806
807/* WDA_IS_RX_LAST_MPDU *******************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700808# define WDA_IS_RX_LAST_MPDU(pRxMeta) \
809 ( ((WDI_DS_RxMetaInfoType*)(pRxMeta))->rxpFlags & WLANWDA_HO_LAST_MPDU_OF_AMPDU )
Jeff Johnson295189b2012-06-20 16:38:30 -0700810
811/* WDA_GET_RX_TIMESTAMP *****************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700812# define WDA_GET_RX_TIMESTAMP(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->mclkRxTimestamp)
Jeff Johnson295189b2012-06-20 16:38:30 -0700813
814/* WDA_IS_RX_IN_SCAN *********************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700815# define WDA_IS_RX_IN_SCAN(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->scan)
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -0700816#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
817/* WDA_GET_OFFLOADSCANLEARN **************************************************/
818# define WDA_GET_OFFLOADSCANLEARN(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->offloadScanLearn)
819/* WDA_GET_ROAMCANDIDATEIND **************************************************/
820# define WDA_GET_ROAMCANDIDATEIND(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->roamCandidateInd)
Kapil Gupta04ab1992016-06-26 13:36:51 +0530821# define WDA_IF_PER_ROAMCANDIDATEIND(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->perRoamCndInd)
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -0700822#endif
Dino Mycle41bdc942014-06-10 11:30:24 +0530823#ifdef WLAN_FEATURE_EXTSCAN
824#define WDA_GET_EXTSCANFULLSCANRESIND(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->extscanBuffer)
825#endif
Agrawal Ashisha8e8a722016-10-18 19:07:45 +0530826
827#ifdef SAP_AUTH_OFFLOAD
828#define WDA_GET_SAP_AUTHOFFLOADIND(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->indType)
829#endif
830
Jeff Johnson295189b2012-06-20 16:38:30 -0700831/* WDA_GET_RX_RSSI_DB ********************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700832// Volans RF
833# define WDA_RSSI_OFFSET 100
Masti, Narayanraddi392ba882016-02-25 15:13:49 +0530834# define WDA_GET_RSSI_DB(rssi0) ((int)rssi0 - WDA_RSSI_OFFSET)
Jeff Johnson295189b2012-06-20 16:38:30 -0700835# define WDA_GET_RX_RSSI_DB(pRxMeta) \
836 WDA_GET_RSSI_DB((((WDI_DS_RxMetaInfoType*)(pRxMeta))->rssi0))
Jeff Johnson295189b2012-06-20 16:38:30 -0700837
838/* WDA_GET_RX_SNR ************************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700839# define WDA_GET_RX_SNR(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->snr)
Jeff Johnson295189b2012-06-20 16:38:30 -0700840
841/* WDA_IS_RX_FC **************************************************************/
842// Flow control frames
Jeff Johnson295189b2012-06-20 16:38:30 -0700843/* FIXME WDA should provide the meta info which indicates FC frame
844 In the meantime, use hardcoded FALSE, since we don't support FC yet */
845# define WDA_IS_RX_FC(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->fc)
Jeff Johnson295189b2012-06-20 16:38:30 -0700846
847/* WDA_GET_RX_FC_VALID_STA_MASK **********************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700848# define WDA_GET_RX_FC_VALID_STA_MASK(pRxMeta) \
849 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->fcSTAValidMask)
Jeff Johnson295189b2012-06-20 16:38:30 -0700850
851/* WDA_GET_RX_FC_PWRSAVE_STA_MASK ********************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700852# define WDA_GET_RX_FC_PWRSAVE_STA_MASK(pRxMeta) \
853 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->fcSTAPwrSaveStateMask)
Jeff Johnson295189b2012-06-20 16:38:30 -0700854
855/* WDA_GET_RX_FC_STA_THRD_IND_MASK ********************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700856# define WDA_GET_RX_FC_STA_THRD_IND_MASK(pRxMeta) \
857 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->fcSTAThreshIndMask)
Jeff Johnson295189b2012-06-20 16:38:30 -0700858
859/* WDA_GET_RX_FC_FORCED_STA_TX_DISABLED_BITMAP ********************************************/
860# define WDA_GET_RX_FC_STA_TX_DISABLED_BITMAP(pRxMeta) \
861 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->fcStaTxDisabledBitmap)
862
863/* WDA_GET_RX_FC_STA_TXQ_LEN *************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700864# define WDA_GET_RX_FC_STA_TXQ_LEN(pRxMeta, staId) \
865 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->fcSTATxQLen[(staId)])
Jeff Johnson295189b2012-06-20 16:38:30 -0700866
867/* WDA_GET_RX_FC_STA_CUR_TXRATE **********************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700868# define WDA_GET_RX_FC_STA_CUR_TXRATE(pRxMeta, staId) \
869 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->fcSTACurTxRate[(staId)])
Jeff Johnson295189b2012-06-20 16:38:30 -0700870
871/* WDA_GET_RX_REPLAY_COUNT ***************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700872# define WDA_GET_RX_REPLAY_COUNT(pRxMeta) \
873 (((WDI_DS_RxMetaInfoType*)(pRxMeta))->replayCount)
Jeff Johnson295189b2012-06-20 16:38:30 -0700874
875/* WDA_GETRSSI0 ***************************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700876# define WDA_GETRSSI0(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->rssi0)
Jeff Johnson295189b2012-06-20 16:38:30 -0700877
878/* WDA_GETRSSI1 ***************************************************************/
Jeff Johnson295189b2012-06-20 16:38:30 -0700879# define WDA_GETRSSI1(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->rssi1)
Jeff Johnson295189b2012-06-20 16:38:30 -0700880
Chet Lanctot186b5732013-03-18 10:26:30 -0700881/* WDA_GET_RX_RMF *****************************************************/
882#ifdef WLAN_FEATURE_11W
883# define WDA_GET_RX_RMF(pRxMeta) (((WDI_DS_RxMetaInfoType*)(pRxMeta))->rmf)
884#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700885
886/* --------------------------------------------------------------------*/
887
Jeff Johnson295189b2012-06-20 16:38:30 -0700888uint8 WDA_IsWcnssWlanCompiledVersionGreaterThanOrEqual(uint8 major, uint8 minor, uint8 version, uint8 revision);
889uint8 WDA_IsWcnssWlanReportedVersionGreaterThanOrEqual(uint8 major, uint8 minor, uint8 version, uint8 revision);
890
891
892VOS_STATUS WDA_GetWcnssWlanCompiledVersion(v_PVOID_t pvosGCtx,
893 tSirVersionType *pVersion);
894VOS_STATUS WDA_GetWcnssWlanReportedVersion(v_PVOID_t pvosGCtx,
895 tSirVersionType *pVersion);
896VOS_STATUS WDA_GetWcnssSoftwareVersion(v_PVOID_t pvosGCtx,
897 tANI_U8 *pVersion,
898 tANI_U32 versionBufferSize);
899VOS_STATUS WDA_GetWcnssHardwareVersion(v_PVOID_t pvosGCtx,
900 tANI_U8 *pVersion,
901 tANI_U32 versionBufferSize);
902
903VOS_STATUS WDA_SetUapsdAcParamsReq(v_PVOID_t , v_U8_t , tUapsdInfo *);
904VOS_STATUS WDA_ClearUapsdAcParamsReq(v_PVOID_t , v_U8_t , wpt_uint8 );
905VOS_STATUS WDA_SetRSSIThresholdsReq(tpAniSirGlobal , tSirRSSIThresholds *);
906// Just declare the function extern here and save some time.
907extern tSirRetStatus halMmhForwardMBmsg(void*, tSirMbMsg*);
908tSirRetStatus uMacPostCtrlMsg(void* pSirGlobal, tSirMbMsg* pMb);
Jeff Johnson295189b2012-06-20 16:38:30 -0700909
910
Jeff Johnson295189b2012-06-20 16:38:30 -0700911#define WDA_MAX_TXPOWER_INVALID HAL_MAX_TXPOWER_INVALID
912
913//WDA Messages to HAL messages Mapping
914#if 0
915//Required by SME
916//#define WDA_SIGNAL_BT_EVENT SIR_HAL_SIGNAL_BT_EVENT - this is defined in sirParams.h
917//#define WDA_BTC_SET_CFG SIR_HAL_BTC_SET_CFG
918
919//Required by PE
920#define WDA_HOST_MSG_START SIR_HAL_HOST_MSG_START
921#define WDA_INITIAL_CAL_FAILED_NTF SIR_HAL_INITIAL_CAL_FAILED_NTF
922#define WDA_SHUTDOWN_REQ SIR_HAL_SHUTDOWN_REQ
923#define WDA_SHUTDOWN_CNF SIR_HAL_SHUTDOWN_CNF
924#define WDA_RADIO_ON_OFF_IND SIR_HAL_RADIO_ON_OFF_IND
925#define WDA_RESET_CNF SIR_HAL_RESET_CNF
926#define WDA_SetRegDomain \
Madan Mohan Koyyalamudic0d1b3f2012-11-13 10:41:07 -0800927 (eHalStatus halPhySetRegDomain(tHalHandle hHal, eRegDomainId regDomain))
Jeff Johnson295189b2012-06-20 16:38:30 -0700928#endif
929
930#define WDA_APP_SETUP_NTF SIR_HAL_APP_SETUP_NTF
931#define WDA_NIC_OPER_NTF SIR_HAL_NIC_OPER_NTF
932#define WDA_INIT_START_REQ SIR_HAL_INIT_START_REQ
933#define WDA_RESET_REQ SIR_HAL_RESET_REQ
934#define WDA_HDD_ADDBA_REQ SIR_HAL_HDD_ADDBA_REQ
935#define WDA_HDD_ADDBA_RSP SIR_HAL_HDD_ADDBA_RSP
936#define WDA_DELETEBA_IND SIR_HAL_DELETEBA_IND
937#define WDA_BA_FAIL_IND SIR_HAL_BA_FAIL_IND
938#define WDA_TL_FLUSH_AC_REQ SIR_TL_HAL_FLUSH_AC_REQ
939#define WDA_TL_FLUSH_AC_RSP SIR_HAL_TL_FLUSH_AC_RSP
940
941#define WDA_MSG_TYPES_BEGIN SIR_HAL_MSG_TYPES_BEGIN
Siddharth Bhal64246172015-02-27 01:04:37 +0530942#define WDA_EXT_MSG_TYPES_BEGIN SIR_HAL_EXT_MSG_TYPES_BEGIN
Jeff Johnson295189b2012-06-20 16:38:30 -0700943#define WDA_ITC_MSG_TYPES_BEGIN SIR_HAL_ITC_MSG_TYPES_BEGIN
944#define WDA_RADAR_DETECTED_IND SIR_HAL_RADAR_DETECTED_IND
945#define WDA_WDT_KAM_RSP SIR_HAL_WDT_KAM_RSP
946#define WDA_TIMER_TEMP_MEAS_REQ SIR_HAL_TIMER_TEMP_MEAS_REQ
947#define WDA_TIMER_PERIODIC_STATS_COLLECT_REQ SIR_HAL_TIMER_PERIODIC_STATS_COLLECT_REQ
948#define WDA_CAL_REQ_NTF SIR_HAL_CAL_REQ_NTF
949#define WDA_MNT_OPEN_TPC_TEMP_MEAS_REQ SIR_HAL_MNT_OPEN_TPC_TEMP_MEAS_REQ
950#define WDA_CCA_MONITOR_INTERVAL_TO SIR_HAL_CCA_MONITOR_INTERVAL_TO
951#define WDA_CCA_MONITOR_DURATION_TO SIR_HAL_CCA_MONITOR_DURATION_TO
952#define WDA_CCA_MONITOR_START SIR_HAL_CCA_MONITOR_START
953#define WDA_CCA_MONITOR_STOP SIR_HAL_CCA_MONITOR_STOP
954#define WDA_CCA_CHANGE_MODE SIR_HAL_CCA_CHANGE_MODE
955#define WDA_TIMER_WRAP_AROUND_STATS_COLLECT_REQ SIR_HAL_TIMER_WRAP_AROUND_STATS_COLLECT_REQ
956
957/*
958 * New Taurus related messages
959 */
960#define WDA_ADD_STA_REQ SIR_HAL_ADD_STA_REQ
961#define WDA_ADD_STA_RSP SIR_HAL_ADD_STA_RSP
962#define WDA_ADD_STA_SELF_RSP SIR_HAL_ADD_STA_SELF_RSP
963#define WDA_DEL_STA_SELF_RSP SIR_HAL_DEL_STA_SELF_RSP
964#define WDA_DELETE_STA_REQ SIR_HAL_DELETE_STA_REQ
965#define WDA_DELETE_STA_RSP SIR_HAL_DELETE_STA_RSP
966#define WDA_ADD_BSS_REQ SIR_HAL_ADD_BSS_REQ
967#define WDA_ADD_BSS_RSP SIR_HAL_ADD_BSS_RSP
968#define WDA_DELETE_BSS_REQ SIR_HAL_DELETE_BSS_REQ
969#define WDA_DELETE_BSS_RSP SIR_HAL_DELETE_BSS_RSP
970#define WDA_INIT_SCAN_REQ SIR_HAL_INIT_SCAN_REQ
971#define WDA_INIT_SCAN_RSP SIR_HAL_INIT_SCAN_RSP
972#define WDA_START_SCAN_REQ SIR_HAL_START_SCAN_REQ
973#define WDA_START_SCAN_RSP SIR_HAL_START_SCAN_RSP
974#define WDA_END_SCAN_REQ SIR_HAL_END_SCAN_REQ
975#define WDA_END_SCAN_RSP SIR_HAL_END_SCAN_RSP
976#define WDA_FINISH_SCAN_REQ SIR_HAL_FINISH_SCAN_REQ
977#define WDA_FINISH_SCAN_RSP SIR_HAL_FINISH_SCAN_RSP
978#define WDA_SEND_BEACON_REQ SIR_HAL_SEND_BEACON_REQ
979#define WDA_SEND_BEACON_RSP SIR_HAL_SEND_BEACON_RSP
980
981#define WDA_INIT_CFG_REQ SIR_HAL_INIT_CFG_REQ
982#define WDA_INIT_CFG_RSP SIR_HAL_INIT_CFG_RSP
983
984#define WDA_INIT_WM_CFG_REQ SIR_HAL_INIT_WM_CFG_REQ
985#define WDA_INIT_WM_CFG_RSP SIR_HAL_INIT_WM_CFG_RSP
986
987#define WDA_SET_BSSKEY_REQ SIR_HAL_SET_BSSKEY_REQ
988#define WDA_SET_BSSKEY_RSP SIR_HAL_SET_BSSKEY_RSP
989#define WDA_SET_STAKEY_REQ SIR_HAL_SET_STAKEY_REQ
990#define WDA_SET_STAKEY_RSP SIR_HAL_SET_STAKEY_RSP
991#define WDA_DPU_STATS_REQ SIR_HAL_DPU_STATS_REQ
992#define WDA_DPU_STATS_RSP SIR_HAL_DPU_STATS_RSP
993#define WDA_GET_DPUINFO_REQ SIR_HAL_GET_DPUINFO_REQ
994#define WDA_GET_DPUINFO_RSP SIR_HAL_GET_DPUINFO_RSP
995
996#define WDA_UPDATE_EDCA_PROFILE_IND SIR_HAL_UPDATE_EDCA_PROFILE_IND
997
998#define WDA_UPDATE_STARATEINFO_REQ SIR_HAL_UPDATE_STARATEINFO_REQ
999#define WDA_UPDATE_STARATEINFO_RSP SIR_HAL_UPDATE_STARATEINFO_RSP
1000
1001#define WDA_UPDATE_BEACON_IND SIR_HAL_UPDATE_BEACON_IND
1002#define WDA_UPDATE_CF_IND SIR_HAL_UPDATE_CF_IND
1003#define WDA_CHNL_SWITCH_REQ SIR_HAL_CHNL_SWITCH_REQ
1004#define WDA_ADD_TS_REQ SIR_HAL_ADD_TS_REQ
1005#define WDA_DEL_TS_REQ SIR_HAL_DEL_TS_REQ
1006#define WDA_SOFTMAC_TXSTAT_REPORT SIR_HAL_SOFTMAC_TXSTAT_REPORT
1007
1008#define WDA_MBOX_SENDMSG_COMPLETE_IND SIR_HAL_MBOX_SENDMSG_COMPLETE_IND
1009#define WDA_EXIT_BMPS_REQ SIR_HAL_EXIT_BMPS_REQ
1010#define WDA_EXIT_BMPS_RSP SIR_HAL_EXIT_BMPS_RSP
1011#define WDA_EXIT_BMPS_IND SIR_HAL_EXIT_BMPS_IND
1012#define WDA_ENTER_BMPS_REQ SIR_HAL_ENTER_BMPS_REQ
1013#define WDA_ENTER_BMPS_RSP SIR_HAL_ENTER_BMPS_RSP
1014#define WDA_BMPS_STATUS_IND SIR_HAL_BMPS_STATUS_IND
1015#define WDA_MISSED_BEACON_IND SIR_HAL_MISSED_BEACON_IND
1016
1017#define WDA_CFG_RXP_FILTER_REQ SIR_HAL_CFG_RXP_FILTER_REQ
1018#define WDA_CFG_RXP_FILTER_RSP SIR_HAL_CFG_RXP_FILTER_RSP
1019
1020#define WDA_SWITCH_CHANNEL_RSP SIR_HAL_SWITCH_CHANNEL_RSP
1021#define WDA_P2P_NOA_ATTR_IND SIR_HAL_P2P_NOA_ATTR_IND
Viral Modid86bde22012-12-10 13:09:21 -08001022#define WDA_P2P_NOA_START_IND SIR_HAL_P2P_NOA_START_IND
Jeff Johnson295189b2012-06-20 16:38:30 -07001023#define WDA_PWR_SAVE_CFG SIR_HAL_PWR_SAVE_CFG
1024
1025#define WDA_REGISTER_PE_CALLBACK SIR_HAL_REGISTER_PE_CALLBACK
1026#define WDA_SOFTMAC_MEM_READREQUEST SIR_HAL_SOFTMAC_MEM_READREQUEST
1027#define WDA_SOFTMAC_MEM_WRITEREQUEST SIR_HAL_SOFTMAC_MEM_WRITEREQUEST
1028
1029#define WDA_SOFTMAC_MEM_READRESPONSE SIR_HAL_SOFTMAC_MEM_READRESPONSE
1030#define WDA_SOFTMAC_BULKREGWRITE_CONFIRM SIR_HAL_SOFTMAC_BULKREGWRITE_CONFIRM
1031#define WDA_SOFTMAC_BULKREGREAD_RESPONSE SIR_HAL_SOFTMAC_BULKREGREAD_RESPONSE
1032#define WDA_SOFTMAC_HOSTMESG_MSGPROCESSRESULT SIR_HAL_SOFTMAC_HOSTMESG_MSGPROCESSRESULT
1033
1034#define WDA_ADDBA_REQ SIR_HAL_ADDBA_REQ
1035#define WDA_ADDBA_RSP SIR_HAL_ADDBA_RSP
1036#define WDA_DELBA_IND SIR_HAL_DELBA_IND
1037#define WDA_DEL_BA_IND SIR_HAL_DEL_BA_IND
1038#define WDA_MIC_FAILURE_IND SIR_HAL_MIC_FAILURE_IND
Sachin Ahuja3d47fcd2015-08-28 16:02:06 +05301039#define WDA_LOST_LINK_PARAMS_IND SIR_HAL_LOST_LINK_PARAMS_IND
Jeff Johnson295189b2012-06-20 16:38:30 -07001040
1041//message from sme to initiate delete block ack session.
1042#define WDA_DELBA_REQ SIR_HAL_DELBA_REQ
1043#define WDA_IBSS_STA_ADD SIR_HAL_IBSS_STA_ADD
1044#define WDA_TIMER_ADJUST_ADAPTIVE_THRESHOLD_IND SIR_HAL_TIMER_ADJUST_ADAPTIVE_THRESHOLD_IND
1045#define WDA_SET_LINK_STATE SIR_HAL_SET_LINK_STATE
1046#define WDA_SET_LINK_STATE_RSP SIR_HAL_SET_LINK_STATE_RSP
1047#define WDA_ENTER_IMPS_REQ SIR_HAL_ENTER_IMPS_REQ
1048#define WDA_ENTER_IMPS_RSP SIR_HAL_ENTER_IMPS_RSP
1049#define WDA_EXIT_IMPS_RSP SIR_HAL_EXIT_IMPS_RSP
1050#define WDA_EXIT_IMPS_REQ SIR_HAL_EXIT_IMPS_REQ
1051#define WDA_SOFTMAC_HOSTMESG_PS_STATUS_IND SIR_HAL_SOFTMAC_HOSTMESG_PS_STATUS_IND
1052#define WDA_POSTPONE_ENTER_IMPS_RSP SIR_HAL_POSTPONE_ENTER_IMPS_RSP
1053#define WDA_STA_STAT_REQ SIR_HAL_STA_STAT_REQ
1054#define WDA_GLOBAL_STAT_REQ SIR_HAL_GLOBAL_STAT_REQ
1055#define WDA_AGGR_STAT_REQ SIR_HAL_AGGR_STAT_REQ
1056#define WDA_STA_STAT_RSP SIR_HAL_STA_STAT_RSP
1057#define WDA_GLOBAL_STAT_RSP SIR_HAL_GLOBAL_STAT_RSP
1058#define WDA_AGGR_STAT_RSP SIR_HAL_AGGR_STAT_RSP
1059#define WDA_STAT_SUMM_REQ SIR_HAL_STAT_SUMM_REQ
1060#define WDA_STAT_SUMM_RSP SIR_HAL_STAT_SUMM_RSP
1061#define WDA_REMOVE_BSSKEY_REQ SIR_HAL_REMOVE_BSSKEY_REQ
1062#define WDA_REMOVE_BSSKEY_RSP SIR_HAL_REMOVE_BSSKEY_RSP
1063#define WDA_REMOVE_STAKEY_REQ SIR_HAL_REMOVE_STAKEY_REQ
1064#define WDA_REMOVE_STAKEY_RSP SIR_HAL_REMOVE_STAKEY_RSP
1065#define WDA_SET_STA_BCASTKEY_REQ SIR_HAL_SET_STA_BCASTKEY_REQ
1066#define WDA_SET_STA_BCASTKEY_RSP SIR_HAL_SET_STA_BCASTKEY_RSP
1067#define WDA_REMOVE_STA_BCASTKEY_REQ SIR_HAL_REMOVE_STA_BCASTKEY_REQ
1068#define WDA_REMOVE_STA_BCASTKEY_RSP SIR_HAL_REMOVE_STA_BCASTKEY_RSP
1069#define WDA_ADD_TS_RSP SIR_HAL_ADD_TS_RSP
1070#define WDA_DPU_MIC_ERROR SIR_HAL_DPU_MIC_ERROR
1071#define WDA_TIMER_BA_ACTIVITY_REQ SIR_HAL_TIMER_BA_ACTIVITY_REQ
1072#define WDA_TIMER_CHIP_MONITOR_TIMEOUT SIR_HAL_TIMER_CHIP_MONITOR_TIMEOUT
1073#define WDA_TIMER_TRAFFIC_ACTIVITY_REQ SIR_HAL_TIMER_TRAFFIC_ACTIVITY_REQ
1074#define WDA_TIMER_ADC_RSSI_STATS SIR_HAL_TIMER_ADC_RSSI_STATS
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08001075#define WDA_TIMER_TRAFFIC_STATS_IND SIR_HAL_TRAFFIC_STATS_IND
1076
Chet Lanctot186b5732013-03-18 10:26:30 -07001077#ifdef WLAN_FEATURE_11W
1078#define WDA_EXCLUDE_UNENCRYPTED_IND SIR_HAL_EXCLUDE_UNENCRYPTED_IND
1079#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07001080
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08001081#ifdef FEATURE_WLAN_ESE
Jeff Johnson295189b2012-06-20 16:38:30 -07001082#define WDA_TSM_STATS_REQ SIR_HAL_TSM_STATS_REQ
1083#define WDA_TSM_STATS_RSP SIR_HAL_TSM_STATS_RSP
1084#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07001085#define WDA_UPDATE_PROBE_RSP_IE_BITMAP_IND SIR_HAL_UPDATE_PROBE_RSP_IE_BITMAP_IND
1086#define WDA_UPDATE_UAPSD_IND SIR_HAL_UPDATE_UAPSD_IND
Jeff Johnson295189b2012-06-20 16:38:30 -07001087
1088#define WDA_SET_MIMOPS_REQ SIR_HAL_SET_MIMOPS_REQ
1089#define WDA_SET_MIMOPS_RSP SIR_HAL_SET_MIMOPS_RSP
1090#define WDA_SYS_READY_IND SIR_HAL_SYS_READY_IND
1091#define WDA_SET_TX_POWER_REQ SIR_HAL_SET_TX_POWER_REQ
1092#define WDA_SET_TX_POWER_RSP SIR_HAL_SET_TX_POWER_RSP
1093#define WDA_GET_TX_POWER_REQ SIR_HAL_GET_TX_POWER_REQ
1094#define WDA_GET_TX_POWER_RSP SIR_HAL_GET_TX_POWER_RSP
1095#define WDA_GET_NOISE_REQ SIR_HAL_GET_NOISE_REQ
1096#define WDA_GET_NOISE_RSP SIR_HAL_GET_NOISE_RSP
1097#define WDA_SET_TX_PER_TRACKING_REQ SIR_HAL_SET_TX_PER_TRACKING_REQ
1098
1099/* Messages to support transmit_halt and transmit_resume */
1100#define WDA_TRANSMISSION_CONTROL_IND SIR_HAL_TRANSMISSION_CONTROL_IND
1101/* Indication from LIM to HAL to Initialize radar interrupt */
1102#define WDA_INIT_RADAR_IND SIR_HAL_INIT_RADAR_IND
1103/* Messages to support transmit_halt and transmit_resume */
1104
1105
1106#define WDA_BEACON_PRE_IND SIR_HAL_BEACON_PRE_IND
1107#define WDA_ENTER_UAPSD_REQ SIR_HAL_ENTER_UAPSD_REQ
1108#define WDA_ENTER_UAPSD_RSP SIR_HAL_ENTER_UAPSD_RSP
1109#define WDA_EXIT_UAPSD_REQ SIR_HAL_EXIT_UAPSD_REQ
1110#define WDA_EXIT_UAPSD_RSP SIR_HAL_EXIT_UAPSD_RSP
1111#define WDA_LOW_RSSI_IND SIR_HAL_LOW_RSSI_IND
1112#define WDA_BEACON_FILTER_IND SIR_HAL_BEACON_FILTER_IND
1113/// PE <-> HAL WOWL messages
1114#define WDA_WOWL_ADD_BCAST_PTRN SIR_HAL_WOWL_ADD_BCAST_PTRN
1115#define WDA_WOWL_DEL_BCAST_PTRN SIR_HAL_WOWL_DEL_BCAST_PTRN
1116#define WDA_WOWL_ENTER_REQ SIR_HAL_WOWL_ENTER_REQ
1117#define WDA_WOWL_ENTER_RSP SIR_HAL_WOWL_ENTER_RSP
1118#define WDA_WOWL_EXIT_REQ SIR_HAL_WOWL_EXIT_REQ
1119#define WDA_WOWL_EXIT_RSP SIR_HAL_WOWL_EXIT_RSP
1120#define WDA_TX_COMPLETE_IND SIR_HAL_TX_COMPLETE_IND
1121#define WDA_TIMER_RA_COLLECT_AND_ADAPT SIR_HAL_TIMER_RA_COLLECT_AND_ADAPT
1122/// PE <-> HAL statistics messages
1123#define WDA_GET_STATISTICS_REQ SIR_HAL_GET_STATISTICS_REQ
1124#define WDA_GET_STATISTICS_RSP SIR_HAL_GET_STATISTICS_RSP
1125#define WDA_SET_KEY_DONE SIR_HAL_SET_KEY_DONE
1126
1127/// PE <-> HAL BTC messages
1128#define WDA_BTC_SET_CFG SIR_HAL_BTC_SET_CFG
1129#define WDA_SIGNAL_BT_EVENT SIR_HAL_SIGNAL_BT_EVENT
1130#define WDA_HANDLE_FW_MBOX_RSP SIR_HAL_HANDLE_FW_MBOX_RSP
1131#define WDA_UPDATE_PROBE_RSP_TEMPLATE_IND SIR_HAL_UPDATE_PROBE_RSP_TEMPLATE_IND
1132#define WDA_SIGNAL_BTAMP_EVENT SIR_HAL_SIGNAL_BTAMP_EVENT
1133
Jeff Johnsone7245742012-09-05 17:12:55 -07001134#ifdef FEATURE_OEM_DATA_SUPPORT
1135/* PE <-> HAL OEM_DATA RELATED MESSAGES */
1136#define WDA_START_OEM_DATA_REQ SIR_HAL_START_OEM_DATA_REQ
1137#define WDA_START_OEM_DATA_RSP SIR_HAL_START_OEM_DATA_RSP
1138#define WDA_FINISH_OEM_DATA_REQ SIR_HAL_FINISH_OEM_DATA_REQ
1139#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07001140
1141#define WDA_SET_MAX_TX_POWER_REQ SIR_HAL_SET_MAX_TX_POWER_REQ
1142#define WDA_SET_MAX_TX_POWER_RSP SIR_HAL_SET_MAX_TX_POWER_RSP
1143
Arif Hussaina5ebce02013-08-09 15:09:58 -07001144#define WDA_SET_MAX_TX_POWER_PER_BAND_REQ \
1145 SIR_HAL_SET_MAX_TX_POWER_PER_BAND_REQ
1146#define WDA_SET_MAX_TX_POWER_PER_BAND_RSP \
1147 SIR_HAL_SET_MAX_TX_POWER_PER_BAND_RSP
1148
Jeff Johnson295189b2012-06-20 16:38:30 -07001149#define WDA_SEND_MSG_COMPLETE SIR_HAL_SEND_MSG_COMPLETE
1150
1151/// PE <-> HAL Host Offload message
1152#define WDA_SET_HOST_OFFLOAD SIR_HAL_SET_HOST_OFFLOAD
1153
1154/// PE <-> HAL Keep Alive message
1155#define WDA_SET_KEEP_ALIVE SIR_HAL_SET_KEEP_ALIVE
1156
1157#ifdef WLAN_NS_OFFLOAD
1158#define WDA_SET_NS_OFFLOAD SIR_HAL_SET_NS_OFFLOAD
1159#endif //WLAN_NS_OFFLOAD
1160#define WDA_ADD_STA_SELF_REQ SIR_HAL_ADD_STA_SELF_REQ
1161#define WDA_DEL_STA_SELF_REQ SIR_HAL_DEL_STA_SELF_REQ
1162
Jeff Johnson295189b2012-06-20 16:38:30 -07001163#define WDA_SET_P2P_GO_NOA_REQ SIR_HAL_SET_P2P_GO_NOA_REQ
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05301164#define WDA_SET_TDLS_LINK_ESTABLISH_REQ SIR_HAL_TDLS_LINK_ESTABLISH_REQ
1165#define WDA_SET_TDLS_LINK_ESTABLISH_REQ_RSP SIR_HAL_TDLS_LINK_ESTABLISH_REQ_RSP
Jeff Johnson295189b2012-06-20 16:38:30 -07001166
Madan Mohan Koyyalamudia53c4dc2012-11-13 10:35:42 -08001167#define WDA_TX_COMPLETE_TIMEOUT_IND (WDA_MSG_TYPES_END - 1)
Jeff Johnson295189b2012-06-20 16:38:30 -07001168#define WDA_WLAN_SUSPEND_IND SIR_HAL_WLAN_SUSPEND_IND
1169#define WDA_WLAN_RESUME_REQ SIR_HAL_WLAN_RESUME_REQ
1170#define WDA_MSG_TYPES_END SIR_HAL_MSG_TYPES_END
1171
Jeff Johnson295189b2012-06-20 16:38:30 -07001172#define WDA_MMH_TXMB_READY_EVT SIR_HAL_MMH_TXMB_READY_EVT
1173#define WDA_MMH_RXMB_DONE_EVT SIR_HAL_MMH_RXMB_DONE_EVT
1174#define WDA_MMH_MSGQ_NE_EVT SIR_HAL_MMH_MSGQ_NE_EVT
Jeff Johnson295189b2012-06-20 16:38:30 -07001175
1176#ifdef WLAN_FEATURE_VOWIFI_11R
1177#define WDA_AGGR_QOS_REQ SIR_HAL_AGGR_QOS_REQ
1178#define WDA_AGGR_QOS_RSP SIR_HAL_AGGR_QOS_RSP
1179#endif /* WLAN_FEATURE_VOWIFI_11R */
1180
Jeff Johnson295189b2012-06-20 16:38:30 -07001181/* FTM CMD MSG */
1182#define WDA_FTM_CMD_REQ SIR_PTT_MSG_TYPES_BEGIN
1183#define WDA_FTM_CMD_RSP SIR_PTT_MSG_TYPES_END
Jeff Johnson295189b2012-06-20 16:38:30 -07001184
1185#ifdef FEATURE_WLAN_SCAN_PNO
1186/*Requests sent to lower driver*/
1187#define WDA_SET_PNO_REQ SIR_HAL_SET_PNO_REQ
1188#define WDA_SET_RSSI_FILTER_REQ SIR_HAL_SET_RSSI_FILTER_REQ
1189#define WDA_UPDATE_SCAN_PARAMS_REQ SIR_HAL_UPDATE_SCAN_PARAMS
1190
1191/*Indication comming from lower driver*/
1192#define WDA_SET_PNO_CHANGED_IND SIR_HAL_SET_PNO_CHANGED_IND
1193#endif // FEATURE_WLAN_SCAN_PNO
1194
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07001195#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
Varun Reddy Yeturu920df212013-05-22 08:07:23 -07001196#define WDA_ROAM_SCAN_OFFLOAD_REQ SIR_HAL_ROAM_SCAN_OFFLOAD_REQ
Varun Reddy Yeturucc661d22013-05-20 11:47:10 -07001197#define WDA_ROAM_SCAN_OFFLOAD_RSP SIR_HAL_ROAM_SCAN_OFFLOAD_RSP
Kapil Gupta04ab1992016-06-26 13:36:51 +05301198#define WDA_PER_ROAM_SCAN_OFFLOAD_REQ SIR_HAL_PER_ROAM_SCAN_OFFLOAD_REQ
1199#define WDA_PER_ROAM_SCAN_OFFLOAD_RSP SIR_HAL_PER_ROAM_SCAN_OFFLOAD_RSP
1200#define WDA_PER_ROAM_SCAN_TRIGGER_REQ SIR_HAL_PER_ROAM_SCAN_TRIGGER_REQ
1201#define WDA_PER_ROAM_SCAN_TRIGGER_RSP SIR_HAL_PER_ROAM_SCAN_TRIGGER_RSP
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07001202#endif
mukul sharma6b53e202016-11-23 19:29:18 +05301203#define WDA_UPDATE_CFG_INT_PARAM SIR_HAL_UPDATE_CFG_INT_PARAM
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07001204
Jeff Johnson295189b2012-06-20 16:38:30 -07001205#ifdef WLAN_WAKEUP_EVENTS
1206#define WDA_WAKE_REASON_IND SIR_HAL_WAKE_REASON_IND
1207#endif // WLAN_WAKEUP_EVENTS
1208
1209#ifdef WLAN_FEATURE_PACKET_FILTERING
1210#define WDA_8023_MULTICAST_LIST_REQ SIR_HAL_8023_MULTICAST_LIST_REQ
1211#define WDA_RECEIVE_FILTER_SET_FILTER_REQ SIR_HAL_RECEIVE_FILTER_SET_FILTER_REQ
1212#define WDA_PACKET_COALESCING_FILTER_MATCH_COUNT_REQ SIR_HAL_PACKET_COALESCING_FILTER_MATCH_COUNT_REQ
1213#define WDA_PACKET_COALESCING_FILTER_MATCH_COUNT_RSP SIR_HAL_PACKET_COALESCING_FILTER_MATCH_COUNT_RSP
1214#define WDA_RECEIVE_FILTER_CLEAR_FILTER_REQ SIR_HAL_RECEIVE_FILTER_CLEAR_FILTER_REQ
1215#endif // WLAN_FEATURE_PACKET_FILTERING
1216
1217#define WDA_SET_POWER_PARAMS_REQ SIR_HAL_SET_POWER_PARAMS_REQ
Sundaresan Ramachandran76e48e82013-07-15 13:07:17 +05301218#define WDA_DHCP_START_IND SIR_HAL_DHCP_START_IND
1219#define WDA_DHCP_STOP_IND SIR_HAL_DHCP_STOP_IND
1220
Abhishek Singh00b71972016-01-07 10:51:04 +05301221#ifdef WLAN_FEATURE_RMC
1222#define WDA_TX_FAIL_MONITOR_IND SIR_HAL_TX_FAIL_MONITOR_IND
1223#endif /* WLAN_FEATURE_RMC */
1224
Jeff Johnson295189b2012-06-20 16:38:30 -07001225
1226#ifdef WLAN_FEATURE_GTK_OFFLOAD
1227#define WDA_GTK_OFFLOAD_REQ SIR_HAL_GTK_OFFLOAD_REQ
1228#define WDA_GTK_OFFLOAD_GETINFO_REQ SIR_HAL_GTK_OFFLOAD_GETINFO_REQ
1229#define WDA_GTK_OFFLOAD_GETINFO_RSP SIR_HAL_GTK_OFFLOAD_GETINFO_RSP
1230#endif //WLAN_FEATURE_GTK_OFFLOAD
1231
1232#define WDA_SET_TM_LEVEL_REQ SIR_HAL_SET_TM_LEVEL_REQ
1233
Mohit Khanna4a70d262012-09-11 16:30:12 -07001234#ifdef WLAN_FEATURE_11AC
1235#define WDA_UPDATE_OP_MODE SIR_HAL_UPDATE_OP_MODE
1236#endif
1237
Srinivas Girigowdad34cedb2013-01-25 13:33:11 -08001238#define WDA_GET_ROAM_RSSI_REQ SIR_HAL_GET_ROAM_RSSI_REQ
1239#define WDA_GET_ROAM_RSSI_RSP SIR_HAL_GET_ROAM_RSSI_RSP
1240
Srinivas Dasari030bad32015-02-18 23:23:54 +05301241#define WDA_NAN_REQUEST SIR_HAL_NAN_REQUEST
1242
Ganesh Kondabattinif0fa07c2013-06-11 17:47:49 +05301243#define WDA_START_SCAN_OFFLOAD_REQ SIR_HAL_START_SCAN_OFFLOAD_REQ
1244#define WDA_START_SCAN_OFFLOAD_RSP SIR_HAL_START_SCAN_OFFLOAD_RSP
Gopichand Nakkala09358592013-06-13 14:47:55 +05301245#define WDA_STOP_SCAN_OFFLOAD_REQ SIR_HAL_STOP_SCAN_OFFLOAD_REQ
1246#define WDA_STOP_SCAN_OFFLOAD_RSP SIR_HAL_STOP_SCAN_OFFLOAD_RSP
Ganesh Kondabattinif0fa07c2013-06-11 17:47:49 +05301247#define WDA_UPDATE_CHAN_LIST_REQ SIR_HAL_UPDATE_CHAN_LIST_REQ
1248#define WDA_UPDATE_CHAN_LIST_RSP SIR_HAL_UPDATE_CHAN_LIST_RSP
1249#define WDA_RX_SCAN_EVENT SIR_HAL_RX_SCAN_EVENT
Ravi Joshid2ca7c42013-07-23 08:37:49 -07001250#define WDA_IBSS_PEER_INACTIVITY_IND SIR_HAL_IBSS_PEER_INACTIVITY_IND
Ganesh Kondabattinif0fa07c2013-06-11 17:47:49 +05301251
Leo Chang9056f462013-08-01 19:21:11 -07001252#ifdef FEATURE_WLAN_LPHB
1253#define WDA_LPHB_CONF_REQ SIR_HAL_LPHB_CONF_IND
1254#define WDA_LPHB_WAIT_EXPIRE_IND SIR_HAL_LPHB_WAIT_EXPIRE_IND
1255#endif /* FEATURE_WLAN_LPHB */
1256
Yue Mab9c86f42013-08-14 15:59:08 -07001257#define WDA_ADD_PERIODIC_TX_PTRN_IND SIR_HAL_ADD_PERIODIC_TX_PTRN_IND
1258#define WDA_DEL_PERIODIC_TX_PTRN_IND SIR_HAL_DEL_PERIODIC_TX_PTRN_IND
1259
Abhishek Singh00b71972016-01-07 10:51:04 +05301260#define WDA_RATE_UPDATE_IND SIR_HAL_RATE_UPDATE_IND
1261
1262#ifdef WLAN_FEATURE_RMC
1263#define WDA_RMC_BECOME_RULER SIR_HAL_RMC_BECOME_RULER
1264#define WDA_RMC_RULER_SELECT_RESP SIR_HAL_RMC_RULER_SELECT_RESP
1265#define WDA_RMC_RULER_REQ SIR_HAL_RMC_RULER_REQ
1266#define WDA_RMC_UPDATE_IND SIR_HAL_RMC_UPDATE_IND
1267/* IBSS peer info related message */
1268#define WDA_GET_IBSS_PEER_INFO_REQ SIR_HAL_IBSS_PEER_INFO_REQ
1269#define WDA_GET_IBSS_PEER_INFO_RSP SIR_HAL_IBSS_PEER_INFO_RSP
1270#endif /* WLAN_FEATURE_RMC */
1271
Rajeev79dbe4c2013-10-05 11:03:42 +05301272#ifdef FEATURE_WLAN_BATCH_SCAN
1273#define WDA_SET_BATCH_SCAN_REQ SIR_HAL_SET_BATCH_SCAN_REQ
1274#define WDA_SET_BATCH_SCAN_RSP SIR_HAL_SET_BATCH_SCAN_RSP
1275#define WDA_STOP_BATCH_SCAN_IND SIR_HAL_STOP_BATCH_SCAN_IND
1276#define WDA_TRIGGER_BATCH_SCAN_RESULT_IND SIR_HAL_TRIGGER_BATCH_SCAN_RESULT_IND
1277#endif
1278
Sandeep Puligilla8b8b74b2014-02-10 16:39:05 +05301279#define WDA_HT40_OBSS_SCAN_IND SIR_HAL_HT40_OBSS_SCAN_IND
1280#define WDA_HT40_OBSS_STOP_SCAN_IND SIR_HAL_HT40_OBSS_STOP_SCAN_IND
c_hpothu92367912014-05-01 15:18:17 +05301281
1282#define WDA_GET_BCN_MISS_RATE_REQ SIR_HAL_BCN_MISS_RATE_REQ
Srinivas Dasari4dae48f2014-11-26 21:14:16 +05301283#define WDA_ENCRYPT_MSG_REQ SIR_HAL_ENCRYPT_MSG_REQ
1284#define WDA_ENCRYPT_MSG_RSP SIR_HAL_ENCRYPT_MSG_RSP
c_hpothu92367912014-05-01 15:18:17 +05301285
Sunil Duttbd736ed2014-05-26 21:19:41 +05301286#ifdef WLAN_FEATURE_LINK_LAYER_STATS
1287#define WDA_LINK_LAYER_STATS_CLEAR_REQ SIR_HAL_LL_STATS_CLEAR_REQ
1288#define WDA_LINK_LAYER_STATS_SET_REQ SIR_HAL_LL_STATS_SET_REQ
1289#define WDA_LINK_LAYER_STATS_GET_REQ SIR_HAL_LL_STATS_GET_REQ
1290#define WDA_LINK_LAYER_STATS_RESULTS_RSP SIR_HAL_LL_STATS_RESULTS_RSP
1291#endif /* WLAN_FEATURE_LINK_LAYER_STATS */
1292
Atul Mittalc0f739f2014-07-31 13:47:47 +05301293#ifdef FEATURE_WLAN_TDLS
1294// tdlsoffchan
1295#define WDA_SET_TDLS_CHAN_SWITCH_REQ SIR_HAL_TDLS_CHAN_SWITCH_REQ
1296#define WDA_SET_TDLS_CHAN_SWITCH_REQ_RSP SIR_HAL_TDLS_CHAN_SWITCH_REQ_RSP
1297#endif
Abhishek Singh85b74712014-10-08 11:38:19 +05301298
1299#define WDA_FW_STATS_GET_REQ SIR_HAL_FW_STATS_GET_REQ
Abhishek Singh41988ba2015-05-25 19:42:29 +05301300#define WDA_SET_RTS_CTS_HTVHT SIR_HAL_SET_RTS_CTS_HTVHT
Katya Nigamf0511f62015-05-05 16:40:57 +05301301#define WDA_MON_START_REQ SIR_HAL_MON_START_REQ
1302#define WDA_MON_STOP_REQ SIR_HAL_MON_STOP_REQ
Gupta, Kapil7c34b322015-09-30 13:12:35 +05301303#define WDA_START_RSSI_MONITOR_REQ SIR_HAL_RSSI_MON_START_REQ
1304#define WDA_STOP_RSSI_MONITOR_REQ SIR_HAL_RSSI_MON_STOP_REQ
Abhishek Singh41988ba2015-05-25 19:42:29 +05301305
Anurag Chouhan83026002016-12-13 22:46:21 +05301306#ifdef DHCP_SERVER_OFFLOAD
1307#define WDA_SET_DHCP_SERVER_OFFLOAD_REQ SIR_HAL_SET_DHCP_SERVER_OFFLOAD_REQ
1308#endif /* DHCP_SERVER_OFFLOAD */
Anurag Chouhan0b29de02016-12-16 13:18:40 +05301309#ifdef MDNS_OFFLOAD
1310#define WDA_SET_MDNS_OFFLOAD_CMD SIR_HAL_SET_MDNS_OFFLOAD
1311#define WDA_SET_MDNS_FQDN_CMD SIR_HAL_SET_MDNS_FQDN
1312#define WDA_SET_MDNS_RESPONSE_CMD SIR_HAL_SET_MDNS_RESPONSE
1313#define WDA_GET_MDNS_STATUS_CMD SIR_HAL_GET_MDNS_STATUS
1314#endif /* MDNS_OFFLOAD */
Anurag Chouhan83026002016-12-13 22:46:21 +05301315
Anurag Chouhan6ee81542017-02-09 18:09:27 +05301316/* ARP Debug */
1317#define WDA_SET_ARP_STATS_REQ SIR_HAL_SET_ARP_STATS_REQ
1318#define WDA_GET_ARP_STATS_REQ SIR_HAL_GET_ARP_STATS_REQ
1319
Jeff Johnson295189b2012-06-20 16:38:30 -07001320tSirRetStatus wdaPostCtrlMsg(tpAniSirGlobal pMac, tSirMsgQ *pMsg);
Jeff Johnson295189b2012-06-20 16:38:30 -07001321
Abhishek Singha306a442013-11-07 18:39:01 +05301322eHalStatus WDA_SetRegDomain(void * clientCtxt, v_REGDOMAIN_t regId,
1323 tAniBool sendRegHint);
Jeff Johnson295189b2012-06-20 16:38:30 -07001324
Dino Mycle41bdc942014-06-10 11:30:24 +05301325#ifdef WLAN_FEATURE_EXTSCAN
1326#define WDA_EXTSCAN_GET_CAPABILITIES_REQ SIR_HAL_EXTSCAN_GET_CAPABILITIES_REQ
1327#define WDA_EXTSCAN_GET_CAPABILITIES_RSP SIR_HAL_EXTSCAN_GET_CAPABILITIES_RSP
1328#define WDA_EXTSCAN_START_REQ SIR_HAL_EXTSCAN_START_REQ
1329#define WDA_EXTSCAN_START_RSP SIR_HAL_EXTSCAN_START_RSP
1330#define WDA_EXTSCAN_STOP_REQ SIR_HAL_EXTSCAN_STOP_REQ
1331#define WDA_EXTSCAN_STOP_RSP SIR_HAL_EXTSCAN_STOP_RSP
1332#define WDA_EXTSCAN_SET_BSSID_HOTLIST_REQ SIR_HAL_EXTSCAN_SET_BSS_HOTLIST_REQ
1333#define WDA_EXTSCAN_SET_BSSID_HOTLIST_RSP SIR_HAL_EXTSCAN_SET_BSS_HOTLIST_RSP
1334#define WDA_EXTSCAN_RESET_BSSID_HOTLIST_REQ SIR_HAL_EXTSCAN_RESET_BSS_HOTLIST_REQ
1335#define WDA_EXTSCAN_RESET_BSSID_HOTLIST_RSP SIR_HAL_EXTSCAN_RESET_BSS_HOTLIST_RSP
Padma, Santhosh Kumar9acee012015-08-21 19:58:01 +05301336#define WDA_EXTSCAN_SET_SSID_HOTLIST_REQ SIR_HAL_EXTSCAN_SET_SSID_HOTLIST_REQ
1337#define WDA_EXTSCAN_SET_SSID_HOTLIST_RSP SIR_HAL_EXTSCAN_SET_SSID_HOTLIST_RSP
1338#define WDA_EXTSCAN_RESET_SSID_HOTLIST_REQ SIR_HAL_EXTSCAN_RESET_SSID_HOTLIST_REQ
1339#define WDA_EXTSCAN_RESET_SSID_HOTLIST_RSP SIR_HAL_EXTSCAN_RESET_SSID_HOTLIST_RSP
1340
Dino Mycle41bdc942014-06-10 11:30:24 +05301341#define WDA_EXTSCAN_GET_CACHED_RESULTS_REQ SIR_HAL_EXTSCAN_GET_CACHED_RESULTS_REQ
1342#define WDA_EXTSCAN_GET_CACHED_RESULTS_RSP SIR_HAL_EXTSCAN_GET_CACHED_RESULTS_RSP
1343
1344#define WDA_EXTSCAN_PROGRESS_IND SIR_HAL_EXTSCAN_PROGRESS_IND
1345#define WDA_EXTSCAN_SCAN_AVAILABLE_IND SIR_HAL_EXTSCAN_SCAN_AVAILABLE_IND
1346#define WDA_EXTSCAN_SCAN_RESULT_IND SIR_HAL_EXTSCAN_SCAN_RESULT_IND
1347#define WDA_EXTSCAN_BSSID_HOTLIST_RESULT_IND SIR_HAL_EXTSCAN_HOTLIST_MATCH_IND
Padma, Santhosh Kumar9acee012015-08-21 19:58:01 +05301348#define WDA_EXTSCAN_SSID_HOTLIST_RESULT_IND SIR_HAL_EXTSCAN_SSID_HOTLIST_MATCH_IND
Dino Mycle41bdc942014-06-10 11:30:24 +05301349#endif /* WLAN_FEATURE_EXTSCAN */
1350
Siddharth Bhal171788a2014-09-29 21:02:40 +05301351#define WDA_SPOOF_MAC_ADDR_REQ SIR_HAL_SPOOF_MAC_ADDR_REQ
Siddharth Bhal029d6732014-10-09 21:31:23 +05301352#define WDA_SPOOF_MAC_ADDR_RSP SIR_HAL_SPOOF_MAC_ADDR_RSP
Dino Mycle41bdc942014-06-10 11:30:24 +05301353
Siddharth Bhalb7c421c2015-02-27 00:26:09 +05301354#define WDA_MGMT_LOGGING_INIT_REQ SIR_HAL_MGMT_LOGGING_INIT_REQ
Siddharth Bhal64246172015-02-27 01:04:37 +05301355#define WDA_GET_FRAME_LOG_REQ SIR_HAL_GET_FRAME_LOG_REQ
Karthick Sa35b0692015-08-21 15:57:05 +05301356#define WDA_SEND_LOG_DONE_IND SIR_HAL_SEND_LOG_DONE_IND
Siddharth Bhalb7c421c2015-02-27 00:26:09 +05301357
Mahesh A Saptasagarbeca12c2015-09-07 16:21:06 +05301358#define WDA_FATAL_EVENT_LOGS_REQ SIR_HAL_FATAL_EVENT_LOGS_REQ
1359
1360#define WDA_SEND_FREQ_RANGE_CONTROL_IND SIR_HAL_SEND_FREQ_RANGE_CONTROL_IND
Sachin Ahuja715aafc2015-07-21 23:35:10 +05301361
Padma, Santhosh Kumarc1f7f052015-08-26 12:29:01 +05301362#ifdef WLAN_FEATURE_EXTSCAN
1363#define WDA_HIGH_PRIORITY_DATA_INFO_IND SIR_HAL_HIGH_PRIORITY_DATA_INFO_IND
1364#endif /* WLAN_FEATURE_EXTSCAN */
Sachin Ahuja715aafc2015-07-21 23:35:10 +05301365
c_manjeecfd1efb2015-09-25 19:32:34 +05301366#define WDA_FW_MEM_DUMP_REQ SIR_HAL_FW_MEM_DUMP_REQ
1367
Arun Khandavalli7eeb1592015-10-19 21:36:57 +05301368#define WDA_WIFI_CONFIG_REQ SIR_HAL_WIFI_CONFIG_PARAMS
1369
Mahesh A Saptasagarcfc65ae2015-12-22 15:06:10 +05301370#define WDA_ANTENNA_DIVERSITY_SELECTION_REQ SIR_HAL_ANTENNA_DIVERSITY_SELECTION_REQ
Padma, Santhosh Kumar2ccac212015-10-20 17:27:27 +05301371#ifdef FEATURE_OEM_DATA_SUPPORT
1372#define WDA_START_OEM_DATA_REQ_IND_NEW SIR_HAL_START_OEM_DATA_REQ_IND_NEW
1373#define WDA_START_OEM_DATA_RSP_IND_NEW SIR_HAL_START_OEM_DATA_RSP_IND_NEW
1374#endif
1375
Mahesh A Saptasagar7d432952016-02-09 14:01:03 +05301376#define WDA_MODIFY_ROAM_PARAMS_IND SIR_HAL_MODIFY_ROAM_PARAMS_IND
Selvaraj, Sridharc045b8b2016-04-06 12:22:35 +05301377#define WDA_SET_ALLOWED_ACTION_FRAMES_IND SIR_HAL_SET_ALLOWED_ACTION_FRAMES
1378
Bhargav Shahe3a6ff02016-04-11 16:31:49 +05301379#define WDA_PAUSE_TL_IND SIR_HAL_PAUSE_TL_IND
Mahesh A Saptasagar7d432952016-02-09 14:01:03 +05301380
Agrawal Ashish17ef5082016-10-17 18:33:21 +05301381#ifdef SAP_AUTH_OFFLOAD
1382#define WDA_SAP_OFL_ADD_STA SIR_HAL_SAP_OFL_ADD_STA
1383#define WDA_SAP_OFL_DEL_STA SIR_HAL_SAP_OFL_DEL_STA
1384#define WDA_SET_SAP_AUTH_OFL SIR_HAL_SET_SAP_AUTH_OFL
1385#endif /* SAP_AUTH_OFFLOAD */
1386
Kapil Gupta3d923fb2016-12-20 18:59:27 +05301387#ifdef WLAN_FEATURE_APFIND
1388#define WDA_APFIND_SET_CMD SIR_HAL_APFIND_SET_CMD
Kapil Gupta7a3d9b12016-12-20 20:36:38 +05301389#define WDA_AP_FIND_IND SIR_HAL_AP_FIND_IND
Kapil Gupta3d923fb2016-12-20 18:59:27 +05301390#endif /* WLAN_FEATURE_APFIND */
1391
Manjeet Singh3ed79242017-01-11 19:04:32 +05301392#define WDA_CAP_TSF_REQ SIR_HAL_CAP_TSF_REQ
1393#define WDA_GET_TSF_REQ SIR_HAL_GET_TSF_REQ
1394
1395
Jeff Johnson295189b2012-06-20 16:38:30 -07001396#define HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME 0x40 // Bit 6 will be used to control BD rate for Management frames
1397
Jeff Johnson295189b2012-06-20 16:38:30 -07001398#define halTxFrame(hHal, pFrmBuf, frmLen, frmType, txDir, tid, pCompFunc, pData, txFlag) \
1399 (eHalStatus)( WDA_TxPacket(\
1400 vos_get_context(VOS_MODULE_ID_WDA, vos_get_global_context(VOS_MODULE_ID_WDA, (hHal))),\
1401 (pFrmBuf),\
1402 (frmLen),\
1403 (frmType),\
1404 (txDir),\
1405 (tid),\
1406 (pCompFunc),\
1407 (pData),\
1408 (NULL), \
Ganesh Kondabattini10e67352015-03-16 17:41:57 +05301409 (txFlag), \
1410 (0)) )
Jeff Johnson295189b2012-06-20 16:38:30 -07001411
Ganesh Kondabattini10e67352015-03-16 17:41:57 +05301412#define halTxFrameWithTxComplete(hHal, pFrmBuf, frmLen, frmType, txDir, tid, pCompFunc, pData, pCBackFnTxComp, txFlag, txBdToken) \
Jeff Johnson295189b2012-06-20 16:38:30 -07001413 (eHalStatus)( WDA_TxPacket(\
1414 vos_get_context(VOS_MODULE_ID_WDA, vos_get_global_context(VOS_MODULE_ID_WDA, (hHal))),\
1415 (pFrmBuf),\
1416 (frmLen),\
1417 (frmType),\
1418 (txDir),\
1419 (tid),\
1420 (pCompFunc),\
1421 (pData),\
1422 (pCBackFnTxComp), \
Ganesh Kondabattini10e67352015-03-16 17:41:57 +05301423 (txFlag), \
1424 (txBdToken)) )
Jeff Johnson295189b2012-06-20 16:38:30 -07001425
1426/* -----------------------------------------------------------------
1427 WDA data path API's for TL
1428 -------------------------------------------------------------------*/
1429
Jeff Johnson295189b2012-06-20 16:38:30 -07001430v_BOOL_t WDA_IsHwFrameTxTranslationCapable(v_PVOID_t pVosGCtx,
1431 tANI_U8 staIdx);
Jeff Johnson295189b2012-06-20 16:38:30 -07001432
Katya Nigam6201c3e2014-05-27 17:51:42 +05301433v_BOOL_t WDA_IsSelfSTA(v_PVOID_t pVosGCtx,tANI_U8 staIdx);
1434
Jeff Johnson295189b2012-06-20 16:38:30 -07001435# define WDA_EnableUapsdAcParams(vosGCtx, staId, uapsdInfo) \
1436 WDA_SetUapsdAcParamsReq(vosGCtx, staId, uapsdInfo)
Jeff Johnson295189b2012-06-20 16:38:30 -07001437
Jeff Johnson295189b2012-06-20 16:38:30 -07001438# define WDA_DisableUapsdAcParams(vosGCtx, staId, ac) \
1439 WDA_ClearUapsdAcParamsReq(vosGCtx, staId, ac)
Jeff Johnson295189b2012-06-20 16:38:30 -07001440
Jeff Johnson295189b2012-06-20 16:38:30 -07001441# define WDA_SetRSSIThresholds(pMac, pThresholds) \
1442 WDA_SetRSSIThresholdsReq(pMac, pThresholds)
Jeff Johnson295189b2012-06-20 16:38:30 -07001443
Jeff Johnson295189b2012-06-20 16:38:30 -07001444#define WDA_UpdateRssiBmps(pvosGCtx, staId, rssi) \
Madan Mohan Koyyalamudia53c4dc2012-11-13 10:35:42 -08001445 WLANTL_UpdateRssiBmps(pvosGCtx, staId, rssi)
Jeff Johnson295189b2012-06-20 16:38:30 -07001446
Madan Mohan Koyyalamudid9383fd2013-08-13 09:27:30 +05301447#define WDA_UpdateSnrBmps(pvosGCtx, staId, rssi) \
1448 WLANTL_UpdateSnrBmps(pvosGCtx, staId, snr)
1449
1450#define WDA_GetSnr(staId, snr) \
1451 WLANTL_GetSnr(staId, snr)
1452
Gopichand Nakkala8a2b1442013-05-29 15:33:14 +05301453#define WDA_UpdateLinkCapacity(pvosGCtx, staId, linkCapacity) \
1454 WLANTL_UpdateLinkCapacity(pvosGCtx, staId, linkCapacity)
1455
Jeff Johnson295189b2012-06-20 16:38:30 -07001456#ifdef WLAN_PERF
1457/*==========================================================================
1458 FUNCTION WDA_TLI_FastHwFwdDataFrame
1459
1460 DESCRIPTION
1461 For NON integrated SOC, this function is called by TL.
1462
1463 Fast path function to quickly forward a data frame if HAL determines BD
1464 signature computed here matches the signature inside current VOSS packet.
1465 If there is a match, HAL and TL fills in the swapped packet length into
1466 BD header and DxE header, respectively. Otherwise, packet goes back to
1467 normal (slow) path and a new BD signature would be tagged into BD in this
1468 VOSS packet later by the WLANHAL_FillTxBd() function.
1469
1470 TODO For integrated SOC, this function does nothing yet. Pima SLM/HAL
1471 should provide the equivelant functionality.
1472
1473 DEPENDENCIES
1474
1475 PARAMETERS
1476
1477 IN
1478 pvosGCtx VOS context
1479 vosDataBuff Ptr to VOSS packet
1480 pMetaInfo For getting frame's TID
1481 pStaInfo For checking STA type
1482
1483 OUT
1484 pvosStatus returned status
1485 puFastFwdOK Flag to indicate whether frame could be fast forwarded
1486
1487 RETURN VALUE
1488 No return.
1489
1490 SIDE EFFECTS
1491
1492============================================================================*/
1493void WDA_TLI_FastHwFwdDataFrame
1494(
1495 v_PVOID_t pvosGCtx,
1496 vos_pkt_t* vosDataBuff,
1497 VOS_STATUS* pvosStatus,
1498 v_U32_t* puFastFwdOK,
1499 WLANTL_MetaInfoType* pMetaInfo,
1500 WLAN_STADescType* pStaInfo
1501);
1502#endif /* WLAN_PERF */
1503
1504/*==========================================================================
1505 FUNCTION WDA_DS_Register
1506
1507 DESCRIPTION
1508 Register TL client to WDA. This function registers TL RX/TX functions
1509 to WDI by calling WDI_DS_Register.
1510
1511
1512 For NON integrated SOC, this function calls WLANBAL_RegTlCbFunctions
1513 to register TL's RX/TX functions to BAL
1514
1515 TODO
1516 For Prima, pfnResourceCB gets called in WDTS_OOResourceNotification.
1517 The uCount parameter is AC mask. It should be redefined to use the
1518 same resource callback function.
1519
1520 DEPENDENCIES
1521
1522 PARAMETERS
1523
1524 IN
1525 pvosGCtx VOS context
1526 pfnTxCompleteCallback TX complete callback upon TX completion
1527 pfnRxPacketCallback RX callback
1528 pfnResourceCB gets called when updating TX PDU number
1529 uResTheshold minimum TX PDU size for a packet
1530 pCallbackContext WDI calls callback function with it
1531 VOS global context pointer
1532 OUT
1533 uAvailableTxBuf available TX PDU numbder.
1534 BAL returns it for NON integrated SOC
1535
1536 RETURN VALUE
1537 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1538 VOS_STATUS_SUCCESS: Everything is good :)
1539
1540 SIDE EFFECTS
1541
1542============================================================================*/
1543VOS_STATUS
1544WDA_DS_Register
1545(
1546 v_PVOID_t pvosGCtx,
1547 WDA_DS_TxCompleteCallback pfnTxCompleteCallback,
1548 WDA_DS_RxPacketCallback pfnRxPacketCallback,
1549 WDA_DS_TxPacketCallback pfnTxPacketCallback,
1550 WDA_DS_ResourceCB pfnResourceCB,
1551 v_U32_t uResTheshold,
1552 v_PVOID_t pCallbackContext,
1553 v_U32_t *uAvailableTxBuf
1554);
1555
1556/*==========================================================================
1557 FUNCTION WDA_DS_StartXmit
1558
1559 DESCRIPTION
1560 Serialize TX transmit reques to TX thread.
1561
1562 TODO This sends TX transmit request to TL. It should send to WDI for
1563 abstraction.
1564
1565 For NON integrated SOC, this function calls WLANBAL_StartXmit
1566
1567 DEPENDENCIES
1568
1569 PARAMETERS
1570
1571 IN
1572 pvosGCtx VOS context
1573
1574 RETURN VALUE
1575 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1576 VOS_STATUS_SUCCESS: Everything is good :)
1577
1578 SIDE EFFECTS
1579
1580============================================================================*/
1581VOS_STATUS
1582WDA_DS_StartXmit
1583(
1584 v_PVOID_t pvosGCtx
1585);
1586
1587/*==========================================================================
1588 FUNCTION WDA_DS_FinishULA
1589
1590 DESCRIPTION
1591 Serialize Finish Upper Level Authentication reques to TX thread.
1592
1593 DEPENDENCIES
1594
1595 PARAMETERS
1596
1597 IN
1598 callbackRoutine routine to be called in TX thread
1599 callbackContext user data for the above routine
1600
1601 RETURN VALUE
1602 please see vos_tx_mq_serialize
1603
1604 SIDE EFFECTS
1605
1606============================================================================*/
1607VOS_STATUS
1608WDA_DS_FinishULA
1609(
1610 void (*callbackRoutine) (void *callbackContext),
Tushnim Bhattacharyya39a8f182013-02-20 18:10:30 -08001611 void *callbackContext
Jeff Johnson295189b2012-06-20 16:38:30 -07001612);
1613
1614/*==========================================================================
1615 FUNCTION WDA_DS_BuildTxPacketInfo
1616
1617 DESCRIPTION
1618 Build TX meta info for integrated SOC.
1619
1620 Same function calls HAL for reserve BD header space into VOS packet and
1621 HAL function to fill it.
1622
1623 DEPENDENCIES
1624
1625 PARAMETERS
1626
1627 IN
1628 pvosGCtx VOS context
1629 vosDataBuff vos data buffer
1630 pvDestMacAddr destination MAC address ponter
1631 ucDisableFrmXtl Is frame xtl disabled?
1632 ucQosEnabled Is QoS enabled?
1633 ucWDSEnabled Is WDS enabled?
1634 extraHeadSpace Extra head bytes. If it's not 0 due to 4 bytes align
1635 of BD header.
1636 typeSubtype typeSubtype from MAC header or TX metainfo/BD
1637 pAddr2 address 2
1638 uTid tid
1639 txFlag
1640 timeStamp
1641 ucIsEapol
Sravan Kumar Kairamd9e8cbb2017-01-17 12:17:28 +05301642 ucIsArp
Jeff Johnson295189b2012-06-20 16:38:30 -07001643 ucUP
1644
1645 OUT
1646 *pusPktLen Packet length
1647
1648 RETURN VALUE
1649 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1650 VOS_STATUS_SUCCESS: Everything is good :)
1651
1652 SIDE EFFECTS
1653
1654============================================================================*/
1655VOS_STATUS
1656WDA_DS_BuildTxPacketInfo
1657(
1658 v_PVOID_t pvosGCtx,
1659 vos_pkt_t* vosDataBuff,
1660 v_MACADDR_t* pvDestMacAddr,
1661 v_U8_t ucDisableFrmXtl,
1662 v_U16_t* pusPktLen,
1663 v_U8_t ucQosEnabled,
1664 v_U8_t ucWDSEnabled,
1665 v_U8_t extraHeadSpace,
1666 v_U8_t typeSubtype,
1667 v_PVOID_t pAddr2,
1668 v_U8_t uTid,
Kanchanapally, Vidyullathaf9426e52013-12-24 17:28:54 +05301669 v_U32_t txFlag,
Jeff Johnson295189b2012-06-20 16:38:30 -07001670 v_U32_t timeStamp,
1671 v_U8_t ucIsEapol,
Sravan Kumar Kairamd9e8cbb2017-01-17 12:17:28 +05301672 v_U8_t ucIsArp,
Ganesh Kondabattini10e67352015-03-16 17:41:57 +05301673 v_U8_t ucUP,
1674 v_U32_t ucTxBdToken
Jeff Johnson295189b2012-06-20 16:38:30 -07001675);
1676
1677/*==========================================================================
1678 FUNCTION WDA_DS_PeekRxPacketInfo
1679
1680 DESCRIPTION
1681 Return RX metainfo pointer for for integrated SOC.
1682
1683 Same function will return BD header pointer.
1684
1685 DEPENDENCIES
1686
1687 PARAMETERS
1688
1689 IN
1690 vosDataBuff vos data buffer
1691
1692 pvDestMacAddr destination MAC address ponter
1693 bSwap Want to swap BD header? For backward compatability
1694 It does nothing for integrated SOC
1695 OUT
1696 *ppRxHeader RX metainfo pointer
1697
1698 RETURN VALUE
1699 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1700 VOS_STATUS_SUCCESS: Everything is good :)
1701
1702 SIDE EFFECTS
1703
1704============================================================================*/
1705VOS_STATUS
1706WDA_DS_PeekRxPacketInfo
1707(
1708 vos_pkt_t *vosDataBuff,
1709 v_PVOID_t *ppRxHeader,
1710 v_BOOL_t bSwap
1711);
1712
1713/*==========================================================================
1714 FUNCTION WDA_DS_TrimRxPacketInfo
1715
1716 DESCRIPTION
1717 Trim/Remove RX BD header for NON integrated SOC.
1718 It does nothing for integrated SOC.
1719
1720 DEPENDENCIES
1721
1722 PARAMETERS
1723
1724 IN
1725 vosDataBuff vos data buffer
1726
1727 RETURN VALUE
1728 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1729 VOS_STATUS_SUCCESS: Everything is good :)
1730
1731 SIDE EFFECTS
1732
1733============================================================================*/
1734VOS_STATUS
1735WDA_DS_TrimRxPacketInfo
1736(
1737 vos_pkt_t *vosDataBuff
1738);
1739
1740/*==========================================================================
1741 FUNCTION WDA_DS_GetTxResources
1742
1743 DESCRIPTION
1744 It does return hardcoded value for Prima. It should bigger number than 0.
1745 Returning 0 will put TL in out-of-resource condition for TX.
1746
1747 Return current PDU resources from BAL for NON integrated SOC.
1748
1749 DEPENDENCIES
1750
1751 PARAMETERS
1752
1753 IN
1754 vosDataBuff vos data buffer
1755
1756 OUT
1757 puResCount available PDU number for TX
1758
1759 RETURN VALUE
1760 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1761 VOS_STATUS_SUCCESS: Everything is good :)
1762
1763 SIDE EFFECTS
1764
1765============================================================================*/
1766VOS_STATUS
1767WDA_DS_GetTxResources
1768(
1769 v_PVOID_t pvosGCtx,
1770 v_U32_t* puResCount
1771);
1772
1773/*==========================================================================
1774 FUNCTION WDA_DS_GetRssi
1775
1776 DESCRIPTION
1777 Get RSSI
1778
1779 TODO It returns hardcoded value in the meantime since WDA/WDI does nothing
1780 support it yet for Prima.
1781
1782 DEPENDENCIES
1783
1784 PARAMETERS
1785
1786 IN
1787 vosDataBuff vos data buffer
1788
1789 OUT
1790 puRssi RSSI
1791
1792 RETURN VALUE
1793 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1794 VOS_STATUS_SUCCESS: Everything is good :)
1795
1796 SIDE EFFECTS
1797
1798============================================================================*/
1799VOS_STATUS
1800WDA_DS_GetRssi
1801(
1802 v_PVOID_t pvosGCtx,
1803 v_S7_t* puRssi
1804);
1805
1806/*==========================================================================
1807 FUNCTION WDA_DS_RxAmsduBdFix
1808
1809 DESCRIPTION
1810 For backward compatability with Libra/Volans. Need to call HAL function
1811 for HW BD bug fix
1812
1813 It does nothing for integrated SOC.
1814
1815 DEPENDENCIES
1816
1817 PARAMETERS
1818
1819 IN
1820 pvosGCtx VOS context
1821 pvBDHeader BD header pointer
1822
1823 OUT
1824
1825 RETURN VALUE
1826 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1827 VOS_STATUS_SUCCESS: Everything is good :)
1828
1829 SIDE EFFECTS
1830
1831============================================================================*/
1832VOS_STATUS
1833WDA_DS_RxAmsduBdFix
1834(
1835 v_PVOID_t pvosGCtx,
1836 v_PVOID_t pvBDHeader
1837);
1838
1839/*==========================================================================
1840 FUNCTION WDA_DS_GetFrameTypeSubType
1841
1842 DESCRIPTION
1843 Get typeSubtype from the packet. The BD header should have this.
1844 But some reason, Libra/Volans read it from 802.11 header and save it
1845 back to BD header. So for NON integrated SOC, this function does
1846 the same.
1847
1848 For integrated SOC, WDI does the same, not TL.
1849 It does return typeSubtype from RX meta info for integrated SOC.
1850
1851 DEPENDENCIES
1852
1853 PARAMETERS
1854
1855 IN
1856 pvosGCtx VOS context
1857 vosDataBuff vos data buffer
1858 pRxHeader RX meta info or BD header pointer
1859
1860 OUT
1861 ucTypeSubtype typeSubtype
1862
1863 RETURN VALUE
1864 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1865 VOS_STATUS_SUCCESS: Everything is good :)
1866
1867 SIDE EFFECTS
1868
1869============================================================================*/
1870VOS_STATUS
1871WDA_DS_GetFrameTypeSubType
1872(
1873 v_PVOID_t pvosGCtx,
1874 vos_pkt_t *vosDataBuff,
1875 v_PVOID_t pRxHeader,
1876 v_U8_t *ucTypeSubtype
1877);
1878
1879/*==========================================================================
1880 FUNCTION WDA_DS_GetReplayCounter
1881
1882 DESCRIPTION
1883 Return replay counter from BD header or RX meta info
1884
1885 DEPENDENCIES
1886
1887 PARAMETERS
1888
1889 IN
1890 pRxHeader RX meta info or BD header pointer
1891
1892 OUT
1893
1894 RETURN VALUE
1895 Replay Counter
1896
1897 SIDE EFFECTS
1898
1899============================================================================*/
1900v_U64_t
1901WDA_DS_GetReplayCounter
1902(
1903 v_PVOID_t pRxHeader
1904);
1905
1906/*==========================================================================
1907 FUNCTION WDA_DS_GetReplayCounter
1908
1909 DESCRIPTION
1910 HO support. Set RSSI threshold via HAL function for NON integrated SOC
1911
1912 TODO
1913 Same function should be provided by WDA/WDI for Prima.
1914
1915 DEPENDENCIES
1916
1917 PARAMETERS
1918
1919 IN
1920 pMac MAC global pointer
1921 pThresholds pointer of threshold structure to set.
1922
1923 OUT
1924
1925 RETURN VALUE
1926 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1927 VOS_STATUS_SUCCESS: Everything is good :)
1928
1929 SIDE EFFECTS
1930
1931============================================================================*/
1932VOS_STATUS
1933WDA_DS_SetRSSIThresholds
1934(
1935 tpAniSirGlobal pMac,
1936 tpSirRSSIThresholds pThresholds
1937);
1938
Jeff Johnson295189b2012-06-20 16:38:30 -07001939/*==========================================================================
1940 FUNCTION WDA_DS_TxFrames
1941
1942 DESCRIPTION
1943 Pull packets from TL and push them to WDI. It gets invoked upon
1944 WDA_DS_TX_START_XMIT.
1945
1946 This function is equivelant of WLANSSC_Transmit in Libra/Volans.
1947
1948 TODO
1949 This function should be implemented and moved in WDI.
1950
1951 DEPENDENCIES
1952
1953 PARAMETERS
1954
1955 IN
1956 pvosGCtx VOS context
1957
1958 OUT
1959
1960 RETURN VALUE
1961 VOS_STATUS_E_FAULT: pointer is NULL and other errors
1962 VOS_STATUS_SUCCESS: Everything is good :)
1963
1964 SIDE EFFECTS
1965
1966============================================================================*/
1967VOS_STATUS
1968WDA_DS_TxFrames
1969(
1970 v_PVOID_t pvosGCtx
1971);
Jeff Johnson295189b2012-06-20 16:38:30 -07001972
1973/*==========================================================================
1974 FUNCTION WDA_DS_TxFlowControlCallback
1975
1976 DESCRIPTION
1977 Invoked by WDI to control TX flow.
1978
1979 DEPENDENCIES
1980
1981 PARAMETERS
1982
1983 IN
1984 pvosGCtx VOS context
1985 uFlowMask TX channel mask for flow control
1986 Defined in WDA_TXFlowEnumType
1987
1988 OUT
1989
1990 RETURN VALUE
1991
1992 SIDE EFFECTS
1993
1994============================================================================*/
1995v_VOID_t
1996WDA_DS_TxFlowControlCallback
1997(
1998 v_PVOID_t pvosGCtx,
1999 v_U8_t uFlowMask
2000);
2001
2002/*==========================================================================
2003 FUNCTION WDA_DS_GetTxFlowMask
2004
2005 DESCRIPTION
2006 return TX flow mask control value
2007
2008 DEPENDENCIES
2009
2010 PARAMETERS
2011
2012 IN
2013 pvosGCtx VOS context
2014
2015 OUT
2016 uFlowMask TX channel mask for flow control
2017 Defined in WDA_TXFlowEnumType
2018
2019 RETURN VALUE
2020 VOS_STATUS_E_INVAL: pointer is NULL and other errors
2021 VOS_STATUS_SUCCESS: Everything is good :)
2022
2023 SIDE EFFECTS
2024
2025============================================================================*/
2026VOS_STATUS
2027WDA_DS_GetTxFlowMask
2028(
2029 v_PVOID_t pvosGCtx,
2030 v_U8_t* puFlowMask
2031);
2032
2033/*==========================================================================
2034 FUNCTION WDA_HALDumpCmdReq
2035
2036 DESCRIPTION
2037 Send Dump commandsto WDI
2038
2039 DEPENDENCIES
2040
2041 PARAMETERS
2042
2043 IN
2044 pMac MAC global pointer
Siddharth Bhal68115602015-01-18 20:44:55 +05302045 cmd Hal dump command
2046 arg1 Dump command argument 1
2047 arg2 Dump command argument 2
2048 arg3 Dump command argument 3
2049 arg4 Dump command argument 4
2050 async Asynchronous event. Doesn't wait for rsp.
Jeff Johnson295189b2012-06-20 16:38:30 -07002051
2052 OUT
2053 pBuffer Dump command Response buffer
2054
2055 RETURN VALUE
2056 VOS_STATUS_E_FAULT: pointer is NULL and other errors
2057 VOS_STATUS_SUCCESS: Everything is good :)
2058
2059 SIDE EFFECTS
2060
2061============================================================================*/
2062VOS_STATUS WDA_HALDumpCmdReq(tpAniSirGlobal pMac,tANI_U32 cmd,
2063 tANI_U32 arg1, tANI_U32 arg2, tANI_U32 arg3,
Siddharth Bhal68115602015-01-18 20:44:55 +05302064 tANI_U32 arg4, tANI_U8 *pBuffer, wpt_boolean async);
Jeff Johnson295189b2012-06-20 16:38:30 -07002065
2066/*==========================================================================
2067 FUNCTION WDA_featureCapsExchange
2068
2069 DESCRIPTION
2070 WDA API to invoke capability exchange between host and FW
2071
2072 DEPENDENCIES
2073
2074 PARAMETERS
2075
2076 IN
2077 pVosContext VOS context
2078
2079 OUT
2080 NONE
2081
2082 RETURN VALUE
2083 NONE
2084
2085 SIDE EFFECTS
2086============================================================================*/
2087void WDA_featureCapsExchange(v_PVOID_t pVosContext);
2088
Yathish9f22e662012-12-10 14:21:35 -08002089void WDA_disableCapablityFeature(tANI_U8 feature_index);
Jeff Johnson295189b2012-06-20 16:38:30 -07002090/*==========================================================================
2091 FUNCTION WDA_getHostWlanFeatCaps
2092
2093 DESCRIPTION
2094 Wrapper for WDI API, that will return if the feature (enum value).passed
2095 to this API is supported or not in Host
2096
2097 DEPENDENCIES
2098
2099 PARAMETERS
2100
2101 IN
2102 featEnumValue enum value for the feature as in placeHolderInCapBitmap in wlan_hal_msg.h.
2103
2104 OUT
2105 NONE
2106
2107 RETURN VALUE
2108 0 - implies feature is NOT Supported
2109 any non zero value - implies feature is SUPPORTED
2110
2111 SIDE EFFECTS
2112============================================================================*/
2113tANI_U8 WDA_getHostWlanFeatCaps(tANI_U8 featEnumValue);
2114
2115/*==========================================================================
2116 FUNCTION WDA_getFwWlanFeatCaps
2117
2118 DESCRIPTION
2119 Wrapper for WDI API, that will return if the feature (enum value).passed
2120 to this API is supported or not in FW
2121
2122 DEPENDENCIES
2123
2124 PARAMETERS
2125
2126 IN
2127 featEnumValue enum value for the feature as in placeHolderInCapBitmap in wlan_hal_msg.h.
2128
2129 OUT
2130 NONE
2131
2132 RETURN VALUE
2133 0 - implies feature is NOT Supported
2134 any non zero value - implies feature is SUPPORTED
2135
2136 SIDE EFFECTS
2137============================================================================*/
2138tANI_U8 WDA_getFwWlanFeatCaps(tANI_U8 featEnumValue);
2139
Madan Mohan Koyyalamudi8cb53982012-09-28 14:34:47 -07002140/*==========================================================================
2141 FUNCTION WDA_TransportChannelDebug
2142
2143 DESCRIPTION
2144 Display Transport Channel debugging information
2145 User may request to display DXE channel snapshot
2146 Or if host driver detects any abnormal stcuk may display
2147
2148 PARAMETERS
schang6295e542013-03-12 15:31:23 -07002149 pMac : upper MAC context pointer
Jeff Johnsonb88db982012-12-10 13:34:59 -08002150 displaySnapshot : Display DXE snapshot option
Mihir Shete40a55652014-03-02 14:14:47 +05302151 debugFlags : Enable stall detect features
2152 defined by WPAL_DeviceDebugFlags
2153 These features may effect
2154 data performance.
Madan Mohan Koyyalamudi8cb53982012-09-28 14:34:47 -07002155
2156 RETURN VALUE
2157 NONE
2158
2159===========================================================================*/
2160void WDA_TransportChannelDebug
2161(
schang6295e542013-03-12 15:31:23 -07002162 tpAniSirGlobal pMac,
2163 v_BOOL_t displaySnapshot,
Mihir Shete40a55652014-03-02 14:14:47 +05302164 v_U8_t debugFlags
Madan Mohan Koyyalamudi8cb53982012-09-28 14:34:47 -07002165);
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08002166
2167/*==========================================================================
Sravan Kumar Kairame9d186c2015-11-27 23:37:02 +05302168 FUNCTION WDA_TransportKickDxe
2169
2170 DESCRIPTION
2171 Request Kick DXE when first hdd TX time out
2172 happens
2173
2174 PARAMETERS
2175 NONE
2176
2177 RETURN VALUE
2178 NONE
2179
2180===========================================================================*/
2181void WDA_TransportKickDxe(void);
2182
2183/*==========================================================================
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08002184 FUNCTION WDA_TrafficStatsTimerActivate
2185
2186 DESCRIPTION
2187 API to activate/deactivate Traffic Stats timer. Traffic stats timer is only needed during MCC
2188 PARAMETERS
2189 activate : Activate or not
2190
2191 RETURN VALUE
2192 NONE
2193
2194===========================================================================*/
2195void WDA_TrafficStatsTimerActivate(wpt_boolean activate);
2196
Gopichand Nakkalae620d5a2013-04-26 05:45:57 -07002197/*==========================================================================
2198 FUNCTION WDA_SetEnableSSR
2199
2200 DESCRIPTION
2201 API to enable/disable SSR on WDI timeout
2202
2203 PARAMETERS
2204 enableSSR : enable/disable SSR
2205
2206 RETURN VALUE
2207 NONE
2208
2209===========================================================================*/
2210void WDA_SetEnableSSR(v_BOOL_t enableSSR);
Mihir Shete5affadc2015-05-29 20:54:57 +05302211
2212
Hanumantha Reddy Pothulae00a7e22015-09-15 20:11:30 +05302213void WDA_FWLoggingDXEdoneInd(v_U32_t logType);
Agrawal Ashish0552be02016-03-02 18:03:43 +05302214
2215void WDA_SetMgmtPktViaWQ5(v_BOOL_t sendMgmtPktViaWQ5);
2216
Manjeet Singh3ed79242017-01-11 19:04:32 +05302217#define CAP_TSF_REQUEST 0
2218#define GET_TSF_REQUEST 1
2219
2220VOS_STATUS WDA_ProcessCapTsfReq(tWDA_CbContext *pWDA, tSirCapTsfParams *params);
2221VOS_STATUS WDA_ProcessGetTsfReq(tWDA_CbContext *pWDA, tSirCapTsfParams *params);
Jeff Johnson295189b2012-06-20 16:38:30 -07002222#endif