Browse Source

qcacld-3.0: CL 1527207 - update fw common interface files

Propagation from qcacld-2.0 to qcacld-3.0

Add mcast filter set/delete command that can take multiple
filters in a list.
Fix HTT typos to make MACROS consistent with the field name.

Change-Id: I97ca72f102faecfc3d20409b0d4819a09968417c
CRs-fixed: 865207
Krishna Kumaar Natarajan 8 năm trước cách đây
mục cha
commit
2f7a44de13

+ 3 - 0
target/inc/wmi_services.h

@@ -181,6 +181,9 @@ typedef enum {
 	 * the host from suspend
 	 */
 	WMI_SERVICE_MARK_FIRST_WAKEUP_PACKET,
+	/* FW supports command that can add/delete multiple mcast filters */
+	WMI_SERVICE_MULTIPLE_MCAST_FILTER_SET,
+
 	WMI_MAX_SERVICE = 128             /* max service */
 } WMI_SERVICE;
 

+ 8 - 0
target/inc/wmi_tlv_defs.h

@@ -716,6 +716,7 @@ typedef enum {
 	WMITLV_TAG_STRUC_wmi_p2p_lo_stopped_event_fixed_param,
 	WMITLV_TAG_STRUC_wmi_peer_reorder_queue_setup_cmd_fixed_param,
 	WMITLV_TAG_STRUC_wmi_peer_reorder_queue_remove_cmd_fixed_param,
+	WMITLV_TAG_STRUC_wmi_set_multiple_mcast_filter_cmd_fixed_param,
 } WMITLV_TAG_ID;
 
 /*
@@ -1007,6 +1008,7 @@ typedef enum {
 	OP(WMI_P2P_LISTEN_OFFLOAD_STOP_CMDID) \
 	OP(WMI_PEER_REORDER_QUEUE_SETUP_CMDID) \
 	OP(WMI_PEER_REORDER_QUEUE_REMOVE_CMDID) \
+	OP(WMI_SET_MULTIPLE_MCAST_FILTER_CMDID) \
 	/* add new CMD_LIST elements above this line */
 
 /*
@@ -1801,6 +1803,12 @@ WMITLV_CREATE_PARAM_STRUC(WMI_FORCE_FW_HANG_CMDID);
 	WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_SET_MCASTBCAST_FILTER_CMD_fixed_param, WMI_SET_MCASTBCAST_FILTER_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX)
 WMITLV_CREATE_PARAM_STRUC(WMI_SET_MCASTBCAST_FILTER_CMDID);
 
+/* Enhanced Mcast add/delete filter list cmd */
+#define WMITLV_TABLE_WMI_SET_MULTIPLE_MCAST_FILTER_CMDID(id, op, buf, len) \
+	WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_set_multiple_mcast_filter_cmd_fixed_param, WMI_SET_MULTIPLE_MCAST_FILTER_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
+	WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_FIXED_STRUC, wmi_mac_addr, mcast_list, WMITLV_SIZE_VAR)
+WMITLV_CREATE_PARAM_STRUC(WMI_SET_MULTIPLE_MCAST_FILTER_CMDID);
+
 /* Set dbglog time stamp sync cmd */
 #define WMITLV_TABLE_WMI_DBGLOG_TIME_STAMP_SYNC_CMDID(id, op, buf, len) \
 	 WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_dbglog_time_stamp_sync_cmd_fixed_param, WMI_DBGLOG_TIME_STAMP_SYNC_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX)

+ 30 - 2
target/inc/wmi_unified.h

@@ -796,6 +796,8 @@ typedef enum {
 	WMI_VDEV_WISA_CMDID,
 	/** set debug log time stamp sync up with host */
 	WMI_DBGLOG_TIME_STAMP_SYNC_CMDID,
+	/** Command for host to set/delete multiple mcast filters */
+	WMI_SET_MULTIPLE_MCAST_FILTER_CMDID,
 
 	/* GPIO Configuration */
 	WMI_GPIO_CONFIG_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_GPIO),
@@ -9699,8 +9701,12 @@ typedef struct {
 	A_UINT32 type;          /*0:unused 1: ASSERT, 2: not respond detect command,3:  simulate ep-full(),4:... */
 	A_UINT32 delay_time_ms;         /*0xffffffff means the simulate will delay for random time (0 ~0xffffffff ms) */
 } WMI_FORCE_FW_HANG_CMD_fixed_param;
-#define WMI_MCAST_FILTER_SET 1
-#define WMI_MCAST_FILTER_DELETE 2
+
+typedef enum {
+	WMI_MCAST_FILTER_SET = 1,
+	WMI_MCAST_FILTER_DELETE
+} WMI_SET_SINGLE_MCAST_FILTER_OP;
+
 typedef struct {
 	A_UINT32 tlv_header;
 	A_UINT32 vdev_id;
@@ -9709,6 +9715,28 @@ typedef struct {
 	wmi_mac_addr mcastbdcastaddr;
 } WMI_SET_MCASTBCAST_FILTER_CMD_fixed_param;
 
+typedef enum {
+	WMI_MULTIPLE_MCAST_FILTER_CLEAR = 1, /* clear all previous mc list */
+	/* clear all previous mc list, and set new list */
+	WMI_MULTIPLE_MCAST_FILTER_SET,
+	WMI_MULTIPLE_MCAST_FILTER_DELETE,    /* delete one/multiple mc list */
+	WMI_MULTIPLE_MCAST_FILTER_ADD        /* add one/multiple mc list */
+} WMI_MULTIPLE_MCAST_FILTER_OP;
+
+typedef struct {
+	A_UINT32 tlv_header;
+	A_UINT32 vdev_id;
+	A_UINT32 operation;  /* refer WMI_MULTIPLE_MCAST_FILTER_OP */
+	/* number of elements in the subsequent mcast addr list */
+	A_UINT32 num_mcastaddrs;
+	/**
+	 * TLV (tag length value) parameters follow the
+	 * structure. The TLV's are:
+	 * wmi_mac_addr mcastaddr_list[num_mcastaddrs];
+	 */
+} WMI_SET_MULTIPLE_MCAST_FILTER_CMD_fixed_param;
+
+
 /* WMI_DBGLOG_TIME_STAMP_SYNC_CMDID */
 typedef enum {
 	WMI_TIME_STAMP_SYNC_MODE_MS, /* millisecond units */

+ 1 - 1
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_ 261
+#define __WMI_REVISION_ 262
 
 /** The Version Namespace should not be normally changed. Only
  *  host and firmware of the same WMI namespace will work