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