qcacld-3.0: CL 1466376 update fw common interface files

qcacld-2.0 to qcacld-3.0 propagation.

Enhanced mcast filtering for incoming packets that have
multicast IP but unicast mac

Change-Id: Id50d9130f050ec9a948fdba9931c88b9111bb6ad
CRs-Fixed: 865207
diff --git a/target/inc/wmi_services.h b/target/inc/wmi_services.h
index 059f59d..2ea8391 100644
--- a/target/inc/wmi_services.h
+++ b/target/inc/wmi_services.h
@@ -161,6 +161,7 @@
 	 */
 	WMI_SERVICE_DEPRECATED_REPLACE,
 	WMI_SERVICE_TDLS_CONN_TRACKER_IN_HOST_MODE, /* FW supports a new mode that allows to run connection tracker in host */
+	WMI_SERVICE_ENHANCED_MCAST_FILTER,/* FW supports enhanced multicast filtering (of mcast IP inside ucast WLAN) */
 
 	WMI_MAX_SERVICE = 128             /* max service */
 } WMI_SERVICE;
diff --git a/target/inc/wmi_tlv_defs.h b/target/inc/wmi_tlv_defs.h
index 007beae..31c0a05 100644
--- a/target/inc/wmi_tlv_defs.h
+++ b/target/inc/wmi_tlv_defs.h
@@ -688,6 +688,7 @@
 	WMITLV_TAG_STRUC_wmi_pdev_set_hw_mode_response_vdev_mac_entry,
 	WMITLV_TAG_STRUC_wmi_pdev_set_mac_config_response_event_fixed_param,
 	WMITLV_TAG_STRUC_WMI_COEX_CONFIG_CMD_fixed_param,
+	WMITLV_TAG_STRUC_wmi_config_enhanced_mcast_filter_fixed_param,
 } WMITLV_TAG_ID;
 
 /*
@@ -964,7 +965,8 @@
 	OP(WMI_PDEV_SET_MAC_CONFIG_CMDID) \
 	OP(WMI_PDEV_SET_ANTENNA_MODE_CMDID) \
 	OP(WMI_VDEV_SET_QUIET_MODE_CMDID) \
-	OP(WMI_COEX_CONFIG_CMDID)
+	OP(WMI_COEX_CONFIG_CMDID) \
+	OP(WMI_CONFIG_ENHANCED_MCAST_FILTER_CMDID)
 
 /*
  * IMPORTANT: Please add _ALL_ WMI Events Here.
@@ -2425,6 +2427,10 @@
 	WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR)
 WMITLV_CREATE_PARAM_STRUC(WMI_TRANSFER_DATA_TO_FLASH_CMDID);
 
+#define WMITLV_TABLE_WMI_CONFIG_ENHANCED_MCAST_FILTER_CMDID(id, op, buf, len) \
+	WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_config_enhanced_mcast_filter_fixed_param, wmi_config_enhanced_mcast_filter_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+WMITLV_CREATE_PARAM_STRUC(WMI_CONFIG_ENHANCED_MCAST_FILTER_CMDID);
+
 /* MAWC sensor report indication cmd */
 #define WMITLV_TABLE_WMI_MAWC_SENSOR_REPORT_IND_CMDID(id, op, buf, len) \
 	WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_mawc_sensor_report_ind_cmd_fixed_param, wmi_mawc_sensor_report_ind_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
diff --git a/target/inc/wmi_unified.h b/target/inc/wmi_unified.h
index 0204b45..765dbcd 100644
--- a/target/inc/wmi_unified.h
+++ b/target/inc/wmi_unified.h
@@ -766,6 +766,8 @@
 	WMI_LRO_CONFIG_CMDID,
 	/*transfer data from host to firmware to write flash */
 	WMI_TRANSFER_DATA_TO_FLASH_CMDID,
+	/** Command to enable/disable filtering of multicast IP with unicast mac */
+	WMI_CONFIG_ENHANCED_MCAST_FILTER_CMDID,
 	/* GPIO Configuration */
 	WMI_GPIO_CONFIG_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_GPIO),
 	WMI_GPIO_OUTPUT_CMDID,
@@ -14325,6 +14327,26 @@
 	A_UINT32 status;
 } wmi_transfer_data_to_flash_complete_event_fixed_param;
 
+typedef enum {
+	ENHANCED_MCAST_FILTER_DISABLED,
+	ENHANCED_MCAST_FILTER_ENABLED
+} ENHANCED_MCAST_FILTER_CONFIG;
+
+/*
+ * Command to enable/disable filtering of multicast IP with unicast mac
+ */
+typedef struct {
+	/*
+	 * TLV tag and len; tag equals
+	 * WMITLV_TAG_STRUC_wmi_config_enhanced_mcast_filter_fixed_param
+	 */
+	A_UINT32 tlv_header;
+	/* Unique id identifying the VDEV */
+	A_UINT32 vdev_id;
+	/* 1 = enable 0 = disable (see ENHANCED_MCAST_FILTER_CONFIG) */
+	A_UINT32 enable;
+} wmi_config_enhanced_mcast_filter_cmd_fixed_param;
+
 /*
  * This structure is used to report SMPS force mode set complete to host.
  */
diff --git a/target/inc/wmi_version.h b/target/inc/wmi_version.h
index ef90b9f..f948a62 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_ 213
+#define __WMI_REVISION_ 214
 
 /** The Version Namespace should not be normally changed. Only
  *  host and firmware of the same WMI namespace will work