2 * Copyright (c) 2012-2016 Qualcomm Atheros, Inc.
3 * Copyright (c) 2006-2012 Wilocity
5 * Permission to use, copy, modify, and/or distribute this software for any
6 * purpose with or without fee is hereby granted, provided that the above
7 * copyright notice and this permission notice appear in all copies.
9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
19 * This file contains the definitions of the WMI protocol specified in the
20 * Wireless Module Interface (WMI) for the Qualcomm
21 * 60 GHz wireless solution.
22 * It includes definitions of all the commands and events.
23 * Commands are messages from the host to the WM.
24 * Events are messages from the WM to the host.
26 * This is an automatically generated file.
29 #ifndef __WILOCITY_WMI_H__
30 #define __WILOCITY_WMI_H__
33 #define WMI_MAX_ASSOC_STA (8)
34 #define WMI_DEFAULT_ASSOC_STA (1)
35 #define WMI_MAC_LEN (6)
36 #define WMI_PROX_RANGE_NUM (3)
37 #define WMI_MAX_LOSS_DMG_BEACONS (20)
40 * used for commands and events
44 FIRST_DBG_MID_ID
= 0x10,
45 LAST_DBG_MID_ID
= 0xFE,
57 /* List of Commands */
59 WMI_CONNECT_CMDID
= 0x01,
60 WMI_DISCONNECT_CMDID
= 0x03,
61 WMI_DISCONNECT_STA_CMDID
= 0x04,
62 WMI_START_SCAN_CMDID
= 0x07,
63 WMI_SET_BSS_FILTER_CMDID
= 0x09,
64 WMI_SET_PROBED_SSID_CMDID
= 0x0A,
65 WMI_SET_LISTEN_INT_CMDID
= 0x0B,
66 WMI_BCON_CTRL_CMDID
= 0x0F,
67 WMI_ADD_CIPHER_KEY_CMDID
= 0x16,
68 WMI_DELETE_CIPHER_KEY_CMDID
= 0x17,
69 WMI_PCP_CONF_CMDID
= 0x18,
70 WMI_SET_APPIE_CMDID
= 0x3F,
71 WMI_SET_WSC_STATUS_CMDID
= 0x41,
72 WMI_PXMT_RANGE_CFG_CMDID
= 0x42,
73 WMI_PXMT_SNR2_RANGE_CFG_CMDID
= 0x43,
74 WMI_MEM_READ_CMDID
= 0x800,
75 WMI_MEM_WR_CMDID
= 0x801,
76 WMI_ECHO_CMDID
= 0x803,
77 WMI_DEEP_ECHO_CMDID
= 0x804,
78 WMI_CONFIG_MAC_CMDID
= 0x805,
79 WMI_CONFIG_PHY_DEBUG_CMDID
= 0x806,
80 WMI_ADD_DEBUG_TX_PCKT_CMDID
= 0x808,
81 WMI_PHY_GET_STATISTICS_CMDID
= 0x809,
82 WMI_FS_TUNE_CMDID
= 0x80A,
83 WMI_CORR_MEASURE_CMDID
= 0x80B,
84 WMI_READ_RSSI_CMDID
= 0x80C,
85 WMI_TEMP_SENSE_CMDID
= 0x80E,
86 WMI_DC_CALIB_CMDID
= 0x80F,
87 WMI_SEND_TONE_CMDID
= 0x810,
88 WMI_IQ_TX_CALIB_CMDID
= 0x811,
89 WMI_IQ_RX_CALIB_CMDID
= 0x812,
90 WMI_SET_UCODE_IDLE_CMDID
= 0x813,
91 WMI_SET_WORK_MODE_CMDID
= 0x815,
92 WMI_LO_LEAKAGE_CALIB_CMDID
= 0x816,
93 WMI_MARLON_R_READ_CMDID
= 0x818,
94 WMI_MARLON_R_WRITE_CMDID
= 0x819,
95 WMI_MARLON_R_TXRX_SEL_CMDID
= 0x81A,
96 MAC_IO_STATIC_PARAMS_CMDID
= 0x81B,
97 MAC_IO_DYNAMIC_PARAMS_CMDID
= 0x81C,
98 WMI_SILENT_RSSI_CALIB_CMDID
= 0x81D,
99 WMI_RF_RX_TEST_CMDID
= 0x81E,
100 WMI_CFG_RX_CHAIN_CMDID
= 0x820,
101 WMI_VRING_CFG_CMDID
= 0x821,
102 WMI_BCAST_VRING_CFG_CMDID
= 0x822,
103 WMI_VRING_BA_EN_CMDID
= 0x823,
104 WMI_VRING_BA_DIS_CMDID
= 0x824,
105 WMI_RCP_ADDBA_RESP_CMDID
= 0x825,
106 WMI_RCP_DELBA_CMDID
= 0x826,
107 WMI_SET_SSID_CMDID
= 0x827,
108 WMI_GET_SSID_CMDID
= 0x828,
109 WMI_SET_PCP_CHANNEL_CMDID
= 0x829,
110 WMI_GET_PCP_CHANNEL_CMDID
= 0x82A,
111 WMI_SW_TX_REQ_CMDID
= 0x82B,
112 WMI_READ_MAC_RXQ_CMDID
= 0x830,
113 WMI_READ_MAC_TXQ_CMDID
= 0x831,
114 WMI_WRITE_MAC_RXQ_CMDID
= 0x832,
115 WMI_WRITE_MAC_TXQ_CMDID
= 0x833,
116 WMI_WRITE_MAC_XQ_FIELD_CMDID
= 0x834,
117 WMI_MLME_PUSH_CMDID
= 0x835,
118 WMI_BEAMFORMING_MGMT_CMDID
= 0x836,
119 WMI_BF_TXSS_MGMT_CMDID
= 0x837,
120 WMI_BF_SM_MGMT_CMDID
= 0x838,
121 WMI_BF_RXSS_MGMT_CMDID
= 0x839,
122 WMI_BF_TRIG_CMDID
= 0x83A,
123 WMI_SET_SECTORS_CMDID
= 0x849,
124 WMI_MAINTAIN_PAUSE_CMDID
= 0x850,
125 WMI_MAINTAIN_RESUME_CMDID
= 0x851,
126 WMI_RS_MGMT_CMDID
= 0x852,
127 WMI_RF_MGMT_CMDID
= 0x853,
128 WMI_THERMAL_THROTTLING_CTRL_CMDID
= 0x854,
129 WMI_THERMAL_THROTTLING_GET_STATUS_CMDID
= 0x855,
130 WMI_OTP_READ_CMDID
= 0x856,
131 WMI_OTP_WRITE_CMDID
= 0x857,
132 WMI_LED_CFG_CMDID
= 0x858,
133 /* Performance monitoring commands */
134 WMI_BF_CTRL_CMDID
= 0x862,
135 WMI_NOTIFY_REQ_CMDID
= 0x863,
136 WMI_GET_STATUS_CMDID
= 0x864,
137 WMI_UNIT_TEST_CMDID
= 0x900,
138 WMI_HICCUP_CMDID
= 0x901,
139 WMI_FLASH_READ_CMDID
= 0x902,
140 WMI_FLASH_WRITE_CMDID
= 0x903,
142 WMI_P2P_CFG_CMDID
= 0x910,
143 WMI_PORT_ALLOCATE_CMDID
= 0x911,
144 WMI_PORT_DELETE_CMDID
= 0x912,
145 WMI_POWER_MGMT_CFG_CMDID
= 0x913,
146 WMI_START_LISTEN_CMDID
= 0x914,
147 WMI_START_SEARCH_CMDID
= 0x915,
148 WMI_DISCOVERY_START_CMDID
= 0x916,
149 WMI_DISCOVERY_STOP_CMDID
= 0x917,
150 WMI_PCP_START_CMDID
= 0x918,
151 WMI_PCP_STOP_CMDID
= 0x919,
152 WMI_GET_PCP_FACTOR_CMDID
= 0x91B,
153 WMI_SET_MAC_ADDRESS_CMDID
= 0xF003,
154 WMI_ABORT_SCAN_CMDID
= 0xF007,
155 WMI_SET_PROMISCUOUS_MODE_CMDID
= 0xF041,
156 WMI_GET_PMK_CMDID
= 0xF048,
157 WMI_SET_PASSPHRASE_CMDID
= 0xF049,
158 WMI_SEND_ASSOC_RES_CMDID
= 0xF04A,
159 WMI_SET_ASSOC_REQ_RELAY_CMDID
= 0xF04B,
160 WMI_MAC_ADDR_REQ_CMDID
= 0xF04D,
161 WMI_FW_VER_CMDID
= 0xF04E,
162 WMI_PMC_CMDID
= 0xF04F,
165 /* WMI_CONNECT_CMDID */
166 enum wmi_network_type
{
167 WMI_NETTYPE_INFRA
= 0x01,
168 WMI_NETTYPE_ADHOC
= 0x02,
169 WMI_NETTYPE_ADHOC_CREATOR
= 0x04,
170 WMI_NETTYPE_AP
= 0x10,
171 WMI_NETTYPE_P2P
= 0x20,
173 WMI_NETTYPE_WBE
= 0x40,
176 enum wmi_dot11_auth_mode
{
177 WMI_AUTH11_OPEN
= 0x01,
178 WMI_AUTH11_SHARED
= 0x02,
179 WMI_AUTH11_LEAP
= 0x04,
180 WMI_AUTH11_WSC
= 0x08,
184 WMI_AUTH_NONE
= 0x01,
186 WMI_AUTH_WPA2
= 0x04,
187 WMI_AUTH_WPA_PSK
= 0x08,
188 WMI_AUTH_WPA2_PSK
= 0x10,
189 WMI_AUTH_WPA_CCKM
= 0x20,
190 WMI_AUTH_WPA2_CCKM
= 0x40,
193 enum wmi_crypto_type
{
194 WMI_CRYPT_NONE
= 0x01,
195 WMI_CRYPT_AES_GCMP
= 0x20,
198 enum wmi_connect_ctrl_flag_bits
{
199 WMI_CONNECT_ASSOC_POLICY_USER
= 0x01,
200 WMI_CONNECT_SEND_REASSOC
= 0x02,
201 WMI_CONNECT_IGNORE_WPA_GROUP_CIPHER
= 0x04,
202 WMI_CONNECT_PROFILE_MATCH_DONE
= 0x08,
203 WMI_CONNECT_IGNORE_AAC_BEACON
= 0x10,
204 WMI_CONNECT_CSA_FOLLOW_BSS
= 0x20,
205 WMI_CONNECT_DO_WPA_OFFLOAD
= 0x40,
206 WMI_CONNECT_DO_NOT_DEAUTH
= 0x80,
209 #define WMI_MAX_SSID_LEN (32)
211 /* WMI_CONNECT_CMDID */
212 struct wmi_connect_cmd
{
216 u8 pairwise_crypto_type
;
217 u8 pairwise_crypto_len
;
218 u8 group_crypto_type
;
221 u8 ssid
[WMI_MAX_SSID_LEN
];
224 u8 bssid
[WMI_MAC_LEN
];
226 u8 dst_mac
[WMI_MAC_LEN
];
230 /* WMI_DISCONNECT_STA_CMDID */
231 struct wmi_disconnect_sta_cmd
{
232 u8 dst_mac
[WMI_MAC_LEN
];
233 __le16 disconnect_reason
;
236 #define WMI_MAX_KEY_INDEX (3)
237 #define WMI_MAX_KEY_LEN (32)
238 #define WMI_PASSPHRASE_LEN (64)
240 /* WMI_SET_PASSPHRASE_CMDID */
241 struct wmi_set_passphrase_cmd
{
242 u8 ssid
[WMI_MAX_SSID_LEN
];
243 u8 passphrase
[WMI_PASSPHRASE_LEN
];
248 /* WMI_ADD_CIPHER_KEY_CMDID */
250 WMI_KEY_USE_PAIRWISE
= 0x00,
251 WMI_KEY_USE_RX_GROUP
= 0x01,
252 WMI_KEY_USE_TX_GROUP
= 0x02,
255 struct wmi_add_cipher_key_cmd
{
258 /* enum wmi_key_usage */
261 /* key replay sequence counter */
263 u8 key
[WMI_MAX_KEY_LEN
];
264 /* Additional Key Control information */
269 /* WMI_DELETE_CIPHER_KEY_CMDID */
270 struct wmi_delete_cipher_key_cmd
{
275 /* WMI_START_SCAN_CMDID
277 * Start L1 scan operation
280 * - WMI_RX_MGMT_PACKET_EVENTID - for every probe resp.
281 * - WMI_SCAN_COMPLETE_EVENTID
284 WMI_ACTIVE_SCAN
= 0x00,
285 WMI_SHORT_SCAN
= 0x01,
286 WMI_PASSIVE_SCAN
= 0x02,
287 WMI_DIRECT_SCAN
= 0x03,
288 WMI_LONG_SCAN
= 0x04,
291 /* WMI_START_SCAN_CMDID */
292 struct wmi_start_scan_cmd
{
293 u8 direct_scan_mac_addr
[WMI_MAC_LEN
];
294 /* DMG Beacon frame is transmitted during active scanning */
298 /* Max duration in the home channel(ms) */
300 /* Time interval between scans (ms) */
301 __le32 force_scan_interval
;
302 /* enum wmi_scan_type */
304 /* how many channels follow */
317 /* WMI_SET_PROBED_SSID_CMDID */
318 #define MAX_PROBED_SSID_INDEX (3)
322 WMI_SSID_FLAG_DISABLE
= 0x00,
323 /* probes specified ssid */
324 WMI_SSID_FLAG_SPECIFIC
= 0x01,
325 /* probes for any ssid */
326 WMI_SSID_FLAG_ANY
= 0x02,
329 struct wmi_probed_ssid_cmd
{
330 /* 0 to MAX_PROBED_SSID_INDEX */
332 /* enum wmi_ssid_flag */
335 u8 ssid
[WMI_MAX_SSID_LEN
];
338 /* WMI_SET_APPIE_CMDID
339 * Add Application specified IE to a management frame
341 #define WMI_MAX_IE_LEN (1024)
344 enum wmi_mgmt_frame_type
{
345 WMI_FRAME_BEACON
= 0x00,
346 WMI_FRAME_PROBE_REQ
= 0x01,
347 WMI_FRAME_PROBE_RESP
= 0x02,
348 WMI_FRAME_ASSOC_REQ
= 0x03,
349 WMI_FRAME_ASSOC_RESP
= 0x04,
350 WMI_NUM_MGMT_FRAME
= 0x05,
353 struct wmi_set_appie_cmd
{
354 /* enum wmi_mgmt_frame_type */
357 /* Length of the IE to be added to MGMT frame */
362 /* WMI_PXMT_RANGE_CFG_CMDID */
363 struct wmi_pxmt_range_cfg_cmd
{
364 u8 dst_mac
[WMI_MAC_LEN
];
368 /* WMI_PXMT_SNR2_RANGE_CFG_CMDID */
369 struct wmi_pxmt_snr2_range_cfg_cmd
{
373 /* WMI_RF_MGMT_CMDID */
374 enum wmi_rf_mgmt_type
{
375 WMI_RF_MGMT_W_DISABLE
= 0x00,
376 WMI_RF_MGMT_W_ENABLE
= 0x01,
377 WMI_RF_MGMT_GET_STATUS
= 0x02,
380 /* WMI_RF_MGMT_CMDID */
381 struct wmi_rf_mgmt_cmd
{
385 /* WMI_THERMAL_THROTTLING_CTRL_CMDID */
386 #define THERMAL_THROTTLING_USE_DEFAULT_MAX_TXOP_LENGTH (0xFFFFFFFF)
388 /* WMI_THERMAL_THROTTLING_CTRL_CMDID */
389 struct wmi_thermal_throttling_ctrl_cmd
{
391 __le32 time_off_usec
;
392 __le32 max_txop_length_usec
;
395 /* WMI_RF_RX_TEST_CMDID */
396 struct wmi_rf_rx_test_cmd
{
400 /* WMI_CORR_MEASURE_CMDID */
401 struct wmi_corr_measure_cmd
{
403 __le32 length_samples
;
407 /* WMI_SET_SSID_CMDID */
408 struct wmi_set_ssid_cmd
{
410 u8 ssid
[WMI_MAX_SSID_LEN
];
413 /* WMI_SET_PCP_CHANNEL_CMDID */
414 struct wmi_set_pcp_channel_cmd
{
419 /* WMI_BCON_CTRL_CMDID */
420 struct wmi_bcon_ctrl_cmd
{
421 __le16 bcon_interval
;
425 u8 pcp_max_assoc_sta
;
426 u8 disable_sec_offload
;
433 /* WMI_PORT_ALLOCATE_CMDID */
438 WMI_PORT_P2P_DEV
= 0x03,
439 WMI_PORT_P2P_CLIENT
= 0x04,
440 WMI_PORT_P2P_GO
= 0x05,
443 /* WMI_PORT_ALLOCATE_CMDID */
444 struct wmi_port_allocate_cmd
{
450 /* WMI_PORT_DELETE_CMDID */
451 struct wmi_port_delete_cmd
{
456 /* WMI_P2P_CFG_CMDID */
457 enum wmi_discovery_mode
{
458 WMI_DISCOVERY_MODE_NON_OFFLOAD
= 0x00,
459 WMI_DISCOVERY_MODE_OFFLOAD
= 0x01,
460 WMI_DISCOVERY_MODE_PEER2PEER
= 0x02,
463 struct wmi_p2p_cfg_cmd
{
464 /* enum wmi_discovery_mode */
467 /* base to listen/search duration calculation */
468 __le16 bcon_interval
;
471 /* WMI_POWER_MGMT_CFG_CMDID */
472 enum wmi_power_source_type
{
473 WMI_POWER_SOURCE_BATTERY
= 0x00,
474 WMI_POWER_SOURCE_OTHER
= 0x01,
477 struct wmi_power_mgmt_cfg_cmd
{
478 /* enum wmi_power_source_type */
483 /* WMI_PCP_START_CMDID */
484 struct wmi_pcp_start_cmd
{
485 __le16 bcon_interval
;
486 u8 pcp_max_assoc_sta
;
492 u8 disable_sec_offload
;
496 /* WMI_SW_TX_REQ_CMDID */
497 struct wmi_sw_tx_req_cmd
{
498 u8 dst_mac
[WMI_MAC_LEN
];
503 struct wmi_sw_ring_cfg
{
504 __le64 ring_mem_base
;
506 __le16 max_mpdu_size
;
509 /* wmi_vring_cfg_schd */
510 struct wmi_vring_cfg_schd
{
515 enum wmi_vring_cfg_encap_trans_type
{
516 WMI_VRING_ENC_TYPE_802_3
= 0x00,
517 WMI_VRING_ENC_TYPE_NATIVE_WIFI
= 0x01,
520 enum wmi_vring_cfg_ds_cfg
{
521 WMI_VRING_DS_PBSS
= 0x00,
522 WMI_VRING_DS_STATION
= 0x01,
523 WMI_VRING_DS_AP
= 0x02,
524 WMI_VRING_DS_ADDR4
= 0x03,
527 enum wmi_vring_cfg_nwifi_ds_trans_type
{
528 WMI_NWIFI_TX_TRANS_MODE_NO
= 0x00,
529 WMI_NWIFI_TX_TRANS_MODE_AP2PBSS
= 0x01,
530 WMI_NWIFI_TX_TRANS_MODE_STA2PBSS
= 0x02,
533 enum wmi_vring_cfg_schd_params_priority
{
534 WMI_SCH_PRIO_REGULAR
= 0x00,
535 WMI_SCH_PRIO_HIGH
= 0x01,
538 #define CIDXTID_CID_POS (0)
539 #define CIDXTID_CID_LEN (4)
540 #define CIDXTID_CID_MSK (0xF)
541 #define CIDXTID_TID_POS (4)
542 #define CIDXTID_TID_LEN (4)
543 #define CIDXTID_TID_MSK (0xF0)
544 #define VRING_CFG_MAC_CTRL_LIFETIME_EN_POS (0)
545 #define VRING_CFG_MAC_CTRL_LIFETIME_EN_LEN (1)
546 #define VRING_CFG_MAC_CTRL_LIFETIME_EN_MSK (0x1)
547 #define VRING_CFG_MAC_CTRL_AGGR_EN_POS (1)
548 #define VRING_CFG_MAC_CTRL_AGGR_EN_LEN (1)
549 #define VRING_CFG_MAC_CTRL_AGGR_EN_MSK (0x2)
550 #define VRING_CFG_TO_RESOLUTION_VALUE_POS (0)
551 #define VRING_CFG_TO_RESOLUTION_VALUE_LEN (6)
552 #define VRING_CFG_TO_RESOLUTION_VALUE_MSK (0x3F)
554 struct wmi_vring_cfg
{
555 struct wmi_sw_ring_cfg tx_sw_ring
;
562 u8 nwifi_ds_trans_type
;
566 struct wmi_vring_cfg_schd schd_params
;
569 enum wmi_vring_cfg_cmd_action
{
570 WMI_VRING_CMD_ADD
= 0x00,
571 WMI_VRING_CMD_MODIFY
= 0x01,
572 WMI_VRING_CMD_DELETE
= 0x02,
575 /* WMI_VRING_CFG_CMDID */
576 struct wmi_vring_cfg_cmd
{
578 struct wmi_vring_cfg vring_cfg
;
581 struct wmi_bcast_vring_cfg
{
582 struct wmi_sw_ring_cfg tx_sw_ring
;
588 u8 nwifi_ds_trans_type
;
591 /* WMI_BCAST_VRING_CFG_CMDID */
592 struct wmi_bcast_vring_cfg_cmd
{
594 struct wmi_bcast_vring_cfg vring_cfg
;
597 /* WMI_VRING_BA_EN_CMDID */
598 struct wmi_vring_ba_en_cmd
{
606 /* WMI_VRING_BA_DIS_CMDID */
607 struct wmi_vring_ba_dis_cmd
{
613 /* WMI_NOTIFY_REQ_CMDID */
614 struct wmi_notify_req_cmd
{
619 __le32 interval_usec
;
626 /* WMI_CFG_RX_CHAIN_CMDID */
627 enum wmi_sniffer_cfg_mode
{
628 WMI_SNIFFER_OFF
= 0x00,
629 WMI_SNIFFER_ON
= 0x01,
632 enum wmi_sniffer_cfg_phy_info_mode
{
633 WMI_SNIFFER_PHY_INFO_DISABLED
= 0x00,
634 WMI_SNIFFER_PHY_INFO_ENABLED
= 0x01,
637 enum wmi_sniffer_cfg_phy_support
{
638 WMI_SNIFFER_CP
= 0x00,
639 WMI_SNIFFER_DP
= 0x01,
640 WMI_SNIFFER_BOTH_PHYS
= 0x02,
643 /* wmi_sniffer_cfg */
644 struct wmi_sniffer_cfg
{
645 /* enum wmi_sniffer_cfg_mode */
647 /* enum wmi_sniffer_cfg_phy_info_mode */
648 __le32 phy_info_mode
;
649 /* enum wmi_sniffer_cfg_phy_support */
655 enum wmi_cfg_rx_chain_cmd_action
{
656 WMI_RX_CHAIN_ADD
= 0x00,
657 WMI_RX_CHAIN_DEL
= 0x01,
660 enum wmi_cfg_rx_chain_cmd_decap_trans_type
{
661 WMI_DECAP_TYPE_802_3
= 0x00,
662 WMI_DECAP_TYPE_NATIVE_WIFI
= 0x01,
663 WMI_DECAP_TYPE_NONE
= 0x02,
666 enum wmi_cfg_rx_chain_cmd_nwifi_ds_trans_type
{
667 WMI_NWIFI_RX_TRANS_MODE_NO
= 0x00,
668 WMI_NWIFI_RX_TRANS_MODE_PBSS2AP
= 0x01,
669 WMI_NWIFI_RX_TRANS_MODE_PBSS2STA
= 0x02,
672 enum wmi_cfg_rx_chain_cmd_reorder_type
{
673 WMI_RX_HW_REORDER
= 0x00,
674 WMI_RX_SW_REORDER
= 0x01,
677 #define L2_802_3_OFFLOAD_CTRL_VLAN_TAG_INSERTION_POS (0)
678 #define L2_802_3_OFFLOAD_CTRL_VLAN_TAG_INSERTION_LEN (1)
679 #define L2_802_3_OFFLOAD_CTRL_VLAN_TAG_INSERTION_MSK (0x1)
680 #define L2_802_3_OFFLOAD_CTRL_SNAP_KEEP_POS (1)
681 #define L2_802_3_OFFLOAD_CTRL_SNAP_KEEP_LEN (1)
682 #define L2_802_3_OFFLOAD_CTRL_SNAP_KEEP_MSK (0x2)
683 #define L2_NWIFI_OFFLOAD_CTRL_REMOVE_QOS_POS (0)
684 #define L2_NWIFI_OFFLOAD_CTRL_REMOVE_QOS_LEN (1)
685 #define L2_NWIFI_OFFLOAD_CTRL_REMOVE_QOS_MSK (0x1)
686 #define L2_NWIFI_OFFLOAD_CTRL_REMOVE_PN_POS (1)
687 #define L2_NWIFI_OFFLOAD_CTRL_REMOVE_PN_LEN (1)
688 #define L2_NWIFI_OFFLOAD_CTRL_REMOVE_PN_MSK (0x2)
689 #define L3_L4_CTRL_IPV4_CHECKSUM_EN_POS (0)
690 #define L3_L4_CTRL_IPV4_CHECKSUM_EN_LEN (1)
691 #define L3_L4_CTRL_IPV4_CHECKSUM_EN_MSK (0x1)
692 #define L3_L4_CTRL_TCPIP_CHECKSUM_EN_POS (1)
693 #define L3_L4_CTRL_TCPIP_CHECKSUM_EN_LEN (1)
694 #define L3_L4_CTRL_TCPIP_CHECKSUM_EN_MSK (0x2)
695 #define RING_CTRL_OVERRIDE_PREFETCH_THRSH_POS (0)
696 #define RING_CTRL_OVERRIDE_PREFETCH_THRSH_LEN (1)
697 #define RING_CTRL_OVERRIDE_PREFETCH_THRSH_MSK (0x1)
698 #define RING_CTRL_OVERRIDE_WB_THRSH_POS (1)
699 #define RING_CTRL_OVERRIDE_WB_THRSH_LEN (1)
700 #define RING_CTRL_OVERRIDE_WB_THRSH_MSK (0x2)
701 #define RING_CTRL_OVERRIDE_ITR_THRSH_POS (2)
702 #define RING_CTRL_OVERRIDE_ITR_THRSH_LEN (1)
703 #define RING_CTRL_OVERRIDE_ITR_THRSH_MSK (0x4)
704 #define RING_CTRL_OVERRIDE_HOST_THRSH_POS (3)
705 #define RING_CTRL_OVERRIDE_HOST_THRSH_LEN (1)
706 #define RING_CTRL_OVERRIDE_HOST_THRSH_MSK (0x8)
708 /* WMI_CFG_RX_CHAIN_CMDID */
709 struct wmi_cfg_rx_chain_cmd
{
711 struct wmi_sw_ring_cfg rx_sw_ring
;
714 u8 l2_802_3_offload_ctrl
;
715 u8 l2_nwifi_offload_ctrl
;
717 u8 nwifi_ds_trans_type
;
720 __le16 prefetch_thrsh
;
726 struct wmi_sniffer_cfg sniffer_cfg
;
727 __le16 max_rx_pl_per_desc
;
730 /* WMI_RCP_ADDBA_RESP_CMDID */
731 struct wmi_rcp_addba_resp_cmd
{
735 /* ieee80211_ba_parameterset field to send */
740 /* WMI_RCP_DELBA_CMDID */
741 struct wmi_rcp_delba_cmd
{
747 /* WMI_RCP_ADDBA_REQ_CMDID */
748 struct wmi_rcp_addba_req_cmd
{
751 /* ieee80211_ba_parameterset field as it received */
754 /* ieee80211_ba_seqstrl field as it received */
758 /* WMI_SET_MAC_ADDRESS_CMDID */
759 struct wmi_set_mac_address_cmd
{
766 * WMI_DEEP_ECHO_CMDID
767 * Check FW and ucode are alive
768 * Returned event: WMI_ECHO_RSP_EVENTID
769 * same event for both commands
771 struct wmi_echo_cmd
{
775 /* WMI_OTP_READ_CMDID */
776 struct wmi_otp_read_cmd
{
782 /* WMI_OTP_WRITE_CMDID */
783 struct wmi_otp_write_cmd
{
789 /* WMI_TEMP_SENSE_CMDID
791 * Measure MAC and radio temperatures
793 * Possible modes for temperature measurement
795 enum wmi_temperature_measure_mode
{
796 TEMPERATURE_USE_OLD_VALUE
= 0x01,
797 TEMPERATURE_MEASURE_NOW
= 0x02,
800 /* WMI_TEMP_SENSE_CMDID */
801 struct wmi_temp_sense_cmd
{
802 __le32 measure_baseband_en
;
803 __le32 measure_rf_en
;
808 WMI_PMC_ALLOCATE
= 0x00,
809 WMI_PMC_RELEASE
= 0x01,
814 /* enum wmi_pmc_cmd_op_type */
822 * List of Events (target to host)
825 WMI_READY_EVENTID
= 0x1001,
826 WMI_CONNECT_EVENTID
= 0x1002,
827 WMI_DISCONNECT_EVENTID
= 0x1003,
828 WMI_SCAN_COMPLETE_EVENTID
= 0x100A,
829 WMI_REPORT_STATISTICS_EVENTID
= 0x100B,
830 WMI_RD_MEM_RSP_EVENTID
= 0x1800,
831 WMI_FW_READY_EVENTID
= 0x1801,
832 WMI_EXIT_FAST_MEM_ACC_MODE_EVENTID
= 0x200,
833 WMI_ECHO_RSP_EVENTID
= 0x1803,
834 WMI_FS_TUNE_DONE_EVENTID
= 0x180A,
835 WMI_CORR_MEASURE_EVENTID
= 0x180B,
836 WMI_READ_RSSI_EVENTID
= 0x180C,
837 WMI_TEMP_SENSE_DONE_EVENTID
= 0x180E,
838 WMI_DC_CALIB_DONE_EVENTID
= 0x180F,
839 WMI_IQ_TX_CALIB_DONE_EVENTID
= 0x1811,
840 WMI_IQ_RX_CALIB_DONE_EVENTID
= 0x1812,
841 WMI_SET_WORK_MODE_DONE_EVENTID
= 0x1815,
842 WMI_LO_LEAKAGE_CALIB_DONE_EVENTID
= 0x1816,
843 WMI_MARLON_R_READ_DONE_EVENTID
= 0x1818,
844 WMI_MARLON_R_WRITE_DONE_EVENTID
= 0x1819,
845 WMI_MARLON_R_TXRX_SEL_DONE_EVENTID
= 0x181A,
846 WMI_SILENT_RSSI_CALIB_DONE_EVENTID
= 0x181D,
847 WMI_RF_RX_TEST_DONE_EVENTID
= 0x181E,
848 WMI_CFG_RX_CHAIN_DONE_EVENTID
= 0x1820,
849 WMI_VRING_CFG_DONE_EVENTID
= 0x1821,
850 WMI_BA_STATUS_EVENTID
= 0x1823,
851 WMI_RCP_ADDBA_REQ_EVENTID
= 0x1824,
852 WMI_RCP_ADDBA_RESP_SENT_EVENTID
= 0x1825,
853 WMI_DELBA_EVENTID
= 0x1826,
854 WMI_GET_SSID_EVENTID
= 0x1828,
855 WMI_GET_PCP_CHANNEL_EVENTID
= 0x182A,
856 WMI_SW_TX_COMPLETE_EVENTID
= 0x182B,
857 WMI_READ_MAC_RXQ_EVENTID
= 0x1830,
858 WMI_READ_MAC_TXQ_EVENTID
= 0x1831,
859 WMI_WRITE_MAC_RXQ_EVENTID
= 0x1832,
860 WMI_WRITE_MAC_TXQ_EVENTID
= 0x1833,
861 WMI_WRITE_MAC_XQ_FIELD_EVENTID
= 0x1834,
862 WMI_BEAMFORMING_MGMT_DONE_EVENTID
= 0x1836,
863 WMI_BF_TXSS_MGMT_DONE_EVENTID
= 0x1837,
864 WMI_BF_RXSS_MGMT_DONE_EVENTID
= 0x1839,
865 WMI_RS_MGMT_DONE_EVENTID
= 0x1852,
866 WMI_RF_MGMT_STATUS_EVENTID
= 0x1853,
867 WMI_THERMAL_THROTTLING_STATUS_EVENTID
= 0x1855,
868 WMI_BF_SM_MGMT_DONE_EVENTID
= 0x1838,
869 WMI_RX_MGMT_PACKET_EVENTID
= 0x1840,
870 WMI_TX_MGMT_PACKET_EVENTID
= 0x1841,
871 WMI_OTP_READ_RESULT_EVENTID
= 0x1856,
872 WMI_LED_CFG_DONE_EVENTID
= 0x1858,
873 /* Performance monitoring events */
874 WMI_DATA_PORT_OPEN_EVENTID
= 0x1860,
875 WMI_WBE_LINK_DOWN_EVENTID
= 0x1861,
876 WMI_BF_CTRL_DONE_EVENTID
= 0x1862,
877 WMI_NOTIFY_REQ_DONE_EVENTID
= 0x1863,
878 WMI_GET_STATUS_DONE_EVENTID
= 0x1864,
879 WMI_VRING_EN_EVENTID
= 0x1865,
880 WMI_UNIT_TEST_EVENTID
= 0x1900,
881 WMI_FLASH_READ_DONE_EVENTID
= 0x1902,
882 WMI_FLASH_WRITE_DONE_EVENTID
= 0x1903,
884 WMI_P2P_CFG_DONE_EVENTID
= 0x1910,
885 WMI_PORT_ALLOCATED_EVENTID
= 0x1911,
886 WMI_PORT_DELETED_EVENTID
= 0x1912,
887 WMI_LISTEN_STARTED_EVENTID
= 0x1914,
888 WMI_SEARCH_STARTED_EVENTID
= 0x1915,
889 WMI_DISCOVERY_STARTED_EVENTID
= 0x1916,
890 WMI_DISCOVERY_STOPPED_EVENTID
= 0x1917,
891 WMI_PCP_STARTED_EVENTID
= 0x1918,
892 WMI_PCP_STOPPED_EVENTID
= 0x1919,
893 WMI_PCP_FACTOR_EVENTID
= 0x191A,
894 WMI_SET_CHANNEL_EVENTID
= 0x9000,
895 WMI_ASSOC_REQ_EVENTID
= 0x9001,
896 WMI_EAPOL_RX_EVENTID
= 0x9002,
897 WMI_MAC_ADDR_RESP_EVENTID
= 0x9003,
898 WMI_FW_VER_EVENTID
= 0x9004,
899 WMI_ACS_PASSIVE_SCAN_COMPLETE_EVENTID
= 0x9005,
902 /* Events data structures */
904 WMI_FW_STATUS_SUCCESS
= 0x00,
905 WMI_FW_STATUS_FAILURE
= 0x01,
908 /* WMI_RF_MGMT_STATUS_EVENTID */
910 WMI_RF_ENABLED
= 0x00,
911 WMI_RF_DISABLED_HW
= 0x01,
912 WMI_RF_DISABLED_SW
= 0x02,
913 WMI_RF_DISABLED_HW_SW
= 0x03,
916 /* WMI_RF_MGMT_STATUS_EVENTID */
917 struct wmi_rf_mgmt_status_event
{
921 /* WMI_THERMAL_THROTTLING_STATUS_EVENTID */
922 struct wmi_thermal_throttling_status_event
{
924 __le32 time_off_usec
;
925 __le32 max_txop_length_usec
;
928 /* WMI_GET_STATUS_DONE_EVENTID */
929 struct wmi_get_status_done_event
{
930 __le32 is_associated
;
933 u8 bssid
[WMI_MAC_LEN
];
939 u8 ssid
[WMI_MAX_SSID_LEN
];
944 /* WMI_FW_VER_EVENTID */
945 struct wmi_fw_ver_event
{
952 /* WMI_MAC_ADDR_RESP_EVENTID */
953 struct wmi_mac_addr_resp_event
{
960 /* WMI_EAPOL_RX_EVENTID */
961 struct wmi_eapol_rx_event
{
962 u8 src_mac
[WMI_MAC_LEN
];
967 /* WMI_READY_EVENTID */
968 enum wmi_phy_capability
{
969 WMI_11A_CAPABILITY
= 0x01,
970 WMI_11G_CAPABILITY
= 0x02,
971 WMI_11AG_CAPABILITY
= 0x03,
972 WMI_11NA_CAPABILITY
= 0x04,
973 WMI_11NG_CAPABILITY
= 0x05,
974 WMI_11NAG_CAPABILITY
= 0x06,
975 WMI_11AD_CAPABILITY
= 0x07,
976 WMI_11N_CAPABILITY_OFFSET
= 0x03,
979 struct wmi_ready_event
{
983 /* enum wmi_phy_capability */
985 u8 numof_additional_mids
;
988 /* WMI_NOTIFY_REQ_DONE_EVENTID */
989 struct wmi_notify_req_done_event
{
990 /* beamforming status, 0: fail; 1: OK; 2: retrying */
1000 __le16 other_rx_sector
;
1001 __le16 other_tx_sector
;
1007 /* WMI_CONNECT_EVENTID */
1008 struct wmi_connect_event
{
1011 u8 bssid
[WMI_MAC_LEN
];
1012 __le16 listen_interval
;
1013 __le16 beacon_interval
;
1025 /* WMI_DISCONNECT_EVENTID */
1026 enum wmi_disconnect_reason
{
1027 WMI_DIS_REASON_NO_NETWORK_AVAIL
= 0x01,
1029 WMI_DIS_REASON_LOST_LINK
= 0x02,
1030 WMI_DIS_REASON_DISCONNECT_CMD
= 0x03,
1031 WMI_DIS_REASON_BSS_DISCONNECTED
= 0x04,
1032 WMI_DIS_REASON_AUTH_FAILED
= 0x05,
1033 WMI_DIS_REASON_ASSOC_FAILED
= 0x06,
1034 WMI_DIS_REASON_NO_RESOURCES_AVAIL
= 0x07,
1035 WMI_DIS_REASON_CSERV_DISCONNECT
= 0x08,
1036 WMI_DIS_REASON_INVALID_PROFILE
= 0x0A,
1037 WMI_DIS_REASON_DOT11H_CHANNEL_SWITCH
= 0x0B,
1038 WMI_DIS_REASON_PROFILE_MISMATCH
= 0x0C,
1039 WMI_DIS_REASON_CONNECTION_EVICTED
= 0x0D,
1040 WMI_DIS_REASON_IBSS_MERGE
= 0x0E,
1043 struct wmi_disconnect_event
{
1044 /* reason code, see 802.11 spec. */
1045 __le16 protocol_reason_status
;
1047 u8 bssid
[WMI_MAC_LEN
];
1048 /* see enum wmi_disconnect_reason */
1049 u8 disconnect_reason
;
1050 /* last assoc req may passed to host - not in used */
1052 /* last assoc req may passed to host - not in used */
1056 /* WMI_SCAN_COMPLETE_EVENTID */
1058 WMI_SCAN_SUCCESS
= 0x00,
1059 WMI_SCAN_FAILED
= 0x01,
1060 WMI_SCAN_ABORTED
= 0x02,
1061 WMI_SCAN_REJECTED
= 0x03,
1062 WMI_SCAN_ABORT_REJECTED
= 0x04,
1065 struct wmi_scan_complete_event
{
1066 /* enum scan_status */
1070 /* WMI_ACS_PASSIVE_SCAN_COMPLETE_EVENT */
1071 enum wmi_acs_info_bitmask
{
1072 WMI_ACS_INFO_BITMASK_BEACON_FOUND
= 0x01,
1073 WMI_ACS_INFO_BITMASK_BUSY_TIME
= 0x02,
1074 WMI_ACS_INFO_BITMASK_TX_TIME
= 0x04,
1075 WMI_ACS_INFO_BITMASK_RX_TIME
= 0x08,
1076 WMI_ACS_INFO_BITMASK_NOISE
= 0x10,
1079 struct scan_acs_info
{
1090 struct wmi_acs_passive_scan_complete_event
{
1092 /* valid fields within channel info according to
1093 * their appearance in struct order
1096 u8 num_scanned_channels
;
1098 struct scan_acs_info scan_info_list
[0];
1101 /* WMI_BA_STATUS_EVENTID */
1102 enum wmi_vring_ba_status
{
1103 WMI_BA_AGREED
= 0x00,
1104 WMI_BA_NON_AGREED
= 0x01,
1105 /* BA_EN in middle of teardown flow */
1106 WMI_BA_TD_WIP
= 0x02,
1107 /* BA_DIS or BA_EN in middle of BA SETUP flow */
1108 WMI_BA_SETUP_WIP
= 0x03,
1109 /* BA_EN when the BA session is already active */
1110 WMI_BA_SESSION_ACTIVE
= 0x04,
1111 /* BA_DIS when the BA session is not active */
1112 WMI_BA_SESSION_NOT_ACTIVE
= 0x05,
1115 struct wmi_ba_status_event
{
1116 /* enum wmi_vring_ba_status */
1125 /* WMI_DELBA_EVENTID */
1126 struct wmi_delba_event
{
1132 /* WMI_VRING_CFG_DONE_EVENTID */
1133 struct wmi_vring_cfg_done_event
{
1137 __le32 tx_vring_tail_ptr
;
1140 /* WMI_RCP_ADDBA_RESP_SENT_EVENTID */
1141 struct wmi_rcp_addba_resp_sent_event
{
1147 /* WMI_RCP_ADDBA_REQ_EVENTID */
1148 struct wmi_rcp_addba_req_event
{
1151 /* ieee80211_ba_parameterset as it received */
1152 __le16 ba_param_set
;
1154 /* ieee80211_ba_seqstrl field as it received */
1158 /* WMI_CFG_RX_CHAIN_DONE_EVENTID */
1159 enum wmi_cfg_rx_chain_done_event_status
{
1160 WMI_CFG_RX_CHAIN_SUCCESS
= 0x01,
1163 struct wmi_cfg_rx_chain_done_event
{
1164 /* V-Ring Tail pointer */
1165 __le32 rx_ring_tail_ptr
;
1169 /* WMI_WBE_LINK_DOWN_EVENTID */
1170 enum wmi_wbe_link_down_event_reason
{
1171 WMI_WBE_REASON_USER_REQUEST
= 0x00,
1172 WMI_WBE_REASON_RX_DISASSOC
= 0x01,
1173 WMI_WBE_REASON_BAD_PHY_LINK
= 0x02,
1176 /* WMI_WBE_LINK_DOWN_EVENTID */
1177 struct wmi_wbe_link_down_event
{
1183 /* WMI_DATA_PORT_OPEN_EVENTID */
1184 struct wmi_data_port_open_event
{
1189 /* WMI_VRING_EN_EVENTID */
1190 struct wmi_vring_en_event
{
1195 /* WMI_GET_PCP_CHANNEL_EVENTID */
1196 struct wmi_get_pcp_channel_event
{
1201 /* WMI_P2P_CFG_DONE_EVENTID */
1202 struct wmi_p2p_cfg_done_event
{
1208 /* WMI_PORT_ALLOCATED_EVENTID */
1209 struct wmi_port_allocated_event
{
1215 /* WMI_PORT_DELETED_EVENTID */
1216 struct wmi_port_deleted_event
{
1222 /* WMI_LISTEN_STARTED_EVENTID */
1223 struct wmi_listen_started_event
{
1229 /* WMI_SEARCH_STARTED_EVENTID */
1230 struct wmi_search_started_event
{
1236 /* WMI_PCP_STARTED_EVENTID */
1237 struct wmi_pcp_started_event
{
1243 /* WMI_PCP_FACTOR_EVENTID */
1244 struct wmi_pcp_factor_event
{
1248 enum wmi_sw_tx_status
{
1249 WMI_TX_SW_STATUS_SUCCESS
= 0x00,
1250 WMI_TX_SW_STATUS_FAILED_NO_RESOURCES
= 0x01,
1251 WMI_TX_SW_STATUS_FAILED_TX
= 0x02,
1254 /* WMI_SW_TX_COMPLETE_EVENTID */
1255 struct wmi_sw_tx_complete_event
{
1256 /* enum wmi_sw_tx_status */
1261 /* WMI_CORR_MEASURE_EVENTID */
1262 struct wmi_corr_measure_event
{
1273 /* WMI_READ_RSSI_EVENTID */
1274 struct wmi_read_rssi_event
{
1275 __le32 ina_rssi_adc_dbm
;
1278 /* WMI_GET_SSID_EVENTID */
1279 struct wmi_get_ssid_event
{
1281 u8 ssid
[WMI_MAX_SSID_LEN
];
1284 /* wmi_rx_mgmt_info */
1285 struct wmi_rx_mgmt_info
{
1293 /* Not resolved when == 0xFFFFFFFF ==> Broadcast to all MIDS */
1295 /* Not resolved when == 0xFFFFFFFF ==> Broadcast to all MIDS */
1298 /* From Radio MNGR */
1302 /* wmi_otp_read_write_cmd */
1303 struct wmi_otp_read_write_cmd
{
1309 /* WMI_OTP_READ_RESULT_EVENTID */
1310 struct wmi_otp_read_result_event
{
1314 /* WMI_TX_MGMT_PACKET_EVENTID */
1315 struct wmi_tx_mgmt_packet_event
{
1319 /* WMI_RX_MGMT_PACKET_EVENTID */
1320 struct wmi_rx_mgmt_packet_event
{
1321 struct wmi_rx_mgmt_info info
;
1325 /* WMI_ECHO_RSP_EVENTID */
1326 struct wmi_echo_rsp_event
{
1327 __le32 echoed_value
;
1330 /* WMI_TEMP_SENSE_DONE_EVENTID
1332 * Measure MAC and radio temperatures
1334 struct wmi_temp_sense_done_event
{
1335 /* Temperature times 1000 (actual temperature will be achieved by
1336 * dividing the value by 1000)
1338 __le32 baseband_t1000
;
1339 /* Temperature times 1000 (actual temperature will be achieved by
1340 * dividing the value by 1000)
1345 #define WMI_SCAN_DWELL_TIME_MS (100)
1346 #define WMI_SURVEY_TIMEOUT_MS (10000)
1348 enum wmi_hidden_ssid
{
1349 WMI_HIDDEN_SSID_DISABLED
= 0x00,
1350 WMI_HIDDEN_SSID_SEND_EMPTY
= 0x10,
1351 WMI_HIDDEN_SSID_CLEAR
= 0xFE,
1354 /* WMI_LED_CFG_CMDID
1356 * Configure LED On\Off\Blinking operation
1359 * - WMI_LED_CFG_DONE_EVENTID
1366 /* The names of the led as
1367 * described on HW schemes.
1370 WMI_LED_WLAN
= 0x00,
1371 WMI_LED_WPAN
= 0x01,
1372 WMI_LED_WWAN
= 0x02,
1375 /* Led polarity mode. */
1376 enum wmi_led_polarity
{
1377 LED_POLARITY_HIGH_ACTIVE
= 0x00,
1378 LED_POLARITY_LOW_ACTIVE
= 0x01,
1381 /* Combination of on and off
1382 * creates the blinking period
1384 struct wmi_led_blink_mode
{
1389 /* WMI_LED_CFG_CMDID */
1390 struct wmi_led_cfg_cmd
{
1391 /* enum led_mode_e */
1393 /* enum wmi_led_id_e */
1395 /* slow speed blinking combination */
1396 struct wmi_led_blink_mode slow_blink_cfg
;
1397 /* medium speed blinking combination */
1398 struct wmi_led_blink_mode medium_blink_cfg
;
1399 /* high speed blinking combination */
1400 struct wmi_led_blink_mode fast_blink_cfg
;
1401 /* polarity of the led */
1407 /* WMI_LED_CFG_DONE_EVENTID */
1408 struct wmi_led_cfg_done_event
{
1409 /* led config status */
1413 #endif /* __WILOCITY_WMI_H__ */