12be7d22fSVladimir Kondratiev /* 22be7d22fSVladimir Kondratiev * Copyright (c) 2012 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 */ 31*6c2faf09SVladimir 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 1832be7d22fSVladimir Kondratiev enum wmi_connect_ctrl_flag_bits { 1842be7d22fSVladimir Kondratiev WMI_CONNECT_ASSOC_POLICY_USER = 0x0001, 1852be7d22fSVladimir Kondratiev WMI_CONNECT_SEND_REASSOC = 0x0002, 186b8023177SVladimir Kondratiev WMI_CONNECT_IGNORE_WPA_GROUP_CIPHER = 0x0004, 1872be7d22fSVladimir Kondratiev WMI_CONNECT_PROFILE_MATCH_DONE = 0x0008, 1882be7d22fSVladimir Kondratiev WMI_CONNECT_IGNORE_AAC_BEACON = 0x0010, 1892be7d22fSVladimir Kondratiev WMI_CONNECT_CSA_FOLLOW_BSS = 0x0020, 1902be7d22fSVladimir Kondratiev WMI_CONNECT_DO_WPA_OFFLOAD = 0x0040, 1912be7d22fSVladimir Kondratiev WMI_CONNECT_DO_NOT_DEAUTH = 0x0080, 1922be7d22fSVladimir Kondratiev }; 1932be7d22fSVladimir Kondratiev 1942be7d22fSVladimir Kondratiev #define WMI_MAX_SSID_LEN (32) 1952be7d22fSVladimir Kondratiev 1962be7d22fSVladimir Kondratiev struct wmi_connect_cmd { 1972be7d22fSVladimir Kondratiev u8 network_type; 1982be7d22fSVladimir Kondratiev u8 dot11_auth_mode; 1992be7d22fSVladimir Kondratiev u8 auth_mode; 2002be7d22fSVladimir Kondratiev u8 pairwise_crypto_type; 2012be7d22fSVladimir Kondratiev u8 pairwise_crypto_len; 2022be7d22fSVladimir Kondratiev u8 group_crypto_type; 2032be7d22fSVladimir Kondratiev u8 group_crypto_len; 2042be7d22fSVladimir Kondratiev u8 ssid_len; 2052be7d22fSVladimir Kondratiev u8 ssid[WMI_MAX_SSID_LEN]; 2062be7d22fSVladimir Kondratiev u8 channel; 2072be7d22fSVladimir Kondratiev u8 reserved0; 2082be7d22fSVladimir Kondratiev u8 bssid[WMI_MAC_LEN]; 2092be7d22fSVladimir Kondratiev __le32 ctrl_flags; 2102be7d22fSVladimir Kondratiev u8 dst_mac[WMI_MAC_LEN]; 2112be7d22fSVladimir Kondratiev u8 reserved1[2]; 2122be7d22fSVladimir Kondratiev } __packed; 2132be7d22fSVladimir Kondratiev 214b8023177SVladimir Kondratiev /* 215b8023177SVladimir Kondratiev * WMI_DISCONNECT_STA_CMDID 216b8023177SVladimir Kondratiev */ 217b8023177SVladimir Kondratiev struct wmi_disconnect_sta_cmd { 218b8023177SVladimir Kondratiev u8 dst_mac[WMI_MAC_LEN]; 219b8023177SVladimir Kondratiev __le16 disconnect_reason; 220b8023177SVladimir Kondratiev } __packed; 2212be7d22fSVladimir Kondratiev 2222be7d22fSVladimir Kondratiev 2232be7d22fSVladimir Kondratiev /* 2242be7d22fSVladimir Kondratiev * WMI_SET_PMK_CMDID 2252be7d22fSVladimir Kondratiev */ 2262be7d22fSVladimir Kondratiev 2272be7d22fSVladimir Kondratiev #define WMI_MIN_KEY_INDEX (0) 2282be7d22fSVladimir Kondratiev #define WMI_MAX_KEY_INDEX (3) 2292be7d22fSVladimir Kondratiev #define WMI_MAX_KEY_LEN (32) 2302be7d22fSVladimir Kondratiev #define WMI_PASSPHRASE_LEN (64) 2312be7d22fSVladimir Kondratiev #define WMI_PMK_LEN (32) 2322be7d22fSVladimir Kondratiev 2332be7d22fSVladimir Kondratiev struct wmi_set_pmk_cmd { 2342be7d22fSVladimir Kondratiev u8 pmk[WMI_PMK_LEN]; 2352be7d22fSVladimir Kondratiev } __packed; 2362be7d22fSVladimir Kondratiev 2372be7d22fSVladimir Kondratiev 2382be7d22fSVladimir Kondratiev /* 2392be7d22fSVladimir Kondratiev * WMI_SET_PASSPHRASE_CMDID 2402be7d22fSVladimir Kondratiev */ 2412be7d22fSVladimir Kondratiev struct wmi_set_passphrase_cmd { 2422be7d22fSVladimir Kondratiev u8 ssid[WMI_MAX_SSID_LEN]; 2432be7d22fSVladimir Kondratiev u8 passphrase[WMI_PASSPHRASE_LEN]; 2442be7d22fSVladimir Kondratiev u8 ssid_len; 2452be7d22fSVladimir Kondratiev u8 passphrase_len; 2462be7d22fSVladimir Kondratiev } __packed; 2472be7d22fSVladimir Kondratiev 2482be7d22fSVladimir Kondratiev /* 2492be7d22fSVladimir Kondratiev * WMI_ADD_CIPHER_KEY_CMDID 2502be7d22fSVladimir Kondratiev */ 2512be7d22fSVladimir Kondratiev enum wmi_key_usage { 2522be7d22fSVladimir Kondratiev WMI_KEY_USE_PAIRWISE = 0, 2532be7d22fSVladimir Kondratiev WMI_KEY_USE_GROUP = 1, 2542be7d22fSVladimir Kondratiev WMI_KEY_USE_TX = 2, /* default Tx Key - Static WEP only */ 2552be7d22fSVladimir Kondratiev }; 2562be7d22fSVladimir Kondratiev 2572be7d22fSVladimir Kondratiev struct wmi_add_cipher_key_cmd { 2582be7d22fSVladimir Kondratiev u8 key_index; 2592be7d22fSVladimir Kondratiev u8 key_type; 2602be7d22fSVladimir Kondratiev u8 key_usage; /* enum wmi_key_usage */ 2612be7d22fSVladimir Kondratiev u8 key_len; 2622be7d22fSVladimir Kondratiev u8 key_rsc[8]; /* key replay sequence counter */ 2632be7d22fSVladimir Kondratiev u8 key[WMI_MAX_KEY_LEN]; 2642be7d22fSVladimir Kondratiev u8 key_op_ctrl; /* Additional Key Control information */ 2652be7d22fSVladimir Kondratiev u8 mac[WMI_MAC_LEN]; 2662be7d22fSVladimir Kondratiev } __packed; 2672be7d22fSVladimir Kondratiev 2682be7d22fSVladimir Kondratiev /* 2692be7d22fSVladimir Kondratiev * WMI_DELETE_CIPHER_KEY_CMDID 2702be7d22fSVladimir Kondratiev */ 2712be7d22fSVladimir Kondratiev struct wmi_delete_cipher_key_cmd { 2722be7d22fSVladimir Kondratiev u8 key_index; 2732be7d22fSVladimir Kondratiev u8 mac[WMI_MAC_LEN]; 2742be7d22fSVladimir Kondratiev } __packed; 2752be7d22fSVladimir Kondratiev 2762be7d22fSVladimir Kondratiev 2772be7d22fSVladimir Kondratiev /* 2782be7d22fSVladimir Kondratiev * WMI_START_SCAN_CMDID 2792be7d22fSVladimir Kondratiev * 2802be7d22fSVladimir Kondratiev * Start L1 scan operation 2812be7d22fSVladimir Kondratiev * 2822be7d22fSVladimir Kondratiev * Returned events: 2832be7d22fSVladimir Kondratiev * - WMI_RX_MGMT_PACKET_EVENTID - for every probe resp. 2842be7d22fSVladimir Kondratiev * - WMI_SCAN_COMPLETE_EVENTID 2852be7d22fSVladimir Kondratiev */ 2862be7d22fSVladimir Kondratiev enum wmi_scan_type { 2872be7d22fSVladimir Kondratiev WMI_LONG_SCAN = 0, 2882be7d22fSVladimir Kondratiev WMI_SHORT_SCAN = 1, 289b8023177SVladimir Kondratiev WMI_PBC_SCAN = 2, 290*6c2faf09SVladimir Kondratiev WMI_ACTIVE_SCAN = 3, 291*6c2faf09SVladimir Kondratiev WMI_DIRECT_SCAN = 4, 2922be7d22fSVladimir Kondratiev }; 2932be7d22fSVladimir Kondratiev 2942be7d22fSVladimir Kondratiev struct wmi_start_scan_cmd { 295*6c2faf09SVladimir Kondratiev u8 direct_scan_mac_addr[6]; 296*6c2faf09SVladimir Kondratiev u8 reserved[2]; 2972be7d22fSVladimir Kondratiev __le32 home_dwell_time; /* Max duration in the home channel(ms) */ 2982be7d22fSVladimir Kondratiev __le32 force_scan_interval; /* Time interval between scans (ms)*/ 2992be7d22fSVladimir Kondratiev u8 scan_type; /* wmi_scan_type */ 3002be7d22fSVladimir Kondratiev u8 num_channels; /* how many channels follow */ 3012be7d22fSVladimir Kondratiev struct { 3022be7d22fSVladimir Kondratiev u8 channel; 3032be7d22fSVladimir Kondratiev u8 reserved; 3042be7d22fSVladimir Kondratiev } channel_list[0]; /* channels ID's */ 3052be7d22fSVladimir Kondratiev /* 0 - 58320 MHz */ 3062be7d22fSVladimir Kondratiev /* 1 - 60480 MHz */ 3072be7d22fSVladimir Kondratiev /* 2 - 62640 MHz */ 3082be7d22fSVladimir Kondratiev } __packed; 3092be7d22fSVladimir Kondratiev 3102be7d22fSVladimir Kondratiev /* 3112be7d22fSVladimir Kondratiev * WMI_SET_PROBED_SSID_CMDID 3122be7d22fSVladimir Kondratiev */ 313b8023177SVladimir Kondratiev #define MAX_PROBED_SSID_INDEX (3) 3142be7d22fSVladimir Kondratiev 3152be7d22fSVladimir Kondratiev enum wmi_ssid_flag { 3162be7d22fSVladimir Kondratiev WMI_SSID_FLAG_DISABLE = 0, /* disables entry */ 3172be7d22fSVladimir Kondratiev WMI_SSID_FLAG_SPECIFIC = 1, /* probes specified ssid */ 3182be7d22fSVladimir Kondratiev WMI_SSID_FLAG_ANY = 2, /* probes for any ssid */ 3192be7d22fSVladimir Kondratiev }; 3202be7d22fSVladimir Kondratiev 3212be7d22fSVladimir Kondratiev struct wmi_probed_ssid_cmd { 3222be7d22fSVladimir Kondratiev u8 entry_index; /* 0 to MAX_PROBED_SSID_INDEX */ 3232be7d22fSVladimir Kondratiev u8 flag; /* enum wmi_ssid_flag */ 3242be7d22fSVladimir Kondratiev u8 ssid_len; 3252be7d22fSVladimir Kondratiev u8 ssid[WMI_MAX_SSID_LEN]; 3262be7d22fSVladimir Kondratiev } __packed; 3272be7d22fSVladimir Kondratiev 328*6c2faf09SVladimir Kondratiev 3292be7d22fSVladimir Kondratiev /* 3302be7d22fSVladimir Kondratiev * WMI_SET_APPIE_CMDID 3312be7d22fSVladimir Kondratiev * Add Application specified IE to a management frame 3322be7d22fSVladimir Kondratiev */ 333b8023177SVladimir Kondratiev #define WMI_MAX_IE_LEN (1024) 334b8023177SVladimir Kondratiev 335b8023177SVladimir Kondratiev /* 336b8023177SVladimir Kondratiev * Frame Types 337b8023177SVladimir Kondratiev */ 338b8023177SVladimir Kondratiev enum wmi_mgmt_frame_type { 339b8023177SVladimir Kondratiev WMI_FRAME_BEACON = 0, 340b8023177SVladimir Kondratiev WMI_FRAME_PROBE_REQ = 1, 341b8023177SVladimir Kondratiev WMI_FRAME_PROBE_RESP = 2, 342b8023177SVladimir Kondratiev WMI_FRAME_ASSOC_REQ = 3, 343b8023177SVladimir Kondratiev WMI_FRAME_ASSOC_RESP = 4, 344b8023177SVladimir Kondratiev WMI_NUM_MGMT_FRAME, 345b8023177SVladimir Kondratiev }; 346b8023177SVladimir Kondratiev 3472be7d22fSVladimir Kondratiev struct wmi_set_appie_cmd { 3482be7d22fSVladimir Kondratiev u8 mgmt_frm_type; /* enum wmi_mgmt_frame_type */ 3492be7d22fSVladimir Kondratiev u8 reserved; 3502be7d22fSVladimir Kondratiev __le16 ie_len; /* Length of the IE to be added to MGMT frame */ 3512be7d22fSVladimir Kondratiev u8 ie_info[0]; 3522be7d22fSVladimir Kondratiev } __packed; 3532be7d22fSVladimir Kondratiev 3542be7d22fSVladimir Kondratiev 355b8023177SVladimir Kondratiev /* 356b8023177SVladimir Kondratiev * WMI_PXMT_RANGE_CFG_CMDID 357b8023177SVladimir Kondratiev */ 3582be7d22fSVladimir Kondratiev struct wmi_pxmt_range_cfg_cmd { 3592be7d22fSVladimir Kondratiev u8 dst_mac[WMI_MAC_LEN]; 3602be7d22fSVladimir Kondratiev __le16 range; 3612be7d22fSVladimir Kondratiev } __packed; 3622be7d22fSVladimir Kondratiev 363b8023177SVladimir Kondratiev /* 364b8023177SVladimir Kondratiev * WMI_PXMT_SNR2_RANGE_CFG_CMDID 365b8023177SVladimir Kondratiev */ 3662be7d22fSVladimir Kondratiev struct wmi_pxmt_snr2_range_cfg_cmd { 3672be7d22fSVladimir Kondratiev s8 snr2range_arr[WMI_PROX_RANGE_NUM-1]; 3682be7d22fSVladimir Kondratiev } __packed; 3692be7d22fSVladimir Kondratiev 3702be7d22fSVladimir Kondratiev /* 3712be7d22fSVladimir Kondratiev * WMI_RF_MGMT_CMDID 3722be7d22fSVladimir Kondratiev */ 3732be7d22fSVladimir Kondratiev enum wmi_rf_mgmt_type { 3742be7d22fSVladimir Kondratiev WMI_RF_MGMT_W_DISABLE = 0, 3752be7d22fSVladimir Kondratiev WMI_RF_MGMT_W_ENABLE = 1, 3762be7d22fSVladimir Kondratiev WMI_RF_MGMT_GET_STATUS = 2, 3772be7d22fSVladimir Kondratiev }; 3782be7d22fSVladimir Kondratiev 3792be7d22fSVladimir Kondratiev struct wmi_rf_mgmt_cmd { 3802be7d22fSVladimir Kondratiev __le32 rf_mgmt_type; 3812be7d22fSVladimir Kondratiev } __packed; 3822be7d22fSVladimir Kondratiev 383b8023177SVladimir Kondratiev 384b8023177SVladimir Kondratiev /* 385b8023177SVladimir Kondratiev * WMI_RF_RX_TEST_CMDID 386b8023177SVladimir Kondratiev */ 387b8023177SVladimir Kondratiev struct wmi_rf_rx_test_cmd { 388b8023177SVladimir Kondratiev __le32 sector; 389b8023177SVladimir Kondratiev } __packed; 390b8023177SVladimir Kondratiev 391b8023177SVladimir Kondratiev /* 392b8023177SVladimir Kondratiev * WMI_CORR_MEASURE_CMDID 393b8023177SVladimir Kondratiev */ 394b8023177SVladimir Kondratiev struct wmi_corr_measure_cmd { 395b8023177SVladimir Kondratiev s32 freq_mhz; 396b8023177SVladimir Kondratiev __le32 length_samples; 397b8023177SVladimir Kondratiev __le32 iterations; 398b8023177SVladimir Kondratiev } __packed; 399b8023177SVladimir Kondratiev 4002be7d22fSVladimir Kondratiev /* 4012be7d22fSVladimir Kondratiev * WMI_SET_SSID_CMDID 4022be7d22fSVladimir Kondratiev */ 4032be7d22fSVladimir Kondratiev struct wmi_set_ssid_cmd { 4042be7d22fSVladimir Kondratiev __le32 ssid_len; 4052be7d22fSVladimir Kondratiev u8 ssid[WMI_MAX_SSID_LEN]; 4062be7d22fSVladimir Kondratiev } __packed; 4072be7d22fSVladimir Kondratiev 4082be7d22fSVladimir Kondratiev /* 4092be7d22fSVladimir Kondratiev * WMI_SET_PCP_CHANNEL_CMDID 4102be7d22fSVladimir Kondratiev */ 4112be7d22fSVladimir Kondratiev struct wmi_set_pcp_channel_cmd { 4122be7d22fSVladimir Kondratiev u8 channel; 4132be7d22fSVladimir Kondratiev u8 reserved[3]; 4142be7d22fSVladimir Kondratiev } __packed; 4152be7d22fSVladimir Kondratiev 4162be7d22fSVladimir Kondratiev /* 4172be7d22fSVladimir Kondratiev * WMI_BCON_CTRL_CMDID 4182be7d22fSVladimir Kondratiev */ 4192be7d22fSVladimir Kondratiev struct wmi_bcon_ctrl_cmd { 4202be7d22fSVladimir Kondratiev __le16 bcon_interval; 4212be7d22fSVladimir Kondratiev __le16 frag_num; 4222be7d22fSVladimir Kondratiev __le64 ss_mask; 4232be7d22fSVladimir Kondratiev u8 network_type; 424*6c2faf09SVladimir Kondratiev u8 pcp_max_assoc_sta; 4252be7d22fSVladimir Kondratiev u8 disable_sec_offload; 4262be7d22fSVladimir Kondratiev u8 disable_sec; 4272be7d22fSVladimir Kondratiev } __packed; 4282be7d22fSVladimir Kondratiev 429b8023177SVladimir Kondratiev 430b8023177SVladimir Kondratiev /******* P2P ***********/ 431b8023177SVladimir Kondratiev 432b8023177SVladimir Kondratiev /* 433b8023177SVladimir Kondratiev * WMI_PORT_ALLOCATE_CMDID 434b8023177SVladimir Kondratiev */ 435b8023177SVladimir Kondratiev enum wmi_port_role { 436b8023177SVladimir Kondratiev WMI_PORT_STA = 0, 437b8023177SVladimir Kondratiev WMI_PORT_PCP = 1, 438b8023177SVladimir Kondratiev WMI_PORT_AP = 2, 439b8023177SVladimir Kondratiev WMI_PORT_P2P_DEV = 3, 440b8023177SVladimir Kondratiev WMI_PORT_P2P_CLIENT = 4, 441b8023177SVladimir Kondratiev WMI_PORT_P2P_GO = 5, 442b8023177SVladimir Kondratiev }; 443b8023177SVladimir Kondratiev 444b8023177SVladimir Kondratiev struct wmi_port_allocate_cmd { 445b8023177SVladimir Kondratiev u8 mac[WMI_MAC_LEN]; 446b8023177SVladimir Kondratiev u8 port_role; 447*6c2faf09SVladimir Kondratiev u8 mid; 448b8023177SVladimir Kondratiev } __packed; 449b8023177SVladimir Kondratiev 450b8023177SVladimir Kondratiev /* 451b8023177SVladimir Kondratiev * WMI_PORT_DELETE_CMDID 452b8023177SVladimir Kondratiev */ 453b8023177SVladimir Kondratiev struct wmi_delete_port_cmd { 454b8023177SVladimir Kondratiev u8 mid; 455b8023177SVladimir Kondratiev u8 reserved[3]; 456b8023177SVladimir Kondratiev } __packed; 457b8023177SVladimir Kondratiev 458b8023177SVladimir Kondratiev /* 459b8023177SVladimir Kondratiev * WMI_P2P_CFG_CMDID 460b8023177SVladimir Kondratiev */ 461b8023177SVladimir Kondratiev enum wmi_discovery_mode { 462b8023177SVladimir Kondratiev WMI_DISCOVERY_MODE_NON_OFFLOAD = 0, 463b8023177SVladimir Kondratiev WMI_DISCOVERY_MODE_OFFLOAD = 1, 464*6c2faf09SVladimir Kondratiev WMI_DISCOVERY_MODE_PEER2PEER = 2, 465b8023177SVladimir Kondratiev }; 466b8023177SVladimir Kondratiev 467b8023177SVladimir Kondratiev struct wmi_p2p_cfg_cmd { 468b8023177SVladimir Kondratiev u8 discovery_mode; /* wmi_discovery_mode */ 469b8023177SVladimir Kondratiev u8 channel; 470b8023177SVladimir Kondratiev __le16 bcon_interval; /* base to listen/search duration calculation */ 471b8023177SVladimir Kondratiev } __packed; 472b8023177SVladimir Kondratiev 473b8023177SVladimir Kondratiev /* 474b8023177SVladimir Kondratiev * WMI_POWER_MGMT_CFG_CMDID 475b8023177SVladimir Kondratiev */ 476b8023177SVladimir Kondratiev enum wmi_power_source_type { 477b8023177SVladimir Kondratiev WMI_POWER_SOURCE_BATTERY = 0, 478b8023177SVladimir Kondratiev WMI_POWER_SOURCE_OTHER = 1, 479b8023177SVladimir Kondratiev }; 480b8023177SVladimir Kondratiev 481b8023177SVladimir Kondratiev struct wmi_power_mgmt_cfg_cmd { 482b8023177SVladimir Kondratiev u8 power_source; /* wmi_power_source_type */ 483b8023177SVladimir Kondratiev u8 reserved[3]; 484b8023177SVladimir Kondratiev } __packed; 485b8023177SVladimir Kondratiev 486b8023177SVladimir Kondratiev /* 487b8023177SVladimir Kondratiev * WMI_PCP_START_CMDID 488b8023177SVladimir Kondratiev */ 489b8023177SVladimir Kondratiev struct wmi_pcp_start_cmd { 490b8023177SVladimir Kondratiev __le16 bcon_interval; 491*6c2faf09SVladimir Kondratiev u8 pcp_max_assoc_sta; 492*6c2faf09SVladimir Kondratiev u8 reserved0[9]; 493b8023177SVladimir Kondratiev u8 network_type; 494b8023177SVladimir Kondratiev u8 channel; 495b8023177SVladimir Kondratiev u8 disable_sec_offload; 496b8023177SVladimir Kondratiev u8 disable_sec; 497b8023177SVladimir Kondratiev } __packed; 498b8023177SVladimir Kondratiev 4992be7d22fSVladimir Kondratiev /* 5002be7d22fSVladimir Kondratiev * WMI_SW_TX_REQ_CMDID 5012be7d22fSVladimir Kondratiev */ 5022be7d22fSVladimir Kondratiev struct wmi_sw_tx_req_cmd { 5032be7d22fSVladimir Kondratiev u8 dst_mac[WMI_MAC_LEN]; 5042be7d22fSVladimir Kondratiev __le16 len; 5052be7d22fSVladimir Kondratiev u8 payload[0]; 5062be7d22fSVladimir Kondratiev } __packed; 5072be7d22fSVladimir Kondratiev 5082be7d22fSVladimir Kondratiev /* 5092be7d22fSVladimir Kondratiev * WMI_VRING_CFG_CMDID 5102be7d22fSVladimir Kondratiev */ 5112be7d22fSVladimir Kondratiev 5122be7d22fSVladimir Kondratiev struct wmi_sw_ring_cfg { 5132be7d22fSVladimir Kondratiev __le64 ring_mem_base; 5142be7d22fSVladimir Kondratiev __le16 ring_size; 5152be7d22fSVladimir Kondratiev __le16 max_mpdu_size; 5162be7d22fSVladimir Kondratiev } __packed; 5172be7d22fSVladimir Kondratiev 5182be7d22fSVladimir Kondratiev struct wmi_vring_cfg_schd { 5192be7d22fSVladimir Kondratiev __le16 priority; 5202be7d22fSVladimir Kondratiev __le16 timeslot_us; 5212be7d22fSVladimir Kondratiev } __packed; 5222be7d22fSVladimir Kondratiev 5232be7d22fSVladimir Kondratiev enum wmi_vring_cfg_encap_trans_type { 5242be7d22fSVladimir Kondratiev WMI_VRING_ENC_TYPE_802_3 = 0, 5252be7d22fSVladimir Kondratiev WMI_VRING_ENC_TYPE_NATIVE_WIFI = 1, 5262be7d22fSVladimir Kondratiev }; 5272be7d22fSVladimir Kondratiev 5282be7d22fSVladimir Kondratiev enum wmi_vring_cfg_ds_cfg { 5292be7d22fSVladimir Kondratiev WMI_VRING_DS_PBSS = 0, 5302be7d22fSVladimir Kondratiev WMI_VRING_DS_STATION = 1, 5312be7d22fSVladimir Kondratiev WMI_VRING_DS_AP = 2, 5322be7d22fSVladimir Kondratiev WMI_VRING_DS_ADDR4 = 3, 5332be7d22fSVladimir Kondratiev }; 5342be7d22fSVladimir Kondratiev 5352be7d22fSVladimir Kondratiev enum wmi_vring_cfg_nwifi_ds_trans_type { 5362be7d22fSVladimir Kondratiev WMI_NWIFI_TX_TRANS_MODE_NO = 0, 5372be7d22fSVladimir Kondratiev WMI_NWIFI_TX_TRANS_MODE_AP2PBSS = 1, 5382be7d22fSVladimir Kondratiev WMI_NWIFI_TX_TRANS_MODE_STA2PBSS = 2, 5392be7d22fSVladimir Kondratiev }; 5402be7d22fSVladimir Kondratiev 5412be7d22fSVladimir Kondratiev enum wmi_vring_cfg_schd_params_priority { 5422be7d22fSVladimir Kondratiev WMI_SCH_PRIO_REGULAR = 0, 5432be7d22fSVladimir Kondratiev WMI_SCH_PRIO_HIGH = 1, 5442be7d22fSVladimir Kondratiev }; 5452be7d22fSVladimir Kondratiev 5462be7d22fSVladimir Kondratiev #define CIDXTID_CID_POS (0) 5472be7d22fSVladimir Kondratiev #define CIDXTID_CID_LEN (4) 5482be7d22fSVladimir Kondratiev #define CIDXTID_CID_MSK (0xF) 5492be7d22fSVladimir Kondratiev #define CIDXTID_TID_POS (4) 5502be7d22fSVladimir Kondratiev #define CIDXTID_TID_LEN (4) 5512be7d22fSVladimir Kondratiev #define CIDXTID_TID_MSK (0xF0) 552b8023177SVladimir Kondratiev 553b8023177SVladimir Kondratiev struct wmi_vring_cfg { 554b8023177SVladimir Kondratiev struct wmi_sw_ring_cfg tx_sw_ring; 555b8023177SVladimir Kondratiev u8 ringid; /* 0-23 vrings */ 556b8023177SVladimir Kondratiev 5572be7d22fSVladimir Kondratiev u8 cidxtid; 5582be7d22fSVladimir Kondratiev 5592be7d22fSVladimir Kondratiev u8 encap_trans_type; 5602be7d22fSVladimir Kondratiev u8 ds_cfg; /* 802.3 DS cfg */ 5612be7d22fSVladimir Kondratiev u8 nwifi_ds_trans_type; 5622be7d22fSVladimir Kondratiev 5632be7d22fSVladimir Kondratiev #define VRING_CFG_MAC_CTRL_LIFETIME_EN_POS (0) 5642be7d22fSVladimir Kondratiev #define VRING_CFG_MAC_CTRL_LIFETIME_EN_LEN (1) 5652be7d22fSVladimir Kondratiev #define VRING_CFG_MAC_CTRL_LIFETIME_EN_MSK (0x1) 5662be7d22fSVladimir Kondratiev #define VRING_CFG_MAC_CTRL_AGGR_EN_POS (1) 5672be7d22fSVladimir Kondratiev #define VRING_CFG_MAC_CTRL_AGGR_EN_LEN (1) 5682be7d22fSVladimir Kondratiev #define VRING_CFG_MAC_CTRL_AGGR_EN_MSK (0x2) 5692be7d22fSVladimir Kondratiev u8 mac_ctrl; 5702be7d22fSVladimir Kondratiev 5712be7d22fSVladimir Kondratiev #define VRING_CFG_TO_RESOLUTION_VALUE_POS (0) 5722be7d22fSVladimir Kondratiev #define VRING_CFG_TO_RESOLUTION_VALUE_LEN (6) 5732be7d22fSVladimir Kondratiev #define VRING_CFG_TO_RESOLUTION_VALUE_MSK (0x3F) 5742be7d22fSVladimir Kondratiev u8 to_resolution; 5752be7d22fSVladimir Kondratiev u8 agg_max_wsize; 5762be7d22fSVladimir Kondratiev struct wmi_vring_cfg_schd schd_params; 5772be7d22fSVladimir Kondratiev } __packed; 5782be7d22fSVladimir Kondratiev 5792be7d22fSVladimir Kondratiev enum wmi_vring_cfg_cmd_action { 5802be7d22fSVladimir Kondratiev WMI_VRING_CMD_ADD = 0, 5812be7d22fSVladimir Kondratiev WMI_VRING_CMD_MODIFY = 1, 5822be7d22fSVladimir Kondratiev WMI_VRING_CMD_DELETE = 2, 5832be7d22fSVladimir Kondratiev }; 5842be7d22fSVladimir Kondratiev 5852be7d22fSVladimir Kondratiev struct wmi_vring_cfg_cmd { 5862be7d22fSVladimir Kondratiev __le32 action; 5872be7d22fSVladimir Kondratiev struct wmi_vring_cfg vring_cfg; 5882be7d22fSVladimir Kondratiev } __packed; 5892be7d22fSVladimir Kondratiev 5902be7d22fSVladimir Kondratiev /* 5912be7d22fSVladimir Kondratiev * WMI_VRING_BA_EN_CMDID 5922be7d22fSVladimir Kondratiev */ 5932be7d22fSVladimir Kondratiev struct wmi_vring_ba_en_cmd { 5942be7d22fSVladimir Kondratiev u8 ringid; 5952be7d22fSVladimir Kondratiev u8 agg_max_wsize; 5962be7d22fSVladimir Kondratiev __le16 ba_timeout; 5972be7d22fSVladimir Kondratiev } __packed; 5982be7d22fSVladimir Kondratiev 5992be7d22fSVladimir Kondratiev /* 6002be7d22fSVladimir Kondratiev * WMI_VRING_BA_DIS_CMDID 6012be7d22fSVladimir Kondratiev */ 6022be7d22fSVladimir Kondratiev struct wmi_vring_ba_dis_cmd { 6032be7d22fSVladimir Kondratiev u8 ringid; 6042be7d22fSVladimir Kondratiev u8 reserved; 6052be7d22fSVladimir Kondratiev __le16 reason; 6062be7d22fSVladimir Kondratiev } __packed; 6072be7d22fSVladimir Kondratiev 6082be7d22fSVladimir Kondratiev /* 6092be7d22fSVladimir Kondratiev * WMI_NOTIFY_REQ_CMDID 6102be7d22fSVladimir Kondratiev */ 6112be7d22fSVladimir Kondratiev struct wmi_notify_req_cmd { 6122be7d22fSVladimir Kondratiev u8 cid; 613b8023177SVladimir Kondratiev u8 year; 614b8023177SVladimir Kondratiev u8 month; 615b8023177SVladimir Kondratiev u8 day; 6162be7d22fSVladimir Kondratiev __le32 interval_usec; 617b8023177SVladimir Kondratiev u8 hour; 618b8023177SVladimir Kondratiev u8 minute; 619b8023177SVladimir Kondratiev u8 second; 620b8023177SVladimir Kondratiev u8 miliseconds; 6212be7d22fSVladimir Kondratiev } __packed; 6222be7d22fSVladimir Kondratiev 6232be7d22fSVladimir Kondratiev /* 6242be7d22fSVladimir Kondratiev * WMI_CFG_RX_CHAIN_CMDID 6252be7d22fSVladimir Kondratiev */ 6262be7d22fSVladimir Kondratiev enum wmi_sniffer_cfg_mode { 6272be7d22fSVladimir Kondratiev WMI_SNIFFER_OFF = 0, 6282be7d22fSVladimir Kondratiev WMI_SNIFFER_ON = 1, 6292be7d22fSVladimir Kondratiev }; 6302be7d22fSVladimir Kondratiev 6312be7d22fSVladimir Kondratiev enum wmi_sniffer_cfg_phy_info_mode { 6322be7d22fSVladimir Kondratiev WMI_SNIFFER_PHY_INFO_DISABLED = 0, 6332be7d22fSVladimir Kondratiev WMI_SNIFFER_PHY_INFO_ENABLED = 1, 6342be7d22fSVladimir Kondratiev }; 6352be7d22fSVladimir Kondratiev 6362be7d22fSVladimir Kondratiev enum wmi_sniffer_cfg_phy_support { 6372be7d22fSVladimir Kondratiev WMI_SNIFFER_CP = 0, 6382be7d22fSVladimir Kondratiev WMI_SNIFFER_DP = 1, 6392be7d22fSVladimir Kondratiev WMI_SNIFFER_BOTH_PHYS = 2, 6402be7d22fSVladimir Kondratiev }; 6412be7d22fSVladimir Kondratiev 6422be7d22fSVladimir Kondratiev struct wmi_sniffer_cfg { 6432be7d22fSVladimir Kondratiev __le32 mode; /* enum wmi_sniffer_cfg_mode */ 6442be7d22fSVladimir Kondratiev __le32 phy_info_mode; /* enum wmi_sniffer_cfg_phy_info_mode */ 6452be7d22fSVladimir Kondratiev __le32 phy_support; /* enum wmi_sniffer_cfg_phy_support */ 6462be7d22fSVladimir Kondratiev u8 channel; 6472be7d22fSVladimir Kondratiev u8 reserved[3]; 6482be7d22fSVladimir Kondratiev } __packed; 6492be7d22fSVladimir Kondratiev 6502be7d22fSVladimir Kondratiev enum wmi_cfg_rx_chain_cmd_action { 6512be7d22fSVladimir Kondratiev WMI_RX_CHAIN_ADD = 0, 6522be7d22fSVladimir Kondratiev WMI_RX_CHAIN_DEL = 1, 6532be7d22fSVladimir Kondratiev }; 6542be7d22fSVladimir Kondratiev 6552be7d22fSVladimir Kondratiev enum wmi_cfg_rx_chain_cmd_decap_trans_type { 6562be7d22fSVladimir Kondratiev WMI_DECAP_TYPE_802_3 = 0, 6572be7d22fSVladimir Kondratiev WMI_DECAP_TYPE_NATIVE_WIFI = 1, 6582be7d22fSVladimir Kondratiev }; 6592be7d22fSVladimir Kondratiev 6602be7d22fSVladimir Kondratiev enum wmi_cfg_rx_chain_cmd_nwifi_ds_trans_type { 6612be7d22fSVladimir Kondratiev WMI_NWIFI_RX_TRANS_MODE_NO = 0, 6622be7d22fSVladimir Kondratiev WMI_NWIFI_RX_TRANS_MODE_PBSS2AP = 1, 6632be7d22fSVladimir Kondratiev WMI_NWIFI_RX_TRANS_MODE_PBSS2STA = 2, 6642be7d22fSVladimir Kondratiev }; 6652be7d22fSVladimir Kondratiev 666b8023177SVladimir Kondratiev enum wmi_cfg_rx_chain_cmd_reorder_type { 667b8023177SVladimir Kondratiev WMI_RX_HW_REORDER = 0, 668b8023177SVladimir Kondratiev WMI_RX_SW_REORDER = 1, 669b8023177SVladimir Kondratiev }; 670b8023177SVladimir Kondratiev 6712be7d22fSVladimir Kondratiev struct wmi_cfg_rx_chain_cmd { 6722be7d22fSVladimir Kondratiev __le32 action; 6732be7d22fSVladimir Kondratiev struct wmi_sw_ring_cfg rx_sw_ring; 6742be7d22fSVladimir Kondratiev u8 mid; 6752be7d22fSVladimir Kondratiev u8 decap_trans_type; 6762be7d22fSVladimir Kondratiev 6772be7d22fSVladimir Kondratiev #define L2_802_3_OFFLOAD_CTRL_VLAN_TAG_INSERTION_POS (0) 6782be7d22fSVladimir Kondratiev #define L2_802_3_OFFLOAD_CTRL_VLAN_TAG_INSERTION_LEN (1) 6792be7d22fSVladimir Kondratiev #define L2_802_3_OFFLOAD_CTRL_VLAN_TAG_INSERTION_MSK (0x1) 6802be7d22fSVladimir Kondratiev u8 l2_802_3_offload_ctrl; 6812be7d22fSVladimir Kondratiev 6822be7d22fSVladimir Kondratiev #define L2_NWIFI_OFFLOAD_CTRL_REMOVE_QOS_POS (0) 6832be7d22fSVladimir Kondratiev #define L2_NWIFI_OFFLOAD_CTRL_REMOVE_QOS_LEN (1) 6842be7d22fSVladimir Kondratiev #define L2_NWIFI_OFFLOAD_CTRL_REMOVE_QOS_MSK (0x1) 6852be7d22fSVladimir Kondratiev #define L2_NWIFI_OFFLOAD_CTRL_REMOVE_PN_POS (1) 6862be7d22fSVladimir Kondratiev #define L2_NWIFI_OFFLOAD_CTRL_REMOVE_PN_LEN (1) 6872be7d22fSVladimir Kondratiev #define L2_NWIFI_OFFLOAD_CTRL_REMOVE_PN_MSK (0x2) 6882be7d22fSVladimir Kondratiev u8 l2_nwifi_offload_ctrl; 6892be7d22fSVladimir Kondratiev 6902be7d22fSVladimir Kondratiev u8 vlan_id; 6912be7d22fSVladimir Kondratiev u8 nwifi_ds_trans_type; 6922be7d22fSVladimir Kondratiev 6932be7d22fSVladimir Kondratiev #define L3_L4_CTRL_IPV4_CHECKSUM_EN_POS (0) 6942be7d22fSVladimir Kondratiev #define L3_L4_CTRL_IPV4_CHECKSUM_EN_LEN (1) 6952be7d22fSVladimir Kondratiev #define L3_L4_CTRL_IPV4_CHECKSUM_EN_MSK (0x1) 6962be7d22fSVladimir Kondratiev #define L3_L4_CTRL_TCPIP_CHECKSUM_EN_POS (1) 6972be7d22fSVladimir Kondratiev #define L3_L4_CTRL_TCPIP_CHECKSUM_EN_LEN (1) 6982be7d22fSVladimir Kondratiev #define L3_L4_CTRL_TCPIP_CHECKSUM_EN_MSK (0x2) 6992be7d22fSVladimir Kondratiev u8 l3_l4_ctrl; 7002be7d22fSVladimir Kondratiev 7012be7d22fSVladimir Kondratiev #define RING_CTRL_OVERRIDE_PREFETCH_THRSH_POS (0) 7022be7d22fSVladimir Kondratiev #define RING_CTRL_OVERRIDE_PREFETCH_THRSH_LEN (1) 7032be7d22fSVladimir Kondratiev #define RING_CTRL_OVERRIDE_PREFETCH_THRSH_MSK (0x1) 7042be7d22fSVladimir Kondratiev #define RING_CTRL_OVERRIDE_WB_THRSH_POS (1) 7052be7d22fSVladimir Kondratiev #define RING_CTRL_OVERRIDE_WB_THRSH_LEN (1) 7062be7d22fSVladimir Kondratiev #define RING_CTRL_OVERRIDE_WB_THRSH_MSK (0x2) 7072be7d22fSVladimir Kondratiev #define RING_CTRL_OVERRIDE_ITR_THRSH_POS (2) 7082be7d22fSVladimir Kondratiev #define RING_CTRL_OVERRIDE_ITR_THRSH_LEN (1) 7092be7d22fSVladimir Kondratiev #define RING_CTRL_OVERRIDE_ITR_THRSH_MSK (0x4) 7102be7d22fSVladimir Kondratiev #define RING_CTRL_OVERRIDE_HOST_THRSH_POS (3) 7112be7d22fSVladimir Kondratiev #define RING_CTRL_OVERRIDE_HOST_THRSH_LEN (1) 7122be7d22fSVladimir Kondratiev #define RING_CTRL_OVERRIDE_HOST_THRSH_MSK (0x8) 7132be7d22fSVladimir Kondratiev u8 ring_ctrl; 7142be7d22fSVladimir Kondratiev 7152be7d22fSVladimir Kondratiev __le16 prefetch_thrsh; 7162be7d22fSVladimir Kondratiev __le16 wb_thrsh; 7172be7d22fSVladimir Kondratiev __le32 itr_value; 7182be7d22fSVladimir Kondratiev __le16 host_thrsh; 719b8023177SVladimir Kondratiev u8 reorder_type; 720b8023177SVladimir Kondratiev u8 reserved; 7212be7d22fSVladimir Kondratiev struct wmi_sniffer_cfg sniffer_cfg; 7222be7d22fSVladimir Kondratiev } __packed; 7232be7d22fSVladimir Kondratiev 7242be7d22fSVladimir Kondratiev /* 7252be7d22fSVladimir Kondratiev * WMI_RCP_ADDBA_RESP_CMDID 7262be7d22fSVladimir Kondratiev */ 7272be7d22fSVladimir Kondratiev struct wmi_rcp_addba_resp_cmd { 7282be7d22fSVladimir Kondratiev u8 cidxtid; 7292be7d22fSVladimir Kondratiev u8 dialog_token; 7302be7d22fSVladimir Kondratiev __le16 status_code; 7312be7d22fSVladimir Kondratiev __le16 ba_param_set; /* ieee80211_ba_parameterset field to send */ 7322be7d22fSVladimir Kondratiev __le16 ba_timeout; 7332be7d22fSVladimir Kondratiev } __packed; 7342be7d22fSVladimir Kondratiev 7352be7d22fSVladimir Kondratiev /* 7362be7d22fSVladimir Kondratiev * WMI_RCP_DELBA_CMDID 7372be7d22fSVladimir Kondratiev */ 7382be7d22fSVladimir Kondratiev struct wmi_rcp_delba_cmd { 7392be7d22fSVladimir Kondratiev u8 cidxtid; 7402be7d22fSVladimir Kondratiev u8 reserved; 7412be7d22fSVladimir Kondratiev __le16 reason; 7422be7d22fSVladimir Kondratiev } __packed; 7432be7d22fSVladimir Kondratiev 7442be7d22fSVladimir Kondratiev /* 7452be7d22fSVladimir Kondratiev * WMI_RCP_ADDBA_REQ_CMDID 7462be7d22fSVladimir Kondratiev */ 7472be7d22fSVladimir Kondratiev struct wmi_rcp_addba_req_cmd { 7482be7d22fSVladimir Kondratiev u8 cidxtid; 7492be7d22fSVladimir Kondratiev u8 dialog_token; 7502be7d22fSVladimir Kondratiev /* ieee80211_ba_parameterset field as it received */ 7512be7d22fSVladimir Kondratiev __le16 ba_param_set; 7522be7d22fSVladimir Kondratiev __le16 ba_timeout; 7532be7d22fSVladimir Kondratiev /* ieee80211_ba_seqstrl field as it received */ 7542be7d22fSVladimir Kondratiev __le16 ba_seq_ctrl; 7552be7d22fSVladimir Kondratiev } __packed; 7562be7d22fSVladimir Kondratiev 7572be7d22fSVladimir Kondratiev /* 7582be7d22fSVladimir Kondratiev * WMI_SET_MAC_ADDRESS_CMDID 7592be7d22fSVladimir Kondratiev */ 7602be7d22fSVladimir Kondratiev struct wmi_set_mac_address_cmd { 7612be7d22fSVladimir Kondratiev u8 mac[WMI_MAC_LEN]; 7622be7d22fSVladimir Kondratiev u8 reserved[2]; 7632be7d22fSVladimir Kondratiev } __packed; 7642be7d22fSVladimir Kondratiev 7652be7d22fSVladimir Kondratiev /* 7662be7d22fSVladimir Kondratiev * WMI_EAPOL_TX_CMDID 7672be7d22fSVladimir Kondratiev */ 7682be7d22fSVladimir Kondratiev struct wmi_eapol_tx_cmd { 7692be7d22fSVladimir Kondratiev u8 dst_mac[WMI_MAC_LEN]; 7702be7d22fSVladimir Kondratiev __le16 eapol_len; 7712be7d22fSVladimir Kondratiev u8 eapol[0]; 7722be7d22fSVladimir Kondratiev } __packed; 7732be7d22fSVladimir Kondratiev 7742be7d22fSVladimir Kondratiev /* 7752be7d22fSVladimir Kondratiev * WMI_ECHO_CMDID 7762be7d22fSVladimir Kondratiev * 7772be7d22fSVladimir Kondratiev * Check FW is alive 7782be7d22fSVladimir Kondratiev * 7792be7d22fSVladimir Kondratiev * WMI_DEEP_ECHO_CMDID 7802be7d22fSVladimir Kondratiev * 7812be7d22fSVladimir Kondratiev * Check FW and ucode are alive 7822be7d22fSVladimir Kondratiev * 7832be7d22fSVladimir Kondratiev * Returned event: WMI_ECHO_RSP_EVENTID 7842be7d22fSVladimir Kondratiev * same event for both commands 7852be7d22fSVladimir Kondratiev */ 7862be7d22fSVladimir Kondratiev struct wmi_echo_cmd { 7872be7d22fSVladimir Kondratiev __le32 value; 7882be7d22fSVladimir Kondratiev } __packed; 7892be7d22fSVladimir Kondratiev 7902be7d22fSVladimir Kondratiev /* 791b8023177SVladimir Kondratiev * WMI_TEMP_SENSE_CMDID 792b8023177SVladimir Kondratiev * 793b8023177SVladimir Kondratiev * Measure MAC and radio temperatures 794b8023177SVladimir Kondratiev */ 795b8023177SVladimir Kondratiev struct wmi_temp_sense_cmd { 796b8023177SVladimir Kondratiev __le32 measure_marlon_m_en; 797b8023177SVladimir Kondratiev __le32 measure_marlon_r_en; 798b8023177SVladimir Kondratiev } __packed; 799b8023177SVladimir Kondratiev 800b8023177SVladimir Kondratiev 801b8023177SVladimir Kondratiev /* 8022be7d22fSVladimir Kondratiev * WMI Events 8032be7d22fSVladimir Kondratiev */ 8042be7d22fSVladimir Kondratiev 8052be7d22fSVladimir Kondratiev /* 8062be7d22fSVladimir Kondratiev * List of Events (target to host) 8072be7d22fSVladimir Kondratiev */ 8082be7d22fSVladimir Kondratiev enum wmi_event_id { 8092be7d22fSVladimir Kondratiev WMI_READY_EVENTID = 0x1001, 8102be7d22fSVladimir Kondratiev WMI_CONNECT_EVENTID = 0x1002, 8112be7d22fSVladimir Kondratiev WMI_DISCONNECT_EVENTID = 0x1003, 8122be7d22fSVladimir Kondratiev WMI_SCAN_COMPLETE_EVENTID = 0x100a, 8132be7d22fSVladimir Kondratiev WMI_REPORT_STATISTICS_EVENTID = 0x100b, 8142be7d22fSVladimir Kondratiev WMI_RD_MEM_RSP_EVENTID = 0x1800, 8152be7d22fSVladimir Kondratiev WMI_FW_READY_EVENTID = 0x1801, 8162be7d22fSVladimir Kondratiev WMI_EXIT_FAST_MEM_ACC_MODE_EVENTID = 0x0200, 8172be7d22fSVladimir Kondratiev WMI_ECHO_RSP_EVENTID = 0x1803, 8182be7d22fSVladimir Kondratiev WMI_FS_TUNE_DONE_EVENTID = 0x180a, 819b8023177SVladimir Kondratiev WMI_CORR_MEASURE_EVENTID = 0x180b, 820b8023177SVladimir Kondratiev WMI_READ_RSSI_EVENTID = 0x180c, 8212be7d22fSVladimir Kondratiev WMI_TEMP_SENSE_DONE_EVENTID = 0x180e, 8222be7d22fSVladimir Kondratiev WMI_DC_CALIB_DONE_EVENTID = 0x180f, 8232be7d22fSVladimir Kondratiev WMI_IQ_TX_CALIB_DONE_EVENTID = 0x1811, 8242be7d22fSVladimir Kondratiev WMI_IQ_RX_CALIB_DONE_EVENTID = 0x1812, 8252be7d22fSVladimir Kondratiev WMI_SET_WORK_MODE_DONE_EVENTID = 0x1815, 8262be7d22fSVladimir Kondratiev WMI_LO_LEAKAGE_CALIB_DONE_EVENTID = 0x1816, 8272be7d22fSVladimir Kondratiev WMI_MARLON_R_ACTIVATE_DONE_EVENTID = 0x1817, 8282be7d22fSVladimir Kondratiev WMI_MARLON_R_READ_DONE_EVENTID = 0x1818, 8292be7d22fSVladimir Kondratiev WMI_MARLON_R_WRITE_DONE_EVENTID = 0x1819, 8302be7d22fSVladimir Kondratiev WMI_MARLON_R_TXRX_SEL_DONE_EVENTID = 0x181a, 8312be7d22fSVladimir Kondratiev WMI_SILENT_RSSI_CALIB_DONE_EVENTID = 0x181d, 832b8023177SVladimir Kondratiev WMI_RF_RX_TEST_DONE_EVENTID = 0x181e, 8332be7d22fSVladimir Kondratiev WMI_CFG_RX_CHAIN_DONE_EVENTID = 0x1820, 8342be7d22fSVladimir Kondratiev WMI_VRING_CFG_DONE_EVENTID = 0x1821, 8352be7d22fSVladimir Kondratiev WMI_BA_STATUS_EVENTID = 0x1823, 8362be7d22fSVladimir Kondratiev WMI_RCP_ADDBA_REQ_EVENTID = 0x1824, 8372be7d22fSVladimir Kondratiev WMI_ADDBA_RESP_SENT_EVENTID = 0x1825, 8382be7d22fSVladimir Kondratiev WMI_DELBA_EVENTID = 0x1826, 8392be7d22fSVladimir Kondratiev WMI_GET_SSID_EVENTID = 0x1828, 8402be7d22fSVladimir Kondratiev WMI_GET_PCP_CHANNEL_EVENTID = 0x182a, 8412be7d22fSVladimir Kondratiev WMI_SW_TX_COMPLETE_EVENTID = 0x182b, 8422be7d22fSVladimir Kondratiev 8432be7d22fSVladimir Kondratiev WMI_READ_MAC_RXQ_EVENTID = 0x1830, 8442be7d22fSVladimir Kondratiev WMI_READ_MAC_TXQ_EVENTID = 0x1831, 8452be7d22fSVladimir Kondratiev WMI_WRITE_MAC_RXQ_EVENTID = 0x1832, 8462be7d22fSVladimir Kondratiev WMI_WRITE_MAC_TXQ_EVENTID = 0x1833, 8472be7d22fSVladimir Kondratiev WMI_WRITE_MAC_XQ_FIELD_EVENTID = 0x1834, 8482be7d22fSVladimir Kondratiev 8492be7d22fSVladimir Kondratiev WMI_BEAFORMING_MGMT_DONE_EVENTID = 0x1836, 8502be7d22fSVladimir Kondratiev WMI_BF_TXSS_MGMT_DONE_EVENTID = 0x1837, 8512be7d22fSVladimir Kondratiev WMI_BF_RXSS_MGMT_DONE_EVENTID = 0x1839, 8522be7d22fSVladimir Kondratiev WMI_RS_MGMT_DONE_EVENTID = 0x1852, 8532be7d22fSVladimir Kondratiev WMI_RF_MGMT_STATUS_EVENTID = 0x1853, 8542be7d22fSVladimir Kondratiev WMI_BF_SM_MGMT_DONE_EVENTID = 0x1838, 8552be7d22fSVladimir Kondratiev WMI_RX_MGMT_PACKET_EVENTID = 0x1840, 856*6c2faf09SVladimir Kondratiev WMI_TX_MGMT_PACKET_EVENTID = 0x1841, 8572be7d22fSVladimir Kondratiev 8582be7d22fSVladimir Kondratiev /* Performance monitoring events */ 8592be7d22fSVladimir Kondratiev WMI_DATA_PORT_OPEN_EVENTID = 0x1860, 8602be7d22fSVladimir Kondratiev WMI_WBE_LINKDOWN_EVENTID = 0x1861, 8612be7d22fSVladimir Kondratiev 8622be7d22fSVladimir Kondratiev WMI_BF_CTRL_DONE_EVENTID = 0x1862, 8632be7d22fSVladimir Kondratiev WMI_NOTIFY_REQ_DONE_EVENTID = 0x1863, 8642be7d22fSVladimir Kondratiev WMI_GET_STATUS_DONE_EVENTID = 0x1864, 8652be7d22fSVladimir Kondratiev 8662be7d22fSVladimir Kondratiev WMI_UNIT_TEST_EVENTID = 0x1900, 8672be7d22fSVladimir Kondratiev WMI_FLASH_READ_DONE_EVENTID = 0x1902, 8682be7d22fSVladimir Kondratiev WMI_FLASH_WRITE_DONE_EVENTID = 0x1903, 869b8023177SVladimir Kondratiev /*P2P*/ 870b8023177SVladimir Kondratiev WMI_PORT_ALLOCATED_EVENTID = 0x1911, 871b8023177SVladimir Kondratiev WMI_PORT_DELETED_EVENTID = 0x1912, 872b8023177SVladimir Kondratiev WMI_LISTEN_STARTED_EVENTID = 0x1914, 873b8023177SVladimir Kondratiev WMI_SEARCH_STARTED_EVENTID = 0x1915, 874b8023177SVladimir Kondratiev WMI_DISCOVERY_STARTED_EVENTID = 0x1916, 875b8023177SVladimir Kondratiev WMI_DISCOVERY_STOPPED_EVENTID = 0x1917, 876b8023177SVladimir Kondratiev WMI_PCP_STARTED_EVENTID = 0x1918, 877b8023177SVladimir Kondratiev WMI_PCP_STOPPED_EVENTID = 0x1919, 878b8023177SVladimir Kondratiev WMI_PCP_FACTOR_EVENTID = 0x191a, 8792be7d22fSVladimir Kondratiev WMI_SET_CHANNEL_EVENTID = 0x9000, 8802be7d22fSVladimir Kondratiev WMI_ASSOC_REQ_EVENTID = 0x9001, 8812be7d22fSVladimir Kondratiev WMI_EAPOL_RX_EVENTID = 0x9002, 8822be7d22fSVladimir Kondratiev WMI_MAC_ADDR_RESP_EVENTID = 0x9003, 8832be7d22fSVladimir Kondratiev WMI_FW_VER_EVENTID = 0x9004, 8842be7d22fSVladimir Kondratiev }; 8852be7d22fSVladimir Kondratiev 8862be7d22fSVladimir Kondratiev /* 8872be7d22fSVladimir Kondratiev * Events data structures 8882be7d22fSVladimir Kondratiev */ 8892be7d22fSVladimir Kondratiev 890b8023177SVladimir Kondratiev 891b8023177SVladimir Kondratiev enum wmi_fw_status { 892b8023177SVladimir Kondratiev WMI_FW_STATUS_SUCCESS, 893b8023177SVladimir Kondratiev WMI_FW_STATUS_FAILURE, 894b8023177SVladimir Kondratiev }; 895b8023177SVladimir Kondratiev 8962be7d22fSVladimir Kondratiev /* 8972be7d22fSVladimir Kondratiev * WMI_RF_MGMT_STATUS_EVENTID 8982be7d22fSVladimir Kondratiev */ 8992be7d22fSVladimir Kondratiev enum wmi_rf_status { 9002be7d22fSVladimir Kondratiev WMI_RF_ENABLED = 0, 9012be7d22fSVladimir Kondratiev WMI_RF_DISABLED_HW = 1, 9022be7d22fSVladimir Kondratiev WMI_RF_DISABLED_SW = 2, 9032be7d22fSVladimir Kondratiev WMI_RF_DISABLED_HW_SW = 3, 9042be7d22fSVladimir Kondratiev }; 9052be7d22fSVladimir Kondratiev 9062be7d22fSVladimir Kondratiev struct wmi_rf_mgmt_status_event { 9072be7d22fSVladimir Kondratiev __le32 rf_status; 9082be7d22fSVladimir Kondratiev } __packed; 9092be7d22fSVladimir Kondratiev 9102be7d22fSVladimir Kondratiev /* 9112be7d22fSVladimir Kondratiev * WMI_GET_STATUS_DONE_EVENTID 9122be7d22fSVladimir Kondratiev */ 9132be7d22fSVladimir Kondratiev struct wmi_get_status_done_event { 9142be7d22fSVladimir Kondratiev __le32 is_associated; 9152be7d22fSVladimir Kondratiev u8 cid; 9162be7d22fSVladimir Kondratiev u8 reserved0[3]; 9172be7d22fSVladimir Kondratiev u8 bssid[WMI_MAC_LEN]; 9182be7d22fSVladimir Kondratiev u8 channel; 9192be7d22fSVladimir Kondratiev u8 reserved1; 9202be7d22fSVladimir Kondratiev u8 network_type; 9212be7d22fSVladimir Kondratiev u8 reserved2[3]; 9222be7d22fSVladimir Kondratiev __le32 ssid_len; 9232be7d22fSVladimir Kondratiev u8 ssid[WMI_MAX_SSID_LEN]; 9242be7d22fSVladimir Kondratiev __le32 rf_status; 9252be7d22fSVladimir Kondratiev __le32 is_secured; 9262be7d22fSVladimir Kondratiev } __packed; 9272be7d22fSVladimir Kondratiev 9282be7d22fSVladimir Kondratiev /* 9292be7d22fSVladimir Kondratiev * WMI_FW_VER_EVENTID 9302be7d22fSVladimir Kondratiev */ 9312be7d22fSVladimir Kondratiev struct wmi_fw_ver_event { 9322be7d22fSVladimir Kondratiev u8 major; 9332be7d22fSVladimir Kondratiev u8 minor; 9342be7d22fSVladimir Kondratiev __le16 subminor; 9352be7d22fSVladimir Kondratiev __le16 build; 9362be7d22fSVladimir Kondratiev } __packed; 9372be7d22fSVladimir Kondratiev 9382be7d22fSVladimir Kondratiev /* 9392be7d22fSVladimir Kondratiev * WMI_MAC_ADDR_RESP_EVENTID 9402be7d22fSVladimir Kondratiev */ 9412be7d22fSVladimir Kondratiev struct wmi_mac_addr_resp_event { 9422be7d22fSVladimir Kondratiev u8 mac[WMI_MAC_LEN]; 9432be7d22fSVladimir Kondratiev u8 auth_mode; 9442be7d22fSVladimir Kondratiev u8 crypt_mode; 9452be7d22fSVladimir Kondratiev __le32 offload_mode; 9462be7d22fSVladimir Kondratiev } __packed; 9472be7d22fSVladimir Kondratiev 9482be7d22fSVladimir Kondratiev /* 9492be7d22fSVladimir Kondratiev * WMI_EAPOL_RX_EVENTID 9502be7d22fSVladimir Kondratiev */ 9512be7d22fSVladimir Kondratiev struct wmi_eapol_rx_event { 9522be7d22fSVladimir Kondratiev u8 src_mac[WMI_MAC_LEN]; 9532be7d22fSVladimir Kondratiev __le16 eapol_len; 9542be7d22fSVladimir Kondratiev u8 eapol[0]; 9552be7d22fSVladimir Kondratiev } __packed; 9562be7d22fSVladimir Kondratiev 9572be7d22fSVladimir Kondratiev /* 9582be7d22fSVladimir Kondratiev * WMI_READY_EVENTID 9592be7d22fSVladimir Kondratiev */ 9602be7d22fSVladimir Kondratiev enum wmi_phy_capability { 9612be7d22fSVladimir Kondratiev WMI_11A_CAPABILITY = 1, 9622be7d22fSVladimir Kondratiev WMI_11G_CAPABILITY = 2, 9632be7d22fSVladimir Kondratiev WMI_11AG_CAPABILITY = 3, 9642be7d22fSVladimir Kondratiev WMI_11NA_CAPABILITY = 4, 9652be7d22fSVladimir Kondratiev WMI_11NG_CAPABILITY = 5, 9662be7d22fSVladimir Kondratiev WMI_11NAG_CAPABILITY = 6, 9672be7d22fSVladimir Kondratiev WMI_11AD_CAPABILITY = 7, 9682be7d22fSVladimir Kondratiev WMI_11N_CAPABILITY_OFFSET = WMI_11NA_CAPABILITY - WMI_11A_CAPABILITY, 9692be7d22fSVladimir Kondratiev }; 9702be7d22fSVladimir Kondratiev 9712be7d22fSVladimir Kondratiev struct wmi_ready_event { 9722be7d22fSVladimir Kondratiev __le32 sw_version; 9732be7d22fSVladimir Kondratiev __le32 abi_version; 9742be7d22fSVladimir Kondratiev u8 mac[WMI_MAC_LEN]; 9752be7d22fSVladimir Kondratiev u8 phy_capability; /* enum wmi_phy_capability */ 976b8023177SVladimir Kondratiev u8 numof_additional_mids; 9772be7d22fSVladimir Kondratiev } __packed; 9782be7d22fSVladimir Kondratiev 9792be7d22fSVladimir Kondratiev /* 9802be7d22fSVladimir Kondratiev * WMI_NOTIFY_REQ_DONE_EVENTID 9812be7d22fSVladimir Kondratiev */ 9822be7d22fSVladimir Kondratiev struct wmi_notify_req_done_event { 9832be7d22fSVladimir Kondratiev __le32 status; 9842be7d22fSVladimir Kondratiev __le64 tsf; 9852be7d22fSVladimir Kondratiev __le32 snr_val; 9862be7d22fSVladimir Kondratiev __le32 tx_tpt; 9872be7d22fSVladimir Kondratiev __le32 tx_goodput; 9882be7d22fSVladimir Kondratiev __le32 rx_goodput; 9892be7d22fSVladimir Kondratiev __le16 bf_mcs; 9902be7d22fSVladimir Kondratiev __le16 my_rx_sector; 9912be7d22fSVladimir Kondratiev __le16 my_tx_sector; 9922be7d22fSVladimir Kondratiev __le16 other_rx_sector; 9932be7d22fSVladimir Kondratiev __le16 other_tx_sector; 9942be7d22fSVladimir Kondratiev __le16 range; 995b8023177SVladimir Kondratiev u8 sqi; 996b8023177SVladimir Kondratiev u8 reserved[3]; 9972be7d22fSVladimir Kondratiev } __packed; 9982be7d22fSVladimir Kondratiev 9992be7d22fSVladimir Kondratiev /* 10002be7d22fSVladimir Kondratiev * WMI_CONNECT_EVENTID 10012be7d22fSVladimir Kondratiev */ 10022be7d22fSVladimir Kondratiev struct wmi_connect_event { 10032be7d22fSVladimir Kondratiev u8 channel; 10042be7d22fSVladimir Kondratiev u8 reserved0; 10052be7d22fSVladimir Kondratiev u8 bssid[WMI_MAC_LEN]; 10062be7d22fSVladimir Kondratiev __le16 listen_interval; 10072be7d22fSVladimir Kondratiev __le16 beacon_interval; 10082be7d22fSVladimir Kondratiev u8 network_type; 10092be7d22fSVladimir Kondratiev u8 reserved1[3]; 10102be7d22fSVladimir Kondratiev u8 beacon_ie_len; 10112be7d22fSVladimir Kondratiev u8 assoc_req_len; 10122be7d22fSVladimir Kondratiev u8 assoc_resp_len; 10132be7d22fSVladimir Kondratiev u8 cid; 10142be7d22fSVladimir Kondratiev u8 reserved2[3]; 10152be7d22fSVladimir Kondratiev u8 assoc_info[0]; 10162be7d22fSVladimir Kondratiev } __packed; 10172be7d22fSVladimir Kondratiev 10182be7d22fSVladimir Kondratiev /* 10192be7d22fSVladimir Kondratiev * WMI_DISCONNECT_EVENTID 10202be7d22fSVladimir Kondratiev */ 10212be7d22fSVladimir Kondratiev enum wmi_disconnect_reason { 10222be7d22fSVladimir Kondratiev WMI_DIS_REASON_NO_NETWORK_AVAIL = 1, 10232be7d22fSVladimir Kondratiev WMI_DIS_REASON_LOST_LINK = 2, /* bmiss */ 10242be7d22fSVladimir Kondratiev WMI_DIS_REASON_DISCONNECT_CMD = 3, 10252be7d22fSVladimir Kondratiev WMI_DIS_REASON_BSS_DISCONNECTED = 4, 10262be7d22fSVladimir Kondratiev WMI_DIS_REASON_AUTH_FAILED = 5, 10272be7d22fSVladimir Kondratiev WMI_DIS_REASON_ASSOC_FAILED = 6, 10282be7d22fSVladimir Kondratiev WMI_DIS_REASON_NO_RESOURCES_AVAIL = 7, 10292be7d22fSVladimir Kondratiev WMI_DIS_REASON_CSERV_DISCONNECT = 8, 10302be7d22fSVladimir Kondratiev WMI_DIS_REASON_INVALID_PROFILE = 10, 10312be7d22fSVladimir Kondratiev WMI_DIS_REASON_DOT11H_CHANNEL_SWITCH = 11, 10322be7d22fSVladimir Kondratiev WMI_DIS_REASON_PROFILE_MISMATCH = 12, 10332be7d22fSVladimir Kondratiev WMI_DIS_REASON_CONNECTION_EVICTED = 13, 10342be7d22fSVladimir Kondratiev WMI_DIS_REASON_IBSS_MERGE = 14, 10352be7d22fSVladimir Kondratiev }; 10362be7d22fSVladimir Kondratiev 10372be7d22fSVladimir Kondratiev struct wmi_disconnect_event { 10382be7d22fSVladimir Kondratiev __le16 protocol_reason_status; /* reason code, see 802.11 spec. */ 10392be7d22fSVladimir Kondratiev u8 bssid[WMI_MAC_LEN]; /* set if known */ 1040*6c2faf09SVladimir Kondratiev u8 disconnect_reason; /* see wmi_disconnect_reason */ 1041*6c2faf09SVladimir Kondratiev u8 assoc_resp_len; /* not in use */ 1042*6c2faf09SVladimir Kondratiev u8 assoc_info[0]; /* not in use */ 10432be7d22fSVladimir Kondratiev } __packed; 10442be7d22fSVladimir Kondratiev 10452be7d22fSVladimir Kondratiev /* 10462be7d22fSVladimir Kondratiev * WMI_SCAN_COMPLETE_EVENTID 10472be7d22fSVladimir Kondratiev */ 1048*6c2faf09SVladimir Kondratiev enum scan_status { 1049*6c2faf09SVladimir Kondratiev WMI_SCAN_SUCCESS = 0, 1050*6c2faf09SVladimir Kondratiev WMI_SCAN_FAILED = 1, 1051*6c2faf09SVladimir Kondratiev WMI_SCAN_ABORTED = 2, 1052*6c2faf09SVladimir Kondratiev WMI_SCAN_REJECTED = 3, 1053*6c2faf09SVladimir Kondratiev }; 1054*6c2faf09SVladimir Kondratiev 10552be7d22fSVladimir Kondratiev struct wmi_scan_complete_event { 1056*6c2faf09SVladimir Kondratiev __le32 status; /* scan_status */ 10572be7d22fSVladimir Kondratiev } __packed; 10582be7d22fSVladimir Kondratiev 10592be7d22fSVladimir Kondratiev /* 10602be7d22fSVladimir Kondratiev * WMI_BA_STATUS_EVENTID 10612be7d22fSVladimir Kondratiev */ 10622be7d22fSVladimir Kondratiev enum wmi_vring_ba_status { 10632be7d22fSVladimir Kondratiev WMI_BA_AGREED = 0, 10642be7d22fSVladimir Kondratiev WMI_BA_NON_AGREED = 1, 10652be7d22fSVladimir Kondratiev }; 10662be7d22fSVladimir Kondratiev 10672be7d22fSVladimir Kondratiev struct wmi_vring_ba_status_event { 10682be7d22fSVladimir Kondratiev __le16 status; 10692be7d22fSVladimir Kondratiev u8 reserved[2]; 10702be7d22fSVladimir Kondratiev u8 ringid; 10712be7d22fSVladimir Kondratiev u8 agg_wsize; 10722be7d22fSVladimir Kondratiev __le16 ba_timeout; 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 1084b8023177SVladimir Kondratiev 10852be7d22fSVladimir Kondratiev /* 10862be7d22fSVladimir Kondratiev * WMI_VRING_CFG_DONE_EVENTID 10872be7d22fSVladimir Kondratiev */ 10882be7d22fSVladimir Kondratiev struct wmi_vring_cfg_done_event { 10892be7d22fSVladimir Kondratiev u8 ringid; 10902be7d22fSVladimir Kondratiev u8 status; 10912be7d22fSVladimir Kondratiev u8 reserved[2]; 10922be7d22fSVladimir Kondratiev __le32 tx_vring_tail_ptr; 10932be7d22fSVladimir Kondratiev } __packed; 10942be7d22fSVladimir Kondratiev 10952be7d22fSVladimir Kondratiev /* 10962be7d22fSVladimir Kondratiev * WMI_ADDBA_RESP_SENT_EVENTID 10972be7d22fSVladimir Kondratiev */ 10982be7d22fSVladimir Kondratiev struct wmi_rcp_addba_resp_sent_event { 10992be7d22fSVladimir Kondratiev u8 cidxtid; 11002be7d22fSVladimir Kondratiev u8 reserved; 11012be7d22fSVladimir Kondratiev __le16 status; 11022be7d22fSVladimir Kondratiev } __packed; 11032be7d22fSVladimir Kondratiev 11042be7d22fSVladimir Kondratiev /* 11052be7d22fSVladimir Kondratiev * WMI_RCP_ADDBA_REQ_EVENTID 11062be7d22fSVladimir Kondratiev */ 11072be7d22fSVladimir Kondratiev struct wmi_rcp_addba_req_event { 11082be7d22fSVladimir Kondratiev u8 cidxtid; 11092be7d22fSVladimir Kondratiev u8 dialog_token; 11102be7d22fSVladimir Kondratiev __le16 ba_param_set; /* ieee80211_ba_parameterset as it received */ 11112be7d22fSVladimir Kondratiev __le16 ba_timeout; 11122be7d22fSVladimir Kondratiev __le16 ba_seq_ctrl; /* ieee80211_ba_seqstrl field as it received */ 11132be7d22fSVladimir Kondratiev } __packed; 11142be7d22fSVladimir Kondratiev 11152be7d22fSVladimir Kondratiev /* 11162be7d22fSVladimir Kondratiev * WMI_CFG_RX_CHAIN_DONE_EVENTID 11172be7d22fSVladimir Kondratiev */ 11182be7d22fSVladimir Kondratiev enum wmi_cfg_rx_chain_done_event_status { 11192be7d22fSVladimir Kondratiev WMI_CFG_RX_CHAIN_SUCCESS = 1, 11202be7d22fSVladimir Kondratiev }; 11212be7d22fSVladimir Kondratiev 11222be7d22fSVladimir Kondratiev struct wmi_cfg_rx_chain_done_event { 11232be7d22fSVladimir Kondratiev __le32 rx_ring_tail_ptr; /* Rx V-Ring Tail pointer */ 11242be7d22fSVladimir Kondratiev __le32 status; 11252be7d22fSVladimir Kondratiev } __packed; 11262be7d22fSVladimir Kondratiev 11272be7d22fSVladimir Kondratiev /* 11282be7d22fSVladimir Kondratiev * WMI_WBE_LINKDOWN_EVENTID 11292be7d22fSVladimir Kondratiev */ 11302be7d22fSVladimir Kondratiev enum wmi_wbe_link_down_event_reason { 11312be7d22fSVladimir Kondratiev WMI_WBE_REASON_USER_REQUEST = 0, 11322be7d22fSVladimir Kondratiev WMI_WBE_REASON_RX_DISASSOC = 1, 11332be7d22fSVladimir Kondratiev WMI_WBE_REASON_BAD_PHY_LINK = 2, 11342be7d22fSVladimir Kondratiev }; 11352be7d22fSVladimir Kondratiev 11362be7d22fSVladimir Kondratiev struct wmi_wbe_link_down_event { 11372be7d22fSVladimir Kondratiev u8 cid; 11382be7d22fSVladimir Kondratiev u8 reserved[3]; 11392be7d22fSVladimir Kondratiev __le32 reason; 11402be7d22fSVladimir Kondratiev } __packed; 11412be7d22fSVladimir Kondratiev 11422be7d22fSVladimir Kondratiev /* 11432be7d22fSVladimir Kondratiev * WMI_DATA_PORT_OPEN_EVENTID 11442be7d22fSVladimir Kondratiev */ 11452be7d22fSVladimir Kondratiev struct wmi_data_port_open_event { 11462be7d22fSVladimir Kondratiev u8 cid; 11472be7d22fSVladimir Kondratiev u8 reserved[3]; 11482be7d22fSVladimir Kondratiev } __packed; 11492be7d22fSVladimir Kondratiev 1150b8023177SVladimir Kondratiev 11512be7d22fSVladimir Kondratiev /* 11522be7d22fSVladimir Kondratiev * WMI_GET_PCP_CHANNEL_EVENTID 11532be7d22fSVladimir Kondratiev */ 11542be7d22fSVladimir Kondratiev struct wmi_get_pcp_channel_event { 11552be7d22fSVladimir Kondratiev u8 channel; 11562be7d22fSVladimir Kondratiev u8 reserved[3]; 11572be7d22fSVladimir Kondratiev } __packed; 11582be7d22fSVladimir Kondratiev 1159b8023177SVladimir Kondratiev 1160b8023177SVladimir Kondratiev /* 1161b8023177SVladimir Kondratiev * WMI_PORT_ALLOCATED_EVENTID 1162b8023177SVladimir Kondratiev */ 1163b8023177SVladimir Kondratiev struct wmi_port_allocated_event { 1164b8023177SVladimir Kondratiev u8 status; /* wmi_fw_status */ 1165b8023177SVladimir Kondratiev u8 reserved[3]; 1166b8023177SVladimir Kondratiev } __packed; 1167b8023177SVladimir Kondratiev 1168b8023177SVladimir Kondratiev /* 1169b8023177SVladimir Kondratiev * WMI_PORT_DELETED_EVENTID 1170b8023177SVladimir Kondratiev */ 1171b8023177SVladimir Kondratiev struct wmi_port_deleted_event { 1172b8023177SVladimir Kondratiev u8 status; /* wmi_fw_status */ 1173b8023177SVladimir Kondratiev u8 reserved[3]; 1174b8023177SVladimir Kondratiev } __packed; 1175b8023177SVladimir Kondratiev 1176b8023177SVladimir Kondratiev /* 1177b8023177SVladimir Kondratiev * WMI_LISTEN_STARTED_EVENTID 1178b8023177SVladimir Kondratiev */ 1179b8023177SVladimir Kondratiev struct wmi_listen_started_event { 1180b8023177SVladimir Kondratiev u8 status; /* wmi_fw_status */ 1181b8023177SVladimir Kondratiev u8 reserved[3]; 1182b8023177SVladimir Kondratiev } __packed; 1183b8023177SVladimir Kondratiev 1184b8023177SVladimir Kondratiev /* 1185b8023177SVladimir Kondratiev * WMI_SEARCH_STARTED_EVENTID 1186b8023177SVladimir Kondratiev */ 1187b8023177SVladimir Kondratiev struct wmi_search_started_event { 1188b8023177SVladimir Kondratiev u8 status; /* wmi_fw_status */ 1189b8023177SVladimir Kondratiev u8 reserved[3]; 1190b8023177SVladimir Kondratiev } __packed; 1191b8023177SVladimir Kondratiev 1192b8023177SVladimir Kondratiev /* 1193b8023177SVladimir Kondratiev * WMI_PCP_STARTED_EVENTID 1194b8023177SVladimir Kondratiev */ 1195b8023177SVladimir Kondratiev struct wmi_pcp_started_event { 1196b8023177SVladimir Kondratiev u8 status; /* wmi_fw_status */ 1197b8023177SVladimir Kondratiev u8 reserved[3]; 1198b8023177SVladimir Kondratiev } __packed; 1199b8023177SVladimir Kondratiev 1200b8023177SVladimir Kondratiev /* 1201b8023177SVladimir Kondratiev * WMI_PCP_FACTOR_EVENTID 1202b8023177SVladimir Kondratiev */ 1203b8023177SVladimir Kondratiev struct wmi_pcp_factor_event { 1204b8023177SVladimir Kondratiev __le32 pcp_factor; 1205b8023177SVladimir Kondratiev } __packed; 1206b8023177SVladimir Kondratiev 12072be7d22fSVladimir Kondratiev /* 12082be7d22fSVladimir Kondratiev * WMI_SW_TX_COMPLETE_EVENTID 12092be7d22fSVladimir Kondratiev */ 12102be7d22fSVladimir Kondratiev enum wmi_sw_tx_status { 12112be7d22fSVladimir Kondratiev WMI_TX_SW_STATUS_SUCCESS = 0, 12122be7d22fSVladimir Kondratiev WMI_TX_SW_STATUS_FAILED_NO_RESOURCES = 1, 12132be7d22fSVladimir Kondratiev WMI_TX_SW_STATUS_FAILED_TX = 2, 12142be7d22fSVladimir Kondratiev }; 12152be7d22fSVladimir Kondratiev 12162be7d22fSVladimir Kondratiev struct wmi_sw_tx_complete_event { 12172be7d22fSVladimir Kondratiev u8 status; /* enum wmi_sw_tx_status */ 12182be7d22fSVladimir Kondratiev u8 reserved[3]; 12192be7d22fSVladimir Kondratiev } __packed; 12202be7d22fSVladimir Kondratiev 12212be7d22fSVladimir Kondratiev /* 1222b8023177SVladimir Kondratiev * WMI_CORR_MEASURE_EVENTID 1223b8023177SVladimir Kondratiev */ 1224b8023177SVladimir Kondratiev struct wmi_corr_measure_event { 1225b8023177SVladimir Kondratiev s32 i; 1226b8023177SVladimir Kondratiev s32 q; 1227b8023177SVladimir Kondratiev s32 image_i; 1228b8023177SVladimir Kondratiev s32 image_q; 1229b8023177SVladimir Kondratiev } __packed; 1230b8023177SVladimir Kondratiev 1231b8023177SVladimir Kondratiev /* 1232b8023177SVladimir Kondratiev * WMI_READ_RSSI_EVENTID 1233b8023177SVladimir Kondratiev */ 1234b8023177SVladimir Kondratiev struct wmi_read_rssi_event { 1235b8023177SVladimir Kondratiev __le32 ina_rssi_adc_dbm; 1236b8023177SVladimir Kondratiev } __packed; 1237b8023177SVladimir Kondratiev 1238b8023177SVladimir Kondratiev /* 12392be7d22fSVladimir Kondratiev * WMI_GET_SSID_EVENTID 12402be7d22fSVladimir Kondratiev */ 12412be7d22fSVladimir Kondratiev struct wmi_get_ssid_event { 12422be7d22fSVladimir Kondratiev __le32 ssid_len; 12432be7d22fSVladimir Kondratiev u8 ssid[WMI_MAX_SSID_LEN]; 12442be7d22fSVladimir Kondratiev } __packed; 12452be7d22fSVladimir Kondratiev 12462be7d22fSVladimir Kondratiev /* 12472be7d22fSVladimir Kondratiev * WMI_RX_MGMT_PACKET_EVENTID 12482be7d22fSVladimir Kondratiev */ 12492be7d22fSVladimir Kondratiev struct wmi_rx_mgmt_info { 12502be7d22fSVladimir Kondratiev u8 mcs; 12512be7d22fSVladimir Kondratiev s8 snr; 1252b8023177SVladimir Kondratiev u8 range; 1253b8023177SVladimir Kondratiev u8 sqi; 12542be7d22fSVladimir Kondratiev __le16 stype; 12552be7d22fSVladimir Kondratiev __le16 status; 12562be7d22fSVladimir Kondratiev __le32 len; 12572be7d22fSVladimir Kondratiev u8 qid; 12582be7d22fSVladimir Kondratiev u8 mid; 12592be7d22fSVladimir Kondratiev u8 cid; 12602be7d22fSVladimir Kondratiev u8 channel; /* From Radio MNGR */ 12612be7d22fSVladimir Kondratiev } __packed; 12622be7d22fSVladimir Kondratiev 1263*6c2faf09SVladimir Kondratiev 1264*6c2faf09SVladimir Kondratiev /* 1265*6c2faf09SVladimir Kondratiev * WMI_TX_MGMT_PACKET_EVENTID 1266*6c2faf09SVladimir Kondratiev */ 1267*6c2faf09SVladimir Kondratiev struct wmi_tx_mgmt_packet_event { 1268*6c2faf09SVladimir Kondratiev u8 payload[0]; 1269*6c2faf09SVladimir Kondratiev } __packed; 1270*6c2faf09SVladimir Kondratiev 12712be7d22fSVladimir Kondratiev struct wmi_rx_mgmt_packet_event { 12722be7d22fSVladimir Kondratiev struct wmi_rx_mgmt_info info; 12732be7d22fSVladimir Kondratiev u8 payload[0]; 12742be7d22fSVladimir Kondratiev } __packed; 12752be7d22fSVladimir Kondratiev 12762be7d22fSVladimir Kondratiev /* 12772be7d22fSVladimir Kondratiev * WMI_ECHO_RSP_EVENTID 12782be7d22fSVladimir Kondratiev */ 12792be7d22fSVladimir Kondratiev struct wmi_echo_event { 12802be7d22fSVladimir Kondratiev __le32 echoed_value; 12812be7d22fSVladimir Kondratiev } __packed; 12822be7d22fSVladimir Kondratiev 1283b8023177SVladimir Kondratiev /* 1284b8023177SVladimir Kondratiev * WMI_TEMP_SENSE_DONE_EVENTID 1285b8023177SVladimir Kondratiev * 1286b8023177SVladimir Kondratiev * Measure MAC and radio temperatures 1287b8023177SVladimir Kondratiev */ 1288b8023177SVladimir Kondratiev struct wmi_temp_sense_done_event { 1289b8023177SVladimir Kondratiev __le32 marlon_m_t1000; 1290b8023177SVladimir Kondratiev __le32 marlon_r_t1000; 1291b8023177SVladimir Kondratiev } __packed; 1292b8023177SVladimir Kondratiev 12932be7d22fSVladimir Kondratiev #endif /* __WILOCITY_WMI_H__ */ 1294