diff options
| author | Pradeep Reddy POTTETI <c_ppotte@qti.qualcomm.com> | 2016-06-15 17:43:19 +0530 |
|---|---|---|
| committer | Anjaneedevi Kapparapu <akappa@codeaurora.org> | 2016-07-05 16:44:15 +0530 |
| commit | 85de2f471dfa7a9cbfca490d5c74f00628c345a3 (patch) | |
| tree | 7639ac35b2098f5835107677d147a1e466d2fe03 | |
| parent | f9cdbb8bb8621c97cd57838b55375ef4a1fe497e (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.h | 29 | ||||
| -rw-r--r-- | CORE/SERVICES/COMMON/wmi_services.h | 3 | ||||
| -rw-r--r-- | CORE/SERVICES/COMMON/wmi_tlv_defs.h | 8 | ||||
| -rw-r--r-- | CORE/SERVICES/COMMON/wmi_unified.h | 32 | ||||
| -rw-r--r-- | CORE/SERVICES/COMMON/wmi_version.h | 2 | ||||
| -rw-r--r-- | CORE/SERVICES/WMI/wmi_unified.c | 1 |
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"; } |
