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

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

66 WMI_FW_CAPABILITY_THERMAL_THROTTLING = 7,
67 WMI_FW_CAPABILITY_D3_SUSPEND = 8,
68 WMI_FW_CAPABILITY_LONG_RANGE = 9,
69 WMI_FW_CAPABILITY_FIXED_SCHEDULING = 10,
70 WMI_FW_CAPABILITY_MULTI_DIRECTED_OMNIS = 11,
71 WMI_FW_CAPABILITY_RSSI_REPORTING = 12,
72 WMI_FW_CAPABILITY_SET_SILENT_RSSI_TABLE = 13,
73 WMI_FW_CAPABILITY_LO_POWER_CALIB_FROM_OTP = 14,
1/*
2 * Copyright (c) 2012-2017 Qualcomm Atheros, Inc.
3 * Copyright (c) 2006-2012 Wilocity
4 *
5 * Permission to use, copy, modify, and/or distribute this software for any
6 * purpose with or without fee is hereby granted, provided that the above
7 * copyright notice and this permission notice appear in all copies.
8 *

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

66 WMI_FW_CAPABILITY_THERMAL_THROTTLING = 7,
67 WMI_FW_CAPABILITY_D3_SUSPEND = 8,
68 WMI_FW_CAPABILITY_LONG_RANGE = 9,
69 WMI_FW_CAPABILITY_FIXED_SCHEDULING = 10,
70 WMI_FW_CAPABILITY_MULTI_DIRECTED_OMNIS = 11,
71 WMI_FW_CAPABILITY_RSSI_REPORTING = 12,
72 WMI_FW_CAPABILITY_SET_SILENT_RSSI_TABLE = 13,
73 WMI_FW_CAPABILITY_LO_POWER_CALIB_FROM_OTP = 14,
74 WMI_FW_CAPABILITY_PNO = 15,
74 WMI_FW_CAPABILITY_MAX,
75};
76
77/* WMI_CMD_HDR */
78struct wmi_cmd_hdr {
79 u8 mid;
80 u8 reserved;
81 __le16 command_id;
82 __le32 fw_timestamp;
83} __packed;
84
85/* List of Commands */
86enum wmi_command_id {
87 WMI_CONNECT_CMDID = 0x01,
88 WMI_DISCONNECT_CMDID = 0x03,
89 WMI_DISCONNECT_STA_CMDID = 0x04,
75 WMI_FW_CAPABILITY_MAX,
76};
77
78/* WMI_CMD_HDR */
79struct wmi_cmd_hdr {
80 u8 mid;
81 u8 reserved;
82 __le16 command_id;
83 __le32 fw_timestamp;
84} __packed;
85
86/* List of Commands */
87enum wmi_command_id {
88 WMI_CONNECT_CMDID = 0x01,
89 WMI_DISCONNECT_CMDID = 0x03,
90 WMI_DISCONNECT_STA_CMDID = 0x04,
91 WMI_START_SCHED_SCAN_CMDID = 0x05,
92 WMI_STOP_SCHED_SCAN_CMDID = 0x06,
90 WMI_START_SCAN_CMDID = 0x07,
91 WMI_SET_BSS_FILTER_CMDID = 0x09,
92 WMI_SET_PROBED_SSID_CMDID = 0x0A,
93 /* deprecated */
94 WMI_SET_LISTEN_INT_CMDID = 0x0B,
95 WMI_BCON_CTRL_CMDID = 0x0F,
96 WMI_ADD_CIPHER_KEY_CMDID = 0x16,
97 WMI_DELETE_CIPHER_KEY_CMDID = 0x17,

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

380 * 2 - 62640 MHz
381 */
382 struct {
383 u8 channel;
384 u8 reserved;
385 } channel_list[0];
386} __packed;
387
93 WMI_START_SCAN_CMDID = 0x07,
94 WMI_SET_BSS_FILTER_CMDID = 0x09,
95 WMI_SET_PROBED_SSID_CMDID = 0x0A,
96 /* deprecated */
97 WMI_SET_LISTEN_INT_CMDID = 0x0B,
98 WMI_BCON_CTRL_CMDID = 0x0F,
99 WMI_ADD_CIPHER_KEY_CMDID = 0x16,
100 WMI_DELETE_CIPHER_KEY_CMDID = 0x17,

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

383 * 2 - 62640 MHz
384 */
385 struct {
386 u8 channel;
387 u8 reserved;
388 } channel_list[0];
389} __packed;
390
391#define WMI_MAX_PNO_SSID_NUM (16)
392#define WMI_MAX_CHANNEL_NUM (6)
393#define WMI_MAX_PLANS_NUM (2)
394
395/* WMI_START_SCHED_SCAN_CMDID */
396struct wmi_sched_scan_ssid_match {
397 u8 ssid_len;
398 u8 ssid[WMI_MAX_SSID_LEN];
399 s8 rssi_threshold;
400 /* boolean */
401 u8 add_ssid_to_probe;
402 u8 reserved;
403} __packed;
404
405/* WMI_START_SCHED_SCAN_CMDID */
406struct wmi_sched_scan_plan {
407 __le16 interval_sec;
408 __le16 num_of_iterations;
409} __packed;
410
411/* WMI_START_SCHED_SCAN_CMDID */
412struct wmi_start_sched_scan_cmd {
413 struct wmi_sched_scan_ssid_match ssid_for_match[WMI_MAX_PNO_SSID_NUM];
414 u8 num_of_ssids;
415 s8 min_rssi_threshold;
416 u8 channel_list[WMI_MAX_CHANNEL_NUM];
417 u8 num_of_channels;
418 u8 reserved;
419 __le16 initial_delay_sec;
420 struct wmi_sched_scan_plan scan_plans[WMI_MAX_PLANS_NUM];
421} __packed;
422
388/* WMI_SET_PROBED_SSID_CMDID */
389#define MAX_PROBED_SSID_INDEX (3)
390
391enum wmi_ssid_flag {
392 /* disables entry */
393 WMI_SSID_FLAG_DISABLE = 0x00,
394 /* probes specified ssid */
395 WMI_SSID_FLAG_SPECIFIC = 0x01,

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

1233
1234/* WMI Events
1235 * List of Events (target to host)
1236 */
1237enum wmi_event_id {
1238 WMI_READY_EVENTID = 0x1001,
1239 WMI_CONNECT_EVENTID = 0x1002,
1240 WMI_DISCONNECT_EVENTID = 0x1003,
423/* WMI_SET_PROBED_SSID_CMDID */
424#define MAX_PROBED_SSID_INDEX (3)
425
426enum wmi_ssid_flag {
427 /* disables entry */
428 WMI_SSID_FLAG_DISABLE = 0x00,
429 /* probes specified ssid */
430 WMI_SSID_FLAG_SPECIFIC = 0x01,

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

1268
1269/* WMI Events
1270 * List of Events (target to host)
1271 */
1272enum wmi_event_id {
1273 WMI_READY_EVENTID = 0x1001,
1274 WMI_CONNECT_EVENTID = 0x1002,
1275 WMI_DISCONNECT_EVENTID = 0x1003,
1276 WMI_START_SCHED_SCAN_EVENTID = 0x1005,
1277 WMI_STOP_SCHED_SCAN_EVENTID = 0x1006,
1278 WMI_SCHED_SCAN_RESULT_EVENTID = 0x1007,
1241 WMI_SCAN_COMPLETE_EVENTID = 0x100A,
1242 WMI_REPORT_STATISTICS_EVENTID = 0x100B,
1243 WMI_RD_MEM_RSP_EVENTID = 0x1800,
1244 WMI_FW_READY_EVENTID = 0x1801,
1245 WMI_EXIT_FAST_MEM_ACC_MODE_EVENTID = 0x200,
1246 WMI_ECHO_RSP_EVENTID = 0x1803,
1247 /* deprecated */
1248 WMI_FS_TUNE_DONE_EVENTID = 0x180A,

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

1595 WMI_SCAN_ABORT_REJECTED = 0x04,
1596};
1597
1598struct wmi_scan_complete_event {
1599 /* enum scan_status */
1600 __le32 status;
1601} __packed;
1602
1279 WMI_SCAN_COMPLETE_EVENTID = 0x100A,
1280 WMI_REPORT_STATISTICS_EVENTID = 0x100B,
1281 WMI_RD_MEM_RSP_EVENTID = 0x1800,
1282 WMI_FW_READY_EVENTID = 0x1801,
1283 WMI_EXIT_FAST_MEM_ACC_MODE_EVENTID = 0x200,
1284 WMI_ECHO_RSP_EVENTID = 0x1803,
1285 /* deprecated */
1286 WMI_FS_TUNE_DONE_EVENTID = 0x180A,

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

1633 WMI_SCAN_ABORT_REJECTED = 0x04,
1634};
1635
1636struct wmi_scan_complete_event {
1637 /* enum scan_status */
1638 __le32 status;
1639} __packed;
1640
1641/* wmi_rx_mgmt_info */
1642struct wmi_rx_mgmt_info {
1643 u8 mcs;
1644 s8 rssi;
1645 u8 range;
1646 u8 sqi;
1647 __le16 stype;
1648 __le16 status;
1649 __le32 len;
1650 /* Not resolved when == 0xFFFFFFFF == > Broadcast to all MIDS */
1651 u8 qid;
1652 /* Not resolved when == 0xFFFFFFFF == > Broadcast to all MIDS */
1653 u8 mid;
1654 u8 cid;
1655 /* From Radio MNGR */
1656 u8 channel;
1657} __packed;
1658
1659/* WMI_START_SCHED_SCAN_EVENTID */
1660enum wmi_pno_result {
1661 WMI_PNO_SUCCESS = 0x00,
1662 WMI_PNO_REJECT = 0x01,
1663 WMI_PNO_INVALID_PARAMETERS = 0x02,
1664 WMI_PNO_NOT_ENABLED = 0x03,
1665};
1666
1667struct wmi_start_sched_scan_event {
1668 /* pno_result */
1669 u8 result;
1670 u8 reserved[3];
1671} __packed;
1672
1673struct wmi_stop_sched_scan_event {
1674 /* pno_result */
1675 u8 result;
1676 u8 reserved[3];
1677} __packed;
1678
1679struct wmi_sched_scan_result_event {
1680 struct wmi_rx_mgmt_info info;
1681 u8 payload[0];
1682} __packed;
1683
1603/* WMI_ACS_PASSIVE_SCAN_COMPLETE_EVENT */
1604enum wmi_acs_info_bitmask {
1605 WMI_ACS_INFO_BITMASK_BEACON_FOUND = 0x01,
1606 WMI_ACS_INFO_BITMASK_BUSY_TIME = 0x02,
1607 WMI_ACS_INFO_BITMASK_TX_TIME = 0x04,
1608 WMI_ACS_INFO_BITMASK_RX_TIME = 0x08,
1609 WMI_ACS_INFO_BITMASK_NOISE = 0x10,
1610};

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

1809} __packed;
1810
1811/* WMI_GET_SSID_EVENTID */
1812struct wmi_get_ssid_event {
1813 __le32 ssid_len;
1814 u8 ssid[WMI_MAX_SSID_LEN];
1815} __packed;
1816
1684/* WMI_ACS_PASSIVE_SCAN_COMPLETE_EVENT */
1685enum wmi_acs_info_bitmask {
1686 WMI_ACS_INFO_BITMASK_BEACON_FOUND = 0x01,
1687 WMI_ACS_INFO_BITMASK_BUSY_TIME = 0x02,
1688 WMI_ACS_INFO_BITMASK_TX_TIME = 0x04,
1689 WMI_ACS_INFO_BITMASK_RX_TIME = 0x08,
1690 WMI_ACS_INFO_BITMASK_NOISE = 0x10,
1691};

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

1890} __packed;
1891
1892/* WMI_GET_SSID_EVENTID */
1893struct wmi_get_ssid_event {
1894 __le32 ssid_len;
1895 u8 ssid[WMI_MAX_SSID_LEN];
1896} __packed;
1897
1817/* wmi_rx_mgmt_info */
1818struct wmi_rx_mgmt_info {
1819 u8 mcs;
1820 s8 rssi;
1821 u8 range;
1822 u8 sqi;
1823 __le16 stype;
1824 __le16 status;
1825 __le32 len;
1826 /* Not resolved when == 0xFFFFFFFF == > Broadcast to all MIDS */
1827 u8 qid;
1828 /* Not resolved when == 0xFFFFFFFF == > Broadcast to all MIDS */
1829 u8 mid;
1830 u8 cid;
1831 /* From Radio MNGR */
1832 u8 channel;
1833} __packed;
1834
1835/* EVENT: WMI_RF_XPM_READ_RESULT_EVENTID */
1836struct wmi_rf_xpm_read_result_event {
1837 /* enum wmi_fw_status_e - success=0 or fail=1 */
1838 u8 status;
1839 u8 reserved[3];
1840 /* requested num_bytes of data */
1841 u8 data_bytes[0];
1842} __packed;

--- 1033 unchanged lines hidden ---
1898/* EVENT: WMI_RF_XPM_READ_RESULT_EVENTID */
1899struct wmi_rf_xpm_read_result_event {
1900 /* enum wmi_fw_status_e - success=0 or fail=1 */
1901 u8 status;
1902 u8 reserved[3];
1903 /* requested num_bytes of data */
1904 u8 data_bytes[0];
1905} __packed;

--- 1033 unchanged lines hidden ---