qcacld-3.0: CL 1457903 update fw common interface files

WMI changes for introducing 11ax capabilities
add new dbglog IDs for scan events

Change-Id: Ie9d30e397ae7bfe84619acab4c42bc8739b19a99
CRs-Fixed: 865207
This commit is contained in:
Govind Singh
2016-02-22 15:16:46 +05:30
parent 69616c1c89
commit d24f5e4289
6 changed files with 134 additions and 6 deletions

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2013-2015 The Linux Foundation. All rights reserved. * Copyright (c) 2013-2016 The Linux Foundation. All rights reserved.
* *
* Previously licensed under the ISC license by Qualcomm Atheros, Inc. * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
* *
@@ -580,7 +580,42 @@ extern "C" {
#define SCAN_FWLOG_EVENT_RESTARTED 10 #define SCAN_FWLOG_EVENT_RESTARTED 10
#define SCAN_FWLOG_EVENT_COMPLETED 11 #define SCAN_FWLOG_EVENT_COMPLETED 11
#define SCAN_SM_REQ_NEXT_CH 12 #define SCAN_SM_REQ_NEXT_CH 12
#define SCAN_DBGID_DEFINITION_END 13 #define SCAN_ENG_START 13
#define SCAN_ENG_CANCEL 14
#define SCAN_ENG_SPOOFED_MAC_ADDR 15
#define SCAN_ENG_PARAM_1 16
#define SCAN_ENG_PARAM_2 17
#define SCAN_ENG_MAX_SCAN_TIMEOUT 18
#define SCAN_ENG_START_IN_PROGRESS 19
#define SCAN_SM_START_COMMAND_FAILED 20
#define SCAN_SCH_START 21
#define SCAN_SCH_START_INFO 22
#define SCAN_SCH_START_NEW_REQ_FAILED 23
#define SCAN_SCH_START_ALLOC_FAIL 24
#define SCAN_SCH_ENGINE_STOP_DUE_TO_TIMEOUT 25
#define SCAN_SCH_POLICY_EVENT 26
#define SCAN_SCH_CANCEL 27
#define SCAN_SCH_STOP_COMMAND_FAILED 28
#define SCAN_SCH_NEXT_SCAN_FAILED 29
#define SCAN_WMI_SET_CHAN_LIST 30
#define SCAN_EVENT_STARTED 31
#define SCAN_EVENT_BSS_CHANNEL 32
#define SCAN_EVENT_FOREIGN_CHANNEL 33
#define SCAN_EVENT_DEQUEUED 34
#define SCAN_EVENT_START_FAILED 35
#define SCAN_EVENT_FOREIGN_CHANNEL_EXIT 36
#define SCAN_SM_DISPATCH 37
#define SCAN_SM_TRANSITIONS 38
#define SCAN_SM_REQ_NEXT_CHAN 39
#define SCAN_SEND_PROBE_REQ_RET_VDEV 40
#define SCAN_SEND_PROBE_REQ_RET_PLM 41
#define SCAN_SEND_PROBE_REQ_RET_PASSIVE 42
#define SCAN_SEND_PROBE_REQ_RET_RADAR 43
#define SCAN_SEND_PROBE_REQ_RET_DFS 44
#define SCAN_SEND_PROBE_REQ_INFO 45
#define SCAN_SM_CANCEL 46
#define SCAN_SM_PROBE_REQ_FRAME_SEND_FAILED 47
#define SCAN_DBGID_DEFINITION_END 48
#define BEACON_EVENT_SWBA_SEND_FAILED 0 #define BEACON_EVENT_SWBA_SEND_FAILED 0
#define BEACON_EVENT_EARLY_RX_BMISS_STATUS 1 #define BEACON_EVENT_EARLY_RX_BMISS_STATUS 1
@@ -1531,6 +1566,7 @@ extern "C" {
#define EXTSCAN_NOTIFY_HOTLIST_MATCH 38 #define EXTSCAN_NOTIFY_HOTLIST_MATCH 38
#define EXTSCAN_CONFIG_HOTLIST_TABLE 39 #define EXTSCAN_CONFIG_HOTLIST_TABLE 39
#define EXTSCAN_CONFIG_WLAN_CHANGE_TABLE 40 #define EXTSCAN_CONFIG_WLAN_CHANGE_TABLE 40
#define EXTSCAN_EVENT_SEND_FAILED 41
/* NLO DBGIDs */ /* NLO DBGIDs */
#define NLO_DBGID_SSID_TO_BE_SCANNED_LIST 0 #define NLO_DBGID_SSID_TO_BE_SCANNED_LIST 0

View File

@@ -55,6 +55,10 @@
#define CONFIG_160MHZ_SUPPORT 0 #define CONFIG_160MHZ_SUPPORT 0
#endif #endif
#ifndef SUPPORT_11AX
#define SUPPORT_11AX 0 /* 11ax not supported by default */
#endif
typedef enum { typedef enum {
MODE_11A = 0, /* 11a Mode */ MODE_11A = 0, /* 11a Mode */
MODE_11G = 1, /* 11b/g Mode */ MODE_11G = 1, /* 11b/g Mode */
@@ -75,9 +79,29 @@ typedef enum {
MODE_11AC_VHT160 = 15, MODE_11AC_VHT160 = 15,
#endif #endif
#if SUPPORT_11AX
MODE_11AX_HE20 = 16,
MODE_11AX_HE40 = 17,
MODE_11AX_HE80 = 18,
MODE_11AX_HE80_80 = 19,
MODE_11AX_HE160 = 20,
MODE_11AX_HE20_2G = 21,
MODE_11AX_HE40_2G = 22,
MODE_11AX_HE80_2G = 23,
#endif
/*
* MODE_UNKNOWN should not be used within the host / target interface.
* Thus, it is permissible for ODE_UNKNOWN to be conditionally-defined,
* taking different values when compiling for different targets.
*/
MODE_UNKNOWN, MODE_UNKNOWN,
MODE_UNKNOWN_NO_160MHZ_SUPPORT = 14, MODE_UNKNOWN_NO_160MHZ_SUPPORT = 14, /* not needed? */
MODE_UNKNOWN_160MHZ_SUPPORT = 16, /* MODE_UNKNOWN_NO_11AX_SUPPORT = 16,*/ /* not needed? */
/* MODE_UNKNOWN_11AX_SUPPORT = 24,*/ /* not needed? */
MODE_UNKNOWN_160MHZ_SUPPORT = MODE_UNKNOWN, /* not needed? */
MODE_MAX = MODE_UNKNOWN, MODE_MAX = MODE_UNKNOWN,
MODE_MAX_NO_160_MHZ_SUPPORT = MODE_UNKNOWN_NO_160MHZ_SUPPORT, MODE_MAX_NO_160_MHZ_SUPPORT = MODE_UNKNOWN_NO_160MHZ_SUPPORT,
MODE_MAX_160_MHZ_SUPPORT = MODE_UNKNOWN_160MHZ_SUPPORT, MODE_MAX_160_MHZ_SUPPORT = MODE_UNKNOWN_160MHZ_SUPPORT,

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2004-2010, 2013-2014 The Linux Foundation. All rights reserved. * Copyright (c) 2004-2010, 2013-2014, 2016 The Linux Foundation. All rights reserved.
* *
* Previously licensed under the ISC license by Qualcomm Atheros, Inc. * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
* *
@@ -151,6 +151,7 @@ typedef enum {
WMI_11NG_CAPABILITY = 5, WMI_11NG_CAPABILITY = 5,
WMI_11NAG_CAPABILITY = 6, WMI_11NAG_CAPABILITY = 6,
WMI_11AC_CAPABILITY = 7, WMI_11AC_CAPABILITY = 7,
WMI_11AX_CAPABILITY = 8,
/* END CAPABILITY */ /* END CAPABILITY */
WMI_11N_CAPABILITY_OFFSET = WMI_11N_CAPABILITY_OFFSET =
(WMI_11NA_CAPABILITY - WMI_11A_CAPABILITY), (WMI_11NA_CAPABILITY - WMI_11A_CAPABILITY),

View File

@@ -147,6 +147,7 @@ typedef enum {
WMI_SERVICE_RATECTRL_LIMIT_MAX_MIN_RATES, WMI_SERVICE_RATECTRL_LIMIT_MAX_MIN_RATES,
WMI_SERVICE_NAN_DATA, /* FW supports NAN data */ WMI_SERVICE_NAN_DATA, /* FW supports NAN data */
WMI_SERVICE_NAN_RTT, /* FW supports NAN RTT */ WMI_SERVICE_NAN_RTT, /* FW supports NAN RTT */
WMI_SERVICE_11AX, /* FW supports 802.11ax */
WMI_MAX_SERVICE = 128 /* max service */ WMI_MAX_SERVICE = 128 /* max service */
} WMI_SERVICE; } WMI_SERVICE;

View File

@@ -1528,6 +1528,64 @@ typedef enum {
#define WMI_VHT_MAX_SUPP_RATE_MASK 0x1fff0000 #define WMI_VHT_MAX_SUPP_RATE_MASK 0x1fff0000
#define WMI_VHT_MAX_SUPP_RATE_MASK_SHIFT 16 #define WMI_VHT_MAX_SUPP_RATE_MASK_SHIFT 16
/** 11ax capabilities */
#define WMI_HE_CAP_PPE_PRESENT 0x00000001
#define WMI_HE_CAP_TWT_RESPONDER_SUPPORT 0x00000002
#define WMI_HE_CAP_TWT_REQUESTER_SUPPORT 0x00000004
#define WMI_HE_FRAG_SUPPORT_MASK 0x00000018
#define WMI_HE_FRAG_SUPPORT_SHIFT 3
/** NOTE: This defs cannot be changed in the future without
* breaking WMI compatibility
*/
#define WMI_MAX_NUM_SS 8
#define WMI_MAX_NUM_RU 4
/*
* Figure 8 554ae: -PPE Threshold Info field format
* we pack PPET16 and PPT8 for four RU's in one element of array.
*
* ppet16_ppet8_ru3_ru0 array element 0 holds:
* | PPET16 | PPET8 | PPET16 | PPET8 | PPET16 | PPET8 | PPET16 | PPET8 |
*rsvd |NSS1,RU4|NSS1,RU4|NSS1,RU3|NSS1,RU3|NSS1,RU2|NSS1,RU2|NSS1,RU1|NSS1,RU1|
*31:23| 22:20 | 19:17 | 17:15 | 14:12 | 11:9 | 8:6 | 5:3 | 2:0 |
*
* ppet16_ppet8_ru3_ru0 array element 1 holds:
* | PPET16 | PPET8 | PPET16 | PPET8 | PPET16 | PPET8 | PPET16 | PPET8 |
*rsvd |NSS2,RU4|NSS2,RU4|NSS2,RU3|NSS2,RU3|NSS2,RU2|NSS2,RU2|NSS2,RU1|NSS2,RU1|
*31:23| 22:20 | 19:17 | 17:15 | 14:12 | 11:9 | 8:6 | 5:3 | 2:0 |
*
* etc.
*/
/*
* Note that in these macros, "ru" is one-based, not zero-based, while
* nssm1 is zero-based.
*/
#define WMI_SET_PPET8(ppet16_ppet8_ru3_ru0, ppet, ru, nssm1) \
do { \
ppet16_ppet8_ru3_ru0[nssm1] &= ~(7 << (((ru-1)%4)*6)); \
ppet16_ppet8_ru3_ru0[nssm1] |= ((ppet&7) << (((ru-1)%4)*6)); \
} while (0)
#define WMI_GET_PPET8(ppet16_ppet8_ru3_ru0, ru, nssm1) \
((ppet16_ppet8_ru3_ru0[nssm1] >> (((ru-1)%4)*6))&7)
#define WMI_SET_PPET16(ppet16_ppet8_ru3_ru0, ppet, ru, nssm1) \
do { \
ppet16_ppet8_ru3_ru0[nssm1] &= ~(7 << (((ru-1)%4)*6+3)); \
ppet16_ppet8_ru3_ru0[nssm1] |= ((ppet&7) << (((ru-1)%4)*6+3)); \
} while (0)
#define WMI_GET_PPET16(ppet16_ppet8_ru3_ru0, ru, nssm1) \
((ppet16_ppet8_ru3_ru0[nssm1] >> (((ru-1)%4)*6+3))&7)
typedef struct _wmi_ppe_threshold {
A_UINT32 numss_m1; /** NSS - 1*/
A_UINT32 ru_count; /** Max RU count */
/** ppet8 and ppet16 for max num ss */
A_UINT32 ppet16_ppet8_ru3_ru0[WMI_MAX_NUM_SS];
} wmi_ppe_threshold;
/* WMI_SYS_CAPS_* refer to the capabilities that system support /* WMI_SYS_CAPS_* refer to the capabilities that system support
*/ */
#define WMI_SYS_CAP_ENABLE 0x00000001 #define WMI_SYS_CAP_ENABLE 0x00000001
@@ -1749,6 +1807,9 @@ typedef struct {
A_UINT32 default_conc_scan_config_bits; A_UINT32 default_conc_scan_config_bits;
/* which WMI_DBS_FW_MODE_CFG setting the FW is initialized with */ /* which WMI_DBS_FW_MODE_CFG setting the FW is initialized with */
A_UINT32 default_fw_config_bits; A_UINT32 default_fw_config_bits;
wmi_ppe_threshold ppet;
/* see section 8.4.2.213 from draft r8 of 802.11ax */
A_UINT32 he_cap_info;
} wmi_service_ready_ext_event_fixed_param; } wmi_service_ready_ext_event_fixed_param;
typedef enum { typedef enum {
@@ -6355,6 +6416,11 @@ typedef struct {
* set to 0 by host * set to 0 by host
*/ */
A_UINT32 peer_bw_rxnss_override; A_UINT32 peer_bw_rxnss_override;
/* 802.11ax capabilities */
wmi_ppe_threshold peer_ppet;
/* protocol-defined HE / 11ax capability flags */
A_UINT32 peer_he_cap_info;
A_UINT32 peer_he_ops; /* HE operation contains BSS color */
/* Following this struc are the TLV's: /* Following this struc are the TLV's:
* A_UINT8 peer_legacy_rates[]; * A_UINT8 peer_legacy_rates[];
* A_UINT8 peer_ht_rates[]; * A_UINT8 peer_ht_rates[];

View File

@@ -36,7 +36,7 @@
#define __WMI_VER_MINOR_ 0 #define __WMI_VER_MINOR_ 0
/** WMI revision number has to be incremented when there is a /** WMI revision number has to be incremented when there is a
* change that may or may not break compatibility */ * change that may or may not break compatibility */
#define __WMI_REVISION_ 207 #define __WMI_REVISION_ 208
/** The Version Namespace should not be normally changed. Only /** The Version Namespace should not be normally changed. Only
* host and firmware of the same WMI namespace will work * host and firmware of the same WMI namespace will work