fw-api: CL 13961454 - update fw common interface files

Change-Id: I94b9e2e28d69819a05d4f3b4322850990dd3b8cd
WMI: MGMT_RX_REO_FILTER_CONFIGURATION_CMD,FW_CONSUMED_MGMT_RX_EVENT msg defs
CRs-Fixed: 2262693
This commit is contained in:
spuligil 2021-05-19 06:07:49 -07:00
commit 93100c8f7a
3 changed files with 119 additions and 2 deletions

View file

@ -1153,6 +1153,9 @@ typedef enum {
WMITLV_TAG_STRUC_wmi_pdev_extd_stats,
WMITLV_TAG_STRUC_wmi_peer_assoc_mlo_params,
WMITLV_TAG_STRUC_wmi_vdev_smart_monitor_event_fixed_param,
WMITLV_TAG_STRUC_wmi_mgmt_rx_reo_params,
WMITLV_TAG_STRUC_wmi_mgmt_rx_fw_consumed_hdr,
WMITLV_TAG_STRUC_wmi_mgmt_rx_reo_filter_configuration_cmd_fixed_param,
} WMITLV_TAG_ID;
/*
@ -1615,6 +1618,7 @@ typedef enum {
OP(WMI_MLO_READY_CMDID) \
OP(WMI_MLO_TEARDOWN_CMDID) \
OP(WMI_VDEV_IGMP_OFFLOAD_CMDID) \
OP(WMI_MGMT_RX_REO_FILTER_CONFIGURATION_CMDID) \
/* add new CMD_LIST elements above this line */
@ -1881,6 +1885,7 @@ typedef enum {
OP(WMI_MLO_SETUP_COMPLETE_EVENTID) \
OP(WMI_MLO_TEARDOWN_COMPLETE_EVENTID) \
OP(WMI_VDEV_SMART_MONITOR_EVENTID) \
OP(WMI_MGMT_RX_FW_CONSUMED_EVENTID) \
/* add new EVT_LIST elements above this line */
@ -4658,6 +4663,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_MLO_TEARDOWN_CMDID);
WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_FIXED_STRUC, WMI_IPV4_ADDR, mc_ipv4_list, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_IGMP_OFFLOAD_CMDID);
/* WMI CMD to receive the management filter criteria from the host for Rx REO */
#define WMITLV_TABLE_WMI_MGMT_RX_REO_FILTER_CONFIGURATION_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mgmt_rx_reo_filter_configuration_cmd_fixed_param, wmi_mgmt_rx_reo_filter_configuration_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_MGMT_RX_REO_FILTER_CONFIGURATION_CMDID);
/************************** TLV definitions of WMI events *******************************/
@ -4900,9 +4910,15 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PEER_STA_KICKOUT_EVENTID);
#define WMITLV_TABLE_WMI_MGMT_RX_EVENTID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mgmt_rx_hdr, wmi_mgmt_rx_hdr, hdr, WMITLV_SIZE_FIX) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_rssi_ctl_ext, rssi_ctl_ext, WMITLV_SIZE_VAR)
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_rssi_ctl_ext, rssi_ctl_ext, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mgmt_rx_reo_params, wmi_mgmt_rx_reo_params, reo_params, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_MGMT_RX_EVENTID);
/* Management Rx FW Consumed Event */
#define WMITLV_TABLE_WMI_MGMT_RX_FW_CONSUMED_EVENTID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mgmt_rx_fw_consumed_hdr, wmi_mgmt_rx_fw_consumed_hdr, hdr, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_MGMT_RX_FW_CONSUMED_EVENTID);
/* TBTT offset Event */
#define WMITLV_TABLE_WMI_TBTTOFFSET_UPDATE_EVENTID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_tbtt_offset_event_fixed_param, wmi_tbtt_offset_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \

View file

@ -678,6 +678,8 @@ typedef enum {
WMI_FD_TMPL_CMDID,
/** Transmit QoS null Frame over wmi interface */
WMI_QOS_NULL_FRAME_TX_SEND_CMDID,
/** WMI CMD to receive the management filter criteria from the host for RX REO */
WMI_MGMT_RX_REO_FILTER_CONFIGURATION_CMDID,
/** commands to directly control ba negotiation directly from host. only used in test mode */
@ -1686,6 +1688,9 @@ typedef enum {
/** Event for QoS null frame TX completion */
WMI_QOS_NULL_FRAME_TX_COMPLETION_EVENTID,
/** WMI event for Firmware Consumed/Dropped Rx management frames indication */
WMI_MGMT_RX_FW_CONSUMED_EVENTID,
/* ADDBA Related WMI Events*/
/** Indication the completion of the prior
@ -5058,6 +5063,79 @@ typedef struct {
#define MAX_ANTENNA_EIGHT 8
/** Helper macro for params GET/SET of MGMT_RX_FW_CONSUMED_EVENTID */
#define WMI_MGMT_RX_FW_CONSUMED_PARAM_PEER_ID_GET(peer_info_subtype) WMI_GET_BITS(peer_info_subtype, 0, 16)
#define WMI_MGMT_RX_FW_CONSUMED_PARAM_PEER_ID_SET(peer_info_subtype, value) WMI_SET_BITS(peer_info_subtype, 0, 16, value)
#define WMI_MGMT_RX_FW_CONSUMED_PARAM_IEEE_LINK_ID_GET(peer_info_subtype) WMI_GET_BITS(peer_info_subtype, 16, 3)
#define WMI_MGMT_RX_FW_CONSUMED_PARAM_IEEE_LINK_ID_SET(peer_info_subtype, value) WMI_SET_BITS(peer_info_subtype, 16, 3, value)
#define WMI_MGMT_RX_FW_CONSUMED_PARAM_SUBTYPE_GET(peer_info_subtype) WMI_GET_BITS(peer_info_subtype, 28, 4)
#define WMI_MGMT_RX_FW_CONSUMED_PARAM_SUBTYPE_SET(peer_info_subtype, value) WMI_SET_BITS(peer_info_subtype, 28, 4, value)
#define WMI_MGMT_RX_FW_CONSUMED_PARAM_MGMT_PKT_CTR_VALID_GET(mgmt_pkt_ctr_info) WMI_GET_BITS(mgmt_pkt_ctr_info, 15, 1)
#define WMI_MGMT_RX_FW_CONSUMED_PARAM_MGMT_PKT_CTR_VALID_SET(mgmt_pkt_ctr_info, value) WMI_SET_BITS(mgmt_pkt_ctr_info, 15, 1, value)
#define WMI_MGMT_RX_FW_CONSUMED_PARAM_MGMT_PKT_CTR_GET(mgmt_pkt_ctr_info) WMI_GET_BITS(mgmt_pkt_ctr_info, 16, 16)
#define WMI_MGMT_RX_FW_CONSUMED_PARAM_MGMT_PKT_CTR_SET(mgmt_pkt_ctr_info, value) WMI_SET_BITS(mgmt_pkt_ctr_info, 16, 16, value)
typedef struct {
A_UINT32 tlv_header; /* WMITLV_TAG_STRUCT_wmi_mgmt_rx_fw_consumed_hdr */
A_UINT32 rx_tsf_l32; /* h/w assigned timestamp of the rx frame in micro sec */
A_UINT32 rx_tsf_u32 ;/* h/w assigned timestamp of the rx frame in micro sec */
A_UINT32 pdev_id; /* pdev_id for identifying the MAC the rx mgmt frame was received by */
/**
* peer_info_subtype
*
* [15:0]: ml_peer_id, ML peer_id unique across chips
* [18:16]: ieee_link_id, protocol link id on which the rx frame is received
* [27:19]: reserved
* [31:28]: subtype, subtype of the received MGMT frame
*/
A_UINT32 peer_info_subtype;
A_UINT32 chan_freq; /* frequency in MHz of the channel on which this frame was received */
/* Timestamp (in micro sec) of the last fw consumed/dropped mgmt. frame, same across chips */
A_UINT32 global_timestamp;
/**
* mgmt_pkt_ctr_info
*
* [14:0]: reserved
* [15]: mgmt_pkt_ctr_valid
* [31:16]: mgmt_pkt_ctr, Sequence number of the last fw consumed mgmt frame
*/
A_UINT32 mgmt_pkt_ctr_info;
} wmi_mgmt_rx_fw_consumed_hdr;
/** Helper macro for param GET/SET of mgmt_rx_reo_params */
#define WMI_MGMT_RX_REO_PARAM_IEEE_LINK_ID_GET(mgmt_pkt_ctr_link_info) WMI_GET_BITS(mgmt_pkt_ctr_link_info, 12, 3)
#define WMI_MGMT_RX_REO_PARAM_IEEE_LINK_ID_SET(mgmt_pkt_ctr_link_info, value) WMI_SET_BITS(mgmt_pkt_ctr_link_info, 12, 3, value)
#define WMI_MGMT_RX_REO_PARAM_MGMT_PKT_CTR_VALID_GET(mgmt_pkt_ctr_link_info) WMI_GET_BITS(mgmt_pkt_ctr_link_info, 15, 1)
#define WMI_MGMT_RX_REO_PARAM_MGMT_PKT_CTR_VALID_SET(mgmt_pkt_ctr_link_info, value) WMI_SET_BITS(mgmt_pkt_ctr_link_info, 15, 1, value)
#define WMI_MGMT_RX_REO_PARAM_MGMT_PKT_CTR_GET(mgmt_pkt_ctr_link_info) WMI_GET_BITS(mgmt_pkt_ctr_link_info, 16, 16)
#define WMI_MGMT_RX_REO_PARAM_MGMT_PKT_CTR_SET(mgmt_pkt_ctr_link_info, value) WMI_SET_BITS(mgmt_pkt_ctr_link_info, 16, 16, value)
/** Data structure of the TLV to add in RX EVENTID for providing REO params
* like global_timestamp and mgmt_pkt_ctr
*/
typedef struct {
A_UINT32 tlv_header; /*TLV WMITLV_TAG_STRUC_wmi_mgmt_rx_reo_params*/
/* Timestamp (in micro sec) of the last fw forwarded mgmt. frame, same across chips */
A_UINT32 global_timestamp;
/**
* mgmt_pkt_ctr_link_info
*
* [11:0]: reserved
* [14:12]: ieee_link_id, protocol link id on which the rx frame is received
* [15]: mgmt_pkt_ctr_valid
* [31:16]: mgmt_pkt_ctr, Sequence number of the last fw forwarded mgmt frame
*/
A_UINT32 mgmt_pkt_ctr_link_info;
} wmi_mgmt_rx_reo_params;
typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_mgmt_rx_hdr */
/** channel on which this frame is received (channel number) */
@ -5112,8 +5190,30 @@ typedef struct {
/* This TLV is optionally followed by array of struct:
* wmi_rssi_ctl_ext rssi_ctl_ext;
*/
/*
* This TLV is followed by struct:
* wmi_mgmt_rx_reo_params reo_params;// MGMT rx REO params
*/
} wmi_mgmt_rx_hdr;
/* WMI CMD to receive the management filter criteria from the host */
typedef struct {
A_UINT32 tlv_header; /* WMITLV_TAG_STRUC_wmi_mgmt_reo_filter_cmd_fixed_param */
A_UINT32 pdev_id; /* pdev_id for identifying the MAC */
/* filter:
* Each bit represents the possible combination of frame type (2 bits)
* and subtype (4 bits)
* There would be 64 such combinations as per the 802.11 standard
* For Exp : We have beacon frame, we will take the type and subtype
* of this frame and concatenate the bits, it will give 6 bits
* number. We need to go to that bit position in the below
* 2 filter_low and filter_high bitmap and set the bit.
*/
A_UINT32 filter_low;
A_UINT32 filter_high;
} wmi_mgmt_rx_reo_filter_configuration_cmd_fixed_param;
typedef enum {
PKT_CAPTURE_MODE_DISABLE = 0,
PKT_CAPTURE_MODE_MGMT_ONLY,
@ -28602,6 +28702,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command)
WMI_RETURN_STRING(WMI_MLO_READY_CMDID);
WMI_RETURN_STRING(WMI_MLO_TEARDOWN_CMDID);
WMI_RETURN_STRING(WMI_VDEV_IGMP_OFFLOAD_CMDID);
WMI_RETURN_STRING(WMI_MGMT_RX_REO_FILTER_CONFIGURATION_CMDID);
}
return "Invalid WMI cmd";

View file

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