12be7d22fSVladimir Kondratiev /* 202525a79SVladimir Kondratiev * Copyright (c) 2012-2014 Qualcomm Atheros, Inc. 32be7d22fSVladimir Kondratiev * Copyright (c) 2006-2012 Wilocity . 42be7d22fSVladimir Kondratiev * 52be7d22fSVladimir Kondratiev * Permission to use, copy, modify, and/or distribute this software for any 62be7d22fSVladimir Kondratiev * purpose with or without fee is hereby granted, provided that the above 72be7d22fSVladimir Kondratiev * copyright notice and this permission notice appear in all copies. 82be7d22fSVladimir Kondratiev * 92be7d22fSVladimir Kondratiev * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 102be7d22fSVladimir Kondratiev * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 112be7d22fSVladimir Kondratiev * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 122be7d22fSVladimir Kondratiev * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 132be7d22fSVladimir Kondratiev * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 142be7d22fSVladimir Kondratiev * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 152be7d22fSVladimir Kondratiev * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 162be7d22fSVladimir Kondratiev */ 172be7d22fSVladimir Kondratiev 182be7d22fSVladimir Kondratiev /* 192be7d22fSVladimir Kondratiev * This file contains the definitions of the WMI protocol specified in the 202be7d22fSVladimir Kondratiev * Wireless Module Interface (WMI) for the Wilocity 212be7d22fSVladimir Kondratiev * MARLON 60 Gigabit wireless solution. 222be7d22fSVladimir Kondratiev * It includes definitions of all the commands and events. 232be7d22fSVladimir Kondratiev * Commands are messages from the host to the WM. 242be7d22fSVladimir Kondratiev * Events are messages from the WM to the host. 252be7d22fSVladimir Kondratiev */ 262be7d22fSVladimir Kondratiev 272be7d22fSVladimir Kondratiev #ifndef __WILOCITY_WMI_H__ 282be7d22fSVladimir Kondratiev #define __WILOCITY_WMI_H__ 292be7d22fSVladimir Kondratiev 302be7d22fSVladimir Kondratiev /* General */ 316c2faf09SVladimir Kondratiev #define WILOCITY_MAX_ASSOC_STA (8) 322be7d22fSVladimir Kondratiev #define WMI_MAC_LEN (6) 332be7d22fSVladimir Kondratiev #define WMI_PROX_RANGE_NUM (3) 342be7d22fSVladimir Kondratiev 352be7d22fSVladimir Kondratiev /* List of Commands */ 362be7d22fSVladimir Kondratiev enum wmi_command_id { 372be7d22fSVladimir Kondratiev WMI_CONNECT_CMDID = 0x0001, 382be7d22fSVladimir Kondratiev WMI_DISCONNECT_CMDID = 0x0003, 39b8023177SVladimir Kondratiev WMI_DISCONNECT_STA_CMDID = 0x0004, 402be7d22fSVladimir Kondratiev WMI_START_SCAN_CMDID = 0x0007, 412be7d22fSVladimir Kondratiev WMI_SET_BSS_FILTER_CMDID = 0x0009, 422be7d22fSVladimir Kondratiev WMI_SET_PROBED_SSID_CMDID = 0x000a, 432be7d22fSVladimir Kondratiev WMI_SET_LISTEN_INT_CMDID = 0x000b, 442be7d22fSVladimir Kondratiev WMI_BCON_CTRL_CMDID = 0x000f, 452be7d22fSVladimir Kondratiev WMI_ADD_CIPHER_KEY_CMDID = 0x0016, 462be7d22fSVladimir Kondratiev WMI_DELETE_CIPHER_KEY_CMDID = 0x0017, 472be7d22fSVladimir Kondratiev WMI_SET_APPIE_CMDID = 0x003f, 482be7d22fSVladimir Kondratiev WMI_SET_WSC_STATUS_CMDID = 0x0041, 492be7d22fSVladimir Kondratiev WMI_PXMT_RANGE_CFG_CMDID = 0x0042, 502be7d22fSVladimir Kondratiev WMI_PXMT_SNR2_RANGE_CFG_CMDID = 0x0043, 512be7d22fSVladimir Kondratiev WMI_FAST_MEM_ACC_MODE_CMDID = 0x0300, 522be7d22fSVladimir Kondratiev WMI_MEM_READ_CMDID = 0x0800, 532be7d22fSVladimir Kondratiev WMI_MEM_WR_CMDID = 0x0801, 542be7d22fSVladimir Kondratiev WMI_ECHO_CMDID = 0x0803, 552be7d22fSVladimir Kondratiev WMI_DEEP_ECHO_CMDID = 0x0804, 562be7d22fSVladimir Kondratiev WMI_CONFIG_MAC_CMDID = 0x0805, 572be7d22fSVladimir Kondratiev WMI_CONFIG_PHY_DEBUG_CMDID = 0x0806, 582be7d22fSVladimir Kondratiev WMI_ADD_DEBUG_TX_PCKT_CMDID = 0x0808, 592be7d22fSVladimir Kondratiev WMI_PHY_GET_STATISTICS_CMDID = 0x0809, 602be7d22fSVladimir Kondratiev WMI_FS_TUNE_CMDID = 0x080a, 612be7d22fSVladimir Kondratiev WMI_CORR_MEASURE_CMDID = 0x080b, 62b8023177SVladimir Kondratiev WMI_READ_RSSI_CMDID = 0x080c, 632be7d22fSVladimir Kondratiev WMI_TEMP_SENSE_CMDID = 0x080e, 642be7d22fSVladimir Kondratiev WMI_DC_CALIB_CMDID = 0x080f, 652be7d22fSVladimir Kondratiev WMI_SEND_TONE_CMDID = 0x0810, 662be7d22fSVladimir Kondratiev WMI_IQ_TX_CALIB_CMDID = 0x0811, 672be7d22fSVladimir Kondratiev WMI_IQ_RX_CALIB_CMDID = 0x0812, 682be7d22fSVladimir Kondratiev WMI_SET_UCODE_IDLE_CMDID = 0x0813, 692be7d22fSVladimir Kondratiev WMI_SET_WORK_MODE_CMDID = 0x0815, 702be7d22fSVladimir Kondratiev WMI_LO_LEAKAGE_CALIB_CMDID = 0x0816, 712be7d22fSVladimir Kondratiev WMI_MARLON_R_ACTIVATE_CMDID = 0x0817, 722be7d22fSVladimir Kondratiev WMI_MARLON_R_READ_CMDID = 0x0818, 732be7d22fSVladimir Kondratiev WMI_MARLON_R_WRITE_CMDID = 0x0819, 742be7d22fSVladimir Kondratiev WMI_MARLON_R_TXRX_SEL_CMDID = 0x081a, 752be7d22fSVladimir Kondratiev MAC_IO_STATIC_PARAMS_CMDID = 0x081b, 762be7d22fSVladimir Kondratiev MAC_IO_DYNAMIC_PARAMS_CMDID = 0x081c, 772be7d22fSVladimir Kondratiev WMI_SILENT_RSSI_CALIB_CMDID = 0x081d, 78b8023177SVladimir Kondratiev WMI_RF_RX_TEST_CMDID = 0x081e, 792be7d22fSVladimir Kondratiev WMI_CFG_RX_CHAIN_CMDID = 0x0820, 802be7d22fSVladimir Kondratiev WMI_VRING_CFG_CMDID = 0x0821, 812be7d22fSVladimir Kondratiev WMI_VRING_BA_EN_CMDID = 0x0823, 822be7d22fSVladimir Kondratiev WMI_VRING_BA_DIS_CMDID = 0x0824, 832be7d22fSVladimir Kondratiev WMI_RCP_ADDBA_RESP_CMDID = 0x0825, 842be7d22fSVladimir Kondratiev WMI_RCP_DELBA_CMDID = 0x0826, 852be7d22fSVladimir Kondratiev WMI_SET_SSID_CMDID = 0x0827, 862be7d22fSVladimir Kondratiev WMI_GET_SSID_CMDID = 0x0828, 872be7d22fSVladimir Kondratiev WMI_SET_PCP_CHANNEL_CMDID = 0x0829, 882be7d22fSVladimir Kondratiev WMI_GET_PCP_CHANNEL_CMDID = 0x082a, 892be7d22fSVladimir Kondratiev WMI_SW_TX_REQ_CMDID = 0x082b, 902be7d22fSVladimir Kondratiev WMI_READ_MAC_RXQ_CMDID = 0x0830, 912be7d22fSVladimir Kondratiev WMI_READ_MAC_TXQ_CMDID = 0x0831, 922be7d22fSVladimir Kondratiev WMI_WRITE_MAC_RXQ_CMDID = 0x0832, 932be7d22fSVladimir Kondratiev WMI_WRITE_MAC_TXQ_CMDID = 0x0833, 942be7d22fSVladimir Kondratiev WMI_WRITE_MAC_XQ_FIELD_CMDID = 0x0834, 952be7d22fSVladimir Kondratiev WMI_MLME_PUSH_CMDID = 0x0835, 962be7d22fSVladimir Kondratiev WMI_BEAMFORMING_MGMT_CMDID = 0x0836, 972be7d22fSVladimir Kondratiev WMI_BF_TXSS_MGMT_CMDID = 0x0837, 982be7d22fSVladimir Kondratiev WMI_BF_SM_MGMT_CMDID = 0x0838, 992be7d22fSVladimir Kondratiev WMI_BF_RXSS_MGMT_CMDID = 0x0839, 1002be7d22fSVladimir Kondratiev WMI_SET_SECTORS_CMDID = 0x0849, 1012be7d22fSVladimir Kondratiev WMI_MAINTAIN_PAUSE_CMDID = 0x0850, 1022be7d22fSVladimir Kondratiev WMI_MAINTAIN_RESUME_CMDID = 0x0851, 1032be7d22fSVladimir Kondratiev WMI_RS_MGMT_CMDID = 0x0852, 1042be7d22fSVladimir Kondratiev WMI_RF_MGMT_CMDID = 0x0853, 1052be7d22fSVladimir Kondratiev /* Performance monitoring commands */ 1062be7d22fSVladimir Kondratiev WMI_BF_CTRL_CMDID = 0x0862, 1072be7d22fSVladimir Kondratiev WMI_NOTIFY_REQ_CMDID = 0x0863, 1082be7d22fSVladimir Kondratiev WMI_GET_STATUS_CMDID = 0x0864, 1092be7d22fSVladimir Kondratiev WMI_UNIT_TEST_CMDID = 0x0900, 1102be7d22fSVladimir Kondratiev WMI_HICCUP_CMDID = 0x0901, 1112be7d22fSVladimir Kondratiev WMI_FLASH_READ_CMDID = 0x0902, 1122be7d22fSVladimir Kondratiev WMI_FLASH_WRITE_CMDID = 0x0903, 1132be7d22fSVladimir Kondratiev WMI_SECURITY_UNIT_TEST_CMDID = 0x0904, 114b8023177SVladimir Kondratiev /*P2P*/ 115b8023177SVladimir Kondratiev WMI_P2P_CFG_CMDID = 0x0910, 116b8023177SVladimir Kondratiev WMI_PORT_ALLOCATE_CMDID = 0x0911, 117b8023177SVladimir Kondratiev WMI_PORT_DELETE_CMDID = 0x0912, 118b8023177SVladimir Kondratiev WMI_POWER_MGMT_CFG_CMDID = 0x0913, 119b8023177SVladimir Kondratiev WMI_START_LISTEN_CMDID = 0x0914, 120b8023177SVladimir Kondratiev WMI_START_SEARCH_CMDID = 0x0915, 121b8023177SVladimir Kondratiev WMI_DISCOVERY_START_CMDID = 0x0916, 122b8023177SVladimir Kondratiev WMI_DISCOVERY_STOP_CMDID = 0x0917, 123b8023177SVladimir Kondratiev WMI_PCP_START_CMDID = 0x0918, 124b8023177SVladimir Kondratiev WMI_PCP_STOP_CMDID = 0x0919, 125b8023177SVladimir Kondratiev WMI_GET_PCP_FACTOR_CMDID = 0x091b, 1262be7d22fSVladimir Kondratiev 1272be7d22fSVladimir Kondratiev WMI_SET_MAC_ADDRESS_CMDID = 0xf003, 1282be7d22fSVladimir Kondratiev WMI_ABORT_SCAN_CMDID = 0xf007, 1292be7d22fSVladimir Kondratiev WMI_SET_PMK_CMDID = 0xf028, 1302be7d22fSVladimir Kondratiev 1312be7d22fSVladimir Kondratiev WMI_SET_PROMISCUOUS_MODE_CMDID = 0xf041, 1322be7d22fSVladimir Kondratiev WMI_GET_PMK_CMDID = 0xf048, 1332be7d22fSVladimir Kondratiev WMI_SET_PASSPHRASE_CMDID = 0xf049, 1342be7d22fSVladimir Kondratiev WMI_SEND_ASSOC_RES_CMDID = 0xf04a, 1352be7d22fSVladimir Kondratiev WMI_SET_ASSOC_REQ_RELAY_CMDID = 0xf04b, 1362be7d22fSVladimir Kondratiev WMI_EAPOL_TX_CMDID = 0xf04c, 1372be7d22fSVladimir Kondratiev WMI_MAC_ADDR_REQ_CMDID = 0xf04d, 1382be7d22fSVladimir Kondratiev WMI_FW_VER_CMDID = 0xf04e, 1392be7d22fSVladimir Kondratiev }; 1402be7d22fSVladimir Kondratiev 1412be7d22fSVladimir Kondratiev /* 1422be7d22fSVladimir Kondratiev * Commands data structures 1432be7d22fSVladimir Kondratiev */ 1442be7d22fSVladimir Kondratiev 1452be7d22fSVladimir Kondratiev /* 1462be7d22fSVladimir Kondratiev * WMI_CONNECT_CMDID 1472be7d22fSVladimir Kondratiev */ 1482be7d22fSVladimir Kondratiev enum wmi_network_type { 1492be7d22fSVladimir Kondratiev WMI_NETTYPE_INFRA = 0x01, 1502be7d22fSVladimir Kondratiev WMI_NETTYPE_ADHOC = 0x02, 1512be7d22fSVladimir Kondratiev WMI_NETTYPE_ADHOC_CREATOR = 0x04, 1522be7d22fSVladimir Kondratiev WMI_NETTYPE_AP = 0x10, 1532be7d22fSVladimir Kondratiev WMI_NETTYPE_P2P = 0x20, 1542be7d22fSVladimir Kondratiev WMI_NETTYPE_WBE = 0x40, /* PCIE over 60g */ 1552be7d22fSVladimir Kondratiev }; 1562be7d22fSVladimir Kondratiev 1572be7d22fSVladimir Kondratiev enum wmi_dot11_auth_mode { 1582be7d22fSVladimir Kondratiev WMI_AUTH11_OPEN = 0x01, 1592be7d22fSVladimir Kondratiev WMI_AUTH11_SHARED = 0x02, 1602be7d22fSVladimir Kondratiev WMI_AUTH11_LEAP = 0x04, 1612be7d22fSVladimir Kondratiev WMI_AUTH11_WSC = 0x08, 1622be7d22fSVladimir Kondratiev }; 1632be7d22fSVladimir Kondratiev 1642be7d22fSVladimir Kondratiev enum wmi_auth_mode { 1652be7d22fSVladimir Kondratiev WMI_AUTH_NONE = 0x01, 1662be7d22fSVladimir Kondratiev WMI_AUTH_WPA = 0x02, 1672be7d22fSVladimir Kondratiev WMI_AUTH_WPA2 = 0x04, 1682be7d22fSVladimir Kondratiev WMI_AUTH_WPA_PSK = 0x08, 1692be7d22fSVladimir Kondratiev WMI_AUTH_WPA2_PSK = 0x10, 1702be7d22fSVladimir Kondratiev WMI_AUTH_WPA_CCKM = 0x20, 1712be7d22fSVladimir Kondratiev WMI_AUTH_WPA2_CCKM = 0x40, 1722be7d22fSVladimir Kondratiev }; 1732be7d22fSVladimir Kondratiev 1742be7d22fSVladimir Kondratiev enum wmi_crypto_type { 1752be7d22fSVladimir Kondratiev WMI_CRYPT_NONE = 0x01, 1762be7d22fSVladimir Kondratiev WMI_CRYPT_WEP = 0x02, 1772be7d22fSVladimir Kondratiev WMI_CRYPT_TKIP = 0x04, 1782be7d22fSVladimir Kondratiev WMI_CRYPT_AES = 0x08, 1792be7d22fSVladimir Kondratiev WMI_CRYPT_AES_GCMP = 0x20, 1802be7d22fSVladimir Kondratiev }; 1812be7d22fSVladimir Kondratiev 1822be7d22fSVladimir Kondratiev enum wmi_connect_ctrl_flag_bits { 1832be7d22fSVladimir Kondratiev WMI_CONNECT_ASSOC_POLICY_USER = 0x0001, 1842be7d22fSVladimir Kondratiev WMI_CONNECT_SEND_REASSOC = 0x0002, 185b8023177SVladimir Kondratiev WMI_CONNECT_IGNORE_WPA_GROUP_CIPHER = 0x0004, 1862be7d22fSVladimir Kondratiev WMI_CONNECT_PROFILE_MATCH_DONE = 0x0008, 1872be7d22fSVladimir Kondratiev WMI_CONNECT_IGNORE_AAC_BEACON = 0x0010, 1882be7d22fSVladimir Kondratiev WMI_CONNECT_CSA_FOLLOW_BSS = 0x0020, 1892be7d22fSVladimir Kondratiev WMI_CONNECT_DO_WPA_OFFLOAD = 0x0040, 1902be7d22fSVladimir Kondratiev WMI_CONNECT_DO_NOT_DEAUTH = 0x0080, 1912be7d22fSVladimir Kondratiev }; 1922be7d22fSVladimir Kondratiev 1932be7d22fSVladimir Kondratiev #define WMI_MAX_SSID_LEN (32) 1942be7d22fSVladimir Kondratiev 1952be7d22fSVladimir Kondratiev struct wmi_connect_cmd { 1962be7d22fSVladimir Kondratiev u8 network_type; 1972be7d22fSVladimir Kondratiev u8 dot11_auth_mode; 1982be7d22fSVladimir Kondratiev u8 auth_mode; 1992be7d22fSVladimir Kondratiev u8 pairwise_crypto_type; 2002be7d22fSVladimir Kondratiev u8 pairwise_crypto_len; 2012be7d22fSVladimir Kondratiev u8 group_crypto_type; 2022be7d22fSVladimir Kondratiev u8 group_crypto_len; 2032be7d22fSVladimir Kondratiev u8 ssid_len; 2042be7d22fSVladimir Kondratiev u8 ssid[WMI_MAX_SSID_LEN]; 2052be7d22fSVladimir Kondratiev u8 channel; 2062be7d22fSVladimir Kondratiev u8 reserved0; 2072be7d22fSVladimir Kondratiev u8 bssid[WMI_MAC_LEN]; 2082be7d22fSVladimir Kondratiev __le32 ctrl_flags; 2092be7d22fSVladimir Kondratiev u8 dst_mac[WMI_MAC_LEN]; 2102be7d22fSVladimir Kondratiev u8 reserved1[2]; 2112be7d22fSVladimir Kondratiev } __packed; 2122be7d22fSVladimir Kondratiev 213b8023177SVladimir Kondratiev /* 214b8023177SVladimir Kondratiev * WMI_DISCONNECT_STA_CMDID 215b8023177SVladimir Kondratiev */ 216b8023177SVladimir Kondratiev struct wmi_disconnect_sta_cmd { 217b8023177SVladimir Kondratiev u8 dst_mac[WMI_MAC_LEN]; 218b8023177SVladimir Kondratiev __le16 disconnect_reason; 219b8023177SVladimir Kondratiev } __packed; 2202be7d22fSVladimir Kondratiev 2212be7d22fSVladimir Kondratiev /* 2222be7d22fSVladimir Kondratiev * WMI_SET_PMK_CMDID 2232be7d22fSVladimir Kondratiev */ 2242be7d22fSVladimir Kondratiev 2252be7d22fSVladimir Kondratiev #define WMI_MIN_KEY_INDEX (0) 2262be7d22fSVladimir Kondratiev #define WMI_MAX_KEY_INDEX (3) 2272be7d22fSVladimir Kondratiev #define WMI_MAX_KEY_LEN (32) 2282be7d22fSVladimir Kondratiev #define WMI_PASSPHRASE_LEN (64) 2292be7d22fSVladimir Kondratiev #define WMI_PMK_LEN (32) 2302be7d22fSVladimir Kondratiev 2312be7d22fSVladimir Kondratiev struct wmi_set_pmk_cmd { 2322be7d22fSVladimir Kondratiev u8 pmk[WMI_PMK_LEN]; 2332be7d22fSVladimir Kondratiev } __packed; 2342be7d22fSVladimir Kondratiev 2352be7d22fSVladimir Kondratiev /* 2362be7d22fSVladimir Kondratiev * WMI_SET_PASSPHRASE_CMDID 2372be7d22fSVladimir Kondratiev */ 2382be7d22fSVladimir Kondratiev struct wmi_set_passphrase_cmd { 2392be7d22fSVladimir Kondratiev u8 ssid[WMI_MAX_SSID_LEN]; 2402be7d22fSVladimir Kondratiev u8 passphrase[WMI_PASSPHRASE_LEN]; 2412be7d22fSVladimir Kondratiev u8 ssid_len; 2422be7d22fSVladimir Kondratiev u8 passphrase_len; 2432be7d22fSVladimir Kondratiev } __packed; 2442be7d22fSVladimir Kondratiev 2452be7d22fSVladimir Kondratiev /* 2462be7d22fSVladimir Kondratiev * WMI_ADD_CIPHER_KEY_CMDID 2472be7d22fSVladimir Kondratiev */ 2482be7d22fSVladimir Kondratiev enum wmi_key_usage { 2492be7d22fSVladimir Kondratiev WMI_KEY_USE_PAIRWISE = 0, 2502be7d22fSVladimir Kondratiev WMI_KEY_USE_GROUP = 1, 2512be7d22fSVladimir Kondratiev WMI_KEY_USE_TX = 2, /* default Tx Key - Static WEP only */ 2522be7d22fSVladimir Kondratiev }; 2532be7d22fSVladimir Kondratiev 2542be7d22fSVladimir Kondratiev struct wmi_add_cipher_key_cmd { 2552be7d22fSVladimir Kondratiev u8 key_index; 2562be7d22fSVladimir Kondratiev u8 key_type; 2572be7d22fSVladimir Kondratiev u8 key_usage; /* enum wmi_key_usage */ 2582be7d22fSVladimir Kondratiev u8 key_len; 2592be7d22fSVladimir Kondratiev u8 key_rsc[8]; /* key replay sequence counter */ 2602be7d22fSVladimir Kondratiev u8 key[WMI_MAX_KEY_LEN]; 2612be7d22fSVladimir Kondratiev u8 key_op_ctrl; /* Additional Key Control information */ 2622be7d22fSVladimir Kondratiev u8 mac[WMI_MAC_LEN]; 2632be7d22fSVladimir Kondratiev } __packed; 2642be7d22fSVladimir Kondratiev 2652be7d22fSVladimir Kondratiev /* 2662be7d22fSVladimir Kondratiev * WMI_DELETE_CIPHER_KEY_CMDID 2672be7d22fSVladimir Kondratiev */ 2682be7d22fSVladimir Kondratiev struct wmi_delete_cipher_key_cmd { 2692be7d22fSVladimir Kondratiev u8 key_index; 2702be7d22fSVladimir Kondratiev u8 mac[WMI_MAC_LEN]; 2712be7d22fSVladimir Kondratiev } __packed; 2722be7d22fSVladimir Kondratiev 2732be7d22fSVladimir Kondratiev /* 2742be7d22fSVladimir Kondratiev * WMI_START_SCAN_CMDID 2752be7d22fSVladimir Kondratiev * 2762be7d22fSVladimir Kondratiev * Start L1 scan operation 2772be7d22fSVladimir Kondratiev * 2782be7d22fSVladimir Kondratiev * Returned events: 2792be7d22fSVladimir Kondratiev * - WMI_RX_MGMT_PACKET_EVENTID - for every probe resp. 2802be7d22fSVladimir Kondratiev * - WMI_SCAN_COMPLETE_EVENTID 2812be7d22fSVladimir Kondratiev */ 2822be7d22fSVladimir Kondratiev enum wmi_scan_type { 2832be7d22fSVladimir Kondratiev WMI_LONG_SCAN = 0, 2842be7d22fSVladimir Kondratiev WMI_SHORT_SCAN = 1, 285b8023177SVladimir Kondratiev WMI_PBC_SCAN = 2, 2866c2faf09SVladimir Kondratiev WMI_ACTIVE_SCAN = 3, 2876c2faf09SVladimir Kondratiev WMI_DIRECT_SCAN = 4, 2882be7d22fSVladimir Kondratiev }; 2892be7d22fSVladimir Kondratiev 2902be7d22fSVladimir Kondratiev struct wmi_start_scan_cmd { 2916c2faf09SVladimir Kondratiev u8 direct_scan_mac_addr[6]; 2926c2faf09SVladimir Kondratiev u8 reserved[2]; 2932be7d22fSVladimir Kondratiev __le32 home_dwell_time; /* Max duration in the home channel(ms) */ 2942be7d22fSVladimir Kondratiev __le32 force_scan_interval; /* Time interval between scans (ms)*/ 2952be7d22fSVladimir Kondratiev u8 scan_type; /* wmi_scan_type */ 2962be7d22fSVladimir Kondratiev u8 num_channels; /* how many channels follow */ 2972be7d22fSVladimir Kondratiev struct { 2982be7d22fSVladimir Kondratiev u8 channel; 2992be7d22fSVladimir Kondratiev u8 reserved; 3002be7d22fSVladimir Kondratiev } channel_list[0]; /* channels ID's */ 3012be7d22fSVladimir Kondratiev /* 0 - 58320 MHz */ 3022be7d22fSVladimir Kondratiev /* 1 - 60480 MHz */ 3032be7d22fSVladimir Kondratiev /* 2 - 62640 MHz */ 3042be7d22fSVladimir Kondratiev } __packed; 3052be7d22fSVladimir Kondratiev 3062be7d22fSVladimir Kondratiev /* 3072be7d22fSVladimir Kondratiev * WMI_SET_PROBED_SSID_CMDID 3082be7d22fSVladimir Kondratiev */ 309b8023177SVladimir Kondratiev #define MAX_PROBED_SSID_INDEX (3) 3102be7d22fSVladimir Kondratiev 3112be7d22fSVladimir Kondratiev enum wmi_ssid_flag { 3122be7d22fSVladimir Kondratiev WMI_SSID_FLAG_DISABLE = 0, /* disables entry */ 3132be7d22fSVladimir Kondratiev WMI_SSID_FLAG_SPECIFIC = 1, /* probes specified ssid */ 3142be7d22fSVladimir Kondratiev WMI_SSID_FLAG_ANY = 2, /* probes for any ssid */ 3152be7d22fSVladimir Kondratiev }; 3162be7d22fSVladimir Kondratiev 3172be7d22fSVladimir Kondratiev struct wmi_probed_ssid_cmd { 3182be7d22fSVladimir Kondratiev u8 entry_index; /* 0 to MAX_PROBED_SSID_INDEX */ 3192be7d22fSVladimir Kondratiev u8 flag; /* enum wmi_ssid_flag */ 3202be7d22fSVladimir Kondratiev u8 ssid_len; 3212be7d22fSVladimir Kondratiev u8 ssid[WMI_MAX_SSID_LEN]; 3222be7d22fSVladimir Kondratiev } __packed; 3232be7d22fSVladimir Kondratiev 3242be7d22fSVladimir Kondratiev /* 3252be7d22fSVladimir Kondratiev * WMI_SET_APPIE_CMDID 3262be7d22fSVladimir Kondratiev * Add Application specified IE to a management frame 3272be7d22fSVladimir Kondratiev */ 328b8023177SVladimir Kondratiev #define WMI_MAX_IE_LEN (1024) 329b8023177SVladimir Kondratiev 330b8023177SVladimir Kondratiev /* 331b8023177SVladimir Kondratiev * Frame Types 332b8023177SVladimir Kondratiev */ 333b8023177SVladimir Kondratiev enum wmi_mgmt_frame_type { 334b8023177SVladimir Kondratiev WMI_FRAME_BEACON = 0, 335b8023177SVladimir Kondratiev WMI_FRAME_PROBE_REQ = 1, 336b8023177SVladimir Kondratiev WMI_FRAME_PROBE_RESP = 2, 337b8023177SVladimir Kondratiev WMI_FRAME_ASSOC_REQ = 3, 338b8023177SVladimir Kondratiev WMI_FRAME_ASSOC_RESP = 4, 339b8023177SVladimir Kondratiev WMI_NUM_MGMT_FRAME, 340b8023177SVladimir Kondratiev }; 341b8023177SVladimir Kondratiev 3422be7d22fSVladimir Kondratiev struct wmi_set_appie_cmd { 3432be7d22fSVladimir Kondratiev u8 mgmt_frm_type; /* enum wmi_mgmt_frame_type */ 3442be7d22fSVladimir Kondratiev u8 reserved; 3452be7d22fSVladimir Kondratiev __le16 ie_len; /* Length of the IE to be added to MGMT frame */ 3462be7d22fSVladimir Kondratiev u8 ie_info[0]; 3472be7d22fSVladimir Kondratiev } __packed; 3482be7d22fSVladimir Kondratiev 349b8023177SVladimir Kondratiev /* 350b8023177SVladimir Kondratiev * WMI_PXMT_RANGE_CFG_CMDID 351b8023177SVladimir Kondratiev */ 3522be7d22fSVladimir Kondratiev struct wmi_pxmt_range_cfg_cmd { 3532be7d22fSVladimir Kondratiev u8 dst_mac[WMI_MAC_LEN]; 3542be7d22fSVladimir Kondratiev __le16 range; 3552be7d22fSVladimir Kondratiev } __packed; 3562be7d22fSVladimir Kondratiev 357b8023177SVladimir Kondratiev /* 358b8023177SVladimir Kondratiev * WMI_PXMT_SNR2_RANGE_CFG_CMDID 359b8023177SVladimir Kondratiev */ 3602be7d22fSVladimir Kondratiev struct wmi_pxmt_snr2_range_cfg_cmd { 3612be7d22fSVladimir Kondratiev s8 snr2range_arr[WMI_PROX_RANGE_NUM-1]; 3622be7d22fSVladimir Kondratiev } __packed; 3632be7d22fSVladimir Kondratiev 3642be7d22fSVladimir Kondratiev /* 3652be7d22fSVladimir Kondratiev * WMI_RF_MGMT_CMDID 3662be7d22fSVladimir Kondratiev */ 3672be7d22fSVladimir Kondratiev enum wmi_rf_mgmt_type { 3682be7d22fSVladimir Kondratiev WMI_RF_MGMT_W_DISABLE = 0, 3692be7d22fSVladimir Kondratiev WMI_RF_MGMT_W_ENABLE = 1, 3702be7d22fSVladimir Kondratiev WMI_RF_MGMT_GET_STATUS = 2, 3712be7d22fSVladimir Kondratiev }; 3722be7d22fSVladimir Kondratiev 3732be7d22fSVladimir Kondratiev struct wmi_rf_mgmt_cmd { 3742be7d22fSVladimir Kondratiev __le32 rf_mgmt_type; 3752be7d22fSVladimir Kondratiev } __packed; 3762be7d22fSVladimir Kondratiev 377b8023177SVladimir Kondratiev /* 378b8023177SVladimir Kondratiev * WMI_RF_RX_TEST_CMDID 379b8023177SVladimir Kondratiev */ 380b8023177SVladimir Kondratiev struct wmi_rf_rx_test_cmd { 381b8023177SVladimir Kondratiev __le32 sector; 382b8023177SVladimir Kondratiev } __packed; 383b8023177SVladimir Kondratiev 384b8023177SVladimir Kondratiev /* 385b8023177SVladimir Kondratiev * WMI_CORR_MEASURE_CMDID 386b8023177SVladimir Kondratiev */ 387b8023177SVladimir Kondratiev struct wmi_corr_measure_cmd { 388b8023177SVladimir Kondratiev s32 freq_mhz; 389b8023177SVladimir Kondratiev __le32 length_samples; 390b8023177SVladimir Kondratiev __le32 iterations; 391b8023177SVladimir Kondratiev } __packed; 392b8023177SVladimir Kondratiev 3932be7d22fSVladimir Kondratiev /* 3942be7d22fSVladimir Kondratiev * WMI_SET_SSID_CMDID 3952be7d22fSVladimir Kondratiev */ 3962be7d22fSVladimir Kondratiev struct wmi_set_ssid_cmd { 3972be7d22fSVladimir Kondratiev __le32 ssid_len; 3982be7d22fSVladimir Kondratiev u8 ssid[WMI_MAX_SSID_LEN]; 3992be7d22fSVladimir Kondratiev } __packed; 4002be7d22fSVladimir Kondratiev 4012be7d22fSVladimir Kondratiev /* 4022be7d22fSVladimir Kondratiev * WMI_SET_PCP_CHANNEL_CMDID 4032be7d22fSVladimir Kondratiev */ 4042be7d22fSVladimir Kondratiev struct wmi_set_pcp_channel_cmd { 4052be7d22fSVladimir Kondratiev u8 channel; 4062be7d22fSVladimir Kondratiev u8 reserved[3]; 4072be7d22fSVladimir Kondratiev } __packed; 4082be7d22fSVladimir Kondratiev 4092be7d22fSVladimir Kondratiev /* 4102be7d22fSVladimir Kondratiev * WMI_BCON_CTRL_CMDID 4112be7d22fSVladimir Kondratiev */ 4122be7d22fSVladimir Kondratiev struct wmi_bcon_ctrl_cmd { 4132be7d22fSVladimir Kondratiev __le16 bcon_interval; 4142be7d22fSVladimir Kondratiev __le16 frag_num; 4152be7d22fSVladimir Kondratiev __le64 ss_mask; 4162be7d22fSVladimir Kondratiev u8 network_type; 4176c2faf09SVladimir Kondratiev u8 pcp_max_assoc_sta; 4182be7d22fSVladimir Kondratiev u8 disable_sec_offload; 4192be7d22fSVladimir Kondratiev u8 disable_sec; 4202be7d22fSVladimir Kondratiev } __packed; 4212be7d22fSVladimir Kondratiev 422b8023177SVladimir Kondratiev /******* P2P ***********/ 423b8023177SVladimir Kondratiev 424b8023177SVladimir Kondratiev /* 425b8023177SVladimir Kondratiev * WMI_PORT_ALLOCATE_CMDID 426b8023177SVladimir Kondratiev */ 427b8023177SVladimir Kondratiev enum wmi_port_role { 428b8023177SVladimir Kondratiev WMI_PORT_STA = 0, 429b8023177SVladimir Kondratiev WMI_PORT_PCP = 1, 430b8023177SVladimir Kondratiev WMI_PORT_AP = 2, 431b8023177SVladimir Kondratiev WMI_PORT_P2P_DEV = 3, 432b8023177SVladimir Kondratiev WMI_PORT_P2P_CLIENT = 4, 433b8023177SVladimir Kondratiev WMI_PORT_P2P_GO = 5, 434b8023177SVladimir Kondratiev }; 435b8023177SVladimir Kondratiev 436b8023177SVladimir Kondratiev struct wmi_port_allocate_cmd { 437b8023177SVladimir Kondratiev u8 mac[WMI_MAC_LEN]; 438b8023177SVladimir Kondratiev u8 port_role; 4396c2faf09SVladimir Kondratiev u8 mid; 440b8023177SVladimir Kondratiev } __packed; 441b8023177SVladimir Kondratiev 442b8023177SVladimir Kondratiev /* 443b8023177SVladimir Kondratiev * WMI_PORT_DELETE_CMDID 444b8023177SVladimir Kondratiev */ 445b8023177SVladimir Kondratiev struct wmi_delete_port_cmd { 446b8023177SVladimir Kondratiev u8 mid; 447b8023177SVladimir Kondratiev u8 reserved[3]; 448b8023177SVladimir Kondratiev } __packed; 449b8023177SVladimir Kondratiev 450b8023177SVladimir Kondratiev /* 451b8023177SVladimir Kondratiev * WMI_P2P_CFG_CMDID 452b8023177SVladimir Kondratiev */ 453b8023177SVladimir Kondratiev enum wmi_discovery_mode { 454b8023177SVladimir Kondratiev WMI_DISCOVERY_MODE_NON_OFFLOAD = 0, 455b8023177SVladimir Kondratiev WMI_DISCOVERY_MODE_OFFLOAD = 1, 4566c2faf09SVladimir Kondratiev WMI_DISCOVERY_MODE_PEER2PEER = 2, 457b8023177SVladimir Kondratiev }; 458b8023177SVladimir Kondratiev 459b8023177SVladimir Kondratiev struct wmi_p2p_cfg_cmd { 460b8023177SVladimir Kondratiev u8 discovery_mode; /* wmi_discovery_mode */ 461b8023177SVladimir Kondratiev u8 channel; 462b8023177SVladimir Kondratiev __le16 bcon_interval; /* base to listen/search duration calculation */ 463b8023177SVladimir Kondratiev } __packed; 464b8023177SVladimir Kondratiev 465b8023177SVladimir Kondratiev /* 466b8023177SVladimir Kondratiev * WMI_POWER_MGMT_CFG_CMDID 467b8023177SVladimir Kondratiev */ 468b8023177SVladimir Kondratiev enum wmi_power_source_type { 469b8023177SVladimir Kondratiev WMI_POWER_SOURCE_BATTERY = 0, 470b8023177SVladimir Kondratiev WMI_POWER_SOURCE_OTHER = 1, 471b8023177SVladimir Kondratiev }; 472b8023177SVladimir Kondratiev 473b8023177SVladimir Kondratiev struct wmi_power_mgmt_cfg_cmd { 474b8023177SVladimir Kondratiev u8 power_source; /* wmi_power_source_type */ 475b8023177SVladimir Kondratiev u8 reserved[3]; 476b8023177SVladimir Kondratiev } __packed; 477b8023177SVladimir Kondratiev 478b8023177SVladimir Kondratiev /* 479b8023177SVladimir Kondratiev * WMI_PCP_START_CMDID 480b8023177SVladimir Kondratiev */ 481b8023177SVladimir Kondratiev struct wmi_pcp_start_cmd { 482b8023177SVladimir Kondratiev __le16 bcon_interval; 4836c2faf09SVladimir Kondratiev u8 pcp_max_assoc_sta; 4846c2faf09SVladimir Kondratiev u8 reserved0[9]; 485b8023177SVladimir Kondratiev u8 network_type; 486b8023177SVladimir Kondratiev u8 channel; 487b8023177SVladimir Kondratiev u8 disable_sec_offload; 488b8023177SVladimir Kondratiev u8 disable_sec; 489b8023177SVladimir Kondratiev } __packed; 490b8023177SVladimir Kondratiev 4912be7d22fSVladimir Kondratiev /* 4922be7d22fSVladimir Kondratiev * WMI_SW_TX_REQ_CMDID 4932be7d22fSVladimir Kondratiev */ 4942be7d22fSVladimir Kondratiev struct wmi_sw_tx_req_cmd { 4952be7d22fSVladimir Kondratiev u8 dst_mac[WMI_MAC_LEN]; 4962be7d22fSVladimir Kondratiev __le16 len; 4972be7d22fSVladimir Kondratiev u8 payload[0]; 4982be7d22fSVladimir Kondratiev } __packed; 4992be7d22fSVladimir Kondratiev 5002be7d22fSVladimir Kondratiev /* 5012be7d22fSVladimir Kondratiev * WMI_VRING_CFG_CMDID 5022be7d22fSVladimir Kondratiev */ 5032be7d22fSVladimir Kondratiev 5042be7d22fSVladimir Kondratiev struct wmi_sw_ring_cfg { 5052be7d22fSVladimir Kondratiev __le64 ring_mem_base; 5062be7d22fSVladimir Kondratiev __le16 ring_size; 5072be7d22fSVladimir Kondratiev __le16 max_mpdu_size; 5082be7d22fSVladimir Kondratiev } __packed; 5092be7d22fSVladimir Kondratiev 5102be7d22fSVladimir Kondratiev struct wmi_vring_cfg_schd { 5112be7d22fSVladimir Kondratiev __le16 priority; 5122be7d22fSVladimir Kondratiev __le16 timeslot_us; 5132be7d22fSVladimir Kondratiev } __packed; 5142be7d22fSVladimir Kondratiev 5152be7d22fSVladimir Kondratiev enum wmi_vring_cfg_encap_trans_type { 5162be7d22fSVladimir Kondratiev WMI_VRING_ENC_TYPE_802_3 = 0, 5172be7d22fSVladimir Kondratiev WMI_VRING_ENC_TYPE_NATIVE_WIFI = 1, 5182be7d22fSVladimir Kondratiev }; 5192be7d22fSVladimir Kondratiev 5202be7d22fSVladimir Kondratiev enum wmi_vring_cfg_ds_cfg { 5212be7d22fSVladimir Kondratiev WMI_VRING_DS_PBSS = 0, 5222be7d22fSVladimir Kondratiev WMI_VRING_DS_STATION = 1, 5232be7d22fSVladimir Kondratiev WMI_VRING_DS_AP = 2, 5242be7d22fSVladimir Kondratiev WMI_VRING_DS_ADDR4 = 3, 5252be7d22fSVladimir Kondratiev }; 5262be7d22fSVladimir Kondratiev 5272be7d22fSVladimir Kondratiev enum wmi_vring_cfg_nwifi_ds_trans_type { 5282be7d22fSVladimir Kondratiev WMI_NWIFI_TX_TRANS_MODE_NO = 0, 5292be7d22fSVladimir Kondratiev WMI_NWIFI_TX_TRANS_MODE_AP2PBSS = 1, 5302be7d22fSVladimir Kondratiev WMI_NWIFI_TX_TRANS_MODE_STA2PBSS = 2, 5312be7d22fSVladimir Kondratiev }; 5322be7d22fSVladimir Kondratiev 5332be7d22fSVladimir Kondratiev enum wmi_vring_cfg_schd_params_priority { 5342be7d22fSVladimir Kondratiev WMI_SCH_PRIO_REGULAR = 0, 5352be7d22fSVladimir Kondratiev WMI_SCH_PRIO_HIGH = 1, 5362be7d22fSVladimir Kondratiev }; 5372be7d22fSVladimir Kondratiev 5382be7d22fSVladimir Kondratiev #define CIDXTID_CID_POS (0) 5392be7d22fSVladimir Kondratiev #define CIDXTID_CID_LEN (4) 5402be7d22fSVladimir Kondratiev #define CIDXTID_CID_MSK (0xF) 5412be7d22fSVladimir Kondratiev #define CIDXTID_TID_POS (4) 5422be7d22fSVladimir Kondratiev #define CIDXTID_TID_LEN (4) 5432be7d22fSVladimir Kondratiev #define CIDXTID_TID_MSK (0xF0) 544b8023177SVladimir Kondratiev 545b8023177SVladimir Kondratiev struct wmi_vring_cfg { 546b8023177SVladimir Kondratiev struct wmi_sw_ring_cfg tx_sw_ring; 547b8023177SVladimir Kondratiev u8 ringid; /* 0-23 vrings */ 548b8023177SVladimir Kondratiev 5492be7d22fSVladimir Kondratiev u8 cidxtid; 5502be7d22fSVladimir Kondratiev 5512be7d22fSVladimir Kondratiev u8 encap_trans_type; 5522be7d22fSVladimir Kondratiev u8 ds_cfg; /* 802.3 DS cfg */ 5532be7d22fSVladimir Kondratiev u8 nwifi_ds_trans_type; 5542be7d22fSVladimir Kondratiev 5552be7d22fSVladimir Kondratiev #define VRING_CFG_MAC_CTRL_LIFETIME_EN_POS (0) 5562be7d22fSVladimir Kondratiev #define VRING_CFG_MAC_CTRL_LIFETIME_EN_LEN (1) 5572be7d22fSVladimir Kondratiev #define VRING_CFG_MAC_CTRL_LIFETIME_EN_MSK (0x1) 5582be7d22fSVladimir Kondratiev #define VRING_CFG_MAC_CTRL_AGGR_EN_POS (1) 5592be7d22fSVladimir Kondratiev #define VRING_CFG_MAC_CTRL_AGGR_EN_LEN (1) 5602be7d22fSVladimir Kondratiev #define VRING_CFG_MAC_CTRL_AGGR_EN_MSK (0x2) 5612be7d22fSVladimir Kondratiev u8 mac_ctrl; 5622be7d22fSVladimir Kondratiev 5632be7d22fSVladimir Kondratiev #define VRING_CFG_TO_RESOLUTION_VALUE_POS (0) 5642be7d22fSVladimir Kondratiev #define VRING_CFG_TO_RESOLUTION_VALUE_LEN (6) 5652be7d22fSVladimir Kondratiev #define VRING_CFG_TO_RESOLUTION_VALUE_MSK (0x3F) 5662be7d22fSVladimir Kondratiev u8 to_resolution; 5672be7d22fSVladimir Kondratiev u8 agg_max_wsize; 5682be7d22fSVladimir Kondratiev struct wmi_vring_cfg_schd schd_params; 5692be7d22fSVladimir Kondratiev } __packed; 5702be7d22fSVladimir Kondratiev 5712be7d22fSVladimir Kondratiev enum wmi_vring_cfg_cmd_action { 5722be7d22fSVladimir Kondratiev WMI_VRING_CMD_ADD = 0, 5732be7d22fSVladimir Kondratiev WMI_VRING_CMD_MODIFY = 1, 5742be7d22fSVladimir Kondratiev WMI_VRING_CMD_DELETE = 2, 5752be7d22fSVladimir Kondratiev }; 5762be7d22fSVladimir Kondratiev 5772be7d22fSVladimir Kondratiev struct wmi_vring_cfg_cmd { 5782be7d22fSVladimir Kondratiev __le32 action; 5792be7d22fSVladimir Kondratiev struct wmi_vring_cfg vring_cfg; 5802be7d22fSVladimir Kondratiev } __packed; 5812be7d22fSVladimir Kondratiev 5822be7d22fSVladimir Kondratiev /* 5832be7d22fSVladimir Kondratiev * WMI_VRING_BA_EN_CMDID 5842be7d22fSVladimir Kondratiev */ 5852be7d22fSVladimir Kondratiev struct wmi_vring_ba_en_cmd { 5862be7d22fSVladimir Kondratiev u8 ringid; 5872be7d22fSVladimir Kondratiev u8 agg_max_wsize; 5882be7d22fSVladimir Kondratiev __le16 ba_timeout; 589*cbcf5866SVladimir Kondratiev u8 amsdu; 5902be7d22fSVladimir Kondratiev } __packed; 5912be7d22fSVladimir Kondratiev 5922be7d22fSVladimir Kondratiev /* 5932be7d22fSVladimir Kondratiev * WMI_VRING_BA_DIS_CMDID 5942be7d22fSVladimir Kondratiev */ 5952be7d22fSVladimir Kondratiev struct wmi_vring_ba_dis_cmd { 5962be7d22fSVladimir Kondratiev u8 ringid; 5972be7d22fSVladimir Kondratiev u8 reserved; 5982be7d22fSVladimir Kondratiev __le16 reason; 5992be7d22fSVladimir Kondratiev } __packed; 6002be7d22fSVladimir Kondratiev 6012be7d22fSVladimir Kondratiev /* 6022be7d22fSVladimir Kondratiev * WMI_NOTIFY_REQ_CMDID 6032be7d22fSVladimir Kondratiev */ 6042be7d22fSVladimir Kondratiev struct wmi_notify_req_cmd { 6052be7d22fSVladimir Kondratiev u8 cid; 606b8023177SVladimir Kondratiev u8 year; 607b8023177SVladimir Kondratiev u8 month; 608b8023177SVladimir Kondratiev u8 day; 6092be7d22fSVladimir Kondratiev __le32 interval_usec; 610b8023177SVladimir Kondratiev u8 hour; 611b8023177SVladimir Kondratiev u8 minute; 612b8023177SVladimir Kondratiev u8 second; 613b8023177SVladimir Kondratiev u8 miliseconds; 6142be7d22fSVladimir Kondratiev } __packed; 6152be7d22fSVladimir Kondratiev 6162be7d22fSVladimir Kondratiev /* 6172be7d22fSVladimir Kondratiev * WMI_CFG_RX_CHAIN_CMDID 6182be7d22fSVladimir Kondratiev */ 6192be7d22fSVladimir Kondratiev enum wmi_sniffer_cfg_mode { 6202be7d22fSVladimir Kondratiev WMI_SNIFFER_OFF = 0, 6212be7d22fSVladimir Kondratiev WMI_SNIFFER_ON = 1, 6222be7d22fSVladimir Kondratiev }; 6232be7d22fSVladimir Kondratiev 6242be7d22fSVladimir Kondratiev enum wmi_sniffer_cfg_phy_info_mode { 6252be7d22fSVladimir Kondratiev WMI_SNIFFER_PHY_INFO_DISABLED = 0, 6262be7d22fSVladimir Kondratiev WMI_SNIFFER_PHY_INFO_ENABLED = 1, 6272be7d22fSVladimir Kondratiev }; 6282be7d22fSVladimir Kondratiev 6292be7d22fSVladimir Kondratiev enum wmi_sniffer_cfg_phy_support { 6302be7d22fSVladimir Kondratiev WMI_SNIFFER_CP = 0, 6312be7d22fSVladimir Kondratiev WMI_SNIFFER_DP = 1, 6322be7d22fSVladimir Kondratiev WMI_SNIFFER_BOTH_PHYS = 2, 6332be7d22fSVladimir Kondratiev }; 6342be7d22fSVladimir Kondratiev 6352be7d22fSVladimir Kondratiev struct wmi_sniffer_cfg { 6362be7d22fSVladimir Kondratiev __le32 mode; /* enum wmi_sniffer_cfg_mode */ 6372be7d22fSVladimir Kondratiev __le32 phy_info_mode; /* enum wmi_sniffer_cfg_phy_info_mode */ 6382be7d22fSVladimir Kondratiev __le32 phy_support; /* enum wmi_sniffer_cfg_phy_support */ 6392be7d22fSVladimir Kondratiev u8 channel; 6402be7d22fSVladimir Kondratiev u8 reserved[3]; 6412be7d22fSVladimir Kondratiev } __packed; 6422be7d22fSVladimir Kondratiev 6432be7d22fSVladimir Kondratiev enum wmi_cfg_rx_chain_cmd_action { 6442be7d22fSVladimir Kondratiev WMI_RX_CHAIN_ADD = 0, 6452be7d22fSVladimir Kondratiev WMI_RX_CHAIN_DEL = 1, 6462be7d22fSVladimir Kondratiev }; 6472be7d22fSVladimir Kondratiev 6482be7d22fSVladimir Kondratiev enum wmi_cfg_rx_chain_cmd_decap_trans_type { 6492be7d22fSVladimir Kondratiev WMI_DECAP_TYPE_802_3 = 0, 6502be7d22fSVladimir Kondratiev WMI_DECAP_TYPE_NATIVE_WIFI = 1, 6512be7d22fSVladimir Kondratiev }; 6522be7d22fSVladimir Kondratiev 6532be7d22fSVladimir Kondratiev enum wmi_cfg_rx_chain_cmd_nwifi_ds_trans_type { 6542be7d22fSVladimir Kondratiev WMI_NWIFI_RX_TRANS_MODE_NO = 0, 6552be7d22fSVladimir Kondratiev WMI_NWIFI_RX_TRANS_MODE_PBSS2AP = 1, 6562be7d22fSVladimir Kondratiev WMI_NWIFI_RX_TRANS_MODE_PBSS2STA = 2, 6572be7d22fSVladimir Kondratiev }; 6582be7d22fSVladimir Kondratiev 659b8023177SVladimir Kondratiev enum wmi_cfg_rx_chain_cmd_reorder_type { 660b8023177SVladimir Kondratiev WMI_RX_HW_REORDER = 0, 661b8023177SVladimir Kondratiev WMI_RX_SW_REORDER = 1, 662b8023177SVladimir Kondratiev }; 663b8023177SVladimir Kondratiev 6642be7d22fSVladimir Kondratiev struct wmi_cfg_rx_chain_cmd { 6652be7d22fSVladimir Kondratiev __le32 action; 6662be7d22fSVladimir Kondratiev struct wmi_sw_ring_cfg rx_sw_ring; 6672be7d22fSVladimir Kondratiev u8 mid; 6682be7d22fSVladimir Kondratiev u8 decap_trans_type; 6692be7d22fSVladimir Kondratiev 6702be7d22fSVladimir Kondratiev #define L2_802_3_OFFLOAD_CTRL_VLAN_TAG_INSERTION_POS (0) 6712be7d22fSVladimir Kondratiev #define L2_802_3_OFFLOAD_CTRL_VLAN_TAG_INSERTION_LEN (1) 6722be7d22fSVladimir Kondratiev #define L2_802_3_OFFLOAD_CTRL_VLAN_TAG_INSERTION_MSK (0x1) 6732be7d22fSVladimir Kondratiev u8 l2_802_3_offload_ctrl; 6742be7d22fSVladimir Kondratiev 6752be7d22fSVladimir Kondratiev #define L2_NWIFI_OFFLOAD_CTRL_REMOVE_QOS_POS (0) 6762be7d22fSVladimir Kondratiev #define L2_NWIFI_OFFLOAD_CTRL_REMOVE_QOS_LEN (1) 6772be7d22fSVladimir Kondratiev #define L2_NWIFI_OFFLOAD_CTRL_REMOVE_QOS_MSK (0x1) 6782be7d22fSVladimir Kondratiev #define L2_NWIFI_OFFLOAD_CTRL_REMOVE_PN_POS (1) 6792be7d22fSVladimir Kondratiev #define L2_NWIFI_OFFLOAD_CTRL_REMOVE_PN_LEN (1) 6802be7d22fSVladimir Kondratiev #define L2_NWIFI_OFFLOAD_CTRL_REMOVE_PN_MSK (0x2) 6812be7d22fSVladimir Kondratiev u8 l2_nwifi_offload_ctrl; 6822be7d22fSVladimir Kondratiev 6832be7d22fSVladimir Kondratiev u8 vlan_id; 6842be7d22fSVladimir Kondratiev u8 nwifi_ds_trans_type; 6852be7d22fSVladimir Kondratiev 6862be7d22fSVladimir Kondratiev #define L3_L4_CTRL_IPV4_CHECKSUM_EN_POS (0) 6872be7d22fSVladimir Kondratiev #define L3_L4_CTRL_IPV4_CHECKSUM_EN_LEN (1) 6882be7d22fSVladimir Kondratiev #define L3_L4_CTRL_IPV4_CHECKSUM_EN_MSK (0x1) 6892be7d22fSVladimir Kondratiev #define L3_L4_CTRL_TCPIP_CHECKSUM_EN_POS (1) 6902be7d22fSVladimir Kondratiev #define L3_L4_CTRL_TCPIP_CHECKSUM_EN_LEN (1) 6912be7d22fSVladimir Kondratiev #define L3_L4_CTRL_TCPIP_CHECKSUM_EN_MSK (0x2) 6922be7d22fSVladimir Kondratiev u8 l3_l4_ctrl; 6932be7d22fSVladimir Kondratiev 6942be7d22fSVladimir Kondratiev #define RING_CTRL_OVERRIDE_PREFETCH_THRSH_POS (0) 6952be7d22fSVladimir Kondratiev #define RING_CTRL_OVERRIDE_PREFETCH_THRSH_LEN (1) 6962be7d22fSVladimir Kondratiev #define RING_CTRL_OVERRIDE_PREFETCH_THRSH_MSK (0x1) 6972be7d22fSVladimir Kondratiev #define RING_CTRL_OVERRIDE_WB_THRSH_POS (1) 6982be7d22fSVladimir Kondratiev #define RING_CTRL_OVERRIDE_WB_THRSH_LEN (1) 6992be7d22fSVladimir Kondratiev #define RING_CTRL_OVERRIDE_WB_THRSH_MSK (0x2) 7002be7d22fSVladimir Kondratiev #define RING_CTRL_OVERRIDE_ITR_THRSH_POS (2) 7012be7d22fSVladimir Kondratiev #define RING_CTRL_OVERRIDE_ITR_THRSH_LEN (1) 7022be7d22fSVladimir Kondratiev #define RING_CTRL_OVERRIDE_ITR_THRSH_MSK (0x4) 7032be7d22fSVladimir Kondratiev #define RING_CTRL_OVERRIDE_HOST_THRSH_POS (3) 7042be7d22fSVladimir Kondratiev #define RING_CTRL_OVERRIDE_HOST_THRSH_LEN (1) 7052be7d22fSVladimir Kondratiev #define RING_CTRL_OVERRIDE_HOST_THRSH_MSK (0x8) 7062be7d22fSVladimir Kondratiev u8 ring_ctrl; 7072be7d22fSVladimir Kondratiev 7082be7d22fSVladimir Kondratiev __le16 prefetch_thrsh; 7092be7d22fSVladimir Kondratiev __le16 wb_thrsh; 7102be7d22fSVladimir Kondratiev __le32 itr_value; 7112be7d22fSVladimir Kondratiev __le16 host_thrsh; 712b8023177SVladimir Kondratiev u8 reorder_type; 713b8023177SVladimir Kondratiev u8 reserved; 7142be7d22fSVladimir Kondratiev struct wmi_sniffer_cfg sniffer_cfg; 7152be7d22fSVladimir Kondratiev } __packed; 7162be7d22fSVladimir Kondratiev 7172be7d22fSVladimir Kondratiev /* 7182be7d22fSVladimir Kondratiev * WMI_RCP_ADDBA_RESP_CMDID 7192be7d22fSVladimir Kondratiev */ 7202be7d22fSVladimir Kondratiev struct wmi_rcp_addba_resp_cmd { 7212be7d22fSVladimir Kondratiev u8 cidxtid; 7222be7d22fSVladimir Kondratiev u8 dialog_token; 7232be7d22fSVladimir Kondratiev __le16 status_code; 7242be7d22fSVladimir Kondratiev __le16 ba_param_set; /* ieee80211_ba_parameterset field to send */ 7252be7d22fSVladimir Kondratiev __le16 ba_timeout; 7262be7d22fSVladimir Kondratiev } __packed; 7272be7d22fSVladimir Kondratiev 7282be7d22fSVladimir Kondratiev /* 7292be7d22fSVladimir Kondratiev * WMI_RCP_DELBA_CMDID 7302be7d22fSVladimir Kondratiev */ 7312be7d22fSVladimir Kondratiev struct wmi_rcp_delba_cmd { 7322be7d22fSVladimir Kondratiev u8 cidxtid; 7332be7d22fSVladimir Kondratiev u8 reserved; 7342be7d22fSVladimir Kondratiev __le16 reason; 7352be7d22fSVladimir Kondratiev } __packed; 7362be7d22fSVladimir Kondratiev 7372be7d22fSVladimir Kondratiev /* 7382be7d22fSVladimir Kondratiev * WMI_RCP_ADDBA_REQ_CMDID 7392be7d22fSVladimir Kondratiev */ 7402be7d22fSVladimir Kondratiev struct wmi_rcp_addba_req_cmd { 7412be7d22fSVladimir Kondratiev u8 cidxtid; 7422be7d22fSVladimir Kondratiev u8 dialog_token; 7432be7d22fSVladimir Kondratiev /* ieee80211_ba_parameterset field as it received */ 7442be7d22fSVladimir Kondratiev __le16 ba_param_set; 7452be7d22fSVladimir Kondratiev __le16 ba_timeout; 7462be7d22fSVladimir Kondratiev /* ieee80211_ba_seqstrl field as it received */ 7472be7d22fSVladimir Kondratiev __le16 ba_seq_ctrl; 7482be7d22fSVladimir Kondratiev } __packed; 7492be7d22fSVladimir Kondratiev 7502be7d22fSVladimir Kondratiev /* 7512be7d22fSVladimir Kondratiev * WMI_SET_MAC_ADDRESS_CMDID 7522be7d22fSVladimir Kondratiev */ 7532be7d22fSVladimir Kondratiev struct wmi_set_mac_address_cmd { 7542be7d22fSVladimir Kondratiev u8 mac[WMI_MAC_LEN]; 7552be7d22fSVladimir Kondratiev u8 reserved[2]; 7562be7d22fSVladimir Kondratiev } __packed; 7572be7d22fSVladimir Kondratiev 7582be7d22fSVladimir Kondratiev /* 7592be7d22fSVladimir Kondratiev * WMI_EAPOL_TX_CMDID 7602be7d22fSVladimir Kondratiev */ 7612be7d22fSVladimir Kondratiev struct wmi_eapol_tx_cmd { 7622be7d22fSVladimir Kondratiev u8 dst_mac[WMI_MAC_LEN]; 7632be7d22fSVladimir Kondratiev __le16 eapol_len; 7642be7d22fSVladimir Kondratiev u8 eapol[0]; 7652be7d22fSVladimir Kondratiev } __packed; 7662be7d22fSVladimir Kondratiev 7672be7d22fSVladimir Kondratiev /* 7682be7d22fSVladimir Kondratiev * WMI_ECHO_CMDID 7692be7d22fSVladimir Kondratiev * 7702be7d22fSVladimir Kondratiev * Check FW is alive 7712be7d22fSVladimir Kondratiev * 7722be7d22fSVladimir Kondratiev * WMI_DEEP_ECHO_CMDID 7732be7d22fSVladimir Kondratiev * 7742be7d22fSVladimir Kondratiev * Check FW and ucode are alive 7752be7d22fSVladimir Kondratiev * 7762be7d22fSVladimir Kondratiev * Returned event: WMI_ECHO_RSP_EVENTID 7772be7d22fSVladimir Kondratiev * same event for both commands 7782be7d22fSVladimir Kondratiev */ 7792be7d22fSVladimir Kondratiev struct wmi_echo_cmd { 7802be7d22fSVladimir Kondratiev __le32 value; 7812be7d22fSVladimir Kondratiev } __packed; 7822be7d22fSVladimir Kondratiev 7832be7d22fSVladimir Kondratiev /* 784b8023177SVladimir Kondratiev * WMI_TEMP_SENSE_CMDID 785b8023177SVladimir Kondratiev * 786b8023177SVladimir Kondratiev * Measure MAC and radio temperatures 787b8023177SVladimir Kondratiev */ 788b8023177SVladimir Kondratiev struct wmi_temp_sense_cmd { 789b8023177SVladimir Kondratiev __le32 measure_marlon_m_en; 790b8023177SVladimir Kondratiev __le32 measure_marlon_r_en; 791b8023177SVladimir Kondratiev } __packed; 792b8023177SVladimir Kondratiev 793b8023177SVladimir Kondratiev /* 7942be7d22fSVladimir Kondratiev * WMI Events 7952be7d22fSVladimir Kondratiev */ 7962be7d22fSVladimir Kondratiev 7972be7d22fSVladimir Kondratiev /* 7982be7d22fSVladimir Kondratiev * List of Events (target to host) 7992be7d22fSVladimir Kondratiev */ 8002be7d22fSVladimir Kondratiev enum wmi_event_id { 8012be7d22fSVladimir Kondratiev WMI_READY_EVENTID = 0x1001, 8022be7d22fSVladimir Kondratiev WMI_CONNECT_EVENTID = 0x1002, 8032be7d22fSVladimir Kondratiev WMI_DISCONNECT_EVENTID = 0x1003, 8042be7d22fSVladimir Kondratiev WMI_SCAN_COMPLETE_EVENTID = 0x100a, 8052be7d22fSVladimir Kondratiev WMI_REPORT_STATISTICS_EVENTID = 0x100b, 8062be7d22fSVladimir Kondratiev WMI_RD_MEM_RSP_EVENTID = 0x1800, 8072be7d22fSVladimir Kondratiev WMI_FW_READY_EVENTID = 0x1801, 8082be7d22fSVladimir Kondratiev WMI_EXIT_FAST_MEM_ACC_MODE_EVENTID = 0x0200, 8092be7d22fSVladimir Kondratiev WMI_ECHO_RSP_EVENTID = 0x1803, 8102be7d22fSVladimir Kondratiev WMI_FS_TUNE_DONE_EVENTID = 0x180a, 811b8023177SVladimir Kondratiev WMI_CORR_MEASURE_EVENTID = 0x180b, 812b8023177SVladimir Kondratiev WMI_READ_RSSI_EVENTID = 0x180c, 8132be7d22fSVladimir Kondratiev WMI_TEMP_SENSE_DONE_EVENTID = 0x180e, 8142be7d22fSVladimir Kondratiev WMI_DC_CALIB_DONE_EVENTID = 0x180f, 8152be7d22fSVladimir Kondratiev WMI_IQ_TX_CALIB_DONE_EVENTID = 0x1811, 8162be7d22fSVladimir Kondratiev WMI_IQ_RX_CALIB_DONE_EVENTID = 0x1812, 8172be7d22fSVladimir Kondratiev WMI_SET_WORK_MODE_DONE_EVENTID = 0x1815, 8182be7d22fSVladimir Kondratiev WMI_LO_LEAKAGE_CALIB_DONE_EVENTID = 0x1816, 8192be7d22fSVladimir Kondratiev WMI_MARLON_R_ACTIVATE_DONE_EVENTID = 0x1817, 8202be7d22fSVladimir Kondratiev WMI_MARLON_R_READ_DONE_EVENTID = 0x1818, 8212be7d22fSVladimir Kondratiev WMI_MARLON_R_WRITE_DONE_EVENTID = 0x1819, 8222be7d22fSVladimir Kondratiev WMI_MARLON_R_TXRX_SEL_DONE_EVENTID = 0x181a, 8232be7d22fSVladimir Kondratiev WMI_SILENT_RSSI_CALIB_DONE_EVENTID = 0x181d, 824b8023177SVladimir Kondratiev WMI_RF_RX_TEST_DONE_EVENTID = 0x181e, 8252be7d22fSVladimir Kondratiev WMI_CFG_RX_CHAIN_DONE_EVENTID = 0x1820, 8262be7d22fSVladimir Kondratiev WMI_VRING_CFG_DONE_EVENTID = 0x1821, 8272be7d22fSVladimir Kondratiev WMI_BA_STATUS_EVENTID = 0x1823, 8282be7d22fSVladimir Kondratiev WMI_RCP_ADDBA_REQ_EVENTID = 0x1824, 8292be7d22fSVladimir Kondratiev WMI_ADDBA_RESP_SENT_EVENTID = 0x1825, 8302be7d22fSVladimir Kondratiev WMI_DELBA_EVENTID = 0x1826, 8312be7d22fSVladimir Kondratiev WMI_GET_SSID_EVENTID = 0x1828, 8322be7d22fSVladimir Kondratiev WMI_GET_PCP_CHANNEL_EVENTID = 0x182a, 8332be7d22fSVladimir Kondratiev WMI_SW_TX_COMPLETE_EVENTID = 0x182b, 8342be7d22fSVladimir Kondratiev 8352be7d22fSVladimir Kondratiev WMI_READ_MAC_RXQ_EVENTID = 0x1830, 8362be7d22fSVladimir Kondratiev WMI_READ_MAC_TXQ_EVENTID = 0x1831, 8372be7d22fSVladimir Kondratiev WMI_WRITE_MAC_RXQ_EVENTID = 0x1832, 8382be7d22fSVladimir Kondratiev WMI_WRITE_MAC_TXQ_EVENTID = 0x1833, 8392be7d22fSVladimir Kondratiev WMI_WRITE_MAC_XQ_FIELD_EVENTID = 0x1834, 8402be7d22fSVladimir Kondratiev 8412be7d22fSVladimir Kondratiev WMI_BEAFORMING_MGMT_DONE_EVENTID = 0x1836, 8422be7d22fSVladimir Kondratiev WMI_BF_TXSS_MGMT_DONE_EVENTID = 0x1837, 8432be7d22fSVladimir Kondratiev WMI_BF_RXSS_MGMT_DONE_EVENTID = 0x1839, 8442be7d22fSVladimir Kondratiev WMI_RS_MGMT_DONE_EVENTID = 0x1852, 8452be7d22fSVladimir Kondratiev WMI_RF_MGMT_STATUS_EVENTID = 0x1853, 8462be7d22fSVladimir Kondratiev WMI_BF_SM_MGMT_DONE_EVENTID = 0x1838, 8472be7d22fSVladimir Kondratiev WMI_RX_MGMT_PACKET_EVENTID = 0x1840, 8486c2faf09SVladimir Kondratiev WMI_TX_MGMT_PACKET_EVENTID = 0x1841, 8492be7d22fSVladimir Kondratiev 8502be7d22fSVladimir Kondratiev /* Performance monitoring events */ 8512be7d22fSVladimir Kondratiev WMI_DATA_PORT_OPEN_EVENTID = 0x1860, 8522be7d22fSVladimir Kondratiev WMI_WBE_LINKDOWN_EVENTID = 0x1861, 8532be7d22fSVladimir Kondratiev 8542be7d22fSVladimir Kondratiev WMI_BF_CTRL_DONE_EVENTID = 0x1862, 8552be7d22fSVladimir Kondratiev WMI_NOTIFY_REQ_DONE_EVENTID = 0x1863, 8562be7d22fSVladimir Kondratiev WMI_GET_STATUS_DONE_EVENTID = 0x1864, 8572be7d22fSVladimir Kondratiev 8582be7d22fSVladimir Kondratiev WMI_UNIT_TEST_EVENTID = 0x1900, 8592be7d22fSVladimir Kondratiev WMI_FLASH_READ_DONE_EVENTID = 0x1902, 8602be7d22fSVladimir Kondratiev WMI_FLASH_WRITE_DONE_EVENTID = 0x1903, 861b8023177SVladimir Kondratiev /*P2P*/ 862b8023177SVladimir Kondratiev WMI_PORT_ALLOCATED_EVENTID = 0x1911, 863b8023177SVladimir Kondratiev WMI_PORT_DELETED_EVENTID = 0x1912, 864b8023177SVladimir Kondratiev WMI_LISTEN_STARTED_EVENTID = 0x1914, 865b8023177SVladimir Kondratiev WMI_SEARCH_STARTED_EVENTID = 0x1915, 866b8023177SVladimir Kondratiev WMI_DISCOVERY_STARTED_EVENTID = 0x1916, 867b8023177SVladimir Kondratiev WMI_DISCOVERY_STOPPED_EVENTID = 0x1917, 868b8023177SVladimir Kondratiev WMI_PCP_STARTED_EVENTID = 0x1918, 869b8023177SVladimir Kondratiev WMI_PCP_STOPPED_EVENTID = 0x1919, 870b8023177SVladimir Kondratiev WMI_PCP_FACTOR_EVENTID = 0x191a, 8712be7d22fSVladimir Kondratiev WMI_SET_CHANNEL_EVENTID = 0x9000, 8722be7d22fSVladimir Kondratiev WMI_ASSOC_REQ_EVENTID = 0x9001, 8732be7d22fSVladimir Kondratiev WMI_EAPOL_RX_EVENTID = 0x9002, 8742be7d22fSVladimir Kondratiev WMI_MAC_ADDR_RESP_EVENTID = 0x9003, 8752be7d22fSVladimir Kondratiev WMI_FW_VER_EVENTID = 0x9004, 8762be7d22fSVladimir Kondratiev }; 8772be7d22fSVladimir Kondratiev 8782be7d22fSVladimir Kondratiev /* 8792be7d22fSVladimir Kondratiev * Events data structures 8802be7d22fSVladimir Kondratiev */ 8812be7d22fSVladimir Kondratiev 882b8023177SVladimir Kondratiev enum wmi_fw_status { 883b8023177SVladimir Kondratiev WMI_FW_STATUS_SUCCESS, 884b8023177SVladimir Kondratiev WMI_FW_STATUS_FAILURE, 885b8023177SVladimir Kondratiev }; 886b8023177SVladimir Kondratiev 8872be7d22fSVladimir Kondratiev /* 8882be7d22fSVladimir Kondratiev * WMI_RF_MGMT_STATUS_EVENTID 8892be7d22fSVladimir Kondratiev */ 8902be7d22fSVladimir Kondratiev enum wmi_rf_status { 8912be7d22fSVladimir Kondratiev WMI_RF_ENABLED = 0, 8922be7d22fSVladimir Kondratiev WMI_RF_DISABLED_HW = 1, 8932be7d22fSVladimir Kondratiev WMI_RF_DISABLED_SW = 2, 8942be7d22fSVladimir Kondratiev WMI_RF_DISABLED_HW_SW = 3, 8952be7d22fSVladimir Kondratiev }; 8962be7d22fSVladimir Kondratiev 8972be7d22fSVladimir Kondratiev struct wmi_rf_mgmt_status_event { 8982be7d22fSVladimir Kondratiev __le32 rf_status; 8992be7d22fSVladimir Kondratiev } __packed; 9002be7d22fSVladimir Kondratiev 9012be7d22fSVladimir Kondratiev /* 9022be7d22fSVladimir Kondratiev * WMI_GET_STATUS_DONE_EVENTID 9032be7d22fSVladimir Kondratiev */ 9042be7d22fSVladimir Kondratiev struct wmi_get_status_done_event { 9052be7d22fSVladimir Kondratiev __le32 is_associated; 9062be7d22fSVladimir Kondratiev u8 cid; 9072be7d22fSVladimir Kondratiev u8 reserved0[3]; 9082be7d22fSVladimir Kondratiev u8 bssid[WMI_MAC_LEN]; 9092be7d22fSVladimir Kondratiev u8 channel; 9102be7d22fSVladimir Kondratiev u8 reserved1; 9112be7d22fSVladimir Kondratiev u8 network_type; 9122be7d22fSVladimir Kondratiev u8 reserved2[3]; 9132be7d22fSVladimir Kondratiev __le32 ssid_len; 9142be7d22fSVladimir Kondratiev u8 ssid[WMI_MAX_SSID_LEN]; 9152be7d22fSVladimir Kondratiev __le32 rf_status; 9162be7d22fSVladimir Kondratiev __le32 is_secured; 9172be7d22fSVladimir Kondratiev } __packed; 9182be7d22fSVladimir Kondratiev 9192be7d22fSVladimir Kondratiev /* 9202be7d22fSVladimir Kondratiev * WMI_FW_VER_EVENTID 9212be7d22fSVladimir Kondratiev */ 9222be7d22fSVladimir Kondratiev struct wmi_fw_ver_event { 9232be7d22fSVladimir Kondratiev u8 major; 9242be7d22fSVladimir Kondratiev u8 minor; 9252be7d22fSVladimir Kondratiev __le16 subminor; 9262be7d22fSVladimir Kondratiev __le16 build; 9272be7d22fSVladimir Kondratiev } __packed; 9282be7d22fSVladimir Kondratiev 9292be7d22fSVladimir Kondratiev /* 9302be7d22fSVladimir Kondratiev * WMI_MAC_ADDR_RESP_EVENTID 9312be7d22fSVladimir Kondratiev */ 9322be7d22fSVladimir Kondratiev struct wmi_mac_addr_resp_event { 9332be7d22fSVladimir Kondratiev u8 mac[WMI_MAC_LEN]; 9342be7d22fSVladimir Kondratiev u8 auth_mode; 9352be7d22fSVladimir Kondratiev u8 crypt_mode; 9362be7d22fSVladimir Kondratiev __le32 offload_mode; 9372be7d22fSVladimir Kondratiev } __packed; 9382be7d22fSVladimir Kondratiev 9392be7d22fSVladimir Kondratiev /* 9402be7d22fSVladimir Kondratiev * WMI_EAPOL_RX_EVENTID 9412be7d22fSVladimir Kondratiev */ 9422be7d22fSVladimir Kondratiev struct wmi_eapol_rx_event { 9432be7d22fSVladimir Kondratiev u8 src_mac[WMI_MAC_LEN]; 9442be7d22fSVladimir Kondratiev __le16 eapol_len; 9452be7d22fSVladimir Kondratiev u8 eapol[0]; 9462be7d22fSVladimir Kondratiev } __packed; 9472be7d22fSVladimir Kondratiev 9482be7d22fSVladimir Kondratiev /* 9492be7d22fSVladimir Kondratiev * WMI_READY_EVENTID 9502be7d22fSVladimir Kondratiev */ 9512be7d22fSVladimir Kondratiev enum wmi_phy_capability { 9522be7d22fSVladimir Kondratiev WMI_11A_CAPABILITY = 1, 9532be7d22fSVladimir Kondratiev WMI_11G_CAPABILITY = 2, 9542be7d22fSVladimir Kondratiev WMI_11AG_CAPABILITY = 3, 9552be7d22fSVladimir Kondratiev WMI_11NA_CAPABILITY = 4, 9562be7d22fSVladimir Kondratiev WMI_11NG_CAPABILITY = 5, 9572be7d22fSVladimir Kondratiev WMI_11NAG_CAPABILITY = 6, 9582be7d22fSVladimir Kondratiev WMI_11AD_CAPABILITY = 7, 9592be7d22fSVladimir Kondratiev WMI_11N_CAPABILITY_OFFSET = WMI_11NA_CAPABILITY - WMI_11A_CAPABILITY, 9602be7d22fSVladimir Kondratiev }; 9612be7d22fSVladimir Kondratiev 9622be7d22fSVladimir Kondratiev struct wmi_ready_event { 9632be7d22fSVladimir Kondratiev __le32 sw_version; 9642be7d22fSVladimir Kondratiev __le32 abi_version; 9652be7d22fSVladimir Kondratiev u8 mac[WMI_MAC_LEN]; 9662be7d22fSVladimir Kondratiev u8 phy_capability; /* enum wmi_phy_capability */ 967b8023177SVladimir Kondratiev u8 numof_additional_mids; 9682be7d22fSVladimir Kondratiev } __packed; 9692be7d22fSVladimir Kondratiev 9702be7d22fSVladimir Kondratiev /* 9712be7d22fSVladimir Kondratiev * WMI_NOTIFY_REQ_DONE_EVENTID 9722be7d22fSVladimir Kondratiev */ 9732be7d22fSVladimir Kondratiev struct wmi_notify_req_done_event { 97436345ac3SVladimir Kondratiev __le32 status; /* beamforming status, 0: fail; 1: OK; 2: retrying */ 9752be7d22fSVladimir Kondratiev __le64 tsf; 9762be7d22fSVladimir Kondratiev __le32 snr_val; 9772be7d22fSVladimir Kondratiev __le32 tx_tpt; 9782be7d22fSVladimir Kondratiev __le32 tx_goodput; 9792be7d22fSVladimir Kondratiev __le32 rx_goodput; 9802be7d22fSVladimir Kondratiev __le16 bf_mcs; 9812be7d22fSVladimir Kondratiev __le16 my_rx_sector; 9822be7d22fSVladimir Kondratiev __le16 my_tx_sector; 9832be7d22fSVladimir Kondratiev __le16 other_rx_sector; 9842be7d22fSVladimir Kondratiev __le16 other_tx_sector; 9852be7d22fSVladimir Kondratiev __le16 range; 986b8023177SVladimir Kondratiev u8 sqi; 987b8023177SVladimir Kondratiev u8 reserved[3]; 9882be7d22fSVladimir Kondratiev } __packed; 9892be7d22fSVladimir Kondratiev 9902be7d22fSVladimir Kondratiev /* 9912be7d22fSVladimir Kondratiev * WMI_CONNECT_EVENTID 9922be7d22fSVladimir Kondratiev */ 9932be7d22fSVladimir Kondratiev struct wmi_connect_event { 9942be7d22fSVladimir Kondratiev u8 channel; 9952be7d22fSVladimir Kondratiev u8 reserved0; 9962be7d22fSVladimir Kondratiev u8 bssid[WMI_MAC_LEN]; 9972be7d22fSVladimir Kondratiev __le16 listen_interval; 9982be7d22fSVladimir Kondratiev __le16 beacon_interval; 9992be7d22fSVladimir Kondratiev u8 network_type; 10002be7d22fSVladimir Kondratiev u8 reserved1[3]; 10012be7d22fSVladimir Kondratiev u8 beacon_ie_len; 10022be7d22fSVladimir Kondratiev u8 assoc_req_len; 10032be7d22fSVladimir Kondratiev u8 assoc_resp_len; 10042be7d22fSVladimir Kondratiev u8 cid; 10052be7d22fSVladimir Kondratiev u8 reserved2[3]; 10062be7d22fSVladimir Kondratiev u8 assoc_info[0]; 10072be7d22fSVladimir Kondratiev } __packed; 10082be7d22fSVladimir Kondratiev 10092be7d22fSVladimir Kondratiev /* 10102be7d22fSVladimir Kondratiev * WMI_DISCONNECT_EVENTID 10112be7d22fSVladimir Kondratiev */ 10122be7d22fSVladimir Kondratiev enum wmi_disconnect_reason { 10132be7d22fSVladimir Kondratiev WMI_DIS_REASON_NO_NETWORK_AVAIL = 1, 10142be7d22fSVladimir Kondratiev WMI_DIS_REASON_LOST_LINK = 2, /* bmiss */ 10152be7d22fSVladimir Kondratiev WMI_DIS_REASON_DISCONNECT_CMD = 3, 10162be7d22fSVladimir Kondratiev WMI_DIS_REASON_BSS_DISCONNECTED = 4, 10172be7d22fSVladimir Kondratiev WMI_DIS_REASON_AUTH_FAILED = 5, 10182be7d22fSVladimir Kondratiev WMI_DIS_REASON_ASSOC_FAILED = 6, 10192be7d22fSVladimir Kondratiev WMI_DIS_REASON_NO_RESOURCES_AVAIL = 7, 10202be7d22fSVladimir Kondratiev WMI_DIS_REASON_CSERV_DISCONNECT = 8, 10212be7d22fSVladimir Kondratiev WMI_DIS_REASON_INVALID_PROFILE = 10, 10222be7d22fSVladimir Kondratiev WMI_DIS_REASON_DOT11H_CHANNEL_SWITCH = 11, 10232be7d22fSVladimir Kondratiev WMI_DIS_REASON_PROFILE_MISMATCH = 12, 10242be7d22fSVladimir Kondratiev WMI_DIS_REASON_CONNECTION_EVICTED = 13, 10252be7d22fSVladimir Kondratiev WMI_DIS_REASON_IBSS_MERGE = 14, 10262be7d22fSVladimir Kondratiev }; 10272be7d22fSVladimir Kondratiev 10282be7d22fSVladimir Kondratiev struct wmi_disconnect_event { 10292be7d22fSVladimir Kondratiev __le16 protocol_reason_status; /* reason code, see 802.11 spec. */ 10302be7d22fSVladimir Kondratiev u8 bssid[WMI_MAC_LEN]; /* set if known */ 10316c2faf09SVladimir Kondratiev u8 disconnect_reason; /* see wmi_disconnect_reason */ 10328fe59627SVladimir Kondratiev u8 assoc_resp_len; /* not used */ 10338fe59627SVladimir Kondratiev u8 assoc_info[0]; /* not used */ 10342be7d22fSVladimir Kondratiev } __packed; 10352be7d22fSVladimir Kondratiev 10362be7d22fSVladimir Kondratiev /* 10372be7d22fSVladimir Kondratiev * WMI_SCAN_COMPLETE_EVENTID 10382be7d22fSVladimir Kondratiev */ 10396c2faf09SVladimir Kondratiev enum scan_status { 10406c2faf09SVladimir Kondratiev WMI_SCAN_SUCCESS = 0, 10416c2faf09SVladimir Kondratiev WMI_SCAN_FAILED = 1, 10426c2faf09SVladimir Kondratiev WMI_SCAN_ABORTED = 2, 10436c2faf09SVladimir Kondratiev WMI_SCAN_REJECTED = 3, 10446c2faf09SVladimir Kondratiev }; 10456c2faf09SVladimir Kondratiev 10462be7d22fSVladimir Kondratiev struct wmi_scan_complete_event { 10476c2faf09SVladimir Kondratiev __le32 status; /* scan_status */ 10482be7d22fSVladimir Kondratiev } __packed; 10492be7d22fSVladimir Kondratiev 10502be7d22fSVladimir Kondratiev /* 10512be7d22fSVladimir Kondratiev * WMI_BA_STATUS_EVENTID 10522be7d22fSVladimir Kondratiev */ 10532be7d22fSVladimir Kondratiev enum wmi_vring_ba_status { 10542be7d22fSVladimir Kondratiev WMI_BA_AGREED = 0, 10552be7d22fSVladimir Kondratiev WMI_BA_NON_AGREED = 1, 1056*cbcf5866SVladimir Kondratiev /* BA_EN in middle of teardown flow */ 1057*cbcf5866SVladimir Kondratiev WMI_BA_TD_WIP = 2, 1058*cbcf5866SVladimir Kondratiev /* BA_DIS or BA_EN in middle of BA SETUP flow */ 1059*cbcf5866SVladimir Kondratiev WMI_BA_SETUP_WIP = 3, 1060*cbcf5866SVladimir Kondratiev /* BA_EN when the BA session is already active */ 1061*cbcf5866SVladimir Kondratiev WMI_BA_SESSION_ACTIVE = 4, 1062*cbcf5866SVladimir Kondratiev /* BA_DIS when the BA session is not active */ 1063*cbcf5866SVladimir Kondratiev WMI_BA_SESSION_NOT_ACTIVE = 5, 10642be7d22fSVladimir Kondratiev }; 10652be7d22fSVladimir Kondratiev 10662be7d22fSVladimir Kondratiev struct wmi_vring_ba_status_event { 1067*cbcf5866SVladimir Kondratiev __le16 status; /* enum wmi_vring_ba_status */ 10682be7d22fSVladimir Kondratiev u8 reserved[2]; 10692be7d22fSVladimir Kondratiev u8 ringid; 10702be7d22fSVladimir Kondratiev u8 agg_wsize; 10712be7d22fSVladimir Kondratiev __le16 ba_timeout; 1072*cbcf5866SVladimir Kondratiev u8 amsdu; 10732be7d22fSVladimir Kondratiev } __packed; 10742be7d22fSVladimir Kondratiev 10752be7d22fSVladimir Kondratiev /* 10762be7d22fSVladimir Kondratiev * WMI_DELBA_EVENTID 10772be7d22fSVladimir Kondratiev */ 10782be7d22fSVladimir Kondratiev struct wmi_delba_event { 10792be7d22fSVladimir Kondratiev u8 cidxtid; 10802be7d22fSVladimir Kondratiev u8 from_initiator; 10812be7d22fSVladimir Kondratiev __le16 reason; 10822be7d22fSVladimir Kondratiev } __packed; 10832be7d22fSVladimir Kondratiev 10842be7d22fSVladimir Kondratiev /* 10852be7d22fSVladimir Kondratiev * WMI_VRING_CFG_DONE_EVENTID 10862be7d22fSVladimir Kondratiev */ 10872be7d22fSVladimir Kondratiev struct wmi_vring_cfg_done_event { 10882be7d22fSVladimir Kondratiev u8 ringid; 10892be7d22fSVladimir Kondratiev u8 status; 10902be7d22fSVladimir Kondratiev u8 reserved[2]; 10912be7d22fSVladimir Kondratiev __le32 tx_vring_tail_ptr; 10922be7d22fSVladimir Kondratiev } __packed; 10932be7d22fSVladimir Kondratiev 10942be7d22fSVladimir Kondratiev /* 10952be7d22fSVladimir Kondratiev * WMI_ADDBA_RESP_SENT_EVENTID 10962be7d22fSVladimir Kondratiev */ 10972be7d22fSVladimir Kondratiev struct wmi_rcp_addba_resp_sent_event { 10982be7d22fSVladimir Kondratiev u8 cidxtid; 10992be7d22fSVladimir Kondratiev u8 reserved; 11002be7d22fSVladimir Kondratiev __le16 status; 11012be7d22fSVladimir Kondratiev } __packed; 11022be7d22fSVladimir Kondratiev 11032be7d22fSVladimir Kondratiev /* 11042be7d22fSVladimir Kondratiev * WMI_RCP_ADDBA_REQ_EVENTID 11052be7d22fSVladimir Kondratiev */ 11062be7d22fSVladimir Kondratiev struct wmi_rcp_addba_req_event { 11072be7d22fSVladimir Kondratiev u8 cidxtid; 11082be7d22fSVladimir Kondratiev u8 dialog_token; 11092be7d22fSVladimir Kondratiev __le16 ba_param_set; /* ieee80211_ba_parameterset as it received */ 11102be7d22fSVladimir Kondratiev __le16 ba_timeout; 11112be7d22fSVladimir Kondratiev __le16 ba_seq_ctrl; /* ieee80211_ba_seqstrl field as it received */ 11122be7d22fSVladimir Kondratiev } __packed; 11132be7d22fSVladimir Kondratiev 11142be7d22fSVladimir Kondratiev /* 11152be7d22fSVladimir Kondratiev * WMI_CFG_RX_CHAIN_DONE_EVENTID 11162be7d22fSVladimir Kondratiev */ 11172be7d22fSVladimir Kondratiev enum wmi_cfg_rx_chain_done_event_status { 11182be7d22fSVladimir Kondratiev WMI_CFG_RX_CHAIN_SUCCESS = 1, 11192be7d22fSVladimir Kondratiev }; 11202be7d22fSVladimir Kondratiev 11212be7d22fSVladimir Kondratiev struct wmi_cfg_rx_chain_done_event { 11222be7d22fSVladimir Kondratiev __le32 rx_ring_tail_ptr; /* Rx V-Ring Tail pointer */ 11232be7d22fSVladimir Kondratiev __le32 status; 11242be7d22fSVladimir Kondratiev } __packed; 11252be7d22fSVladimir Kondratiev 11262be7d22fSVladimir Kondratiev /* 11272be7d22fSVladimir Kondratiev * WMI_WBE_LINKDOWN_EVENTID 11282be7d22fSVladimir Kondratiev */ 11292be7d22fSVladimir Kondratiev enum wmi_wbe_link_down_event_reason { 11302be7d22fSVladimir Kondratiev WMI_WBE_REASON_USER_REQUEST = 0, 11312be7d22fSVladimir Kondratiev WMI_WBE_REASON_RX_DISASSOC = 1, 11322be7d22fSVladimir Kondratiev WMI_WBE_REASON_BAD_PHY_LINK = 2, 11332be7d22fSVladimir Kondratiev }; 11342be7d22fSVladimir Kondratiev 11352be7d22fSVladimir Kondratiev struct wmi_wbe_link_down_event { 11362be7d22fSVladimir Kondratiev u8 cid; 11372be7d22fSVladimir Kondratiev u8 reserved[3]; 11382be7d22fSVladimir Kondratiev __le32 reason; 11392be7d22fSVladimir Kondratiev } __packed; 11402be7d22fSVladimir Kondratiev 11412be7d22fSVladimir Kondratiev /* 11422be7d22fSVladimir Kondratiev * WMI_DATA_PORT_OPEN_EVENTID 11432be7d22fSVladimir Kondratiev */ 11442be7d22fSVladimir Kondratiev struct wmi_data_port_open_event { 11452be7d22fSVladimir Kondratiev u8 cid; 11462be7d22fSVladimir Kondratiev u8 reserved[3]; 11472be7d22fSVladimir Kondratiev } __packed; 11482be7d22fSVladimir Kondratiev 11492be7d22fSVladimir Kondratiev /* 11502be7d22fSVladimir Kondratiev * WMI_GET_PCP_CHANNEL_EVENTID 11512be7d22fSVladimir Kondratiev */ 11522be7d22fSVladimir Kondratiev struct wmi_get_pcp_channel_event { 11532be7d22fSVladimir Kondratiev u8 channel; 11542be7d22fSVladimir Kondratiev u8 reserved[3]; 11552be7d22fSVladimir Kondratiev } __packed; 11562be7d22fSVladimir Kondratiev 1157b8023177SVladimir Kondratiev /* 1158b8023177SVladimir Kondratiev * WMI_PORT_ALLOCATED_EVENTID 1159b8023177SVladimir Kondratiev */ 1160b8023177SVladimir Kondratiev struct wmi_port_allocated_event { 1161b8023177SVladimir Kondratiev u8 status; /* wmi_fw_status */ 1162b8023177SVladimir Kondratiev u8 reserved[3]; 1163b8023177SVladimir Kondratiev } __packed; 1164b8023177SVladimir Kondratiev 1165b8023177SVladimir Kondratiev /* 1166b8023177SVladimir Kondratiev * WMI_PORT_DELETED_EVENTID 1167b8023177SVladimir Kondratiev */ 1168b8023177SVladimir Kondratiev struct wmi_port_deleted_event { 1169b8023177SVladimir Kondratiev u8 status; /* wmi_fw_status */ 1170b8023177SVladimir Kondratiev u8 reserved[3]; 1171b8023177SVladimir Kondratiev } __packed; 1172b8023177SVladimir Kondratiev 1173b8023177SVladimir Kondratiev /* 1174b8023177SVladimir Kondratiev * WMI_LISTEN_STARTED_EVENTID 1175b8023177SVladimir Kondratiev */ 1176b8023177SVladimir Kondratiev struct wmi_listen_started_event { 1177b8023177SVladimir Kondratiev u8 status; /* wmi_fw_status */ 1178b8023177SVladimir Kondratiev u8 reserved[3]; 1179b8023177SVladimir Kondratiev } __packed; 1180b8023177SVladimir Kondratiev 1181b8023177SVladimir Kondratiev /* 1182b8023177SVladimir Kondratiev * WMI_SEARCH_STARTED_EVENTID 1183b8023177SVladimir Kondratiev */ 1184b8023177SVladimir Kondratiev struct wmi_search_started_event { 1185b8023177SVladimir Kondratiev u8 status; /* wmi_fw_status */ 1186b8023177SVladimir Kondratiev u8 reserved[3]; 1187b8023177SVladimir Kondratiev } __packed; 1188b8023177SVladimir Kondratiev 1189b8023177SVladimir Kondratiev /* 1190b8023177SVladimir Kondratiev * WMI_PCP_STARTED_EVENTID 1191b8023177SVladimir Kondratiev */ 1192b8023177SVladimir Kondratiev struct wmi_pcp_started_event { 1193b8023177SVladimir Kondratiev u8 status; /* wmi_fw_status */ 1194b8023177SVladimir Kondratiev u8 reserved[3]; 1195b8023177SVladimir Kondratiev } __packed; 1196b8023177SVladimir Kondratiev 1197b8023177SVladimir Kondratiev /* 1198b8023177SVladimir Kondratiev * WMI_PCP_FACTOR_EVENTID 1199b8023177SVladimir Kondratiev */ 1200b8023177SVladimir Kondratiev struct wmi_pcp_factor_event { 1201b8023177SVladimir Kondratiev __le32 pcp_factor; 1202b8023177SVladimir Kondratiev } __packed; 1203b8023177SVladimir Kondratiev 12042be7d22fSVladimir Kondratiev /* 12052be7d22fSVladimir Kondratiev * WMI_SW_TX_COMPLETE_EVENTID 12062be7d22fSVladimir Kondratiev */ 12072be7d22fSVladimir Kondratiev enum wmi_sw_tx_status { 12082be7d22fSVladimir Kondratiev WMI_TX_SW_STATUS_SUCCESS = 0, 12092be7d22fSVladimir Kondratiev WMI_TX_SW_STATUS_FAILED_NO_RESOURCES = 1, 12102be7d22fSVladimir Kondratiev WMI_TX_SW_STATUS_FAILED_TX = 2, 12112be7d22fSVladimir Kondratiev }; 12122be7d22fSVladimir Kondratiev 12132be7d22fSVladimir Kondratiev struct wmi_sw_tx_complete_event { 12142be7d22fSVladimir Kondratiev u8 status; /* enum wmi_sw_tx_status */ 12152be7d22fSVladimir Kondratiev u8 reserved[3]; 12162be7d22fSVladimir Kondratiev } __packed; 12172be7d22fSVladimir Kondratiev 12182be7d22fSVladimir Kondratiev /* 1219b8023177SVladimir Kondratiev * WMI_CORR_MEASURE_EVENTID 1220b8023177SVladimir Kondratiev */ 1221b8023177SVladimir Kondratiev struct wmi_corr_measure_event { 1222b8023177SVladimir Kondratiev s32 i; 1223b8023177SVladimir Kondratiev s32 q; 1224b8023177SVladimir Kondratiev s32 image_i; 1225b8023177SVladimir Kondratiev s32 image_q; 1226b8023177SVladimir Kondratiev } __packed; 1227b8023177SVladimir Kondratiev 1228b8023177SVladimir Kondratiev /* 1229b8023177SVladimir Kondratiev * WMI_READ_RSSI_EVENTID 1230b8023177SVladimir Kondratiev */ 1231b8023177SVladimir Kondratiev struct wmi_read_rssi_event { 1232b8023177SVladimir Kondratiev __le32 ina_rssi_adc_dbm; 1233b8023177SVladimir Kondratiev } __packed; 1234b8023177SVladimir Kondratiev 1235b8023177SVladimir Kondratiev /* 12362be7d22fSVladimir Kondratiev * WMI_GET_SSID_EVENTID 12372be7d22fSVladimir Kondratiev */ 12382be7d22fSVladimir Kondratiev struct wmi_get_ssid_event { 12392be7d22fSVladimir Kondratiev __le32 ssid_len; 12402be7d22fSVladimir Kondratiev u8 ssid[WMI_MAX_SSID_LEN]; 12412be7d22fSVladimir Kondratiev } __packed; 12422be7d22fSVladimir Kondratiev 12432be7d22fSVladimir Kondratiev /* 12442be7d22fSVladimir Kondratiev * WMI_RX_MGMT_PACKET_EVENTID 12452be7d22fSVladimir Kondratiev */ 12462be7d22fSVladimir Kondratiev struct wmi_rx_mgmt_info { 12472be7d22fSVladimir Kondratiev u8 mcs; 12482be7d22fSVladimir Kondratiev s8 snr; 1249b8023177SVladimir Kondratiev u8 range; 1250b8023177SVladimir Kondratiev u8 sqi; 12512be7d22fSVladimir Kondratiev __le16 stype; 12522be7d22fSVladimir Kondratiev __le16 status; 12532be7d22fSVladimir Kondratiev __le32 len; 12542be7d22fSVladimir Kondratiev u8 qid; 12552be7d22fSVladimir Kondratiev u8 mid; 12562be7d22fSVladimir Kondratiev u8 cid; 12572be7d22fSVladimir Kondratiev u8 channel; /* From Radio MNGR */ 12582be7d22fSVladimir Kondratiev } __packed; 12592be7d22fSVladimir Kondratiev 12606c2faf09SVladimir Kondratiev /* 12616c2faf09SVladimir Kondratiev * WMI_TX_MGMT_PACKET_EVENTID 12626c2faf09SVladimir Kondratiev */ 12636c2faf09SVladimir Kondratiev struct wmi_tx_mgmt_packet_event { 12646c2faf09SVladimir Kondratiev u8 payload[0]; 12656c2faf09SVladimir Kondratiev } __packed; 12666c2faf09SVladimir Kondratiev 12672be7d22fSVladimir Kondratiev struct wmi_rx_mgmt_packet_event { 12682be7d22fSVladimir Kondratiev struct wmi_rx_mgmt_info info; 12692be7d22fSVladimir Kondratiev u8 payload[0]; 12702be7d22fSVladimir Kondratiev } __packed; 12712be7d22fSVladimir Kondratiev 12722be7d22fSVladimir Kondratiev /* 12732be7d22fSVladimir Kondratiev * WMI_ECHO_RSP_EVENTID 12742be7d22fSVladimir Kondratiev */ 12752be7d22fSVladimir Kondratiev struct wmi_echo_event { 12762be7d22fSVladimir Kondratiev __le32 echoed_value; 12772be7d22fSVladimir Kondratiev } __packed; 12782be7d22fSVladimir Kondratiev 1279b8023177SVladimir Kondratiev /* 1280b8023177SVladimir Kondratiev * WMI_TEMP_SENSE_DONE_EVENTID 1281b8023177SVladimir Kondratiev * 1282b8023177SVladimir Kondratiev * Measure MAC and radio temperatures 1283b8023177SVladimir Kondratiev */ 1284b8023177SVladimir Kondratiev struct wmi_temp_sense_done_event { 1285b8023177SVladimir Kondratiev __le32 marlon_m_t1000; 1286b8023177SVladimir Kondratiev __le32 marlon_r_t1000; 1287b8023177SVladimir Kondratiev } __packed; 1288b8023177SVladimir Kondratiev 12892be7d22fSVladimir Kondratiev #endif /* __WILOCITY_WMI_H__ */ 1290