wil6210: align to latest auto generated wmi.h

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

Signed-off-by: Dedy Lansky <dlansky@codeaurora.org>
Signed-off-by: Maya Erez <merez@codeaurora.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:
Dedy Lansky 2018-07-24 10:44:28 +03:00 committed by Kalle Valo
parent 1c0dd5f5f3
commit b5aeff16b2

View File

@ -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
@ -86,6 +97,8 @@ enum wmi_fw_capability {
WMI_FW_CAPABILITY_PNO = 15,
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_AMSDU = 23,
WMI_FW_CAPABILITY_MAX,
};
@ -110,6 +123,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,
@ -207,7 +223,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,
@ -236,7 +257,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,
@ -252,6 +275,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,
@ -450,6 +478,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)
@ -744,7 +796,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 {
@ -775,20 +831,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 */
@ -861,6 +903,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;
@ -1419,6 +1475,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 */
@ -1478,12 +1538,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,
@ -1523,7 +1583,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;
@ -1565,6 +1655,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)
*/
@ -1577,6 +1758,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,
@ -1653,7 +1836,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,
@ -1681,7 +1869,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,
@ -1697,6 +1887,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,
@ -1961,6 +2157,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;
@ -2455,6 +2678,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,
@ -2547,7 +2845,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;
@ -2557,7 +2855,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 */
@ -2565,7 +2863,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;
@ -2590,7 +2888,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 */
@ -2600,6 +2898,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 */
@ -3350,13 +3687,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 */
@ -3426,4 +3770,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__ */