wil6210: align to latest auto generated wmi.h
authorDedy Lansky <dlansky@codeaurora.org>
Tue, 24 Jul 2018 07:44:28 +0000 (10:44 +0300)
committerKalle Valo <kvalo@codeaurora.org>
Tue, 31 Jul 2018 08:00:24 +0000 (11:00 +0300)
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>
drivers/net/wireless/ath/wil6210/wmi.h

index abf6f05c4801b9d80b2cfd1e974b9e3dcaa605c0..13f6f62101175d0a5b5e6c9f7ee3f3def93efcd1 100644 (file)
  * 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__ */