summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPradeep Reddy POTTETI <c_ppotte@qti.qualcomm.com>2016-06-15 17:43:19 +0530
committerAnjaneedevi Kapparapu <akappa@codeaurora.org>2016-07-05 16:44:15 +0530
commit85de2f471dfa7a9cbfca490d5c74f00628c345a3 (patch)
tree7639ac35b2098f5835107677d147a1e466d2fe03
parentf9cdbb8bb8621c97cd57838b55375ef4a1fe497e (diff)
qcacld-2.0: CL 1527207 - update fw common interface files
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
-rw-r--r--CORE/CLD_TXRX/HTT/htt.h29
-rw-r--r--CORE/SERVICES/COMMON/wmi_services.h3
-rw-r--r--CORE/SERVICES/COMMON/wmi_tlv_defs.h8
-rw-r--r--CORE/SERVICES/COMMON/wmi_unified.h32
-rw-r--r--CORE/SERVICES/COMMON/wmi_version.h2
-rw-r--r--CORE/SERVICES/WMI/wmi_unified.c1
6 files changed, 58 insertions, 17 deletions
diff --git a/CORE/CLD_TXRX/HTT/htt.h b/CORE/CLD_TXRX/HTT/htt.h
index 9572fb5641e6..c608cf59413a 100644
--- a/CORE/CLD_TXRX/HTT/htt.h
+++ b/CORE/CLD_TXRX/HTT/htt.h
@@ -3256,8 +3256,8 @@ enum htt_srng_ring_id {
* of each descriptor before pushing into the ring.
* 0: updates ring_id(default)
* 1: ring_id updating disabled */
-#define HTT_SRING_SETUP_RING_MISC_CFG_RING_ID_DISABLE_M 0x01
-#define HTT_SRING_SETUP_RING_MISC_CFG_RING_ID_DISABLE_S 0
+#define HTT_SRING_SETUP_RING_MISC_DATA_RING_ID_DISABLE_M 0x01
+#define HTT_SRING_SETUP_RING_MISC_DATA_RING_ID_DISABLE_S 0
#define HTT_SRING_SETUP_RING_MISC_DATA_RING_ID_DISABLE_GET(_var) \
(((_var) & HTT_SRING_SETUP_RING_MISC_DATA_RING_ID_DISABLE_M) >> \
HTT_SRING_SETUP_RING_MISC_DATA_RING_ID_DISABLE_S)
@@ -3271,8 +3271,8 @@ enum htt_srng_ring_id {
* of each descriptor before pushing into the ring.
* 0: updates Loopcnt(default)
* 1: Loopcnt updating disabled */
-#define HTT_SRING_SETUP_RING_MISC_CFG_RING_LOOPCOUNT_DISABLE_M 0x02
-#define HTT_SRING_SETUP_RING_MISC_CFG_RING_LOOPCOUNT_DISABLE_S 1
+#define HTT_SRING_SETUP_RING_MISC_DATA_LOOPCOUNT_DISABLE_M 0x02
+#define HTT_SRING_SETUP_RING_MISC_DATA_LOOPCOUNT_DISABLE_S 1
#define HTT_SRING_SETUP_RING_MISC_DATA_LOOPCOUNT_DISABLE_GET(_var) \
(((_var) & HTT_SRING_SETUP_RING_MISC_DATA_LOOPCOUNT_DISABLE_M) >> \
HTT_SRING_SETUP_RING_MISC_DATA_LOOPCOUNT_DISABLE_S)
@@ -3284,8 +3284,8 @@ enum htt_srng_ring_id {
/* Secured access enable/disable bit. SRNG drives value of this register bit
* into security_id port of GXI/AXI. */
-#define HTT_SRING_SETUP_RING_MISC_CFG_RING_SECURITY_M 0x04
-#define HTT_SRING_SETUP_RING_MISC_CFG_RING_SECURITY_S 2
+#define HTT_SRING_SETUP_RING_MISC_DATA_SECURITY_M 0x04
+#define HTT_SRING_SETUP_RING_MISC_DATA_SECURITY_S 2
#define HTT_SRING_SETUP_RING_MISC_DATA_SECURITY_GET(_var) \
(((_var) & HTT_SRING_SETUP_RING_MISC_DATA_SECURITY_M) >> \
HTT_SRING_SETUP_RING_MISC_DATA_SECURITY_S)
@@ -3297,8 +3297,8 @@ enum htt_srng_ring_id {
/* During MSI write operation, SRNG drives value of this register bit into
* swap bit of GXI/AXI. */
-#define HTT_SRING_SETUP_RING_MISC_CFG_RING_MSI_SWAP_M 0x08
-#define HTT_SRING_SETUP_RING_MISC_CFG_RING_MSI_SWAP_S 3
+#define HTT_SRING_SETUP_RING_MISC_DATA_MSI_SWAP_M 0x08
+#define HTT_SRING_SETUP_RING_MISC_DATA_MSI_SWAP_S 3
#define HTT_SRING_SETUP_RING_MISC_DATA_MSI_SWAP_GET(_var) \
(((_var) & HTT_SRING_SETUP_RING_MISC_DATA_MSI_SWAP_M) >> \
HTT_SRING_SETUP_RING_MISC_DATA_MSI_SWAP_S)
@@ -3310,8 +3310,8 @@ enum htt_srng_ring_id {
/* During Pointer write operation, SRNG drives value of this register bit into
* swap bit of GXI/AXI. */
-#define HTT_SRING_SETUP_RING_MISC_CFG_RING_HOST_FW_SWAP_M 0x10
-#define HTT_SRING_SETUP_RING_MISC_CFG_RING_HOST_FW_SWAP_S 4
+#define HTT_SRING_SETUP_RING_MISC_DATA_HOST_FW_SWAP_M 0x10
+#define HTT_SRING_SETUP_RING_MISC_DATA_HOST_FW_SWAP_S 4
#define HTT_SRING_SETUP_RING_MISC_DATA_HOST_FW_SWAP_GET(_var) \
(((_var) & HTT_SRING_SETUP_RING_MISC_DATA_HOST_FW_SWAP_M) >> \
HTT_SRING_SETUP_RING_MISC_DATA_HOST_FW_SWAP_S)
@@ -3323,10 +3323,8 @@ enum htt_srng_ring_id {
/* During any data or TLV write operation, SRNG drives value of this register
* bit into swap bit of GXI/AXI. */
-#define HTT_SRING_SETUP_RING_MISC_CFG_RING_TLV_SWAP_M 0x20
-#define HTT_SRING_SETUP_RING_MISC_CFG_RING_TLV_SWAP_S 5
-#define HTT_SRING_SETUP_RING_MISC_CFG_RESERVED1 0x40
-#define HTT_SRING_SETUP_RING_MISC_CFG_RESERVED2 0x80
+#define HTT_SRING_SETUP_RING_MISC_DATA_TLV_SWAP_M 0x20
+#define HTT_SRING_SETUP_RING_MISC_DATA_TLV_SWAP_S 5
#define HTT_SRING_SETUP_RING_MISC_DATA_TLV_SWAP_GET(_var) \
(((_var) & HTT_SRING_SETUP_RING_MISC_DATA_TLV_SWAP_M) >> \
HTT_SRING_SETUP_RING_MISC_DATA_TLV_SWAP_S)
@@ -3336,6 +3334,9 @@ enum htt_srng_ring_id {
((_var) |= ((_val) << HTT_SRING_SETUP_RING_MISC_DATA_TLV_SWAP_S)); \
} while (0)
+#define HTT_SRING_SETUP_RING_MISC_CFG_RESERVED1 0x40
+#define HTT_SRING_SETUP_RING_MISC_CFG_RESERVED2 0x80
+
#define HTT_SRING_SETUP_INTR_BATCH_COUNTER_TH_M 0x00007fff
#define HTT_SRING_SETUP_INTR_BATCH_COUNTER_TH_S 0
#define HTT_SRING_SETUP_INTR_BATCH_COUNTER_TH_GET(_var) \
diff --git a/CORE/SERVICES/COMMON/wmi_services.h b/CORE/SERVICES/COMMON/wmi_services.h
index 37dc6f93eb1c..383c7781ce3b 100644
--- a/CORE/SERVICES/COMMON/wmi_services.h
+++ b/CORE/SERVICES/COMMON/wmi_services.h
@@ -166,6 +166,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;
diff --git a/CORE/SERVICES/COMMON/wmi_tlv_defs.h b/CORE/SERVICES/COMMON/wmi_tlv_defs.h
index 937a79d58da1..7de912dd7404 100644
--- a/CORE/SERVICES/COMMON/wmi_tlv_defs.h
+++ b/CORE/SERVICES/COMMON/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 */
/*
@@ -1805,6 +1807,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)
diff --git a/CORE/SERVICES/COMMON/wmi_unified.h b/CORE/SERVICES/COMMON/wmi_unified.h
index ff6be58e3315..fdf8afe59921 100644
--- a/CORE/SERVICES/COMMON/wmi_unified.h
+++ b/CORE/SERVICES/COMMON/wmi_unified.h
@@ -775,6 +775,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),
@@ -9220,8 +9222,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;
@@ -9230,6 +9236,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 */
diff --git a/CORE/SERVICES/COMMON/wmi_version.h b/CORE/SERVICES/COMMON/wmi_version.h
index 06516f834d79..d959a8dbed22 100644
--- a/CORE/SERVICES/COMMON/wmi_version.h
+++ b/CORE/SERVICES/COMMON/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
diff --git a/CORE/SERVICES/WMI/wmi_unified.c b/CORE/SERVICES/WMI/wmi_unified.c
index d3d77fe106f8..25eb4d4ba066 100644
--- a/CORE/SERVICES/WMI/wmi_unified.c
+++ b/CORE/SERVICES/WMI/wmi_unified.c
@@ -707,6 +707,7 @@ static u_int8_t* get_wmi_cmd_string(WMI_CMD_ID wmi_command)
CASE_RETURN_STRING(WMI_P2P_LISTEN_OFFLOAD_STOP_CMDID);
CASE_RETURN_STRING(WMI_PEER_REORDER_QUEUE_SETUP_CMDID);
CASE_RETURN_STRING(WMI_PEER_REORDER_QUEUE_REMOVE_CMDID);
+ CASE_RETURN_STRING(WMI_SET_MULTIPLE_MCAST_FILTER_CMDID);
}
return "Invalid WMI cmd";
}