diff options
| author | c_manjee <manjee@codeaurora.org> | 2017-01-11 17:06:55 +0530 |
|---|---|---|
| committer | qcabuildsw <qcabuildsw@localhost> | 2017-01-26 16:27:27 -0800 |
| commit | 21af4fbbd9975fffdc5b0c8ae05afd7278b3e88b (patch) | |
| tree | 4261072b9daa85d5c5471d206bfb1fe964daa0f7 | |
| parent | 6a9a784f347f63790706f7bcd2d212d59daaf91c (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.h | 13 | ||||
| -rw-r--r-- | target/inc/wmi_unified.h | 37 | ||||
| -rw-r--r-- | target/inc/wmi_version.h | 2 |
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 |
