wmi.h (e82a82c19f4272ea5437cc76e5711b98e2ee6223) wmi.h (0163b03199006a6ba0d2c991c311e8ac93fcb208)
1/*
2 * Copyright (c) 2012-2016 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 *

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

115 WMI_WRITE_MAC_TXQ_CMDID = 0x833,
116 WMI_WRITE_MAC_XQ_FIELD_CMDID = 0x834,
117 WMI_MLME_PUSH_CMDID = 0x835,
118 WMI_BEAMFORMING_MGMT_CMDID = 0x836,
119 WMI_BF_TXSS_MGMT_CMDID = 0x837,
120 WMI_BF_SM_MGMT_CMDID = 0x838,
121 WMI_BF_RXSS_MGMT_CMDID = 0x839,
122 WMI_BF_TRIG_CMDID = 0x83A,
1/*
2 * Copyright (c) 2012-2016 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 *

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

115 WMI_WRITE_MAC_TXQ_CMDID = 0x833,
116 WMI_WRITE_MAC_XQ_FIELD_CMDID = 0x834,
117 WMI_MLME_PUSH_CMDID = 0x835,
118 WMI_BEAMFORMING_MGMT_CMDID = 0x836,
119 WMI_BF_TXSS_MGMT_CMDID = 0x837,
120 WMI_BF_SM_MGMT_CMDID = 0x838,
121 WMI_BF_RXSS_MGMT_CMDID = 0x839,
122 WMI_BF_TRIG_CMDID = 0x83A,
123 WMI_LINK_MAINTAIN_CFG_WRITE_CMDID = 0x842,
124 WMI_LINK_MAINTAIN_CFG_READ_CMDID = 0x843,
123 WMI_SET_SECTORS_CMDID = 0x849,
124 WMI_MAINTAIN_PAUSE_CMDID = 0x850,
125 WMI_MAINTAIN_RESUME_CMDID = 0x851,
126 WMI_RS_MGMT_CMDID = 0x852,
127 WMI_RF_MGMT_CMDID = 0x853,
128 WMI_THERMAL_THROTTLING_CTRL_CMDID = 0x854,
129 WMI_THERMAL_THROTTLING_GET_STATUS_CMDID = 0x855,
130 WMI_OTP_READ_CMDID = 0x856,
131 WMI_OTP_WRITE_CMDID = 0x857,
132 WMI_LED_CFG_CMDID = 0x858,
133 /* Performance monitoring commands */
134 WMI_BF_CTRL_CMDID = 0x862,
135 WMI_NOTIFY_REQ_CMDID = 0x863,
136 WMI_GET_STATUS_CMDID = 0x864,
125 WMI_SET_SECTORS_CMDID = 0x849,
126 WMI_MAINTAIN_PAUSE_CMDID = 0x850,
127 WMI_MAINTAIN_RESUME_CMDID = 0x851,
128 WMI_RS_MGMT_CMDID = 0x852,
129 WMI_RF_MGMT_CMDID = 0x853,
130 WMI_THERMAL_THROTTLING_CTRL_CMDID = 0x854,
131 WMI_THERMAL_THROTTLING_GET_STATUS_CMDID = 0x855,
132 WMI_OTP_READ_CMDID = 0x856,
133 WMI_OTP_WRITE_CMDID = 0x857,
134 WMI_LED_CFG_CMDID = 0x858,
135 /* Performance monitoring commands */
136 WMI_BF_CTRL_CMDID = 0x862,
137 WMI_NOTIFY_REQ_CMDID = 0x863,
138 WMI_GET_STATUS_CMDID = 0x864,
139 WMI_GET_RF_STATUS_CMDID = 0x866,
140 WMI_GET_BASEBAND_TYPE_CMDID = 0x867,
137 WMI_UNIT_TEST_CMDID = 0x900,
138 WMI_HICCUP_CMDID = 0x901,
139 WMI_FLASH_READ_CMDID = 0x902,
140 WMI_FLASH_WRITE_CMDID = 0x903,
141 WMI_UNIT_TEST_CMDID = 0x900,
142 WMI_HICCUP_CMDID = 0x901,
143 WMI_FLASH_READ_CMDID = 0x902,
144 WMI_FLASH_WRITE_CMDID = 0x903,
145 /* Power management */
146 WMI_TRAFFIC_DEFERRAL_CMDID = 0x904,
147 WMI_TRAFFIC_RESUME_CMDID = 0x905,
141 /* P2P */
142 WMI_P2P_CFG_CMDID = 0x910,
143 WMI_PORT_ALLOCATE_CMDID = 0x911,
144 WMI_PORT_DELETE_CMDID = 0x912,
145 WMI_POWER_MGMT_CFG_CMDID = 0x913,
146 WMI_START_LISTEN_CMDID = 0x914,
147 WMI_START_SEARCH_CMDID = 0x915,
148 WMI_DISCOVERY_START_CMDID = 0x916,
149 WMI_DISCOVERY_STOP_CMDID = 0x917,
150 WMI_PCP_START_CMDID = 0x918,
151 WMI_PCP_STOP_CMDID = 0x919,
152 WMI_GET_PCP_FACTOR_CMDID = 0x91B,
148 /* P2P */
149 WMI_P2P_CFG_CMDID = 0x910,
150 WMI_PORT_ALLOCATE_CMDID = 0x911,
151 WMI_PORT_DELETE_CMDID = 0x912,
152 WMI_POWER_MGMT_CFG_CMDID = 0x913,
153 WMI_START_LISTEN_CMDID = 0x914,
154 WMI_START_SEARCH_CMDID = 0x915,
155 WMI_DISCOVERY_START_CMDID = 0x916,
156 WMI_DISCOVERY_STOP_CMDID = 0x917,
157 WMI_PCP_START_CMDID = 0x918,
158 WMI_PCP_STOP_CMDID = 0x919,
159 WMI_GET_PCP_FACTOR_CMDID = 0x91B,
160 /* Power Save Configuration Commands */
161 WMI_PS_DEV_PROFILE_CFG_CMDID = 0x91C,
162 /* Not supported yet */
163 WMI_PS_DEV_CFG_CMDID = 0x91D,
164 /* Not supported yet */
165 WMI_PS_DEV_CFG_READ_CMDID = 0x91E,
166 /* Per MAC Power Save Configuration commands
167 * Not supported yet
168 */
169 WMI_PS_MID_CFG_CMDID = 0x91F,
170 /* Not supported yet */
171 WMI_PS_MID_CFG_READ_CMDID = 0x920,
172 WMI_RS_CFG_CMDID = 0x921,
153 WMI_SET_MAC_ADDRESS_CMDID = 0xF003,
154 WMI_ABORT_SCAN_CMDID = 0xF007,
155 WMI_SET_PROMISCUOUS_MODE_CMDID = 0xF041,
156 WMI_GET_PMK_CMDID = 0xF048,
157 WMI_SET_PASSPHRASE_CMDID = 0xF049,
158 WMI_SEND_ASSOC_RES_CMDID = 0xF04A,
159 WMI_SET_ASSOC_REQ_RELAY_CMDID = 0xF04B,
160 WMI_MAC_ADDR_REQ_CMDID = 0xF04D,

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

286 WMI_PASSIVE_SCAN = 0x02,
287 WMI_DIRECT_SCAN = 0x03,
288 WMI_LONG_SCAN = 0x04,
289};
290
291/* WMI_START_SCAN_CMDID */
292struct wmi_start_scan_cmd {
293 u8 direct_scan_mac_addr[WMI_MAC_LEN];
173 WMI_SET_MAC_ADDRESS_CMDID = 0xF003,
174 WMI_ABORT_SCAN_CMDID = 0xF007,
175 WMI_SET_PROMISCUOUS_MODE_CMDID = 0xF041,
176 WMI_GET_PMK_CMDID = 0xF048,
177 WMI_SET_PASSPHRASE_CMDID = 0xF049,
178 WMI_SEND_ASSOC_RES_CMDID = 0xF04A,
179 WMI_SET_ASSOC_REQ_RELAY_CMDID = 0xF04B,
180 WMI_MAC_ADDR_REQ_CMDID = 0xF04D,

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

306 WMI_PASSIVE_SCAN = 0x02,
307 WMI_DIRECT_SCAN = 0x03,
308 WMI_LONG_SCAN = 0x04,
309};
310
311/* WMI_START_SCAN_CMDID */
312struct wmi_start_scan_cmd {
313 u8 direct_scan_mac_addr[WMI_MAC_LEN];
294 /* DMG Beacon frame is transmitted during active scanning */
314 /* run scan with discovery beacon. Relevant for ACTIVE scan only. */
295 u8 discovery_mode;
315 u8 discovery_mode;
296 /* reserved */
297 u8 reserved;
298 /* Max duration in the home channel(ms) */
299 __le32 dwell_time;
300 /* Time interval between scans (ms) */
301 __le32 force_scan_interval;
302 /* enum wmi_scan_type */
303 u8 scan_type;
304 /* how many channels follow */

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

448} __packed;
449
450/* WMI_PORT_DELETE_CMDID */
451struct wmi_port_delete_cmd {
452 u8 mid;
453 u8 reserved[3];
454} __packed;
455
316 u8 reserved;
317 /* Max duration in the home channel(ms) */
318 __le32 dwell_time;
319 /* Time interval between scans (ms) */
320 __le32 force_scan_interval;
321 /* enum wmi_scan_type */
322 u8 scan_type;
323 /* how many channels follow */

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

467} __packed;
468
469/* WMI_PORT_DELETE_CMDID */
470struct wmi_port_delete_cmd {
471 u8 mid;
472 u8 reserved[3];
473} __packed;
474
475/* WMI_TRAFFIC_DEFERRAL_CMDID */
476struct wmi_traffic_deferral_cmd {
477 /* Bit vector: bit[0] - wake on Unicast, bit[1] - wake on Broadcast */
478 u8 wakeup_trigger;
479} __packed;
480
456/* WMI_P2P_CFG_CMDID */
457enum wmi_discovery_mode {
458 WMI_DISCOVERY_MODE_NON_OFFLOAD = 0x00,
459 WMI_DISCOVERY_MODE_OFFLOAD = 0x01,
460 WMI_DISCOVERY_MODE_PEER2PEER = 0x02,
461};
462
463struct wmi_p2p_cfg_cmd {

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

817 __le16 ring_size;
818 __le64 mem_base;
819} __packed;
820
821/* WMI Events
822 * List of Events (target to host)
823 */
824enum wmi_event_id {
481/* WMI_P2P_CFG_CMDID */
482enum wmi_discovery_mode {
483 WMI_DISCOVERY_MODE_NON_OFFLOAD = 0x00,
484 WMI_DISCOVERY_MODE_OFFLOAD = 0x01,
485 WMI_DISCOVERY_MODE_PEER2PEER = 0x02,
486};
487
488struct wmi_p2p_cfg_cmd {

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

842 __le16 ring_size;
843 __le64 mem_base;
844} __packed;
845
846/* WMI Events
847 * List of Events (target to host)
848 */
849enum wmi_event_id {
825 WMI_READY_EVENTID = 0x1001,
826 WMI_CONNECT_EVENTID = 0x1002,
827 WMI_DISCONNECT_EVENTID = 0x1003,
828 WMI_SCAN_COMPLETE_EVENTID = 0x100A,
829 WMI_REPORT_STATISTICS_EVENTID = 0x100B,
830 WMI_RD_MEM_RSP_EVENTID = 0x1800,
831 WMI_FW_READY_EVENTID = 0x1801,
832 WMI_EXIT_FAST_MEM_ACC_MODE_EVENTID = 0x200,
833 WMI_ECHO_RSP_EVENTID = 0x1803,
834 WMI_FS_TUNE_DONE_EVENTID = 0x180A,
835 WMI_CORR_MEASURE_EVENTID = 0x180B,
836 WMI_READ_RSSI_EVENTID = 0x180C,
837 WMI_TEMP_SENSE_DONE_EVENTID = 0x180E,
838 WMI_DC_CALIB_DONE_EVENTID = 0x180F,
839 WMI_IQ_TX_CALIB_DONE_EVENTID = 0x1811,
840 WMI_IQ_RX_CALIB_DONE_EVENTID = 0x1812,
841 WMI_SET_WORK_MODE_DONE_EVENTID = 0x1815,
842 WMI_LO_LEAKAGE_CALIB_DONE_EVENTID = 0x1816,
843 WMI_MARLON_R_READ_DONE_EVENTID = 0x1818,
844 WMI_MARLON_R_WRITE_DONE_EVENTID = 0x1819,
845 WMI_MARLON_R_TXRX_SEL_DONE_EVENTID = 0x181A,
846 WMI_SILENT_RSSI_CALIB_DONE_EVENTID = 0x181D,
847 WMI_RF_RX_TEST_DONE_EVENTID = 0x181E,
848 WMI_CFG_RX_CHAIN_DONE_EVENTID = 0x1820,
849 WMI_VRING_CFG_DONE_EVENTID = 0x1821,
850 WMI_BA_STATUS_EVENTID = 0x1823,
851 WMI_RCP_ADDBA_REQ_EVENTID = 0x1824,
852 WMI_RCP_ADDBA_RESP_SENT_EVENTID = 0x1825,
853 WMI_DELBA_EVENTID = 0x1826,
854 WMI_GET_SSID_EVENTID = 0x1828,
855 WMI_GET_PCP_CHANNEL_EVENTID = 0x182A,
856 WMI_SW_TX_COMPLETE_EVENTID = 0x182B,
857 WMI_READ_MAC_RXQ_EVENTID = 0x1830,
858 WMI_READ_MAC_TXQ_EVENTID = 0x1831,
859 WMI_WRITE_MAC_RXQ_EVENTID = 0x1832,
860 WMI_WRITE_MAC_TXQ_EVENTID = 0x1833,
861 WMI_WRITE_MAC_XQ_FIELD_EVENTID = 0x1834,
862 WMI_BEAMFORMING_MGMT_DONE_EVENTID = 0x1836,
863 WMI_BF_TXSS_MGMT_DONE_EVENTID = 0x1837,
864 WMI_BF_RXSS_MGMT_DONE_EVENTID = 0x1839,
865 WMI_RS_MGMT_DONE_EVENTID = 0x1852,
866 WMI_RF_MGMT_STATUS_EVENTID = 0x1853,
867 WMI_THERMAL_THROTTLING_STATUS_EVENTID = 0x1855,
868 WMI_BF_SM_MGMT_DONE_EVENTID = 0x1838,
869 WMI_RX_MGMT_PACKET_EVENTID = 0x1840,
870 WMI_TX_MGMT_PACKET_EVENTID = 0x1841,
871 WMI_OTP_READ_RESULT_EVENTID = 0x1856,
872 WMI_LED_CFG_DONE_EVENTID = 0x1858,
850 WMI_READY_EVENTID = 0x1001,
851 WMI_CONNECT_EVENTID = 0x1002,
852 WMI_DISCONNECT_EVENTID = 0x1003,
853 WMI_SCAN_COMPLETE_EVENTID = 0x100A,
854 WMI_REPORT_STATISTICS_EVENTID = 0x100B,
855 WMI_RD_MEM_RSP_EVENTID = 0x1800,
856 WMI_FW_READY_EVENTID = 0x1801,
857 WMI_EXIT_FAST_MEM_ACC_MODE_EVENTID = 0x200,
858 WMI_ECHO_RSP_EVENTID = 0x1803,
859 WMI_FS_TUNE_DONE_EVENTID = 0x180A,
860 WMI_CORR_MEASURE_EVENTID = 0x180B,
861 WMI_READ_RSSI_EVENTID = 0x180C,
862 WMI_TEMP_SENSE_DONE_EVENTID = 0x180E,
863 WMI_DC_CALIB_DONE_EVENTID = 0x180F,
864 WMI_IQ_TX_CALIB_DONE_EVENTID = 0x1811,
865 WMI_IQ_RX_CALIB_DONE_EVENTID = 0x1812,
866 WMI_SET_WORK_MODE_DONE_EVENTID = 0x1815,
867 WMI_LO_LEAKAGE_CALIB_DONE_EVENTID = 0x1816,
868 WMI_MARLON_R_READ_DONE_EVENTID = 0x1818,
869 WMI_MARLON_R_WRITE_DONE_EVENTID = 0x1819,
870 WMI_MARLON_R_TXRX_SEL_DONE_EVENTID = 0x181A,
871 WMI_SILENT_RSSI_CALIB_DONE_EVENTID = 0x181D,
872 WMI_RF_RX_TEST_DONE_EVENTID = 0x181E,
873 WMI_CFG_RX_CHAIN_DONE_EVENTID = 0x1820,
874 WMI_VRING_CFG_DONE_EVENTID = 0x1821,
875 WMI_BA_STATUS_EVENTID = 0x1823,
876 WMI_RCP_ADDBA_REQ_EVENTID = 0x1824,
877 WMI_RCP_ADDBA_RESP_SENT_EVENTID = 0x1825,
878 WMI_DELBA_EVENTID = 0x1826,
879 WMI_GET_SSID_EVENTID = 0x1828,
880 WMI_GET_PCP_CHANNEL_EVENTID = 0x182A,
881 WMI_SW_TX_COMPLETE_EVENTID = 0x182B,
882 WMI_READ_MAC_RXQ_EVENTID = 0x1830,
883 WMI_READ_MAC_TXQ_EVENTID = 0x1831,
884 WMI_WRITE_MAC_RXQ_EVENTID = 0x1832,
885 WMI_WRITE_MAC_TXQ_EVENTID = 0x1833,
886 WMI_WRITE_MAC_XQ_FIELD_EVENTID = 0x1834,
887 WMI_BEAMFORMING_MGMT_DONE_EVENTID = 0x1836,
888 WMI_BF_TXSS_MGMT_DONE_EVENTID = 0x1837,
889 WMI_BF_RXSS_MGMT_DONE_EVENTID = 0x1839,
890 WMI_RS_MGMT_DONE_EVENTID = 0x1852,
891 WMI_RF_MGMT_STATUS_EVENTID = 0x1853,
892 WMI_THERMAL_THROTTLING_STATUS_EVENTID = 0x1855,
893 WMI_BF_SM_MGMT_DONE_EVENTID = 0x1838,
894 WMI_RX_MGMT_PACKET_EVENTID = 0x1840,
895 WMI_TX_MGMT_PACKET_EVENTID = 0x1841,
896 WMI_LINK_MAINTAIN_CFG_WRITE_DONE_EVENTID = 0x1842,
897 WMI_LINK_MAINTAIN_CFG_READ_DONE_EVENTID = 0x1843,
898 WMI_OTP_READ_RESULT_EVENTID = 0x1856,
899 WMI_LED_CFG_DONE_EVENTID = 0x1858,
873 /* Performance monitoring events */
900 /* Performance monitoring events */
874 WMI_DATA_PORT_OPEN_EVENTID = 0x1860,
875 WMI_WBE_LINK_DOWN_EVENTID = 0x1861,
876 WMI_BF_CTRL_DONE_EVENTID = 0x1862,
877 WMI_NOTIFY_REQ_DONE_EVENTID = 0x1863,
878 WMI_GET_STATUS_DONE_EVENTID = 0x1864,
879 WMI_VRING_EN_EVENTID = 0x1865,
880 WMI_UNIT_TEST_EVENTID = 0x1900,
881 WMI_FLASH_READ_DONE_EVENTID = 0x1902,
882 WMI_FLASH_WRITE_DONE_EVENTID = 0x1903,
901 WMI_DATA_PORT_OPEN_EVENTID = 0x1860,
902 WMI_WBE_LINK_DOWN_EVENTID = 0x1861,
903 WMI_BF_CTRL_DONE_EVENTID = 0x1862,
904 WMI_NOTIFY_REQ_DONE_EVENTID = 0x1863,
905 WMI_GET_STATUS_DONE_EVENTID = 0x1864,
906 WMI_VRING_EN_EVENTID = 0x1865,
907 WMI_GET_RF_STATUS_EVENTID = 0x1866,
908 WMI_GET_BASEBAND_TYPE_EVENTID = 0x1867,
909 WMI_UNIT_TEST_EVENTID = 0x1900,
910 WMI_FLASH_READ_DONE_EVENTID = 0x1902,
911 WMI_FLASH_WRITE_DONE_EVENTID = 0x1903,
912 /* Power management */
913 WMI_TRAFFIC_DEFERRAL_EVENTID = 0x1904,
914 WMI_TRAFFIC_RESUME_EVENTID = 0x1905,
883 /* P2P */
915 /* P2P */
884 WMI_P2P_CFG_DONE_EVENTID = 0x1910,
885 WMI_PORT_ALLOCATED_EVENTID = 0x1911,
886 WMI_PORT_DELETED_EVENTID = 0x1912,
887 WMI_LISTEN_STARTED_EVENTID = 0x1914,
888 WMI_SEARCH_STARTED_EVENTID = 0x1915,
889 WMI_DISCOVERY_STARTED_EVENTID = 0x1916,
890 WMI_DISCOVERY_STOPPED_EVENTID = 0x1917,
891 WMI_PCP_STARTED_EVENTID = 0x1918,
892 WMI_PCP_STOPPED_EVENTID = 0x1919,
893 WMI_PCP_FACTOR_EVENTID = 0x191A,
894 WMI_SET_CHANNEL_EVENTID = 0x9000,
895 WMI_ASSOC_REQ_EVENTID = 0x9001,
896 WMI_EAPOL_RX_EVENTID = 0x9002,
897 WMI_MAC_ADDR_RESP_EVENTID = 0x9003,
898 WMI_FW_VER_EVENTID = 0x9004,
899 WMI_ACS_PASSIVE_SCAN_COMPLETE_EVENTID = 0x9005,
916 WMI_P2P_CFG_DONE_EVENTID = 0x1910,
917 WMI_PORT_ALLOCATED_EVENTID = 0x1911,
918 WMI_PORT_DELETED_EVENTID = 0x1912,
919 WMI_LISTEN_STARTED_EVENTID = 0x1914,
920 WMI_SEARCH_STARTED_EVENTID = 0x1915,
921 WMI_DISCOVERY_STARTED_EVENTID = 0x1916,
922 WMI_DISCOVERY_STOPPED_EVENTID = 0x1917,
923 WMI_PCP_STARTED_EVENTID = 0x1918,
924 WMI_PCP_STOPPED_EVENTID = 0x1919,
925 WMI_PCP_FACTOR_EVENTID = 0x191A,
926 /* Power Save Configuration Events */
927 WMI_PS_DEV_PROFILE_CFG_EVENTID = 0x191C,
928 /* Not supported yet */
929 WMI_PS_DEV_CFG_EVENTID = 0x191D,
930 /* Not supported yet */
931 WMI_PS_DEV_CFG_READ_EVENTID = 0x191E,
932 /* Not supported yet */
933 WMI_PS_MID_CFG_EVENTID = 0x191F,
934 /* Not supported yet */
935 WMI_PS_MID_CFG_READ_EVENTID = 0x1920,
936 WMI_RS_CFG_DONE_EVENTID = 0x1921,
937 WMI_SET_CHANNEL_EVENTID = 0x9000,
938 WMI_ASSOC_REQ_EVENTID = 0x9001,
939 WMI_EAPOL_RX_EVENTID = 0x9002,
940 WMI_MAC_ADDR_RESP_EVENTID = 0x9003,
941 WMI_FW_VER_EVENTID = 0x9004,
942 WMI_ACS_PASSIVE_SCAN_COMPLETE_EVENTID = 0x9005,
900};
901
902/* Events data structures */
903enum wmi_fw_status {
904 WMI_FW_STATUS_SUCCESS = 0x00,
905 WMI_FW_STATUS_FAILURE = 0x01,
906};
907

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

938 __le32 ssid_len;
939 u8 ssid[WMI_MAX_SSID_LEN];
940 __le32 rf_status;
941 __le32 is_secured;
942} __packed;
943
944/* WMI_FW_VER_EVENTID */
945struct wmi_fw_ver_event {
943};
944
945/* Events data structures */
946enum wmi_fw_status {
947 WMI_FW_STATUS_SUCCESS = 0x00,
948 WMI_FW_STATUS_FAILURE = 0x01,
949};
950

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

981 __le32 ssid_len;
982 u8 ssid[WMI_MAX_SSID_LEN];
983 __le32 rf_status;
984 __le32 is_secured;
985} __packed;
986
987/* WMI_FW_VER_EVENTID */
988struct wmi_fw_ver_event {
946 u8 major;
947 u8 minor;
948 __le16 subminor;
949 __le16 build;
989 /* FW image version */
990 __le32 fw_major;
991 __le32 fw_minor;
992 __le32 fw_subminor;
993 __le32 fw_build;
994 /* FW image build time stamp */
995 __le32 hour;
996 __le32 minute;
997 __le32 second;
998 __le32 day;
999 __le32 month;
1000 __le32 year;
1001 /* Boot Loader image version */
1002 __le32 bl_major;
1003 __le32 bl_minor;
1004 __le32 bl_subminor;
1005 __le32 bl_build;
950} __packed;
951
1006} __packed;
1007
1008/* WMI_GET_RF_STATUS_EVENTID */
1009enum rf_type {
1010 RF_UNKNOWN = 0x00,
1011 RF_MARLON = 0x01,
1012 RF_SPARROW = 0x02,
1013};
1014
1015/* WMI_GET_RF_STATUS_EVENTID */
1016enum board_file_rf_type {
1017 BF_RF_MARLON = 0x00,
1018 BF_RF_SPARROW = 0x01,
1019};
1020
1021/* WMI_GET_RF_STATUS_EVENTID */
1022enum rf_status {
1023 RF_OK = 0x00,
1024 RF_NO_COMM = 0x01,
1025 RF_WRONG_BOARD_FILE = 0x02,
1026};
1027
1028/* WMI_GET_RF_STATUS_EVENTID */
1029struct wmi_get_rf_status_event {
1030 /* enum rf_type */
1031 __le32 rf_type;
1032 /* attached RFs bit vector */
1033 __le32 attached_rf_vector;
1034 /* enabled RFs bit vector */
1035 __le32 enabled_rf_vector;
1036 /* enum rf_status, refers to enabled RFs */
1037 u8 rf_status[32];
1038 /* enum board file RF type */
1039 __le32 board_file_rf_type;
1040 /* board file platform type */
1041 __le32 board_file_platform_type;
1042 /* board file version */
1043 __le32 board_file_version;
1044 __le32 reserved[2];
1045} __packed;
1046
1047/* WMI_GET_BASEBAND_TYPE_EVENTID */
1048enum baseband_type {
1049 BASEBAND_UNKNOWN = 0x00,
1050 BASEBAND_SPARROW_M_A0 = 0x03,
1051 BASEBAND_SPARROW_M_A1 = 0x04,
1052 BASEBAND_SPARROW_M_B0 = 0x05,
1053 BASEBAND_SPARROW_M_C0 = 0x06,
1054 BASEBAND_SPARROW_M_D0 = 0x07,
1055};
1056
1057/* WMI_GET_BASEBAND_TYPE_EVENTID */
1058struct wmi_get_baseband_type_event {
1059 /* enum baseband_type */
1060 __le32 baseband_type;
1061} __packed;
1062
952/* WMI_MAC_ADDR_RESP_EVENTID */
953struct wmi_mac_addr_resp_event {
954 u8 mac[WMI_MAC_LEN];
955 u8 auth_mode;
956 u8 crypt_mode;
957 __le32 offload_mode;
958} __packed;
959

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

1405} __packed;
1406
1407/* WMI_LED_CFG_DONE_EVENTID */
1408struct wmi_led_cfg_done_event {
1409 /* led config status */
1410 __le32 status;
1411} __packed;
1412
1063/* WMI_MAC_ADDR_RESP_EVENTID */
1064struct wmi_mac_addr_resp_event {
1065 u8 mac[WMI_MAC_LEN];
1066 u8 auth_mode;
1067 u8 crypt_mode;
1068 __le32 offload_mode;
1069} __packed;
1070

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

1516} __packed;
1517
1518/* WMI_LED_CFG_DONE_EVENTID */
1519struct wmi_led_cfg_done_event {
1520 /* led config status */
1521 __le32 status;
1522} __packed;
1523
1524#define WMI_NUM_MCS (13)
1525
1526/* Rate search parameters configuration per connection */
1527struct wmi_rs_cfg {
1528 /* The maximal allowed PER for each MCS
1529 * MCS will be considered as failed if PER during RS is higher
1530 */
1531 u8 per_threshold[WMI_NUM_MCS];
1532 /* Number of MPDUs for each MCS
1533 * this is the minimal statistic required to make an educated
1534 * decision
1535 */
1536 u8 min_frame_cnt[WMI_NUM_MCS];
1537 /* stop threshold [0-100] */
1538 u8 stop_th;
1539 /* MCS1 stop threshold [0-100] */
1540 u8 mcs1_fail_th;
1541 u8 max_back_failure_th;
1542 /* Debug feature for disabling internal RS trigger (which is
1543 * currently triggered by BF Done)
1544 */
1545 u8 dbg_disable_internal_trigger;
1546 __le32 back_failure_mask;
1547 __le32 mcs_en_vec;
1548} __packed;
1549
1550/* WMI_RS_CFG_CMDID */
1551struct wmi_rs_cfg_cmd {
1552 /* connection id */
1553 u8 cid;
1554 /* enable or disable rate search */
1555 u8 rs_enable;
1556 /* rate search configuration */
1557 struct wmi_rs_cfg rs_cfg;
1558} __packed;
1559
1560/* WMI_RS_CFG_DONE_EVENTID */
1561struct wmi_rs_cfg_done_event {
1562 u8 cid;
1563 /* enum wmi_fw_status */
1564 u8 status;
1565 u8 reserved[2];
1566} __packed;
1567
1568/* broadcast connection ID */
1569#define WMI_LINK_MAINTAIN_CFG_CID_BROADCAST (0xFFFFFFFF)
1570
1571/* Types wmi_link_maintain_cfg presets for WMI_LINK_MAINTAIN_CFG_WRITE_CMD */
1572enum wmi_link_maintain_cfg_type {
1573 /* AP/PCP default normal (non-FST) configuration settings */
1574 WMI_LINK_MAINTAIN_CFG_TYPE_DEFAULT_NORMAL_AP = 0x00,
1575 /* AP/PCP default FST configuration settings */
1576 WMI_LINK_MAINTAIN_CFG_TYPE_DEFAULT_FST_AP = 0x01,
1577 /* STA default normal (non-FST) configuration settings */
1578 WMI_LINK_MAINTAIN_CFG_TYPE_DEFAULT_NORMAL_STA = 0x02,
1579 /* STA default FST configuration settings */
1580 WMI_LINK_MAINTAIN_CFG_TYPE_DEFAULT_FST_STA = 0x03,
1581 /* custom configuration settings */
1582 WMI_LINK_MAINTAIN_CFG_TYPE_CUSTOM = 0x04,
1583 /* number of defined configuration types */
1584 WMI_LINK_MAINTAIN_CFG_TYPES_NUM = 0x05,
1585};
1586
1587/* Response status codes for WMI_LINK_MAINTAIN_CFG_WRITE/READ commands */
1588enum wmi_link_maintain_cfg_response_status {
1589 /* WMI_LINK_MAINTAIN_CFG_WRITE/READ command successfully accomplished
1590 */
1591 WMI_LINK_MAINTAIN_CFG_RESPONSE_STATUS_OK = 0x00,
1592 /* ERROR due to bad argument in WMI_LINK_MAINTAIN_CFG_WRITE/READ
1593 * command request
1594 */
1595 WMI_LINK_MAINTAIN_CFG_RESPONSE_STATUS_BAD_ARGUMENT = 0x01,
1596};
1597
1598/* Link Loss and Keep Alive configuration */
1599struct wmi_link_maintain_cfg {
1600 /* link_loss_enable_detectors_vec */
1601 __le32 link_loss_enable_detectors_vec;
1602 /* detectors check period usec */
1603 __le32 check_link_loss_period_usec;
1604 /* max allowed tx ageing */
1605 __le32 tx_ageing_threshold_usec;
1606 /* keep alive period for high SNR */
1607 __le32 keep_alive_period_usec_high_snr;
1608 /* keep alive period for low SNR */
1609 __le32 keep_alive_period_usec_low_snr;
1610 /* lower snr limit for keep alive period update */
1611 __le32 keep_alive_snr_threshold_low_db;
1612 /* upper snr limit for keep alive period update */
1613 __le32 keep_alive_snr_threshold_high_db;
1614 /* num of successive bad bcons causing link-loss */
1615 __le32 bad_beacons_num_threshold;
1616 /* SNR limit for bad_beacons_detector */
1617 __le32 bad_beacons_snr_threshold_db;
1618} __packed;
1619
1620/* WMI_LINK_MAINTAIN_CFG_WRITE_CMDID */
1621struct wmi_link_maintain_cfg_write_cmd {
1622 /* enum wmi_link_maintain_cfg_type_e - type of requested default
1623 * configuration to be applied
1624 */
1625 __le32 cfg_type;
1626 /* requested connection ID or WMI_LINK_MAINTAIN_CFG_CID_BROADCAST */
1627 __le32 cid;
1628 /* custom configuration settings to be applied (relevant only if
1629 * cfg_type==WMI_LINK_MAINTAIN_CFG_TYPE_CUSTOM)
1630 */
1631 struct wmi_link_maintain_cfg lm_cfg;
1632} __packed;
1633
1634/* WMI_LINK_MAINTAIN_CFG_READ_CMDID */
1635struct wmi_link_maintain_cfg_read_cmd {
1636 /* connection ID which configuration settings are requested */
1637 __le32 cid;
1638} __packed;
1639
1640/* WMI_LINK_MAINTAIN_CFG_WRITE_DONE_EVENTID */
1641struct wmi_link_maintain_cfg_write_done_event {
1642 /* requested connection ID */
1643 __le32 cid;
1644 /* wmi_link_maintain_cfg_response_status_e - write status */
1645 __le32 status;
1646} __packed;
1647
1648/* \WMI_LINK_MAINTAIN_CFG_READ_DONE_EVENT */
1649struct wmi_link_maintain_cfg_read_done_event {
1650 /* requested connection ID */
1651 __le32 cid;
1652 /* wmi_link_maintain_cfg_response_status_e - read status */
1653 __le32 status;
1654 /* Retrieved configuration settings */
1655 struct wmi_link_maintain_cfg lm_cfg;
1656} __packed;
1657
1658enum wmi_traffic_deferral_status {
1659 WMI_TRAFFIC_DEFERRAL_APPROVED = 0x0,
1660 WMI_TRAFFIC_DEFERRAL_REJECTED = 0x1,
1661};
1662
1663/* WMI_TRAFFIC_DEFERRAL_EVENTID */
1664struct wmi_traffic_deferral_event {
1665 /* enum wmi_traffic_deferral_status_e */
1666 u8 status;
1667} __packed;
1668
1669enum wmi_traffic_resume_status {
1670 WMI_TRAFFIC_RESUME_SUCCESS = 0x0,
1671 WMI_TRAFFIC_RESUME_FAILED = 0x1,
1672};
1673
1674/* WMI_TRAFFIC_RESUME_EVENTID */
1675struct wmi_traffic_resume_event {
1676 /* enum wmi_traffic_resume_status_e */
1677 u8 status;
1678} __packed;
1679
1680/* Power Save command completion status codes */
1681enum wmi_ps_cfg_cmd_status {
1682 WMI_PS_CFG_CMD_STATUS_SUCCESS = 0x00,
1683 WMI_PS_CFG_CMD_STATUS_BAD_PARAM = 0x01,
1684 /* other error */
1685 WMI_PS_CFG_CMD_STATUS_ERROR = 0x02,
1686};
1687
1688/* Device Power Save Profiles */
1689enum wmi_ps_profile_type {
1690 WMI_PS_PROFILE_TYPE_DEFAULT = 0x00,
1691 WMI_PS_PROFILE_TYPE_PS_DISABLED = 0x01,
1692 WMI_PS_PROFILE_TYPE_MAX_PS = 0x02,
1693 WMI_PS_PROFILE_TYPE_LOW_LATENCY_PS = 0x03,
1694};
1695
1696/* WMI_PS_DEV_PROFILE_CFG_CMDID
1697 *
1698 * Power save profile to be used by the device
1699 *
1700 * Returned event:
1701 * - WMI_PS_DEV_PROFILE_CFG_EVENTID
1702 */
1703struct wmi_ps_dev_profile_cfg_cmd {
1704 /* wmi_ps_profile_type_e */
1705 u8 ps_profile;
1706 u8 reserved[3];
1707} __packed;
1708
1709/* WMI_PS_DEV_PROFILE_CFG_EVENTID */
1710struct wmi_ps_dev_profile_cfg_event {
1711 /* wmi_ps_cfg_cmd_status_e */
1712 __le32 status;
1713} __packed;
1714
1715enum wmi_ps_level {
1716 WMI_PS_LEVEL_DEEP_SLEEP = 0x00,
1717 WMI_PS_LEVEL_SHALLOW_SLEEP = 0x01,
1718 /* awake = all PS mechanisms are disabled */
1719 WMI_PS_LEVEL_AWAKE = 0x02,
1720};
1721
1722enum wmi_ps_deep_sleep_clk_level {
1723 /* 33k */
1724 WMI_PS_DEEP_SLEEP_CLK_LEVEL_RTC = 0x00,
1725 /* 10k */
1726 WMI_PS_DEEP_SLEEP_CLK_LEVEL_OSC = 0x01,
1727 /* @RTC Low latency */
1728 WMI_PS_DEEP_SLEEP_CLK_LEVEL_RTC_LT = 0x02,
1729 WMI_PS_DEEP_SLEEP_CLK_LEVEL_XTAL = 0x03,
1730 WMI_PS_DEEP_SLEEP_CLK_LEVEL_SYSCLK = 0x04,
1731 /* Not Applicable */
1732 WMI_PS_DEEP_SLEEP_CLK_LEVEL_N_A = 0xFF,
1733};
1734
1735/* Response by the FW to a D3 entry request */
1736enum wmi_ps_d3_resp_policy {
1737 WMI_PS_D3_RESP_POLICY_DEFAULT = 0x00,
1738 /* debug -D3 req is always denied */
1739 WMI_PS_D3_RESP_POLICY_DENIED = 0x01,
1740 /* debug -D3 req is always approved */
1741 WMI_PS_D3_RESP_POLICY_APPROVED = 0x02,
1742};
1743
1744/* Device common power save configurations */
1745struct wmi_ps_dev_cfg {
1746 /* lowest level of PS allowed while unassociated, enum wmi_ps_level_e
1747 */
1748 u8 ps_unassoc_min_level;
1749 /* lowest deep sleep clock level while nonassoc, enum
1750 * wmi_ps_deep_sleep_clk_level_e
1751 */
1752 u8 ps_unassoc_deep_sleep_min_level;
1753 /* lowest level of PS allowed while associated, enum wmi_ps_level_e */
1754 u8 ps_assoc_min_level;
1755 /* lowest deep sleep clock level while assoc, enum
1756 * wmi_ps_deep_sleep_clk_level_e
1757 */
1758 u8 ps_assoc_deep_sleep_min_level;
1759 /* enum wmi_ps_deep_sleep_clk_level_e */
1760 u8 ps_assoc_low_latency_ds_min_level;
1761 /* enum wmi_ps_d3_resp_policy_e */
1762 u8 ps_D3_response_policy;
1763 /* BOOL */
1764 u8 ps_D3_pm_pme_enabled;
1765 /* BOOL */
1766 u8 ps_halp_enable;
1767 u8 ps_deep_sleep_enter_thresh_msec;
1768 /* BOOL */
1769 u8 ps_voltage_scaling_en;
1770} __packed;
1771
1772/* WMI_PS_DEV_CFG_CMDID
1773 *
1774 * Configure common Power Save parameters of the device and all MIDs.
1775 *
1776 * Returned event:
1777 * - WMI_PS_DEV_CFG_EVENTID
1778 */
1779struct wmi_ps_dev_cfg_cmd {
1780 /* Device Power Save configuration to be applied */
1781 struct wmi_ps_dev_cfg ps_dev_cfg;
1782 /* alignment to 32b */
1783 u8 reserved[2];
1784} __packed;
1785
1786/* WMI_PS_DEV_CFG_EVENTID */
1787struct wmi_ps_dev_cfg_event {
1788 /* wmi_ps_cfg_cmd_status_e */
1789 __le32 status;
1790} __packed;
1791
1792/* WMI_PS_DEV_CFG_READ_CMDID
1793 *
1794 * request to retrieve device Power Save configuration
1795 * (WMI_PS_DEV_CFG_CMD params)
1796 *
1797 * Returned event:
1798 * - WMI_PS_DEV_CFG_READ_EVENTID
1799 */
1800struct wmi_ps_dev_cfg_read_cmd {
1801 __le32 reserved;
1802} __packed;
1803
1804/* WMI_PS_DEV_CFG_READ_EVENTID */
1805struct wmi_ps_dev_cfg_read_event {
1806 /* wmi_ps_cfg_cmd_status_e */
1807 __le32 status;
1808 /* Retrieved device Power Save configuration (WMI_PS_DEV_CFG_CMD
1809 * params)
1810 */
1811 struct wmi_ps_dev_cfg dev_ps_cfg;
1812 /* alignment to 32b */
1813 u8 reserved[2];
1814} __packed;
1815
1816/* Per Mac Power Save configurations */
1817struct wmi_ps_mid_cfg {
1818 /* Low power RX in BTI is enabled, BOOL */
1819 u8 beacon_lprx_enable;
1820 /* Sync to sector ID enabled, BOOL */
1821 u8 beacon_sync_to_sectorId_enable;
1822 /* Low power RX in DTI is enabled, BOOL */
1823 u8 frame_exchange_lprx_enable;
1824 /* Sleep Cycle while in scheduled PS, 1-31 */
1825 u8 scheduled_sleep_cycle_pow2;
1826 /* Stay Awake for k BIs every (sleep_cycle - k) BIs, 1-31 */
1827 u8 scheduled_num_of_awake_bis;
1828 u8 am_to_traffic_load_thresh_mbp;
1829 u8 traffic_to_am_load_thresh_mbps;
1830 u8 traffic_to_am_num_of_no_traffic_bis;
1831 /* BOOL */
1832 u8 continuous_traffic_psm;
1833 __le16 no_traffic_to_min_usec;
1834 __le16 no_traffic_to_max_usec;
1835 __le16 snoozing_sleep_interval_milisec;
1836 u8 max_no_data_awake_events;
1837 /* Trigger WEB after k failed beacons */
1838 u8 num_of_failed_beacons_rx_to_trigger_web;
1839 /* Trigger BF after k failed beacons */
1840 u8 num_of_failed_beacons_rx_to_trigger_bf;
1841 /* Trigger SOB after k successful beacons */
1842 u8 num_of_successful_beacons_rx_to_trigger_sob;
1843} __packed;
1844
1845/* WMI_PS_MID_CFG_CMDID
1846 *
1847 * Configure Power Save parameters of a specific MID.
1848 * These parameters are relevant for the specific BSS this MID belongs to.
1849 *
1850 * Returned event:
1851 * - WMI_PS_MID_CFG_EVENTID
1852 */
1853struct wmi_ps_mid_cfg_cmd {
1854 /* MAC ID */
1855 u8 mid;
1856 /* mid PS configuration to be applied */
1857 struct wmi_ps_mid_cfg ps_mid_cfg;
1858} __packed;
1859
1860/* WMI_PS_MID_CFG_EVENTID */
1861struct wmi_ps_mid_cfg_event {
1862 /* MAC ID */
1863 u8 mid;
1864 /* alignment to 32b */
1865 u8 reserved[3];
1866 /* wmi_ps_cfg_cmd_status_e */
1867 __le32 status;
1868} __packed;
1869
1870/* WMI_PS_MID_CFG_READ_CMDID
1871 *
1872 * request to retrieve Power Save configuration of mid
1873 * (WMI_PS_MID_CFG_CMD params)
1874 *
1875 * Returned event:
1876 * - WMI_PS_MID_CFG_READ_EVENTID
1877 */
1878struct wmi_ps_mid_cfg_read_cmd {
1879 /* MAC ID */
1880 u8 mid;
1881 /* alignment to 32b */
1882 u8 reserved[3];
1883} __packed;
1884
1885/* WMI_PS_MID_CFG_READ_EVENTID */
1886struct wmi_ps_mid_cfg_read_event {
1887 /* MAC ID */
1888 u8 mid;
1889 /* Retrieved MID Power Save configuration(WMI_PS_MID_CFG_CMD params) */
1890 struct wmi_ps_mid_cfg mid_ps_cfg;
1891 /* wmi_ps_cfg_cmd_status_e */
1892 __le32 status;
1893} __packed;
1894
1413#endif /* __WILOCITY_WMI_H__ */
1895#endif /* __WILOCITY_WMI_H__ */