summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorc_manjee <manjee@codeaurora.org>2017-01-11 17:06:55 +0530
committerqcabuildsw <qcabuildsw@localhost>2017-01-26 16:27:27 -0800
commit21af4fbbd9975fffdc5b0c8ae05afd7278b3e88b (patch)
tree4261072b9daa85d5c5471d206bfb1fe964daa0f7
parent6a9a784f347f63790706f7bcd2d212d59daaf91c (diff)
qcacld-3.0: CL 2779193 - update fw common interface files
WMI changes for active APF and hw data filtering requirement Change-Id: Ifacb8c220e9f3a3c44136e9c937ea4e6b387ea5f CRs-Fixed: 865207
-rw-r--r--target/inc/wmi_tlv_defs.h13
-rw-r--r--target/inc/wmi_unified.h37
-rw-r--r--target/inc/wmi_version.h2
3 files changed, 51 insertions, 1 deletions
diff --git a/target/inc/wmi_tlv_defs.h b/target/inc/wmi_tlv_defs.h
index f257716945c6..decf4008f8e5 100644
--- a/target/inc/wmi_tlv_defs.h
+++ b/target/inc/wmi_tlv_defs.h
@@ -784,6 +784,8 @@ typedef enum {
WMITLV_TAG_STRUC_wmi_roam_per_config_fixed_param,
WMITLV_TAG_STRUC_wmi_vdev_add_mac_addr_to_rx_filter_cmd_fixed_param,
WMITLV_TAG_STRUC_wmi_vdev_add_mac_addr_to_rx_filter_status_event_fixed_param,
+ WMITLV_TAG_STRUC_wmi_bpf_set_vdev_active_mode_cmd_fixed_param,
+ WMITLV_TAG_STRUC_wmi_hw_data_filter_cmd_fixed_param,
} WMITLV_TAG_ID;
/*
@@ -1101,6 +1103,8 @@ typedef enum {
OP(WMI_REQUEST_RADIO_CHAN_STATS_CMDID) \
OP(WMI_ROAM_PER_CONFIG_CMDID) \
OP(WMI_VDEV_ADD_MAC_ADDR_TO_RX_FILTER_CMDID) \
+ OP(WMI_BPF_SET_VDEV_ACTIVE_MODE_CMDID) \
+ OP(WMI_HW_DATA_FILTER_CMDID) \
/* add new CMD_LIST elements above this line */
/*
@@ -2775,6 +2779,10 @@ WMITLV_CREATE_PARAM_STRUC(WMI_BPF_SET_VDEV_INSTRUCTIONS_CMDID);
WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_bpf_del_vdev_instructions_cmd_fixed_param, wmi_bpf_del_vdev_instructions_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_BPF_DEL_VDEV_INSTRUCTIONS_CMDID);
+#define WMITLV_TABLE_WMI_BPF_SET_VDEV_ACTIVE_MODE_CMDID(id, op, buf, len) \
+ WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_bpf_set_vdev_active_mode_cmd_fixed_param, wmi_bpf_set_vdev_active_mode_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+WMITLV_CREATE_PARAM_STRUC(WMI_BPF_SET_VDEV_ACTIVE_MODE_CMDID);
+
/* Enable/Disable Smart Antenna */
#define WMITLV_TABLE_WMI_PDEV_SMART_ANT_ENABLE_CMDID(id, op, buf, len) \
WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_pdev_smart_ant_enable_cmd_fixed_param, wmi_pdev_smart_ant_enable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
@@ -3157,6 +3165,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_REQUEST_RADIO_CHAN_STATS_CMDID);
WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_vdev_add_mac_addr_to_rx_filter_cmd_fixed_param, wmi_vdev_add_mac_addr_to_rx_filter_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_ADD_MAC_ADDR_TO_RX_FILTER_CMDID);
+#define WMITLV_TABLE_WMI_HW_DATA_FILTER_CMDID(id, op, buf, len) \
+ WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_hw_data_filter_cmd_fixed_param, wmi_hw_data_filter_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+WMITLV_CREATE_PARAM_STRUC(WMI_HW_DATA_FILTER_CMDID);
+
+
/************************** TLV definitions of WMI events *******************************/
/* Service Ready event */
diff --git a/target/inc/wmi_unified.h b/target/inc/wmi_unified.h
index 607fdb11d330..9e7c49d8dfe0 100644
--- a/target/inc/wmi_unified.h
+++ b/target/inc/wmi_unified.h
@@ -242,6 +242,7 @@ typedef enum {
WMI_GRP_PROTOTYPE, /* 0x38 */
WMI_GRP_MONITOR, /* 0x39 */
WMI_GRP_REGULATORY, /* 0x3a */
+ WMI_GRP_HW_DATA_FILTER, /* 0x3b */
} WMI_GRP_ID;
#define WMI_CMD_GRP_START_ID(grp_id) (((grp_id) << 12) | 0x1)
@@ -1031,6 +1032,7 @@ typedef enum {
WMI_BPF_GET_VDEV_STATS_CMDID,
WMI_BPF_SET_VDEV_INSTRUCTIONS_CMDID,
WMI_BPF_DEL_VDEV_INSTRUCTIONS_CMDID,
+ WMI_BPF_SET_VDEV_ACTIVE_MODE_CMDID,
/** WMI commands related to monitor mode. */
WMI_MNT_FILTER_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_MONITOR),
@@ -1050,6 +1052,10 @@ typedef enum {
WMI_NDP_INITIATOR_REQ_CMDID,
WMI_NDP_RESPONDER_REQ_CMDID,
WMI_NDP_END_REQ_CMDID,
+
+ /** WMI commands related to HW data filtering **/
+ WMI_HW_DATA_FILTER_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_HW_DATA_FILTER),
+
} WMI_CMD_ID;
typedef enum {
@@ -16852,6 +16858,12 @@ typedef struct {
*/
} wmi_scpc_event_fixed_param;
+typedef enum {
+FW_ACTIVE_BPF_MODE_DISABLE = (1 << 1),
+FW_ACTIVE_BPF_MODE_FORCE_ENABLE = (1 << 2),
+FW_ACTIVE_BPF_MODE_ADAPTIVE_ENABLE = (1 << 3),
+} FW_ACTIVE_BPF_MODE;
+
/* bpf interface structure */
typedef struct wmi_bpf_get_capability_cmd_s {
A_UINT32 tlv_header;
@@ -16863,6 +16875,8 @@ typedef struct wmi_bpf_capability_info_evt_s {
A_UINT32 bpf_version; /* fw's implement version */
A_UINT32 max_bpf_filters; /* max filters that fw supports */
A_UINT32 max_bytes_for_bpf_inst; /* the maximum bytes that can be used as bpf instructions */
+ A_UINT32 fw_active_bpf_support_mcbc_modes; /* multicast/broadcast - refer to FW_ACTIVE_BPF_MODE, it can be 'or' of them */
+ A_UINT32 fw_active_bpf_support_uc_modes; /* unicast - refer to FW_ACTIVE_BPF_MODE, it can be 'or' of them */
} wmi_bpf_capability_info_evt_fixed_param;
/* bit 0 of flags: report counters */
@@ -16903,6 +16917,14 @@ typedef struct wmi_bpf_del_vdev_instructions_cmd_s {
A_UINT32 filter_id; /* BPF_FILTER_ID_ALL means delete all */
} wmi_bpf_del_vdev_instructions_cmd_fixed_param;
+typedef struct wmi_bpf_set_vdev_active_mode_cmd_s {
+ A_UINT32 tlv_header;
+ A_UINT32 vdev_id;
+ A_UINT32 mcbc_mode; /* refer to FW_ACTIVE_BPF_MODE */
+ A_UINT32 uc_mode; /* refer to FW_ACTIVE_BPF_MODE */
+} wmi_bpf_set_vdev_active_mode_cmd_fixed_param;
+
+
#define AES_BLOCK_LEN 16 /* in bytes */
#define FIPS_KEY_LENGTH_128 16 /* in bytes */
#define FIPS_KEY_LENGTH_256 32 /* in bytes */
@@ -18719,6 +18741,8 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command)
WMI_RETURN_STRING(WMI_REQUEST_RADIO_CHAN_STATS_CMDID);
WMI_RETURN_STRING(WMI_ROAM_PER_CONFIG_CMDID);
WMI_RETURN_STRING(WMI_VDEV_ADD_MAC_ADDR_TO_RX_FILTER_CMDID);
+ WMI_RETURN_STRING(WMI_BPF_SET_VDEV_ACTIVE_MODE_CMDID);
+ WMI_RETURN_STRING(WMI_HW_DATA_FILTER_CMDID);
}
return "Invalid WMI cmd";
@@ -18904,6 +18928,19 @@ WMITLV_TAG_STRUC_wmi_vdev_add_mac_addr_to_rx_filter_event_fixed_params */
A_UINT32 status; /* status is 1 if success and 0 if failed */
} wmi_vdev_add_mac_addr_to_rx_filter_status_event_fixed_param;
+/* Definition of HW data filtering */
+typedef enum {
+ WMI_HW_DATA_FILTER_DROP_NON_ARP_BC = 0x01,
+ WMI_HW_DATA_FILTER_DROP_NON_ICMPV6_MC = 0x02,
+} WMI_HW_DATA_FILTER_BITMAP_TYPE;
+
+typedef struct {
+ A_UINT32 tlv_header;
+ A_UINT32 vdev_id;
+ A_UINT32 enable; /* 1 . enable, 0- disable */
+ A_UINT32 hw_filter_bitmap; /* see WMI_HW_DATA_FILTER_BITMAP_TYPE */
+ } wmi_hw_data_filter_cmd_fixed_param;
+
/* ADD NEW DEFS HERE */
/*****************************************************************************
diff --git a/target/inc/wmi_version.h b/target/inc/wmi_version.h
index e3d4c2cc5160..d3b2925302c1 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_ 332
+#define __WMI_REVISION_ 333
/** The Version Namespace should not be normally changed. Only
* host and firmware of the same WMI namespace will work