wmi.h (bf9b608e63dfd71ab225c9d4211eb6d8dc582a3b) wmi.h (b5aeff16b20f65e6bb9ebafd06c1c96c2b503089)
1/*
2 * Copyright (c) 2018, The Linux Foundation. All rights reserved.
3 * Copyright (c) 2012-2017 Qualcomm Atheros, Inc.
4 * Copyright (c) 2006-2012 Wilocity
5 *
6 * Permission to use, copy, modify, and/or distribute this software for any
7 * purpose with or without fee is hereby granted, provided that the above
8 * copyright notice and this permission notice appear in all copies.

--- 39 unchanged lines hidden (view full) ---

48 * must always be kept equal to
49 * (WMI_RF_ETYPE_LENGTH+WMI_RF_ETYPE_VAL_PER_RANGE)
50 */
51#define WMI_RF_ETYPE_CONF_LENGTH (8)
52/* RX2TX configuration array size
53 * must always be kept equal to (WMI_RF_RX2TX_LENGTH+1)
54 */
55#define WMI_RF_RX2TX_CONF_LENGTH (4)
1/*
2 * Copyright (c) 2018, The Linux Foundation. All rights reserved.
3 * Copyright (c) 2012-2017 Qualcomm Atheros, Inc.
4 * Copyright (c) 2006-2012 Wilocity
5 *
6 * Permission to use, copy, modify, and/or distribute this software for any
7 * purpose with or without fee is hereby granted, provided that the above
8 * copyright notice and this permission notice appear in all copies.

--- 39 unchanged lines hidden (view full) ---

48 * must always be kept equal to
49 * (WMI_RF_ETYPE_LENGTH+WMI_RF_ETYPE_VAL_PER_RANGE)
50 */
51#define WMI_RF_ETYPE_CONF_LENGTH (8)
52/* RX2TX configuration array size
53 * must always be kept equal to (WMI_RF_RX2TX_LENGTH+1)
54 */
55#define WMI_RF_RX2TX_CONF_LENGTH (4)
56/* Qos configuration */
57#define WMI_QOS_NUM_OF_PRIORITY (4)
58#define WMI_QOS_MIN_DEFAULT_WEIGHT (10)
59#define WMI_QOS_VRING_SLOT_MIN_MS (2)
60#define WMI_QOS_VRING_SLOT_MAX_MS (10)
61/* (WMI_QOS_MIN_DEFAULT_WEIGHT * WMI_QOS_VRING_SLOT_MAX_MS /
62 * WMI_QOS_VRING_SLOT_MIN_MS)
63 */
64#define WMI_QOS_MAX_WEIGHT 50
65#define WMI_QOS_SET_VIF_PRIORITY (0xFF)
66#define WMI_QOS_DEFAULT_PRIORITY (WMI_QOS_NUM_OF_PRIORITY)
56
57/* Mailbox interface
58 * used for commands and events
59 */
60enum wmi_mid {
61 MID_DEFAULT = 0x00,
62 FIRST_DBG_MID_ID = 0x10,
63 LAST_DBG_MID_ID = 0xFE,

--- 17 unchanged lines hidden (view full) ---

81 WMI_FW_CAPABILITY_FIXED_SCHEDULING = 10,
82 WMI_FW_CAPABILITY_MULTI_DIRECTED_OMNIS = 11,
83 WMI_FW_CAPABILITY_RSSI_REPORTING = 12,
84 WMI_FW_CAPABILITY_SET_SILENT_RSSI_TABLE = 13,
85 WMI_FW_CAPABILITY_LO_POWER_CALIB_FROM_OTP = 14,
86 WMI_FW_CAPABILITY_PNO = 15,
87 WMI_FW_CAPABILITY_REF_CLOCK_CONTROL = 18,
88 WMI_FW_CAPABILITY_AP_SME_OFFLOAD_NONE = 19,
67
68/* Mailbox interface
69 * used for commands and events
70 */
71enum wmi_mid {
72 MID_DEFAULT = 0x00,
73 FIRST_DBG_MID_ID = 0x10,
74 LAST_DBG_MID_ID = 0xFE,

--- 17 unchanged lines hidden (view full) ---

92 WMI_FW_CAPABILITY_FIXED_SCHEDULING = 10,
93 WMI_FW_CAPABILITY_MULTI_DIRECTED_OMNIS = 11,
94 WMI_FW_CAPABILITY_RSSI_REPORTING = 12,
95 WMI_FW_CAPABILITY_SET_SILENT_RSSI_TABLE = 13,
96 WMI_FW_CAPABILITY_LO_POWER_CALIB_FROM_OTP = 14,
97 WMI_FW_CAPABILITY_PNO = 15,
98 WMI_FW_CAPABILITY_REF_CLOCK_CONTROL = 18,
99 WMI_FW_CAPABILITY_AP_SME_OFFLOAD_NONE = 19,
100 WMI_FW_CAPABILITY_MULTI_VIFS = 20,
101 WMI_FW_CAPABILITY_FT_ROAMING = 21,
89 WMI_FW_CAPABILITY_AMSDU = 23,
90 WMI_FW_CAPABILITY_MAX,
91};
92
93/* WMI_CMD_HDR */
94struct wmi_cmd_hdr {
95 u8 mid;
96 u8 reserved;

--- 8 unchanged lines hidden (view full) ---

105 WMI_DISCONNECT_STA_CMDID = 0x04,
106 WMI_START_SCHED_SCAN_CMDID = 0x05,
107 WMI_STOP_SCHED_SCAN_CMDID = 0x06,
108 WMI_START_SCAN_CMDID = 0x07,
109 WMI_SET_BSS_FILTER_CMDID = 0x09,
110 WMI_SET_PROBED_SSID_CMDID = 0x0A,
111 /* deprecated */
112 WMI_SET_LISTEN_INT_CMDID = 0x0B,
102 WMI_FW_CAPABILITY_AMSDU = 23,
103 WMI_FW_CAPABILITY_MAX,
104};
105
106/* WMI_CMD_HDR */
107struct wmi_cmd_hdr {
108 u8 mid;
109 u8 reserved;

--- 8 unchanged lines hidden (view full) ---

118 WMI_DISCONNECT_STA_CMDID = 0x04,
119 WMI_START_SCHED_SCAN_CMDID = 0x05,
120 WMI_STOP_SCHED_SCAN_CMDID = 0x06,
121 WMI_START_SCAN_CMDID = 0x07,
122 WMI_SET_BSS_FILTER_CMDID = 0x09,
123 WMI_SET_PROBED_SSID_CMDID = 0x0A,
124 /* deprecated */
125 WMI_SET_LISTEN_INT_CMDID = 0x0B,
126 WMI_FT_AUTH_CMDID = 0x0C,
127 WMI_FT_REASSOC_CMDID = 0x0D,
128 WMI_UPDATE_FT_IES_CMDID = 0x0E,
113 WMI_BCON_CTRL_CMDID = 0x0F,
114 WMI_ADD_CIPHER_KEY_CMDID = 0x16,
115 WMI_DELETE_CIPHER_KEY_CMDID = 0x17,
116 WMI_PCP_CONF_CMDID = 0x18,
117 WMI_SET_APPIE_CMDID = 0x3F,
118 WMI_SET_WSC_STATUS_CMDID = 0x41,
119 WMI_PXMT_RANGE_CFG_CMDID = 0x42,
120 WMI_PXMT_SNR2_RANGE_CFG_CMDID = 0x43,

--- 81 unchanged lines hidden (view full) ---

202 WMI_START_SEARCH_CMDID = 0x915,
203 WMI_DISCOVERY_START_CMDID = 0x916,
204 WMI_DISCOVERY_STOP_CMDID = 0x917,
205 WMI_PCP_START_CMDID = 0x918,
206 WMI_PCP_STOP_CMDID = 0x919,
207 WMI_GET_PCP_FACTOR_CMDID = 0x91B,
208 /* Power Save Configuration Commands */
209 WMI_PS_DEV_PROFILE_CFG_CMDID = 0x91C,
129 WMI_BCON_CTRL_CMDID = 0x0F,
130 WMI_ADD_CIPHER_KEY_CMDID = 0x16,
131 WMI_DELETE_CIPHER_KEY_CMDID = 0x17,
132 WMI_PCP_CONF_CMDID = 0x18,
133 WMI_SET_APPIE_CMDID = 0x3F,
134 WMI_SET_WSC_STATUS_CMDID = 0x41,
135 WMI_PXMT_RANGE_CFG_CMDID = 0x42,
136 WMI_PXMT_SNR2_RANGE_CFG_CMDID = 0x43,

--- 81 unchanged lines hidden (view full) ---

218 WMI_START_SEARCH_CMDID = 0x915,
219 WMI_DISCOVERY_START_CMDID = 0x916,
220 WMI_DISCOVERY_STOP_CMDID = 0x917,
221 WMI_PCP_START_CMDID = 0x918,
222 WMI_PCP_STOP_CMDID = 0x919,
223 WMI_GET_PCP_FACTOR_CMDID = 0x91B,
224 /* Power Save Configuration Commands */
225 WMI_PS_DEV_PROFILE_CFG_CMDID = 0x91C,
226 WMI_RS_ENABLE_CMDID = 0x91E,
227 WMI_RS_CFG_EX_CMDID = 0x91F,
228 WMI_GET_DETAILED_RS_RES_EX_CMDID = 0x920,
229 /* deprecated */
210 WMI_RS_CFG_CMDID = 0x921,
230 WMI_RS_CFG_CMDID = 0x921,
231 /* deprecated */
211 WMI_GET_DETAILED_RS_RES_CMDID = 0x922,
212 WMI_AOA_MEAS_CMDID = 0x923,
213 WMI_BRP_SET_ANT_LIMIT_CMDID = 0x924,
214 WMI_SET_MGMT_RETRY_LIMIT_CMDID = 0x930,
215 WMI_GET_MGMT_RETRY_LIMIT_CMDID = 0x931,
216 WMI_NEW_STA_CMDID = 0x935,
217 WMI_DEL_STA_CMDID = 0x936,
218 WMI_SET_THERMAL_THROTTLING_CFG_CMDID = 0x940,

--- 12 unchanged lines hidden (view full) ---

231 WMI_GET_RF_SECTOR_PARAMS_CMDID = 0x9A0,
232 WMI_SET_RF_SECTOR_PARAMS_CMDID = 0x9A1,
233 WMI_GET_SELECTED_RF_SECTOR_INDEX_CMDID = 0x9A2,
234 WMI_SET_SELECTED_RF_SECTOR_INDEX_CMDID = 0x9A3,
235 WMI_SET_RF_SECTOR_ON_CMDID = 0x9A4,
236 WMI_PRIO_TX_SECTORS_ORDER_CMDID = 0x9A5,
237 WMI_PRIO_TX_SECTORS_NUMBER_CMDID = 0x9A6,
238 WMI_PRIO_TX_SECTORS_SET_DEFAULT_CFG_CMDID = 0x9A7,
232 WMI_GET_DETAILED_RS_RES_CMDID = 0x922,
233 WMI_AOA_MEAS_CMDID = 0x923,
234 WMI_BRP_SET_ANT_LIMIT_CMDID = 0x924,
235 WMI_SET_MGMT_RETRY_LIMIT_CMDID = 0x930,
236 WMI_GET_MGMT_RETRY_LIMIT_CMDID = 0x931,
237 WMI_NEW_STA_CMDID = 0x935,
238 WMI_DEL_STA_CMDID = 0x936,
239 WMI_SET_THERMAL_THROTTLING_CFG_CMDID = 0x940,

--- 12 unchanged lines hidden (view full) ---

252 WMI_GET_RF_SECTOR_PARAMS_CMDID = 0x9A0,
253 WMI_SET_RF_SECTOR_PARAMS_CMDID = 0x9A1,
254 WMI_GET_SELECTED_RF_SECTOR_INDEX_CMDID = 0x9A2,
255 WMI_SET_SELECTED_RF_SECTOR_INDEX_CMDID = 0x9A3,
256 WMI_SET_RF_SECTOR_ON_CMDID = 0x9A4,
257 WMI_PRIO_TX_SECTORS_ORDER_CMDID = 0x9A5,
258 WMI_PRIO_TX_SECTORS_NUMBER_CMDID = 0x9A6,
259 WMI_PRIO_TX_SECTORS_SET_DEFAULT_CFG_CMDID = 0x9A7,
260 /* deprecated */
239 WMI_BF_CONTROL_CMDID = 0x9AA,
261 WMI_BF_CONTROL_CMDID = 0x9AA,
262 WMI_BF_CONTROL_EX_CMDID = 0x9AB,
240 WMI_TX_STATUS_RING_ADD_CMDID = 0x9C0,
241 WMI_RX_STATUS_RING_ADD_CMDID = 0x9C1,
242 WMI_TX_DESC_RING_ADD_CMDID = 0x9C2,
243 WMI_RX_DESC_RING_ADD_CMDID = 0x9C3,
244 WMI_BCAST_DESC_RING_ADD_CMDID = 0x9C4,
245 WMI_CFG_DEF_RX_OFFLOAD_CMDID = 0x9C5,
246 WMI_SCHEDULING_SCHEME_CMDID = 0xA01,
247 WMI_FIXED_SCHEDULING_CONFIG_CMDID = 0xA02,
248 WMI_ENABLE_FIXED_SCHEDULING_CMDID = 0xA03,
249 WMI_SET_MULTI_DIRECTED_OMNIS_CONFIG_CMDID = 0xA04,
250 WMI_SET_LONG_RANGE_CONFIG_CMDID = 0xA05,
251 WMI_GET_ASSOC_LIST_CMDID = 0xA06,
252 WMI_GET_CCA_INDICATIONS_CMDID = 0xA07,
253 WMI_SET_CCA_INDICATIONS_BI_AVG_NUM_CMDID = 0xA08,
254 WMI_INTERNAL_FW_IOCTL_CMDID = 0xA0B,
263 WMI_TX_STATUS_RING_ADD_CMDID = 0x9C0,
264 WMI_RX_STATUS_RING_ADD_CMDID = 0x9C1,
265 WMI_TX_DESC_RING_ADD_CMDID = 0x9C2,
266 WMI_RX_DESC_RING_ADD_CMDID = 0x9C3,
267 WMI_BCAST_DESC_RING_ADD_CMDID = 0x9C4,
268 WMI_CFG_DEF_RX_OFFLOAD_CMDID = 0x9C5,
269 WMI_SCHEDULING_SCHEME_CMDID = 0xA01,
270 WMI_FIXED_SCHEDULING_CONFIG_CMDID = 0xA02,
271 WMI_ENABLE_FIXED_SCHEDULING_CMDID = 0xA03,
272 WMI_SET_MULTI_DIRECTED_OMNIS_CONFIG_CMDID = 0xA04,
273 WMI_SET_LONG_RANGE_CONFIG_CMDID = 0xA05,
274 WMI_GET_ASSOC_LIST_CMDID = 0xA06,
275 WMI_GET_CCA_INDICATIONS_CMDID = 0xA07,
276 WMI_SET_CCA_INDICATIONS_BI_AVG_NUM_CMDID = 0xA08,
277 WMI_INTERNAL_FW_IOCTL_CMDID = 0xA0B,
278 WMI_LINK_STATS_CMDID = 0xA0C,
279 WMI_SET_GRANT_MCS_CMDID = 0xA0E,
280 WMI_SET_AP_SLOT_SIZE_CMDID = 0xA0F,
281 WMI_SET_VRING_PRIORITY_WEIGHT_CMDID = 0xA10,
282 WMI_SET_VRING_PRIORITY_CMDID = 0xA11,
255 WMI_SET_MAC_ADDRESS_CMDID = 0xF003,
256 WMI_ABORT_SCAN_CMDID = 0xF007,
257 WMI_SET_PROMISCUOUS_MODE_CMDID = 0xF041,
258 /* deprecated */
259 WMI_GET_PMK_CMDID = 0xF048,
260 WMI_SET_PASSPHRASE_CMDID = 0xF049,
261 /* deprecated */
262 WMI_SEND_ASSOC_RES_CMDID = 0xF04A,

--- 182 unchanged lines hidden (view full) ---

445 s8 min_rssi_threshold;
446 u8 channel_list[WMI_MAX_CHANNEL_NUM];
447 u8 num_of_channels;
448 u8 reserved;
449 __le16 initial_delay_sec;
450 struct wmi_sched_scan_plan scan_plans[WMI_MAX_PLANS_NUM];
451} __packed;
452
283 WMI_SET_MAC_ADDRESS_CMDID = 0xF003,
284 WMI_ABORT_SCAN_CMDID = 0xF007,
285 WMI_SET_PROMISCUOUS_MODE_CMDID = 0xF041,
286 /* deprecated */
287 WMI_GET_PMK_CMDID = 0xF048,
288 WMI_SET_PASSPHRASE_CMDID = 0xF049,
289 /* deprecated */
290 WMI_SEND_ASSOC_RES_CMDID = 0xF04A,

--- 182 unchanged lines hidden (view full) ---

473 s8 min_rssi_threshold;
474 u8 channel_list[WMI_MAX_CHANNEL_NUM];
475 u8 num_of_channels;
476 u8 reserved;
477 __le16 initial_delay_sec;
478 struct wmi_sched_scan_plan scan_plans[WMI_MAX_PLANS_NUM];
479} __packed;
480
481/* WMI_FT_AUTH_CMDID */
482struct wmi_ft_auth_cmd {
483 u8 bssid[WMI_MAC_LEN];
484 /* enum wmi_channel */
485 u8 channel;
486 /* enum wmi_channel */
487 u8 edmg_channel;
488 u8 reserved[4];
489} __packed;
490
491/* WMI_FT_REASSOC_CMDID */
492struct wmi_ft_reassoc_cmd {
493 u8 bssid[WMI_MAC_LEN];
494 u8 reserved[2];
495} __packed;
496
497/* WMI_UPDATE_FT_IES_CMDID */
498struct wmi_update_ft_ies_cmd {
499 /* Length of the FT IEs */
500 __le16 ie_len;
501 u8 reserved[2];
502 u8 ie_info[0];
503} __packed;
504
453/* WMI_SET_PROBED_SSID_CMDID */
454#define MAX_PROBED_SSID_INDEX (3)
455
456enum wmi_ssid_flag {
457 /* disables entry */
458 WMI_SSID_FLAG_DISABLE = 0x00,
459 /* probes specified ssid */
460 WMI_SSID_FLAG_SPECIFIC = 0x01,

--- 278 unchanged lines hidden (view full) ---

739 u8 mac_ctrl;
740 u8 to_resolution;
741 u8 agg_max_wsize;
742 struct wmi_vring_cfg_schd schd_params;
743 /* Used when cidxtid = CIDXTID_EXTENDED_CID_TID */
744 u8 cid;
745 /* Used when cidxtid = CIDXTID_EXTENDED_CID_TID */
746 u8 tid;
505/* WMI_SET_PROBED_SSID_CMDID */
506#define MAX_PROBED_SSID_INDEX (3)
507
508enum wmi_ssid_flag {
509 /* disables entry */
510 WMI_SSID_FLAG_DISABLE = 0x00,
511 /* probes specified ssid */
512 WMI_SSID_FLAG_SPECIFIC = 0x01,

--- 278 unchanged lines hidden (view full) ---

791 u8 mac_ctrl;
792 u8 to_resolution;
793 u8 agg_max_wsize;
794 struct wmi_vring_cfg_schd schd_params;
795 /* Used when cidxtid = CIDXTID_EXTENDED_CID_TID */
796 u8 cid;
797 /* Used when cidxtid = CIDXTID_EXTENDED_CID_TID */
798 u8 tid;
747 u8 reserved[2];
799 /* Update the vring's priority for Qos purpose. Set to
800 * WMI_QOS_DEFAULT_PRIORITY to use MID's QoS priority
801 */
802 u8 qos_priority;
803 u8 reserved;
748} __packed;
749
750enum wmi_vring_cfg_cmd_action {
751 WMI_VRING_CMD_ADD = 0x00,
752 WMI_VRING_CMD_MODIFY = 0x01,
753 WMI_VRING_CMD_DELETE = 0x02,
754};
755

--- 14 unchanged lines hidden (view full) ---

770} __packed;
771
772/* WMI_BCAST_VRING_CFG_CMDID */
773struct wmi_bcast_vring_cfg_cmd {
774 __le32 action;
775 struct wmi_bcast_vring_cfg vring_cfg;
776} __packed;
777
804} __packed;
805
806enum wmi_vring_cfg_cmd_action {
807 WMI_VRING_CMD_ADD = 0x00,
808 WMI_VRING_CMD_MODIFY = 0x01,
809 WMI_VRING_CMD_DELETE = 0x02,
810};
811

--- 14 unchanged lines hidden (view full) ---

826} __packed;
827
828/* WMI_BCAST_VRING_CFG_CMDID */
829struct wmi_bcast_vring_cfg_cmd {
830 __le32 action;
831 struct wmi_bcast_vring_cfg vring_cfg;
832} __packed;
833
778/* WMI_LO_POWER_CALIB_FROM_OTP_CMDID */
779struct wmi_lo_power_calib_from_otp_cmd {
780 /* index to read from OTP. zero based */
781 u8 index;
782 u8 reserved[3];
783} __packed;
784
785/* WMI_LO_POWER_CALIB_FROM_OTP_EVENTID */
786struct wmi_lo_power_calib_from_otp_event {
787 /* wmi_fw_status */
788 u8 status;
789 u8 reserved[3];
790} __packed;
791
792struct wmi_edma_ring_cfg {
793 __le64 ring_mem_base;
794 /* size in number of items */
795 __le16 ring_size;
796 u8 ring_id;
797 u8 reserved;
798} __packed;
799

--- 56 unchanged lines hidden (view full) ---

856 struct wmi_edma_ring_cfg ring_cfg;
857 __le16 max_msdu_size;
858 /* Correlated status ring (0-63) */
859 u8 status_ring_id;
860 u8 encap_trans_type;
861 u8 reserved[4];
862} __packed;
863
834struct wmi_edma_ring_cfg {
835 __le64 ring_mem_base;
836 /* size in number of items */
837 __le16 ring_size;
838 u8 ring_id;
839 u8 reserved;
840} __packed;
841

--- 56 unchanged lines hidden (view full) ---

898 struct wmi_edma_ring_cfg ring_cfg;
899 __le16 max_msdu_size;
900 /* Correlated status ring (0-63) */
901 u8 status_ring_id;
902 u8 encap_trans_type;
903 u8 reserved[4];
904} __packed;
905
906/* WMI_LO_POWER_CALIB_FROM_OTP_CMDID */
907struct wmi_lo_power_calib_from_otp_cmd {
908 /* index to read from OTP. zero based */
909 u8 index;
910 u8 reserved[3];
911} __packed;
912
913/* WMI_LO_POWER_CALIB_FROM_OTP_EVENTID */
914struct wmi_lo_power_calib_from_otp_event {
915 /* wmi_fw_status */
916 u8 status;
917 u8 reserved[3];
918} __packed;
919
864/* WMI_RING_BA_EN_CMDID */
865struct wmi_ring_ba_en_cmd {
866 u8 ring_id;
867 u8 agg_max_wsize;
868 __le16 ba_timeout;
869 u8 amsdu;
870 u8 reserved[3];
871} __packed;

--- 542 unchanged lines hidden (view full) ---

1414
1415/* WMI_FIXED_SCHEDULING_CONFIG_COMPLETE_EVENTID */
1416struct wmi_fixed_scheduling_config_complete_event {
1417 /* wmi_fw_status */
1418 u8 status;
1419 u8 reserved[3];
1420} __packed;
1421
920/* WMI_RING_BA_EN_CMDID */
921struct wmi_ring_ba_en_cmd {
922 u8 ring_id;
923 u8 agg_max_wsize;
924 __le16 ba_timeout;
925 u8 amsdu;
926 u8 reserved[3];
927} __packed;

--- 542 unchanged lines hidden (view full) ---

1470
1471/* WMI_FIXED_SCHEDULING_CONFIG_COMPLETE_EVENTID */
1472struct wmi_fixed_scheduling_config_complete_event {
1473 /* wmi_fw_status */
1474 u8 status;
1475 u8 reserved[3];
1476} __packed;
1477
1478/* This value exists for backwards compatibility only.
1479 * Do not use it in new commands.
1480 * Use dynamic arrays where possible.
1481 */
1422#define WMI_NUM_MCS (13)
1423
1424/* WMI_FIXED_SCHEDULING_CONFIG_CMDID */
1425struct wmi_fixed_scheduling_config_cmd {
1426 /* defaults in the SAS table */
1427 struct wmi_map_mcs_to_schd_params mcs_to_schd_params_map[WMI_NUM_MCS];
1428 /* default 150 uSec */
1429 __le16 max_sta_rd_ppdu_duration_in_usec;

--- 43 unchanged lines hidden (view full) ---

1473
1474/* WMI_SET_LONG_RANGE_CONFIG_COMPLETE_EVENTID */
1475struct wmi_set_long_range_config_complete_event {
1476 /* wmi_fw_status */
1477 u8 status;
1478 u8 reserved[3];
1479} __packed;
1480
1482#define WMI_NUM_MCS (13)
1483
1484/* WMI_FIXED_SCHEDULING_CONFIG_CMDID */
1485struct wmi_fixed_scheduling_config_cmd {
1486 /* defaults in the SAS table */
1487 struct wmi_map_mcs_to_schd_params mcs_to_schd_params_map[WMI_NUM_MCS];
1488 /* default 150 uSec */
1489 __le16 max_sta_rd_ppdu_duration_in_usec;

--- 43 unchanged lines hidden (view full) ---

1533
1534/* WMI_SET_LONG_RANGE_CONFIG_COMPLETE_EVENTID */
1535struct wmi_set_long_range_config_complete_event {
1536 /* wmi_fw_status */
1537 u8 status;
1538 u8 reserved[3];
1539} __packed;
1540
1481/* payload max size is 236 bytes: max event buffer size (256) - WMI headers
1541/* payload max size is 1024 bytes: max event buffer size (1044) - WMI headers
1482 * (16) - prev struct field size (4)
1483 */
1542 * (16) - prev struct field size (4)
1543 */
1484#define WMI_MAX_IOCTL_PAYLOAD_SIZE (236)
1485#define WMI_MAX_IOCTL_REPLY_PAYLOAD_SIZE (236)
1486#define WMI_MAX_INTERNAL_EVENT_PAYLOAD_SIZE (236)
1544#define WMI_MAX_IOCTL_PAYLOAD_SIZE (1024)
1545#define WMI_MAX_IOCTL_REPLY_PAYLOAD_SIZE (1024)
1546#define WMI_MAX_INTERNAL_EVENT_PAYLOAD_SIZE (1024)
1487
1488enum wmi_internal_fw_ioctl_code {
1489 WMI_INTERNAL_FW_CODE_NONE = 0x0,
1490 WMI_INTERNAL_FW_CODE_QCOM = 0x1,
1491};
1492
1493/* WMI_INTERNAL_FW_IOCTL_CMDID */
1494struct wmi_internal_fw_ioctl_cmd {

--- 23 unchanged lines hidden (view full) ---

1518 __le16 id;
1519 __le16 length;
1520 /* payload max size is WMI_MAX_INTERNAL_EVENT_PAYLOAD_SIZE
1521 * Must be the last member of the struct
1522 */
1523 __le32 payload[0];
1524} __packed;
1525
1547
1548enum wmi_internal_fw_ioctl_code {
1549 WMI_INTERNAL_FW_CODE_NONE = 0x0,
1550 WMI_INTERNAL_FW_CODE_QCOM = 0x1,
1551};
1552
1553/* WMI_INTERNAL_FW_IOCTL_CMDID */
1554struct wmi_internal_fw_ioctl_cmd {

--- 23 unchanged lines hidden (view full) ---

1578 __le16 id;
1579 __le16 length;
1580 /* payload max size is WMI_MAX_INTERNAL_EVENT_PAYLOAD_SIZE
1581 * Must be the last member of the struct
1582 */
1583 __le32 payload[0];
1584} __packed;
1585
1526/* WMI_BF_CONTROL_CMDID */
1586/* WMI_SET_VRING_PRIORITY_WEIGHT_CMDID */
1587struct wmi_set_vring_priority_weight_cmd {
1588 /* Array of weights. Valid values are
1589 * WMI_QOS_MIN_DEFAULT_WEIGHT...WMI_QOS_MAX_WEIGHT. Weight #0 is
1590 * hard-coded WMI_QOS_MIN_WEIGHT. This array provide the weights
1591 * #1..#3
1592 */
1593 u8 weight[3];
1594 u8 reserved;
1595} __packed;
1596
1597/* WMI_SET_VRING_PRIORITY_CMDID */
1598struct wmi_vring_priority {
1599 u8 vring_idx;
1600 /* Weight index. Valid value is 0-3 */
1601 u8 priority;
1602 u8 reserved[2];
1603} __packed;
1604
1605/* WMI_SET_VRING_PRIORITY_CMDID */
1606struct wmi_set_vring_priority_cmd {
1607 /* number of entries in vring_priority. Set to
1608 * WMI_QOS_SET_VIF_PRIORITY to update the VIF's priority, and there
1609 * will be only one entry in vring_priority
1610 */
1611 u8 num_of_vrings;
1612 u8 reserved[3];
1613 struct wmi_vring_priority vring_priority[0];
1614} __packed;
1615
1616/* WMI_BF_CONTROL_CMDID - deprecated */
1527struct wmi_bf_control_cmd {
1528 /* wmi_bf_triggers */
1529 __le32 triggers;
1530 u8 cid;
1531 /* DISABLED = 0, ENABLED = 1 , DRY_RUN = 2 */
1532 u8 txss_mode;
1533 /* DISABLED = 0, ENABLED = 1, DRY_RUN = 2 */
1534 u8 brp_mode;

--- 25 unchanged lines hidden (view full) ---

1560 /* Long term throughput threshold [Mbps] */
1561 u8 long_term_mbps_th_tbl[WMI_NUM_MCS];
1562 u8 reserved1;
1563 /* Long term timeout threshold table [msec] */
1564 __le16 long_term_trig_timeout_per_mcs[WMI_NUM_MCS];
1565 u8 reserved2[2];
1566} __packed;
1567
1617struct wmi_bf_control_cmd {
1618 /* wmi_bf_triggers */
1619 __le32 triggers;
1620 u8 cid;
1621 /* DISABLED = 0, ENABLED = 1 , DRY_RUN = 2 */
1622 u8 txss_mode;
1623 /* DISABLED = 0, ENABLED = 1, DRY_RUN = 2 */
1624 u8 brp_mode;

--- 25 unchanged lines hidden (view full) ---

1650 /* Long term throughput threshold [Mbps] */
1651 u8 long_term_mbps_th_tbl[WMI_NUM_MCS];
1652 u8 reserved1;
1653 /* Long term timeout threshold table [msec] */
1654 __le16 long_term_trig_timeout_per_mcs[WMI_NUM_MCS];
1655 u8 reserved2[2];
1656} __packed;
1657
1658/* BF configuration for each MCS */
1659struct wmi_bf_control_ex_mcs {
1660 /* Long term throughput threshold [Mbps] */
1661 u8 long_term_mbps_th_tbl;
1662 u8 reserved;
1663 /* Long term timeout threshold table [msec] */
1664 __le16 long_term_trig_timeout_per_mcs;
1665} __packed;
1666
1667/* WMI_BF_CONTROL_EX_CMDID */
1668struct wmi_bf_control_ex_cmd {
1669 /* wmi_bf_triggers */
1670 __le32 triggers;
1671 /* enum wmi_edmg_tx_mode */
1672 u8 tx_mode;
1673 /* DISABLED = 0, ENABLED = 1 , DRY_RUN = 2 */
1674 u8 txss_mode;
1675 /* DISABLED = 0, ENABLED = 1, DRY_RUN = 2 */
1676 u8 brp_mode;
1677 /* Max cts threshold (correspond to
1678 * WMI_BF_TRIGGER_MAX_CTS_FAILURE_IN_TXOP)
1679 */
1680 u8 bf_trigger_max_cts_failure_thr;
1681 /* Max cts threshold in dense (correspond to
1682 * WMI_BF_TRIGGER_MAX_CTS_FAILURE_IN_TXOP)
1683 */
1684 u8 bf_trigger_max_cts_failure_dense_thr;
1685 /* Max b-ack threshold (correspond to
1686 * WMI_BF_TRIGGER_MAX_BACK_FAILURE)
1687 */
1688 u8 bf_trigger_max_back_failure_thr;
1689 /* Max b-ack threshold in dense (correspond to
1690 * WMI_BF_TRIGGER_MAX_BACK_FAILURE)
1691 */
1692 u8 bf_trigger_max_back_failure_dense_thr;
1693 u8 reserved0;
1694 /* Wrong sectors threshold */
1695 __le32 wrong_sector_bis_thr;
1696 /* BOOL to enable/disable long term trigger */
1697 u8 long_term_enable;
1698 /* 1 = Update long term thresholds from the long_term_mbps_th_tbl and
1699 * long_term_trig_timeout_per_mcs arrays, 0 = Ignore
1700 */
1701 u8 long_term_update_thr;
1702 u8 each_mcs_cfg_size;
1703 u8 reserved1;
1704 /* Configuration for each MCS */
1705 struct wmi_bf_control_ex_mcs each_mcs_cfg[0];
1706} __packed;
1707
1708/* WMI_LINK_STATS_CMD */
1709enum wmi_link_stats_action {
1710 WMI_LINK_STATS_SNAPSHOT = 0x00,
1711 WMI_LINK_STATS_PERIODIC = 0x01,
1712 WMI_LINK_STATS_STOP_PERIODIC = 0x02,
1713};
1714
1715/* WMI_LINK_STATS_EVENT record identifiers */
1716enum wmi_link_stats_record_type {
1717 WMI_LINK_STATS_TYPE_BASIC = 0x01,
1718 WMI_LINK_STATS_TYPE_MAC = 0x02,
1719 WMI_LINK_STATS_TYPE_PHY = 0x04,
1720 WMI_LINK_STATS_TYPE_OTA = 0x08,
1721};
1722
1723/* WMI_LINK_STATS_CMDID */
1724struct wmi_link_stats_cmd {
1725 /* bitmask of required record types
1726 * (wmi_link_stats_record_type_e)
1727 */
1728 __le32 record_type_mask;
1729 /* 0xff for all cids */
1730 u8 cid;
1731 /* wmi_link_stats_action_e */
1732 u8 action;
1733 u8 reserved[6];
1734 /* for WMI_LINK_STATS_PERIODIC */
1735 __le32 interval_msec;
1736} __packed;
1737
1738/* WMI_SET_GRANT_MCS_CMDID */
1739struct wmi_set_grant_mcs_cmd {
1740 u8 mcs;
1741 u8 reserved[3];
1742} __packed;
1743
1744/* WMI_SET_AP_SLOT_SIZE_CMDID */
1745struct wmi_set_ap_slot_size_cmd {
1746 __le32 slot_size;
1747} __packed;
1748
1568/* WMI Events
1569 * List of Events (target to host)
1570 */
1571enum wmi_event_id {
1572 WMI_READY_EVENTID = 0x1001,
1573 WMI_CONNECT_EVENTID = 0x1002,
1574 WMI_DISCONNECT_EVENTID = 0x1003,
1575 WMI_START_SCHED_SCAN_EVENTID = 0x1005,
1576 WMI_STOP_SCHED_SCAN_EVENTID = 0x1006,
1577 WMI_SCHED_SCAN_RESULT_EVENTID = 0x1007,
1578 WMI_SCAN_COMPLETE_EVENTID = 0x100A,
1579 WMI_REPORT_STATISTICS_EVENTID = 0x100B,
1749/* WMI Events
1750 * List of Events (target to host)
1751 */
1752enum wmi_event_id {
1753 WMI_READY_EVENTID = 0x1001,
1754 WMI_CONNECT_EVENTID = 0x1002,
1755 WMI_DISCONNECT_EVENTID = 0x1003,
1756 WMI_START_SCHED_SCAN_EVENTID = 0x1005,
1757 WMI_STOP_SCHED_SCAN_EVENTID = 0x1006,
1758 WMI_SCHED_SCAN_RESULT_EVENTID = 0x1007,
1759 WMI_SCAN_COMPLETE_EVENTID = 0x100A,
1760 WMI_REPORT_STATISTICS_EVENTID = 0x100B,
1761 WMI_FT_AUTH_STATUS_EVENTID = 0x100C,
1762 WMI_FT_REASSOC_STATUS_EVENTID = 0x100D,
1580 WMI_RD_MEM_RSP_EVENTID = 0x1800,
1581 WMI_FW_READY_EVENTID = 0x1801,
1582 WMI_EXIT_FAST_MEM_ACC_MODE_EVENTID = 0x200,
1583 WMI_ECHO_RSP_EVENTID = 0x1803,
1584 /* deprecated */
1585 WMI_FS_TUNE_DONE_EVENTID = 0x180A,
1586 /* deprecated */
1587 WMI_CORR_MEASURE_EVENTID = 0x180B,

--- 60 unchanged lines hidden (view full) ---

1648 WMI_SEARCH_STARTED_EVENTID = 0x1915,
1649 WMI_DISCOVERY_STARTED_EVENTID = 0x1916,
1650 WMI_DISCOVERY_STOPPED_EVENTID = 0x1917,
1651 WMI_PCP_STARTED_EVENTID = 0x1918,
1652 WMI_PCP_STOPPED_EVENTID = 0x1919,
1653 WMI_PCP_FACTOR_EVENTID = 0x191A,
1654 /* Power Save Configuration Events */
1655 WMI_PS_DEV_PROFILE_CFG_EVENTID = 0x191C,
1763 WMI_RD_MEM_RSP_EVENTID = 0x1800,
1764 WMI_FW_READY_EVENTID = 0x1801,
1765 WMI_EXIT_FAST_MEM_ACC_MODE_EVENTID = 0x200,
1766 WMI_ECHO_RSP_EVENTID = 0x1803,
1767 /* deprecated */
1768 WMI_FS_TUNE_DONE_EVENTID = 0x180A,
1769 /* deprecated */
1770 WMI_CORR_MEASURE_EVENTID = 0x180B,

--- 60 unchanged lines hidden (view full) ---

1831 WMI_SEARCH_STARTED_EVENTID = 0x1915,
1832 WMI_DISCOVERY_STARTED_EVENTID = 0x1916,
1833 WMI_DISCOVERY_STOPPED_EVENTID = 0x1917,
1834 WMI_PCP_STARTED_EVENTID = 0x1918,
1835 WMI_PCP_STOPPED_EVENTID = 0x1919,
1836 WMI_PCP_FACTOR_EVENTID = 0x191A,
1837 /* Power Save Configuration Events */
1838 WMI_PS_DEV_PROFILE_CFG_EVENTID = 0x191C,
1839 WMI_RS_ENABLE_EVENTID = 0x191E,
1840 WMI_RS_CFG_EX_EVENTID = 0x191F,
1841 WMI_GET_DETAILED_RS_RES_EX_EVENTID = 0x1920,
1842 /* deprecated */
1656 WMI_RS_CFG_DONE_EVENTID = 0x1921,
1843 WMI_RS_CFG_DONE_EVENTID = 0x1921,
1844 /* deprecated */
1657 WMI_GET_DETAILED_RS_RES_EVENTID = 0x1922,
1658 WMI_AOA_MEAS_EVENTID = 0x1923,
1659 WMI_BRP_SET_ANT_LIMIT_EVENTID = 0x1924,
1660 WMI_SET_MGMT_RETRY_LIMIT_EVENTID = 0x1930,
1661 WMI_GET_MGMT_RETRY_LIMIT_EVENTID = 0x1931,
1662 WMI_SET_THERMAL_THROTTLING_CFG_EVENTID = 0x1940,
1663 WMI_GET_THERMAL_THROTTLING_CFG_EVENTID = 0x1941,
1664 /* return the Power Save profile */

--- 11 unchanged lines hidden (view full) ---

1676 WMI_GET_RF_SECTOR_PARAMS_DONE_EVENTID = 0x19A0,
1677 WMI_SET_RF_SECTOR_PARAMS_DONE_EVENTID = 0x19A1,
1678 WMI_GET_SELECTED_RF_SECTOR_INDEX_DONE_EVENTID = 0x19A2,
1679 WMI_SET_SELECTED_RF_SECTOR_INDEX_DONE_EVENTID = 0x19A3,
1680 WMI_SET_RF_SECTOR_ON_DONE_EVENTID = 0x19A4,
1681 WMI_PRIO_TX_SECTORS_ORDER_EVENTID = 0x19A5,
1682 WMI_PRIO_TX_SECTORS_NUMBER_EVENTID = 0x19A6,
1683 WMI_PRIO_TX_SECTORS_SET_DEFAULT_CFG_EVENTID = 0x19A7,
1845 WMI_GET_DETAILED_RS_RES_EVENTID = 0x1922,
1846 WMI_AOA_MEAS_EVENTID = 0x1923,
1847 WMI_BRP_SET_ANT_LIMIT_EVENTID = 0x1924,
1848 WMI_SET_MGMT_RETRY_LIMIT_EVENTID = 0x1930,
1849 WMI_GET_MGMT_RETRY_LIMIT_EVENTID = 0x1931,
1850 WMI_SET_THERMAL_THROTTLING_CFG_EVENTID = 0x1940,
1851 WMI_GET_THERMAL_THROTTLING_CFG_EVENTID = 0x1941,
1852 /* return the Power Save profile */

--- 11 unchanged lines hidden (view full) ---

1864 WMI_GET_RF_SECTOR_PARAMS_DONE_EVENTID = 0x19A0,
1865 WMI_SET_RF_SECTOR_PARAMS_DONE_EVENTID = 0x19A1,
1866 WMI_GET_SELECTED_RF_SECTOR_INDEX_DONE_EVENTID = 0x19A2,
1867 WMI_SET_SELECTED_RF_SECTOR_INDEX_DONE_EVENTID = 0x19A3,
1868 WMI_SET_RF_SECTOR_ON_DONE_EVENTID = 0x19A4,
1869 WMI_PRIO_TX_SECTORS_ORDER_EVENTID = 0x19A5,
1870 WMI_PRIO_TX_SECTORS_NUMBER_EVENTID = 0x19A6,
1871 WMI_PRIO_TX_SECTORS_SET_DEFAULT_CFG_EVENTID = 0x19A7,
1872 /* deprecated */
1684 WMI_BF_CONTROL_EVENTID = 0x19AA,
1873 WMI_BF_CONTROL_EVENTID = 0x19AA,
1874 WMI_BF_CONTROL_EX_EVENTID = 0x19AB,
1685 WMI_TX_STATUS_RING_CFG_DONE_EVENTID = 0x19C0,
1686 WMI_RX_STATUS_RING_CFG_DONE_EVENTID = 0x19C1,
1687 WMI_TX_DESC_RING_CFG_DONE_EVENTID = 0x19C2,
1688 WMI_RX_DESC_RING_CFG_DONE_EVENTID = 0x19C3,
1689 WMI_CFG_DEF_RX_OFFLOAD_DONE_EVENTID = 0x19C5,
1690 WMI_SCHEDULING_SCHEME_EVENTID = 0x1A01,
1691 WMI_FIXED_SCHEDULING_CONFIG_COMPLETE_EVENTID = 0x1A02,
1692 WMI_ENABLE_FIXED_SCHEDULING_COMPLETE_EVENTID = 0x1A03,
1693 WMI_SET_MULTI_DIRECTED_OMNIS_CONFIG_EVENTID = 0x1A04,
1694 WMI_SET_LONG_RANGE_CONFIG_COMPLETE_EVENTID = 0x1A05,
1695 WMI_GET_ASSOC_LIST_RES_EVENTID = 0x1A06,
1696 WMI_GET_CCA_INDICATIONS_EVENTID = 0x1A07,
1697 WMI_SET_CCA_INDICATIONS_BI_AVG_NUM_EVENTID = 0x1A08,
1698 WMI_INTERNAL_FW_EVENT_EVENTID = 0x1A0A,
1699 WMI_INTERNAL_FW_IOCTL_EVENTID = 0x1A0B,
1875 WMI_TX_STATUS_RING_CFG_DONE_EVENTID = 0x19C0,
1876 WMI_RX_STATUS_RING_CFG_DONE_EVENTID = 0x19C1,
1877 WMI_TX_DESC_RING_CFG_DONE_EVENTID = 0x19C2,
1878 WMI_RX_DESC_RING_CFG_DONE_EVENTID = 0x19C3,
1879 WMI_CFG_DEF_RX_OFFLOAD_DONE_EVENTID = 0x19C5,
1880 WMI_SCHEDULING_SCHEME_EVENTID = 0x1A01,
1881 WMI_FIXED_SCHEDULING_CONFIG_COMPLETE_EVENTID = 0x1A02,
1882 WMI_ENABLE_FIXED_SCHEDULING_COMPLETE_EVENTID = 0x1A03,
1883 WMI_SET_MULTI_DIRECTED_OMNIS_CONFIG_EVENTID = 0x1A04,
1884 WMI_SET_LONG_RANGE_CONFIG_COMPLETE_EVENTID = 0x1A05,
1885 WMI_GET_ASSOC_LIST_RES_EVENTID = 0x1A06,
1886 WMI_GET_CCA_INDICATIONS_EVENTID = 0x1A07,
1887 WMI_SET_CCA_INDICATIONS_BI_AVG_NUM_EVENTID = 0x1A08,
1888 WMI_INTERNAL_FW_EVENT_EVENTID = 0x1A0A,
1889 WMI_INTERNAL_FW_IOCTL_EVENTID = 0x1A0B,
1890 WMI_LINK_STATS_CONFIG_DONE_EVENTID = 0x1A0C,
1891 WMI_LINK_STATS_EVENTID = 0x1A0D,
1892 WMI_SET_GRANT_MCS_EVENTID = 0x1A0E,
1893 WMI_SET_AP_SLOT_SIZE_EVENTID = 0x1A0F,
1894 WMI_SET_VRING_PRIORITY_WEIGHT_EVENTID = 0x1A10,
1895 WMI_SET_VRING_PRIORITY_EVENTID = 0x1A11,
1700 WMI_SET_CHANNEL_EVENTID = 0x9000,
1701 WMI_ASSOC_REQ_EVENTID = 0x9001,
1702 WMI_EAPOL_RX_EVENTID = 0x9002,
1703 WMI_MAC_ADDR_RESP_EVENTID = 0x9003,
1704 WMI_FW_VER_EVENTID = 0x9004,
1705 WMI_ACS_PASSIVE_SCAN_COMPLETE_EVENTID = 0x9005,
1706 WMI_INTERNAL_FW_SET_CHANNEL = 0x9006,
1707 WMI_COMMAND_NOT_SUPPORTED_EVENTID = 0xFFFF,

--- 248 unchanged lines hidden (view full) ---

1956 WMI_SCAN_ABORT_REJECTED = 0x04,
1957};
1958
1959struct wmi_scan_complete_event {
1960 /* enum scan_status */
1961 __le32 status;
1962} __packed;
1963
1896 WMI_SET_CHANNEL_EVENTID = 0x9000,
1897 WMI_ASSOC_REQ_EVENTID = 0x9001,
1898 WMI_EAPOL_RX_EVENTID = 0x9002,
1899 WMI_MAC_ADDR_RESP_EVENTID = 0x9003,
1900 WMI_FW_VER_EVENTID = 0x9004,
1901 WMI_ACS_PASSIVE_SCAN_COMPLETE_EVENTID = 0x9005,
1902 WMI_INTERNAL_FW_SET_CHANNEL = 0x9006,
1903 WMI_COMMAND_NOT_SUPPORTED_EVENTID = 0xFFFF,

--- 248 unchanged lines hidden (view full) ---

2152 WMI_SCAN_ABORT_REJECTED = 0x04,
2153};
2154
2155struct wmi_scan_complete_event {
2156 /* enum scan_status */
2157 __le32 status;
2158} __packed;
2159
2160/* WMI_FT_AUTH_STATUS_EVENTID */
2161struct wmi_ft_auth_status_event {
2162 /* enum wmi_fw_status */
2163 u8 status;
2164 u8 reserved[3];
2165 u8 mac_addr[WMI_MAC_LEN];
2166 __le16 ie_len;
2167 u8 ie_info[0];
2168} __packed;
2169
2170/* WMI_FT_REASSOC_STATUS_EVENTID */
2171struct wmi_ft_reassoc_status_event {
2172 /* enum wmi_fw_status */
2173 u8 status;
2174 /* association id received from new AP */
2175 u8 aid;
2176 /* enum wmi_channel */
2177 u8 channel;
2178 /* enum wmi_channel */
2179 u8 edmg_channel;
2180 u8 mac_addr[WMI_MAC_LEN];
2181 __le16 beacon_ie_len;
2182 __le16 reassoc_req_ie_len;
2183 __le16 reassoc_resp_ie_len;
2184 u8 ie_info[0];
2185} __packed;
2186
1964/* wmi_rx_mgmt_info */
1965struct wmi_rx_mgmt_info {
1966 u8 mcs;
1967 s8 rssi;
1968 u8 range;
1969 u8 sqi;
1970 __le16 stype;
1971 __le16 status;

--- 478 unchanged lines hidden (view full) ---

2450 /* Debug feature for disabling internal RS trigger (which is
2451 * currently triggered by BF Done)
2452 */
2453 u8 dbg_disable_internal_trigger;
2454 __le32 back_failure_mask;
2455 __le32 mcs_en_vec;
2456} __packed;
2457
2187/* wmi_rx_mgmt_info */
2188struct wmi_rx_mgmt_info {
2189 u8 mcs;
2190 s8 rssi;
2191 u8 range;
2192 u8 sqi;
2193 __le16 stype;
2194 __le16 status;

--- 478 unchanged lines hidden (view full) ---

2673 /* Debug feature for disabling internal RS trigger (which is
2674 * currently triggered by BF Done)
2675 */
2676 u8 dbg_disable_internal_trigger;
2677 __le32 back_failure_mask;
2678 __le32 mcs_en_vec;
2679} __packed;
2680
2681enum wmi_edmg_tx_mode {
2682 WMI_TX_MODE_DMG = 0x0,
2683 WMI_TX_MODE_EDMG_CB1 = 0x1,
2684 WMI_TX_MODE_EDMG_CB2 = 0x2,
2685 WMI_TX_MODE_EDMG_CB1_LONG_LDPC = 0x3,
2686 WMI_TX_MODE_EDMG_CB2_LONG_LDPC = 0x4,
2687 WMI_TX_MODE_MAX,
2688};
2689
2690/* Rate search parameters common configuration */
2691struct wmi_rs_cfg_ex_common {
2692 /* enum wmi_edmg_tx_mode */
2693 u8 mode;
2694 /* stop threshold [0-100] */
2695 u8 stop_th;
2696 /* MCS1 stop threshold [0-100] */
2697 u8 mcs1_fail_th;
2698 u8 max_back_failure_th;
2699 /* Debug feature for disabling internal RS trigger (which is
2700 * currently triggered by BF Done)
2701 */
2702 u8 dbg_disable_internal_trigger;
2703 u8 reserved[3];
2704 __le32 back_failure_mask;
2705} __packed;
2706
2707/* Rate search parameters configuration per MCS */
2708struct wmi_rs_cfg_ex_mcs {
2709 /* The maximal allowed PER for each MCS
2710 * MCS will be considered as failed if PER during RS is higher
2711 */
2712 u8 per_threshold;
2713 /* Number of MPDUs for each MCS
2714 * this is the minimal statistic required to make an educated
2715 * decision
2716 */
2717 u8 min_frame_cnt;
2718 u8 reserved[2];
2719} __packed;
2720
2721/* WMI_RS_CFG_EX_CMDID */
2722struct wmi_rs_cfg_ex_cmd {
2723 /* Configuration for all MCSs */
2724 struct wmi_rs_cfg_ex_common common_cfg;
2725 u8 each_mcs_cfg_size;
2726 u8 reserved[3];
2727 /* Configuration for each MCS */
2728 struct wmi_rs_cfg_ex_mcs each_mcs_cfg[0];
2729} __packed;
2730
2731/* WMI_RS_CFG_EX_EVENTID */
2732struct wmi_rs_cfg_ex_event {
2733 /* enum wmi_edmg_tx_mode */
2734 u8 mode;
2735 /* enum wmi_fw_status */
2736 u8 status;
2737 u8 reserved[2];
2738} __packed;
2739
2740/* WMI_RS_ENABLE_CMDID */
2741struct wmi_rs_enable_cmd {
2742 u8 cid;
2743 /* enable or disable rate search */
2744 u8 rs_enable;
2745 u8 reserved[2];
2746 __le32 mcs_en_vec;
2747} __packed;
2748
2749/* WMI_RS_ENABLE_EVENTID */
2750struct wmi_rs_enable_event {
2751 /* enum wmi_fw_status */
2752 u8 status;
2753 u8 reserved[3];
2754} __packed;
2755
2458/* Slot types */
2459enum wmi_sched_scheme_slot_type {
2460 WMI_SCHED_SLOT_SP = 0x0,
2461 WMI_SCHED_SLOT_CBAP = 0x1,
2462 WMI_SCHED_SLOT_IDLE = 0x2,
2463 WMI_SCHED_SLOT_ANNOUNCE_NO_ACK = 0x3,
2464 WMI_SCHED_SLOT_DISCOVERY = 0x4,
2465};

--- 76 unchanged lines hidden (view full) ---

2542 /* serial number given in command */
2543 u8 serial_num;
2544 /* wmi_sched_scheme_failure_type */
2545 u8 failure_type;
2546 /* alignment to 32b */
2547 u8 reserved[1];
2548} __packed;
2549
2756/* Slot types */
2757enum wmi_sched_scheme_slot_type {
2758 WMI_SCHED_SLOT_SP = 0x0,
2759 WMI_SCHED_SLOT_CBAP = 0x1,
2760 WMI_SCHED_SLOT_IDLE = 0x2,
2761 WMI_SCHED_SLOT_ANNOUNCE_NO_ACK = 0x3,
2762 WMI_SCHED_SLOT_DISCOVERY = 0x4,
2763};

--- 76 unchanged lines hidden (view full) ---

2840 /* serial number given in command */
2841 u8 serial_num;
2842 /* wmi_sched_scheme_failure_type */
2843 u8 failure_type;
2844 /* alignment to 32b */
2845 u8 reserved[1];
2846} __packed;
2847
2550/* WMI_RS_CFG_CMDID */
2848/* WMI_RS_CFG_CMDID - deprecated */
2551struct wmi_rs_cfg_cmd {
2552 /* connection id */
2553 u8 cid;
2554 /* enable or disable rate search */
2555 u8 rs_enable;
2556 /* rate search configuration */
2557 struct wmi_rs_cfg rs_cfg;
2558} __packed;
2559
2849struct wmi_rs_cfg_cmd {
2850 /* connection id */
2851 u8 cid;
2852 /* enable or disable rate search */
2853 u8 rs_enable;
2854 /* rate search configuration */
2855 struct wmi_rs_cfg rs_cfg;
2856} __packed;
2857
2560/* WMI_RS_CFG_DONE_EVENTID */
2858/* WMI_RS_CFG_DONE_EVENTID - deprecated */
2561struct wmi_rs_cfg_done_event {
2562 u8 cid;
2563 /* enum wmi_fw_status */
2564 u8 status;
2565 u8 reserved[2];
2566} __packed;
2567
2859struct wmi_rs_cfg_done_event {
2860 u8 cid;
2861 /* enum wmi_fw_status */
2862 u8 status;
2863 u8 reserved[2];
2864} __packed;
2865
2568/* WMI_GET_DETAILED_RS_RES_CMDID */
2866/* WMI_GET_DETAILED_RS_RES_CMDID - deprecated */
2569struct wmi_get_detailed_rs_res_cmd {
2570 /* connection id */
2571 u8 cid;
2572 u8 reserved[3];
2573} __packed;
2574
2575/* RS results status */
2576enum wmi_rs_results_status {

--- 8 unchanged lines hidden (view full) ---

2585 /* number of non-acked MPDUs */
2586 u8 num_of_non_acked_pkt[WMI_NUM_MCS];
2587 /* RS timestamp */
2588 __le32 tsf;
2589 /* RS selected MCS */
2590 u8 mcs;
2591} __packed;
2592
2867struct wmi_get_detailed_rs_res_cmd {
2868 /* connection id */
2869 u8 cid;
2870 u8 reserved[3];
2871} __packed;
2872
2873/* RS results status */
2874enum wmi_rs_results_status {

--- 8 unchanged lines hidden (view full) ---

2883 /* number of non-acked MPDUs */
2884 u8 num_of_non_acked_pkt[WMI_NUM_MCS];
2885 /* RS timestamp */
2886 __le32 tsf;
2887 /* RS selected MCS */
2888 u8 mcs;
2889} __packed;
2890
2593/* WMI_GET_DETAILED_RS_RES_EVENTID */
2891/* WMI_GET_DETAILED_RS_RES_EVENTID - deprecated */
2594struct wmi_get_detailed_rs_res_event {
2595 u8 cid;
2596 /* enum wmi_rs_results_status */
2597 u8 status;
2598 /* detailed rs results */
2599 struct wmi_rs_results rs_results;
2600 u8 reserved[3];
2601} __packed;
2602
2892struct wmi_get_detailed_rs_res_event {
2893 u8 cid;
2894 /* enum wmi_rs_results_status */
2895 u8 status;
2896 /* detailed rs results */
2897 struct wmi_rs_results rs_results;
2898 u8 reserved[3];
2899} __packed;
2900
2901/* WMI_GET_DETAILED_RS_RES_EX_CMDID */
2902struct wmi_get_detailed_rs_res_ex_cmd {
2903 u8 cid;
2904 u8 reserved[3];
2905} __packed;
2906
2907/* Rate search results */
2908struct wmi_rs_results_ex_common {
2909 /* RS timestamp */
2910 __le32 tsf;
2911 /* RS selected MCS */
2912 u8 mcs;
2913 /* enum wmi_edmg_tx_mode */
2914 u8 mode;
2915 u8 reserved[2];
2916} __packed;
2917
2918/* Rate search results */
2919struct wmi_rs_results_ex_mcs {
2920 /* number of sent MPDUs */
2921 u8 num_of_tx_pkt;
2922 /* number of non-acked MPDUs */
2923 u8 num_of_non_acked_pkt;
2924 u8 reserved[2];
2925} __packed;
2926
2927/* WMI_GET_DETAILED_RS_RES_EX_EVENTID */
2928struct wmi_get_detailed_rs_res_ex_event {
2929 u8 cid;
2930 /* enum wmi_rs_results_status */
2931 u8 status;
2932 u8 reserved0[2];
2933 struct wmi_rs_results_ex_common common_rs_results;
2934 u8 each_mcs_results_size;
2935 u8 reserved1[3];
2936 /* Results for each MCS */
2937 struct wmi_rs_results_ex_mcs each_mcs_results[0];
2938} __packed;
2939
2603/* BRP antenna limit mode */
2604enum wmi_brp_ant_limit_mode {
2605 /* Disable BRP force antenna limit */
2606 WMI_BRP_ANT_LIMIT_MODE_DISABLE = 0x00,
2607 /* Define maximal antennas limit. Only effective antennas will be
2608 * actually used
2609 */
2610 WMI_BRP_ANT_LIMIT_MODE_EFFECTIVE = 0x01,

--- 734 unchanged lines hidden (view full) ---

3345 */
3346struct wmi_get_assoc_list_res_event {
3347 struct wmi_assoc_sta_info assoc_sta_list[WMI_GET_ASSOC_LIST_SIZE];
3348 /* STA count */
3349 u8 count;
3350 u8 reserved[3];
3351} __packed;
3352
2940/* BRP antenna limit mode */
2941enum wmi_brp_ant_limit_mode {
2942 /* Disable BRP force antenna limit */
2943 WMI_BRP_ANT_LIMIT_MODE_DISABLE = 0x00,
2944 /* Define maximal antennas limit. Only effective antennas will be
2945 * actually used
2946 */
2947 WMI_BRP_ANT_LIMIT_MODE_EFFECTIVE = 0x01,

--- 734 unchanged lines hidden (view full) ---

3682 */
3683struct wmi_get_assoc_list_res_event {
3684 struct wmi_assoc_sta_info assoc_sta_list[WMI_GET_ASSOC_LIST_SIZE];
3685 /* STA count */
3686 u8 count;
3687 u8 reserved[3];
3688} __packed;
3689
3353/* WMI_BF_CONTROL_EVENTID */
3690/* WMI_BF_CONTROL_EVENTID - deprecated */
3354struct wmi_bf_control_event {
3355 /* wmi_fw_status */
3356 u8 status;
3357 u8 reserved[3];
3358} __packed;
3359
3691struct wmi_bf_control_event {
3692 /* wmi_fw_status */
3693 u8 status;
3694 u8 reserved[3];
3695} __packed;
3696
3697/* WMI_BF_CONTROL_EX_EVENTID */
3698struct wmi_bf_control_ex_event {
3699 /* wmi_fw_status */
3700 u8 status;
3701 u8 reserved[3];
3702} __packed;
3703
3360/* WMI_COMMAND_NOT_SUPPORTED_EVENTID */
3361struct wmi_command_not_supported_event {
3362 /* device id */
3363 u8 mid;
3364 u8 reserved0;
3365 __le16 command_id;
3366 /* for UT command only, otherwise reserved */
3367 __le16 command_subtype;

--- 53 unchanged lines hidden (view full) ---

3421} __packed;
3422
3423/* WMI_INTERNAL_FW_SET_CHANNEL */
3424struct wmi_internal_fw_set_channel_event {
3425 u8 channel_num;
3426 u8 reserved[3];
3427} __packed;
3428
3704/* WMI_COMMAND_NOT_SUPPORTED_EVENTID */
3705struct wmi_command_not_supported_event {
3706 /* device id */
3707 u8 mid;
3708 u8 reserved0;
3709 __le16 command_id;
3710 /* for UT command only, otherwise reserved */
3711 __le16 command_subtype;

--- 53 unchanged lines hidden (view full) ---

3765} __packed;
3766
3767/* WMI_INTERNAL_FW_SET_CHANNEL */
3768struct wmi_internal_fw_set_channel_event {
3769 u8 channel_num;
3770 u8 reserved[3];
3771} __packed;
3772
3773/* WMI_LINK_STATS_CONFIG_DONE_EVENTID */
3774struct wmi_link_stats_config_done_event {
3775 /* wmi_fw_status_e */
3776 u8 status;
3777 u8 reserved[3];
3778} __packed;
3779
3780/* WMI_LINK_STATS_EVENTID */
3781struct wmi_link_stats_event {
3782 __le16 payload_size;
3783 u8 has_next;
3784 u8 reserved[5];
3785 /* a stream of records, e.g. wmi_link_stats_basic_s */
3786 u8 payload[0];
3787} __packed;
3788
3789/* WMI_LINK_STATS_EVENT record struct */
3790struct wmi_link_stats_basic {
3791 /* WMI_LINK_STATS_TYPE_BASIC */
3792 u8 record_type_id;
3793 u8 cid;
3794 /* 0: fail; 1: OK; 2: retrying */
3795 u8 bf_status;
3796 s8 rssi;
3797 u8 sqi;
3798 u8 selected_rfc;
3799 __le16 bf_mcs;
3800 __le32 tx_tpt;
3801 __le32 tx_goodput;
3802 __le32 rx_goodput;
3803 __le16 my_rx_sector;
3804 __le16 my_tx_sector;
3805 __le16 other_rx_sector;
3806 __le16 other_tx_sector;
3807 __le32 reserved[2];
3808} __packed;
3809
3810/* WMI_SET_GRANT_MCS_EVENTID */
3811struct wmi_set_grant_mcs_event {
3812 /* wmi_fw_status */
3813 u8 status;
3814 u8 reserved[3];
3815} __packed;
3816
3817/* WMI_SET_AP_SLOT_SIZE_EVENTID */
3818struct wmi_set_ap_slot_size_event {
3819 /* wmi_fw_status */
3820 u8 status;
3821 u8 reserved[3];
3822} __packed;
3823
3824/* WMI_SET_VRING_PRIORITY_WEIGHT_EVENTID */
3825struct wmi_set_vring_priority_weight_event {
3826 /* wmi_fw_status */
3827 u8 status;
3828 u8 reserved[3];
3829} __packed;
3830
3831/* WMI_SET_VRING_PRIORITY_EVENTID */
3832struct wmi_set_vring_priority_event {
3833 /* wmi_fw_status */
3834 u8 status;
3835 u8 reserved[3];
3836} __packed;
3837
3429#endif /* __WILOCITY_WMI_H__ */
3838#endif /* __WILOCITY_WMI_H__ */