qcacld-3.0: CL 1521398 – update fw common interface files
Propagation from qcacld-2.0 to qcacld-3.0.
WMI changes for 11AX related BSS parameters
Extend the WoW wake event bitmap
Change-Id: I68367a8d688cdc9f85efe01a7c48856c8bab7220
CRs-Fixed: 865207
diff --git a/target/inc/wmi_unified.h b/target/inc/wmi_unified.h
index 55acf09..e6515ca 100644
--- a/target/inc/wmi_unified.h
+++ b/target/inc/wmi_unified.h
@@ -1435,6 +1435,7 @@
#define WMI_CHAN_FLAG_QUARTER_RATE 15 /* Indicates quarter rate channel */
/* Enable radar event reporting for sec80 in VHT80p80 */
#define WMI_CHAN_FLAG_DFS_CFREQ2 16
+#define WMI_CHAN_FLAG_ALLOW_HE 17 /* HE (11ax) is allowed on this channel */
#define WMI_SET_CHANNEL_FLAG(pwmi_channel, flag) do { \
(pwmi_channel)->info |= (1 << flag); \
@@ -1614,12 +1615,12 @@
* 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 |
+ * | PPET8 | PPET16 | PPET8 | PPET16 | PPET8 | PPET16 | PPET8 | PPET16 |
*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 |
+ * | PPET8 | PPET16 | PPET8 | PPET16 | PPET8 | PPET16 | PPET8 | PPET16 |
*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 |
*
@@ -1630,22 +1631,22 @@
* 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) \
+#define WMI_SET_PPET16(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) \
+#define WMI_GET_PPET16(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) \
+#define WMI_SET_PPET8(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) \
+#define WMI_GET_PPET8(ppet16_ppet8_ru3_ru0, ru, nssm1) \
((ppet16_ppet8_ru3_ru0[nssm1] >> (((ru-1)%4)*6+3))&7)
typedef struct _wmi_ppe_threshold {
@@ -5563,6 +5564,46 @@
WMI_VDEV_PARAM_RX_FILTER,
/* vdev-specific mgmt tx power in dBm units (signed integer value) */
WMI_VDEV_PARAM_MGMT_TX_POWER,
+
+ /*
+ * === ADD NEW VDEV PARAM TYPES ABOVE THIS LINE ===
+ * The below vdev param types are used for prototyping, and are
+ * prone to change.
+ */
+ WMI_VDEV_PARAM_PROTOTYPE = 0x8000,
+ /* 11AX SPECIFIC defines */
+ WMI_VDEV_PARAM_BSS_COLOR,
+ /* In case of AP this will enable / disable MU-MIMO mode */
+ WMI_VDEV_PARAM_SET_UL_MU_MIMO,
+ /*
+ * set fragmentation level of the vdev's peers.
+ * Values can be WMI_HE_FRAG_SUPPORT_LEVEL0..WMI_HE_FRAG_SUPPORT_LEVEL3
+ */
+ WMI_VDEV_PARAM_SET_FRAG_LEVEL,
+ /*
+ * control different features of HEControl:
+ * Bit 0:- 1/0-> Enable/Disable transmssion of UL scheduling.
+ * Bit 1:- 1/0-> Enable / disable honoring of ROMI from a peer.
+ * Applicable in AP mode only.
+ */
+ WMI_VDEV_PARAM_SET_HECONTROL,
+ /*
+ * enable / disable trigger access for a AP vdev's peers.
+ * For a STA mode vdev this will enable/disable triggered access
+ * and enable/disable Multi User mode of operation.
+ */
+ WMI_VDEV_PARAM_SET_HEMU_MODE,
+ /*
+ * For Tx OFDMA this will set values of CP length or guard interval
+ * to be
+ * 0: Auto
+ * 1: 0.8 us
+ * 2: 1.6 us
+ * 3: 3.2 us
+ * Similar to Guard Interval
+ */
+ WMI_VDEV_PARAM_TX_OFDMA_CPLEN,
+ /*=== END VDEV_PARAM_PROTOTYPE SECTION ===*/
} WMI_VDEV_PARAM;
/* vdev capabilities bit mask */
@@ -8526,11 +8567,16 @@
A_UINT32 pattern_type;
} WMI_WOW_DEL_PATTERN_CMD_fixed_param;
+#define WMI_WOW_MAX_EVENT_BM_LEN 4
+
typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_WOW_ADD_DEL_EVT_CMD_fixed_param */
A_UINT32 vdev_id;
A_UINT32 is_add;
- A_UINT32 event_bitmap;
+ union {
+ A_UINT32 event_bitmap;
+ A_UINT32 event_bitmaps[WMI_WOW_MAX_EVENT_BM_LEN];
+ };
} WMI_WOW_ADD_DEL_EVT_CMD_fixed_param;
/*
@@ -9802,6 +9848,11 @@
WMM_AC_DOWNGRADE_INVALID,
};
+/* WMM EDCA Params type */
+#define WMM_PARAM_TYPE_LEGACY 0
+/* Relaxed EDCA parameters for 11ax to be used in case of triggered access */
+#define WMM_PARAM_TYPE_11AX_EDCA 1
+
typedef struct {
A_UINT32 tlv_header;
A_UINT32 cwmin;
@@ -9816,6 +9867,7 @@
A_UINT32 tlv_header;
A_UINT32 vdev_id;
wmi_wmm_vparams wmm_params[4]; /* 0 be, 1 bk, 2 vi, 3 vo */
+ A_UINT32 wmm_param_type; /* see WMM_PARAM_TYPE_xxx defs */
} wmi_vdev_set_wmm_params_cmd_fixed_param;
typedef struct {
@@ -14501,7 +14553,7 @@
} wmi_roam_configure_mawc_cmd_fixed_param;
#define WMI_PACKET_FILTER_COMPARE_DATA_LEN_DWORD 2
-#define WMI_PACKET_FILTER_MAX_CMP_PER_PACKET_FILTER 10
+#define WMI_PACKET_FILTER_MAX_CMP_PER_PACKET_FILTER 5
typedef enum {
PACKET_FILTER_TYPE_INVALID = 0,
@@ -14573,6 +14625,13 @@
A_UINT32 num_params; /* how many entries in paramsData are valid */
A_UINT32 coalesce_time; /* not currently used - fill with 0x0 */
WMI_PACKET_FILTER_PARAMS_TYPE paramsData[WMI_PACKET_FILTER_MAX_CMP_PER_PACKET_FILTER];
+ /*
+ * deprecated0:
+ * This field simply provides filler space to retain the
+ * original message format while reducing
+ * WMI_PACKET_FILTER_MAX_CMP_PER_PACKET_FILTER from 10 to 5.
+ */
+ WMI_PACKET_FILTER_PARAMS_TYPE deprecated0[5];
} WMI_PACKET_FILTER_CONFIG_CMD_fixed_param;
/* enable / disable all filters within the specified vdev */
diff --git a/target/inc/wmi_version.h b/target/inc/wmi_version.h
index 5d0b62b..69544f6 100644
--- a/target/inc/wmi_version.h
+++ b/target/inc/wmi_version.h
@@ -36,7 +36,7 @@
#define __WMI_VER_MINOR_ 0
/** WMI revision number has to be incremented when there is a
* change that may or may not break compatibility */
-#define __WMI_REVISION_ 256
+#define __WMI_REVISION_ 258
/** The Version Namespace should not be normally changed. Only
* host and firmware of the same WMI namespace will work