Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9c5104a7 authored by Dedy Lansky's avatar Dedy Lansky Committed by Maya Erez
Browse files

wil6210: align to latest auto generated wmi.h



Align to latest version of the auto generated wmi file
describing the interface with FW.

Change-Id: Icd49719ed4e3584eebb9e11553012144f8b5ad55
Signed-off-by: default avatarDedy Lansky <dlansky@codeaurora.org>
Signed-off-by: default avatarMaya Erez <merez@codeaurora.org>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
Git-commit: b5aeff16b20f65e6bb9ebafd06c1c96c2b503089
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git


Signed-off-by: default avatarMaya Erez <merez@codeaurora.org>
parent e7591514
Loading
Loading
Loading
Loading
+434 −25
Original line number Diff line number Diff line
@@ -53,6 +53,17 @@
 * must always be kept equal to (WMI_RF_RX2TX_LENGTH+1)
 */
#define WMI_RF_RX2TX_CONF_LENGTH	(4)
/* Qos configuration */
#define WMI_QOS_NUM_OF_PRIORITY		(4)
#define WMI_QOS_MIN_DEFAULT_WEIGHT	(10)
#define WMI_QOS_VRING_SLOT_MIN_MS	(2)
#define WMI_QOS_VRING_SLOT_MAX_MS	(10)
/* (WMI_QOS_MIN_DEFAULT_WEIGHT * WMI_QOS_VRING_SLOT_MAX_MS /
 * WMI_QOS_VRING_SLOT_MIN_MS)
 */
#define WMI_QOS_MAX_WEIGHT		50
#define WMI_QOS_SET_VIF_PRIORITY	(0xFF)
#define WMI_QOS_DEFAULT_PRIORITY	(WMI_QOS_NUM_OF_PRIORITY)

/* Mailbox interface
 * used for commands and events
@@ -88,6 +99,8 @@ enum wmi_fw_capability {
	WMI_FW_CAPABILITY_CHANNEL_BONDING		= 17,
	WMI_FW_CAPABILITY_REF_CLOCK_CONTROL		= 18,
	WMI_FW_CAPABILITY_AP_SME_OFFLOAD_NONE		= 19,
	WMI_FW_CAPABILITY_MULTI_VIFS			= 20,
	WMI_FW_CAPABILITY_FT_ROAMING			= 21,
	WMI_FW_CAPABILITY_BACK_WIN_SIZE_64		= 22,
	WMI_FW_CAPABILITY_AMSDU				= 23,
	WMI_FW_CAPABILITY_MAX,
@@ -113,6 +126,9 @@ enum wmi_command_id {
	WMI_SET_PROBED_SSID_CMDID			= 0x0A,
	/* deprecated */
	WMI_SET_LISTEN_INT_CMDID			= 0x0B,
	WMI_FT_AUTH_CMDID				= 0x0C,
	WMI_FT_REASSOC_CMDID				= 0x0D,
	WMI_UPDATE_FT_IES_CMDID				= 0x0E,
	WMI_BCON_CTRL_CMDID				= 0x0F,
	WMI_ADD_CIPHER_KEY_CMDID			= 0x16,
	WMI_DELETE_CIPHER_KEY_CMDID			= 0x17,
@@ -210,7 +226,12 @@ enum wmi_command_id {
	WMI_GET_PCP_FACTOR_CMDID			= 0x91B,
	/* Power Save Configuration Commands */
	WMI_PS_DEV_PROFILE_CFG_CMDID			= 0x91C,
	WMI_RS_ENABLE_CMDID				= 0x91E,
	WMI_RS_CFG_EX_CMDID				= 0x91F,
	WMI_GET_DETAILED_RS_RES_EX_CMDID		= 0x920,
	/* deprecated */
	WMI_RS_CFG_CMDID				= 0x921,
	/* deprecated */
	WMI_GET_DETAILED_RS_RES_CMDID			= 0x922,
	WMI_AOA_MEAS_CMDID				= 0x923,
	WMI_BRP_SET_ANT_LIMIT_CMDID			= 0x924,
@@ -239,7 +260,9 @@ enum wmi_command_id {
	WMI_PRIO_TX_SECTORS_ORDER_CMDID			= 0x9A5,
	WMI_PRIO_TX_SECTORS_NUMBER_CMDID		= 0x9A6,
	WMI_PRIO_TX_SECTORS_SET_DEFAULT_CFG_CMDID	= 0x9A7,
	/* deprecated */
	WMI_BF_CONTROL_CMDID				= 0x9AA,
	WMI_BF_CONTROL_EX_CMDID				= 0x9AB,
	WMI_TX_STATUS_RING_ADD_CMDID			= 0x9C0,
	WMI_RX_STATUS_RING_ADD_CMDID			= 0x9C1,
	WMI_TX_DESC_RING_ADD_CMDID			= 0x9C2,
@@ -255,6 +278,11 @@ enum wmi_command_id {
	WMI_GET_CCA_INDICATIONS_CMDID			= 0xA07,
	WMI_SET_CCA_INDICATIONS_BI_AVG_NUM_CMDID	= 0xA08,
	WMI_INTERNAL_FW_IOCTL_CMDID			= 0xA0B,
	WMI_LINK_STATS_CMDID				= 0xA0C,
	WMI_SET_GRANT_MCS_CMDID				= 0xA0E,
	WMI_SET_AP_SLOT_SIZE_CMDID			= 0xA0F,
	WMI_SET_VRING_PRIORITY_WEIGHT_CMDID		= 0xA10,
	WMI_SET_VRING_PRIORITY_CMDID			= 0xA11,
	WMI_SET_MAC_ADDRESS_CMDID			= 0xF003,
	WMI_ABORT_SCAN_CMDID				= 0xF007,
	WMI_SET_PROMISCUOUS_MODE_CMDID			= 0xF041,
@@ -470,6 +498,30 @@ struct wmi_start_sched_scan_cmd {
	struct wmi_sched_scan_plan scan_plans[WMI_MAX_PLANS_NUM];
} __packed;

/* WMI_FT_AUTH_CMDID */
struct wmi_ft_auth_cmd {
	u8 bssid[WMI_MAC_LEN];
	/* enum wmi_channel */
	u8 channel;
	/* enum wmi_channel */
	u8 edmg_channel;
	u8 reserved[4];
} __packed;

/* WMI_FT_REASSOC_CMDID */
struct wmi_ft_reassoc_cmd {
	u8 bssid[WMI_MAC_LEN];
	u8 reserved[2];
} __packed;

/* WMI_UPDATE_FT_IES_CMDID */
struct wmi_update_ft_ies_cmd {
	/* Length of the FT IEs */
	__le16 ie_len;
	u8 reserved[2];
	u8 ie_info[0];
} __packed;

/* WMI_SET_PROBED_SSID_CMDID */
#define MAX_PROBED_SSID_INDEX	(3)

@@ -769,7 +821,11 @@ struct wmi_vring_cfg {
	u8 cid;
	/* Used when cidxtid = CIDXTID_EXTENDED_CID_TID */
	u8 tid;
	u8 reserved[2];
	/* Update the vring's priority for Qos purpose. Set to
	 * WMI_QOS_DEFAULT_PRIORITY to use MID's QoS priority
	 */
	u8 qos_priority;
	u8 reserved;
} __packed;

enum wmi_vring_cfg_cmd_action {
@@ -800,20 +856,6 @@ struct wmi_bcast_vring_cfg_cmd {
	struct wmi_bcast_vring_cfg vring_cfg;
} __packed;

/* WMI_LO_POWER_CALIB_FROM_OTP_CMDID */
struct wmi_lo_power_calib_from_otp_cmd {
	/* index to read from OTP. zero based */
	u8 index;
	u8 reserved[3];
} __packed;

/* WMI_LO_POWER_CALIB_FROM_OTP_EVENTID */
struct wmi_lo_power_calib_from_otp_event {
	/* wmi_fw_status */
	u8 status;
	u8 reserved[3];
} __packed;

struct wmi_edma_ring_cfg {
	__le64 ring_mem_base;
	/* size in number of items */
@@ -886,6 +928,20 @@ struct wmi_bcast_desc_ring_add_cmd {
	u8 reserved[4];
} __packed;

/* WMI_LO_POWER_CALIB_FROM_OTP_CMDID */
struct wmi_lo_power_calib_from_otp_cmd {
	/* index to read from OTP. zero based */
	u8 index;
	u8 reserved[3];
} __packed;

/* WMI_LO_POWER_CALIB_FROM_OTP_EVENTID */
struct wmi_lo_power_calib_from_otp_event {
	/* wmi_fw_status */
	u8 status;
	u8 reserved[3];
} __packed;

/* WMI_RING_BA_EN_CMDID */
struct wmi_ring_ba_en_cmd {
	u8 ring_id;
@@ -1444,6 +1500,10 @@ struct wmi_fixed_scheduling_config_complete_event {
	u8 reserved[3];
} __packed;

/* This value exists for backwards compatibility only.
 * Do not use it in new commands.
 * Use dynamic arrays where possible.
 */
#define WMI_NUM_MCS	(13)

/* WMI_FIXED_SCHEDULING_CONFIG_CMDID */
@@ -1503,12 +1563,12 @@ struct wmi_set_long_range_config_complete_event {
	u8 reserved[3];
} __packed;

/* payload max size is 236 bytes: max event buffer size (256) - WMI headers
/* payload max size is 1024 bytes: max event buffer size (1044) - WMI headers
 * (16) - prev struct field size (4)
 */
#define WMI_MAX_IOCTL_PAYLOAD_SIZE		(236)
#define WMI_MAX_IOCTL_REPLY_PAYLOAD_SIZE	(236)
#define WMI_MAX_INTERNAL_EVENT_PAYLOAD_SIZE	(236)
#define WMI_MAX_IOCTL_PAYLOAD_SIZE		(1024)
#define WMI_MAX_IOCTL_REPLY_PAYLOAD_SIZE	(1024)
#define WMI_MAX_INTERNAL_EVENT_PAYLOAD_SIZE	(1024)

enum wmi_internal_fw_ioctl_code {
	WMI_INTERNAL_FW_CODE_NONE	= 0x0,
@@ -1548,7 +1608,37 @@ struct wmi_internal_fw_event_event {
	__le32 payload[0];
} __packed;

/* WMI_BF_CONTROL_CMDID */
/* WMI_SET_VRING_PRIORITY_WEIGHT_CMDID */
struct wmi_set_vring_priority_weight_cmd {
	/* Array of weights. Valid values are
	 * WMI_QOS_MIN_DEFAULT_WEIGHT...WMI_QOS_MAX_WEIGHT. Weight #0 is
	 * hard-coded WMI_QOS_MIN_WEIGHT. This array provide the weights
	 * #1..#3
	 */
	u8 weight[3];
	u8 reserved;
} __packed;

/* WMI_SET_VRING_PRIORITY_CMDID */
struct wmi_vring_priority {
	u8 vring_idx;
	/* Weight index. Valid value is 0-3 */
	u8 priority;
	u8 reserved[2];
} __packed;

/* WMI_SET_VRING_PRIORITY_CMDID */
struct wmi_set_vring_priority_cmd {
	/* number of entries in vring_priority. Set to
	 * WMI_QOS_SET_VIF_PRIORITY to update the VIF's priority, and there
	 * will be only one entry in vring_priority
	 */
	u8 num_of_vrings;
	u8 reserved[3];
	struct wmi_vring_priority vring_priority[0];
} __packed;

/* WMI_BF_CONTROL_CMDID - deprecated */
struct wmi_bf_control_cmd {
	/* wmi_bf_triggers */
	__le32 triggers;
@@ -1590,6 +1680,97 @@ struct wmi_bf_control_cmd {
	u8 reserved2[2];
} __packed;

/* BF configuration for each MCS */
struct wmi_bf_control_ex_mcs {
	/* Long term throughput threshold [Mbps] */
	u8 long_term_mbps_th_tbl;
	u8 reserved;
	/* Long term timeout threshold table [msec] */
	__le16 long_term_trig_timeout_per_mcs;
} __packed;

/* WMI_BF_CONTROL_EX_CMDID */
struct wmi_bf_control_ex_cmd {
	/* wmi_bf_triggers */
	__le32 triggers;
	/* enum wmi_edmg_tx_mode */
	u8 tx_mode;
	/* DISABLED = 0, ENABLED = 1 , DRY_RUN = 2 */
	u8 txss_mode;
	/* DISABLED = 0, ENABLED = 1, DRY_RUN = 2 */
	u8 brp_mode;
	/* Max cts threshold (correspond to
	 * WMI_BF_TRIGGER_MAX_CTS_FAILURE_IN_TXOP)
	 */
	u8 bf_trigger_max_cts_failure_thr;
	/* Max cts threshold in dense (correspond to
	 * WMI_BF_TRIGGER_MAX_CTS_FAILURE_IN_TXOP)
	 */
	u8 bf_trigger_max_cts_failure_dense_thr;
	/* Max b-ack threshold (correspond to
	 * WMI_BF_TRIGGER_MAX_BACK_FAILURE)
	 */
	u8 bf_trigger_max_back_failure_thr;
	/* Max b-ack threshold in dense (correspond to
	 * WMI_BF_TRIGGER_MAX_BACK_FAILURE)
	 */
	u8 bf_trigger_max_back_failure_dense_thr;
	u8 reserved0;
	/* Wrong sectors threshold */
	__le32 wrong_sector_bis_thr;
	/* BOOL to enable/disable long term trigger */
	u8 long_term_enable;
	/* 1 = Update long term thresholds from the long_term_mbps_th_tbl and
	 * long_term_trig_timeout_per_mcs arrays, 0 = Ignore
	 */
	u8 long_term_update_thr;
	u8 each_mcs_cfg_size;
	u8 reserved1;
	/* Configuration for each MCS */
	struct wmi_bf_control_ex_mcs each_mcs_cfg[0];
} __packed;

/* WMI_LINK_STATS_CMD */
enum wmi_link_stats_action {
	WMI_LINK_STATS_SNAPSHOT		= 0x00,
	WMI_LINK_STATS_PERIODIC		= 0x01,
	WMI_LINK_STATS_STOP_PERIODIC	= 0x02,
};

/* WMI_LINK_STATS_EVENT record identifiers */
enum wmi_link_stats_record_type {
	WMI_LINK_STATS_TYPE_BASIC	= 0x01,
	WMI_LINK_STATS_TYPE_MAC		= 0x02,
	WMI_LINK_STATS_TYPE_PHY		= 0x04,
	WMI_LINK_STATS_TYPE_OTA		= 0x08,
};

/* WMI_LINK_STATS_CMDID */
struct wmi_link_stats_cmd {
	/* bitmask of required record types
	 * (wmi_link_stats_record_type_e)
	 */
	__le32 record_type_mask;
	/* 0xff for all cids */
	u8 cid;
	/* wmi_link_stats_action_e */
	u8 action;
	u8 reserved[6];
	/* for WMI_LINK_STATS_PERIODIC */
	__le32 interval_msec;
} __packed;

/* WMI_SET_GRANT_MCS_CMDID */
struct wmi_set_grant_mcs_cmd {
	u8 mcs;
	u8 reserved[3];
} __packed;

/* WMI_SET_AP_SLOT_SIZE_CMDID */
struct wmi_set_ap_slot_size_cmd {
	__le32 slot_size;
} __packed;

/* WMI Events
 * List of Events (target to host)
 */
@@ -1602,6 +1783,8 @@ enum wmi_event_id {
	WMI_SCHED_SCAN_RESULT_EVENTID			= 0x1007,
	WMI_SCAN_COMPLETE_EVENTID			= 0x100A,
	WMI_REPORT_STATISTICS_EVENTID			= 0x100B,
	WMI_FT_AUTH_STATUS_EVENTID			= 0x100C,
	WMI_FT_REASSOC_STATUS_EVENTID			= 0x100D,
	WMI_RD_MEM_RSP_EVENTID				= 0x1800,
	WMI_FW_READY_EVENTID				= 0x1801,
	WMI_EXIT_FAST_MEM_ACC_MODE_EVENTID		= 0x200,
@@ -1678,7 +1861,12 @@ enum wmi_event_id {
	WMI_PCP_FACTOR_EVENTID				= 0x191A,
	/* Power Save Configuration Events */
	WMI_PS_DEV_PROFILE_CFG_EVENTID			= 0x191C,
	WMI_RS_ENABLE_EVENTID				= 0x191E,
	WMI_RS_CFG_EX_EVENTID				= 0x191F,
	WMI_GET_DETAILED_RS_RES_EX_EVENTID		= 0x1920,
	/* deprecated */
	WMI_RS_CFG_DONE_EVENTID				= 0x1921,
	/* deprecated */
	WMI_GET_DETAILED_RS_RES_EVENTID			= 0x1922,
	WMI_AOA_MEAS_EVENTID				= 0x1923,
	WMI_BRP_SET_ANT_LIMIT_EVENTID			= 0x1924,
@@ -1706,7 +1894,9 @@ enum wmi_event_id {
	WMI_PRIO_TX_SECTORS_ORDER_EVENTID		= 0x19A5,
	WMI_PRIO_TX_SECTORS_NUMBER_EVENTID		= 0x19A6,
	WMI_PRIO_TX_SECTORS_SET_DEFAULT_CFG_EVENTID	= 0x19A7,
	/* deprecated */
	WMI_BF_CONTROL_EVENTID				= 0x19AA,
	WMI_BF_CONTROL_EX_EVENTID			= 0x19AB,
	WMI_TX_STATUS_RING_CFG_DONE_EVENTID		= 0x19C0,
	WMI_RX_STATUS_RING_CFG_DONE_EVENTID		= 0x19C1,
	WMI_TX_DESC_RING_CFG_DONE_EVENTID		= 0x19C2,
@@ -1722,6 +1912,12 @@ enum wmi_event_id {
	WMI_SET_CCA_INDICATIONS_BI_AVG_NUM_EVENTID	= 0x1A08,
	WMI_INTERNAL_FW_EVENT_EVENTID			= 0x1A0A,
	WMI_INTERNAL_FW_IOCTL_EVENTID			= 0x1A0B,
	WMI_LINK_STATS_CONFIG_DONE_EVENTID		= 0x1A0C,
	WMI_LINK_STATS_EVENTID				= 0x1A0D,
	WMI_SET_GRANT_MCS_EVENTID			= 0x1A0E,
	WMI_SET_AP_SLOT_SIZE_EVENTID			= 0x1A0F,
	WMI_SET_VRING_PRIORITY_WEIGHT_EVENTID		= 0x1A10,
	WMI_SET_VRING_PRIORITY_EVENTID			= 0x1A11,
	WMI_SET_CHANNEL_EVENTID				= 0x9000,
	WMI_ASSOC_REQ_EVENTID				= 0x9001,
	WMI_EAPOL_RX_EVENTID				= 0x9002,
@@ -1990,6 +2186,33 @@ struct wmi_scan_complete_event {
	__le32 status;
} __packed;

/* WMI_FT_AUTH_STATUS_EVENTID */
struct wmi_ft_auth_status_event {
	/* enum wmi_fw_status */
	u8 status;
	u8 reserved[3];
	u8 mac_addr[WMI_MAC_LEN];
	__le16 ie_len;
	u8 ie_info[0];
} __packed;

/* WMI_FT_REASSOC_STATUS_EVENTID */
struct wmi_ft_reassoc_status_event {
	/* enum wmi_fw_status */
	u8 status;
	/* association id received from new AP */
	u8 aid;
	/* enum wmi_channel */
	u8 channel;
	/* enum wmi_channel */
	u8 edmg_channel;
	u8 mac_addr[WMI_MAC_LEN];
	__le16 beacon_ie_len;
	__le16 reassoc_req_ie_len;
	__le16 reassoc_resp_ie_len;
	u8 ie_info[0];
} __packed;

/* wmi_rx_mgmt_info */
struct wmi_rx_mgmt_info {
	u8 mcs;
@@ -2484,6 +2707,81 @@ struct wmi_rs_cfg {
	__le32 mcs_en_vec;
} __packed;

enum wmi_edmg_tx_mode {
	WMI_TX_MODE_DMG			= 0x0,
	WMI_TX_MODE_EDMG_CB1		= 0x1,
	WMI_TX_MODE_EDMG_CB2		= 0x2,
	WMI_TX_MODE_EDMG_CB1_LONG_LDPC	= 0x3,
	WMI_TX_MODE_EDMG_CB2_LONG_LDPC	= 0x4,
	WMI_TX_MODE_MAX,
};

/* Rate search parameters common configuration */
struct wmi_rs_cfg_ex_common {
	/* enum wmi_edmg_tx_mode */
	u8 mode;
	/* stop threshold [0-100] */
	u8 stop_th;
	/* MCS1 stop threshold [0-100] */
	u8 mcs1_fail_th;
	u8 max_back_failure_th;
	/* Debug feature for disabling internal RS trigger (which is
	 * currently triggered by BF Done)
	 */
	u8 dbg_disable_internal_trigger;
	u8 reserved[3];
	__le32 back_failure_mask;
} __packed;

/* Rate search parameters configuration per MCS */
struct wmi_rs_cfg_ex_mcs {
	/* The maximal allowed PER for each MCS
	 * MCS will be considered as failed if PER during RS is higher
	 */
	u8 per_threshold;
	/* Number of MPDUs for each MCS
	 * this is the minimal statistic required to make an educated
	 * decision
	 */
	u8 min_frame_cnt;
	u8 reserved[2];
} __packed;

/* WMI_RS_CFG_EX_CMDID */
struct wmi_rs_cfg_ex_cmd {
	/* Configuration for all MCSs */
	struct wmi_rs_cfg_ex_common common_cfg;
	u8 each_mcs_cfg_size;
	u8 reserved[3];
	/* Configuration for each MCS */
	struct wmi_rs_cfg_ex_mcs each_mcs_cfg[0];
} __packed;

/* WMI_RS_CFG_EX_EVENTID */
struct wmi_rs_cfg_ex_event {
	/* enum wmi_edmg_tx_mode */
	u8 mode;
	/* enum wmi_fw_status */
	u8 status;
	u8 reserved[2];
} __packed;

/* WMI_RS_ENABLE_CMDID */
struct wmi_rs_enable_cmd {
	u8 cid;
	/* enable or disable rate search */
	u8 rs_enable;
	u8 reserved[2];
	__le32 mcs_en_vec;
} __packed;

/* WMI_RS_ENABLE_EVENTID */
struct wmi_rs_enable_event {
	/* enum wmi_fw_status */
	u8 status;
	u8 reserved[3];
} __packed;

/* Slot types */
enum wmi_sched_scheme_slot_type {
	WMI_SCHED_SLOT_SP		= 0x0,
@@ -2576,7 +2874,7 @@ struct wmi_scheduling_scheme_event {
	u8 reserved[1];
} __packed;

/* WMI_RS_CFG_CMDID */
/* WMI_RS_CFG_CMDID - deprecated */
struct wmi_rs_cfg_cmd {
	/* connection id */
	u8 cid;
@@ -2586,7 +2884,7 @@ struct wmi_rs_cfg_cmd {
	struct wmi_rs_cfg rs_cfg;
} __packed;

/* WMI_RS_CFG_DONE_EVENTID */
/* WMI_RS_CFG_DONE_EVENTID - deprecated */
struct wmi_rs_cfg_done_event {
	u8 cid;
	/* enum wmi_fw_status */
@@ -2594,7 +2892,7 @@ struct wmi_rs_cfg_done_event {
	u8 reserved[2];
} __packed;

/* WMI_GET_DETAILED_RS_RES_CMDID */
/* WMI_GET_DETAILED_RS_RES_CMDID - deprecated */
struct wmi_get_detailed_rs_res_cmd {
	/* connection id */
	u8 cid;
@@ -2619,7 +2917,7 @@ struct wmi_rs_results {
	u8 mcs;
} __packed;

/* WMI_GET_DETAILED_RS_RES_EVENTID */
/* WMI_GET_DETAILED_RS_RES_EVENTID - deprecated */
struct wmi_get_detailed_rs_res_event {
	u8 cid;
	/* enum wmi_rs_results_status */
@@ -2629,6 +2927,45 @@ struct wmi_get_detailed_rs_res_event {
	u8 reserved[3];
} __packed;

/* WMI_GET_DETAILED_RS_RES_EX_CMDID */
struct wmi_get_detailed_rs_res_ex_cmd {
	u8 cid;
	u8 reserved[3];
} __packed;

/* Rate search results */
struct wmi_rs_results_ex_common {
	/* RS timestamp */
	__le32 tsf;
	/* RS selected MCS */
	u8 mcs;
	/* enum wmi_edmg_tx_mode */
	u8 mode;
	u8 reserved[2];
} __packed;

/* Rate search results */
struct wmi_rs_results_ex_mcs {
	/* number of sent MPDUs */
	u8 num_of_tx_pkt;
	/* number of non-acked MPDUs */
	u8 num_of_non_acked_pkt;
	u8 reserved[2];
} __packed;

/* WMI_GET_DETAILED_RS_RES_EX_EVENTID */
struct wmi_get_detailed_rs_res_ex_event {
	u8 cid;
	/* enum wmi_rs_results_status */
	u8 status;
	u8 reserved0[2];
	struct wmi_rs_results_ex_common common_rs_results;
	u8 each_mcs_results_size;
	u8 reserved1[3];
	/* Results for each MCS */
	struct wmi_rs_results_ex_mcs each_mcs_results[0];
} __packed;

/* BRP antenna limit mode */
enum wmi_brp_ant_limit_mode {
	/* Disable BRP force antenna limit */
@@ -3379,13 +3716,20 @@ struct wmi_get_assoc_list_res_event {
	u8 reserved[3];
} __packed;

/* WMI_BF_CONTROL_EVENTID */
/* WMI_BF_CONTROL_EVENTID - deprecated */
struct wmi_bf_control_event {
	/* wmi_fw_status */
	u8 status;
	u8 reserved[3];
} __packed;

/* WMI_BF_CONTROL_EX_EVENTID */
struct wmi_bf_control_ex_event {
	/* wmi_fw_status */
	u8 status;
	u8 reserved[3];
} __packed;

/* WMI_COMMAND_NOT_SUPPORTED_EVENTID */
struct wmi_command_not_supported_event {
	/* device id */
@@ -3455,4 +3799,69 @@ struct wmi_internal_fw_set_channel_event {
	u8 reserved[3];
} __packed;

/* WMI_LINK_STATS_CONFIG_DONE_EVENTID */
struct wmi_link_stats_config_done_event {
	/* wmi_fw_status_e */
	u8 status;
	u8 reserved[3];
} __packed;

/* WMI_LINK_STATS_EVENTID */
struct wmi_link_stats_event {
	__le16 payload_size;
	u8 has_next;
	u8 reserved[5];
	/* a stream of records, e.g. wmi_link_stats_basic_s */
	u8 payload[0];
} __packed;

/* WMI_LINK_STATS_EVENT record struct */
struct wmi_link_stats_basic {
	/* WMI_LINK_STATS_TYPE_BASIC */
	u8 record_type_id;
	u8 cid;
	/* 0: fail; 1: OK; 2: retrying */
	u8 bf_status;
	s8 rssi;
	u8 sqi;
	u8 selected_rfc;
	__le16 bf_mcs;
	__le32 tx_tpt;
	__le32 tx_goodput;
	__le32 rx_goodput;
	__le16 my_rx_sector;
	__le16 my_tx_sector;
	__le16 other_rx_sector;
	__le16 other_tx_sector;
	__le32 reserved[2];
} __packed;

/* WMI_SET_GRANT_MCS_EVENTID */
struct wmi_set_grant_mcs_event {
	/* wmi_fw_status */
	u8 status;
	u8 reserved[3];
} __packed;

/* WMI_SET_AP_SLOT_SIZE_EVENTID */
struct wmi_set_ap_slot_size_event {
	/* wmi_fw_status */
	u8 status;
	u8 reserved[3];
} __packed;

/* WMI_SET_VRING_PRIORITY_WEIGHT_EVENTID */
struct wmi_set_vring_priority_weight_event {
	/* wmi_fw_status */
	u8 status;
	u8 reserved[3];
} __packed;

/* WMI_SET_VRING_PRIORITY_EVENTID */
struct wmi_set_vring_priority_event {
	/* wmi_fw_status */
	u8 status;
	u8 reserved[3];
} __packed;

#endif /* __WILOCITY_WMI_H__ */