1 /******************************************************************************
2  *
3  * This file is provided under a dual BSD/GPLv2 license.  When using or
4  * redistributing this file, you may do so under either license.
5  *
6  * GPL LICENSE SUMMARY
7  *
8  * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved.
9  * Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
10  * Copyright(c) 2016 - 2017 Intel Deutschland GmbH
11  *
12  * This program is free software; you can redistribute it and/or modify
13  * it under the terms of version 2 of the GNU General Public License as
14  * published by the Free Software Foundation.
15  *
16  * This program is distributed in the hope that it will be useful, but
17  * WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
19  * General Public License for more details.
20  *
21  * The full GNU General Public License is included in this distribution
22  * in the file called COPYING.
23  *
24  * Contact Information:
25  *  Intel Linux Wireless <linuxwifi@intel.com>
26  * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
27  *
28  * BSD LICENSE
29  *
30  * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved.
31  * Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
32  * Copyright(c) 2016 - 2017 Intel Deutschland GmbH
33  * All rights reserved.
34  *
35  * Redistribution and use in source and binary forms, with or without
36  * modification, are permitted provided that the following conditions
37  * are met:
38  *
39  *  * Redistributions of source code must retain the above copyright
40  *    notice, this list of conditions and the following disclaimer.
41  *  * Redistributions in binary form must reproduce the above copyright
42  *    notice, this list of conditions and the following disclaimer in
43  *    the documentation and/or other materials provided with the
44  *    distribution.
45  *  * Neither the name Intel Corporation nor the names of its
46  *    contributors may be used to endorse or promote products derived
47  *    from this software without specific prior written permission.
48  *
49  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
50  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
51  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
52  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
53  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
54  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
55  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
56  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
57  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
58  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
59  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
60  *
61  *****************************************************************************/
62 
63 #ifndef __iwl_fw_api_commands_h__
64 #define __iwl_fw_api_commands_h__
65 
66 /**
67  * enum iwl_mvm_command_groups - command groups for the firmware
68  * @LEGACY_GROUP: legacy group, uses command IDs from &enum iwl_legacy_cmds
69  * @LONG_GROUP: legacy group with long header, also uses command IDs
70  *	from &enum iwl_legacy_cmds
71  * @SYSTEM_GROUP: system group, uses command IDs from
72  *	&enum iwl_system_subcmd_ids
73  * @MAC_CONF_GROUP: MAC configuration group, uses command IDs from
74  *	&enum iwl_mac_conf_subcmd_ids
75  * @PHY_OPS_GROUP: PHY operations group, uses command IDs from
76  *	&enum iwl_phy_ops_subcmd_ids
77  * @DATA_PATH_GROUP: data path group, uses command IDs from
78  *	&enum iwl_data_path_subcmd_ids
79  * @NAN_GROUP: NAN group, uses command IDs from &enum iwl_nan_subcmd_ids
80  * @TOF_GROUP: TOF group, uses command IDs from &enum iwl_tof_subcmd_ids
81  * @PROT_OFFLOAD_GROUP: protocol offload group, uses command IDs from
82  *	&enum iwl_prot_offload_subcmd_ids
83  * @REGULATORY_AND_NVM_GROUP: regulatory/NVM group, uses command IDs from
84  *	&enum iwl_regulatory_and_nvm_subcmd_ids
85  * @DEBUG_GROUP: Debug group, uses command IDs from &enum iwl_debug_cmds
86  */
87 enum iwl_mvm_command_groups {
88 	LEGACY_GROUP = 0x0,
89 	LONG_GROUP = 0x1,
90 	SYSTEM_GROUP = 0x2,
91 	MAC_CONF_GROUP = 0x3,
92 	PHY_OPS_GROUP = 0x4,
93 	DATA_PATH_GROUP = 0x5,
94 	NAN_GROUP = 0x7,
95 	TOF_GROUP = 0x8,
96 	PROT_OFFLOAD_GROUP = 0xb,
97 	REGULATORY_AND_NVM_GROUP = 0xc,
98 	DEBUG_GROUP = 0xf,
99 };
100 
101 /**
102  * enum iwl_legacy_cmds - legacy group command IDs
103  */
104 enum iwl_legacy_cmds {
105 	/**
106 	 * @MVM_ALIVE:
107 	 * Alive data from the firmware, as described in
108 	 * &struct mvm_alive_resp_v3 or &struct mvm_alive_resp.
109 	 */
110 	MVM_ALIVE = 0x1,
111 
112 	/**
113 	 * @REPLY_ERROR: Cause an error in the firmware, for testing purposes.
114 	 */
115 	REPLY_ERROR = 0x2,
116 
117 	/**
118 	 * @ECHO_CMD: Send data to the device to have it returned immediately.
119 	 */
120 	ECHO_CMD = 0x3,
121 
122 	/**
123 	 * @INIT_COMPLETE_NOTIF: Notification that initialization is complete.
124 	 */
125 	INIT_COMPLETE_NOTIF = 0x4,
126 
127 	/**
128 	 * @PHY_CONTEXT_CMD:
129 	 * Add/modify/remove a PHY context, using &struct iwl_phy_context_cmd.
130 	 */
131 	PHY_CONTEXT_CMD = 0x8,
132 
133 	/**
134 	 * @DBG_CFG: Debug configuration command.
135 	 */
136 	DBG_CFG = 0x9,
137 
138 	/**
139 	 * @SCAN_ITERATION_COMPLETE_UMAC:
140 	 * Firmware indicates a scan iteration completed, using
141 	 * &struct iwl_umac_scan_iter_complete_notif.
142 	 */
143 	SCAN_ITERATION_COMPLETE_UMAC = 0xb5,
144 
145 	/**
146 	 * @SCAN_CFG_CMD:
147 	 * uses &struct iwl_scan_config_v1 or &struct iwl_scan_config
148 	 */
149 	SCAN_CFG_CMD = 0xc,
150 
151 	/**
152 	 * @SCAN_REQ_UMAC: uses &struct iwl_scan_req_umac
153 	 */
154 	SCAN_REQ_UMAC = 0xd,
155 
156 	/**
157 	 * @SCAN_ABORT_UMAC: uses &struct iwl_umac_scan_abort
158 	 */
159 	SCAN_ABORT_UMAC = 0xe,
160 
161 	/**
162 	 * @SCAN_COMPLETE_UMAC: uses &struct iwl_umac_scan_complete
163 	 */
164 	SCAN_COMPLETE_UMAC = 0xf,
165 
166 	/**
167 	 * @BA_WINDOW_STATUS_NOTIFICATION_ID:
168 	 * uses &struct iwl_ba_window_status_notif
169 	 */
170 	BA_WINDOW_STATUS_NOTIFICATION_ID = 0x13,
171 
172 	/**
173 	 * @ADD_STA_KEY:
174 	 * &struct iwl_mvm_add_sta_key_cmd_v1 or
175 	 * &struct iwl_mvm_add_sta_key_cmd.
176 	 */
177 	ADD_STA_KEY = 0x17,
178 
179 	/**
180 	 * @ADD_STA:
181 	 * &struct iwl_mvm_add_sta_cmd or &struct iwl_mvm_add_sta_cmd_v7.
182 	 */
183 	ADD_STA = 0x18,
184 
185 	/**
186 	 * @REMOVE_STA: &struct iwl_mvm_rm_sta_cmd
187 	 */
188 	REMOVE_STA = 0x19,
189 
190 	/**
191 	 * @FW_GET_ITEM_CMD: uses &struct iwl_fw_get_item_cmd
192 	 */
193 	FW_GET_ITEM_CMD = 0x1a,
194 
195 	/**
196 	 * @TX_CMD: uses &struct iwl_tx_cmd or &struct iwl_tx_cmd_gen2,
197 	 *	response in &struct iwl_mvm_tx_resp or
198 	 *	&struct iwl_mvm_tx_resp_v3
199 	 */
200 	TX_CMD = 0x1c,
201 
202 	/**
203 	 * @TXPATH_FLUSH: &struct iwl_tx_path_flush_cmd
204 	 */
205 	TXPATH_FLUSH = 0x1e,
206 
207 	/**
208 	 * @MGMT_MCAST_KEY:
209 	 * &struct iwl_mvm_mgmt_mcast_key_cmd or
210 	 * &struct iwl_mvm_mgmt_mcast_key_cmd_v1
211 	 */
212 	MGMT_MCAST_KEY = 0x1f,
213 
214 	/* scheduler config */
215 	/**
216 	 * @SCD_QUEUE_CFG: &struct iwl_scd_txq_cfg_cmd for older hardware,
217 	 *	&struct iwl_tx_queue_cfg_cmd with &struct iwl_tx_queue_cfg_rsp
218 	 *	for newer (A000) hardware.
219 	 */
220 	SCD_QUEUE_CFG = 0x1d,
221 
222 	/**
223 	 * @WEP_KEY: uses &struct iwl_mvm_wep_key_cmd
224 	 */
225 	WEP_KEY = 0x20,
226 
227 	/**
228 	 * @SHARED_MEM_CFG:
229 	 * retrieve shared memory configuration - response in
230 	 * &struct iwl_shared_mem_cfg
231 	 */
232 	SHARED_MEM_CFG = 0x25,
233 
234 	/**
235 	 * @TDLS_CHANNEL_SWITCH_CMD: uses &struct iwl_tdls_channel_switch_cmd
236 	 */
237 	TDLS_CHANNEL_SWITCH_CMD = 0x27,
238 
239 	/**
240 	 * @TDLS_CHANNEL_SWITCH_NOTIFICATION:
241 	 * uses &struct iwl_tdls_channel_switch_notif
242 	 */
243 	TDLS_CHANNEL_SWITCH_NOTIFICATION = 0xaa,
244 
245 	/**
246 	 * @TDLS_CONFIG_CMD:
247 	 * &struct iwl_tdls_config_cmd, response in &struct iwl_tdls_config_res
248 	 */
249 	TDLS_CONFIG_CMD = 0xa7,
250 
251 	/**
252 	 * @MAC_CONTEXT_CMD: &struct iwl_mac_ctx_cmd
253 	 */
254 	MAC_CONTEXT_CMD = 0x28,
255 
256 	/**
257 	 * @TIME_EVENT_CMD:
258 	 * &struct iwl_time_event_cmd, response in &struct iwl_time_event_resp
259 	 */
260 	TIME_EVENT_CMD = 0x29, /* both CMD and response */
261 
262 	/**
263 	 * @TIME_EVENT_NOTIFICATION: &struct iwl_time_event_notif
264 	 */
265 	TIME_EVENT_NOTIFICATION = 0x2a,
266 
267 	/**
268 	 * @BINDING_CONTEXT_CMD:
269 	 * &struct iwl_binding_cmd or &struct iwl_binding_cmd_v1
270 	 */
271 	BINDING_CONTEXT_CMD = 0x2b,
272 
273 	/**
274 	 * @TIME_QUOTA_CMD: &struct iwl_time_quota_cmd
275 	 */
276 	TIME_QUOTA_CMD = 0x2c,
277 
278 	/**
279 	 * @NON_QOS_TX_COUNTER_CMD:
280 	 * command is &struct iwl_nonqos_seq_query_cmd
281 	 */
282 	NON_QOS_TX_COUNTER_CMD = 0x2d,
283 
284 	/**
285 	 * @LEDS_CMD: command is &struct iwl_led_cmd
286 	 */
287 	LEDS_CMD = 0x48,
288 
289 	/**
290 	 * @LQ_CMD: using &struct iwl_lq_cmd
291 	 */
292 	LQ_CMD = 0x4e,
293 
294 	/**
295 	 * @FW_PAGING_BLOCK_CMD:
296 	 * &struct iwl_fw_paging_cmd
297 	 */
298 	FW_PAGING_BLOCK_CMD = 0x4f,
299 
300 	/**
301 	 * @SCAN_OFFLOAD_REQUEST_CMD: uses &struct iwl_scan_req_lmac
302 	 */
303 	SCAN_OFFLOAD_REQUEST_CMD = 0x51,
304 
305 	/**
306 	 * @SCAN_OFFLOAD_ABORT_CMD: abort the scan - no further contents
307 	 */
308 	SCAN_OFFLOAD_ABORT_CMD = 0x52,
309 
310 	/**
311 	 * @HOT_SPOT_CMD: uses &struct iwl_hs20_roc_req
312 	 */
313 	HOT_SPOT_CMD = 0x53,
314 
315 	/**
316 	 * @SCAN_OFFLOAD_COMPLETE:
317 	 * notification, &struct iwl_periodic_scan_complete
318 	 */
319 	SCAN_OFFLOAD_COMPLETE = 0x6D,
320 
321 	/**
322 	 * @SCAN_OFFLOAD_UPDATE_PROFILES_CMD:
323 	 * update scan offload (scheduled scan) profiles/blacklist/etc.
324 	 */
325 	SCAN_OFFLOAD_UPDATE_PROFILES_CMD = 0x6E,
326 
327 	/**
328 	 * @MATCH_FOUND_NOTIFICATION: scan match found
329 	 */
330 	MATCH_FOUND_NOTIFICATION = 0xd9,
331 
332 	/**
333 	 * @SCAN_ITERATION_COMPLETE:
334 	 * uses &struct iwl_lmac_scan_complete_notif
335 	 */
336 	SCAN_ITERATION_COMPLETE = 0xe7,
337 
338 	/* Phy */
339 	/**
340 	 * @PHY_CONFIGURATION_CMD: &struct iwl_phy_cfg_cmd
341 	 */
342 	PHY_CONFIGURATION_CMD = 0x6a,
343 
344 	/**
345 	 * @CALIB_RES_NOTIF_PHY_DB: &struct iwl_calib_res_notif_phy_db
346 	 */
347 	CALIB_RES_NOTIF_PHY_DB = 0x6b,
348 
349 	/**
350 	 * @PHY_DB_CMD: &struct iwl_phy_db_cmd
351 	 */
352 	PHY_DB_CMD = 0x6c,
353 
354 	/**
355 	 * @TOF_CMD: &struct iwl_tof_config_cmd
356 	 */
357 	TOF_CMD = 0x10,
358 
359 	/**
360 	 * @TOF_NOTIFICATION: &struct iwl_tof_gen_resp_cmd
361 	 */
362 	TOF_NOTIFICATION = 0x11,
363 
364 	/**
365 	 * @POWER_TABLE_CMD: &struct iwl_device_power_cmd
366 	 */
367 	POWER_TABLE_CMD = 0x77,
368 
369 	/**
370 	 * @PSM_UAPSD_AP_MISBEHAVING_NOTIFICATION:
371 	 * &struct iwl_uapsd_misbehaving_ap_notif
372 	 */
373 	PSM_UAPSD_AP_MISBEHAVING_NOTIFICATION = 0x78,
374 
375 	/**
376 	 * @LTR_CONFIG: &struct iwl_ltr_config_cmd
377 	 */
378 	LTR_CONFIG = 0xee,
379 
380 	/**
381 	 * @REPLY_THERMAL_MNG_BACKOFF:
382 	 * Thermal throttling command
383 	 */
384 	REPLY_THERMAL_MNG_BACKOFF = 0x7e,
385 
386 	/**
387 	 * @DC2DC_CONFIG_CMD:
388 	 * Set/Get DC2DC frequency tune
389 	 * Command is &struct iwl_dc2dc_config_cmd,
390 	 * response is &struct iwl_dc2dc_config_resp
391 	 */
392 	DC2DC_CONFIG_CMD = 0x83,
393 
394 	/**
395 	 * @NVM_ACCESS_CMD: using &struct iwl_nvm_access_cmd
396 	 */
397 	NVM_ACCESS_CMD = 0x88,
398 
399 	/**
400 	 * @BEACON_NOTIFICATION: &struct iwl_extended_beacon_notif
401 	 */
402 	BEACON_NOTIFICATION = 0x90,
403 
404 	/**
405 	 * @BEACON_TEMPLATE_CMD:
406 	 *	Uses one of &struct iwl_mac_beacon_cmd_v6,
407 	 *	&struct iwl_mac_beacon_cmd_v7 or &struct iwl_mac_beacon_cmd
408 	 *	depending on the device version.
409 	 */
410 	BEACON_TEMPLATE_CMD = 0x91,
411 	/**
412 	 * @TX_ANT_CONFIGURATION_CMD: &struct iwl_tx_ant_cfg_cmd
413 	 */
414 	TX_ANT_CONFIGURATION_CMD = 0x98,
415 
416 	/**
417 	 * @STATISTICS_CMD: &struct iwl_statistics_cmd
418 	 */
419 	STATISTICS_CMD = 0x9c,
420 
421 	/**
422 	 * @STATISTICS_NOTIFICATION:
423 	 * one of &struct iwl_notif_statistics_v10,
424 	 * &struct iwl_notif_statistics_v11,
425 	 * &struct iwl_notif_statistics_cdb
426 	 */
427 	STATISTICS_NOTIFICATION = 0x9d,
428 
429 	/**
430 	 * @EOSP_NOTIFICATION:
431 	 * Notify that a service period ended,
432 	 * &struct iwl_mvm_eosp_notification
433 	 */
434 	EOSP_NOTIFICATION = 0x9e,
435 
436 	/**
437 	 * @REDUCE_TX_POWER_CMD:
438 	 * &struct iwl_dev_tx_power_cmd_v3 or &struct iwl_dev_tx_power_cmd
439 	 */
440 	REDUCE_TX_POWER_CMD = 0x9f,
441 
442 	/**
443 	 * @CARD_STATE_NOTIFICATION:
444 	 * Card state (RF/CT kill) notification,
445 	 * uses &struct iwl_card_state_notif
446 	 */
447 	CARD_STATE_NOTIFICATION = 0xa1,
448 
449 	/**
450 	 * @MISSED_BEACONS_NOTIFICATION: &struct iwl_missed_beacons_notif
451 	 */
452 	MISSED_BEACONS_NOTIFICATION = 0xa2,
453 
454 	/**
455 	 * @MAC_PM_POWER_TABLE: using &struct iwl_mac_power_cmd
456 	 */
457 	MAC_PM_POWER_TABLE = 0xa9,
458 
459 	/**
460 	 * @MFUART_LOAD_NOTIFICATION: &struct iwl_mfuart_load_notif
461 	 */
462 	MFUART_LOAD_NOTIFICATION = 0xb1,
463 
464 	/**
465 	 * @RSS_CONFIG_CMD: &struct iwl_rss_config_cmd
466 	 */
467 	RSS_CONFIG_CMD = 0xb3,
468 
469 	/**
470 	 * @REPLY_RX_PHY_CMD: &struct iwl_rx_phy_info
471 	 */
472 	REPLY_RX_PHY_CMD = 0xc0,
473 
474 	/**
475 	 * @REPLY_RX_MPDU_CMD:
476 	 * &struct iwl_rx_mpdu_res_start or &struct iwl_rx_mpdu_desc
477 	 */
478 	REPLY_RX_MPDU_CMD = 0xc1,
479 
480 	/**
481 	 * @FRAME_RELEASE:
482 	 * Frame release (reorder helper) notification, uses
483 	 * &struct iwl_frame_release
484 	 */
485 	FRAME_RELEASE = 0xc3,
486 
487 	/**
488 	 * @BA_NOTIF:
489 	 * BlockAck notification, uses &struct iwl_mvm_compressed_ba_notif
490 	 * or &struct iwl_mvm_ba_notif depending on the HW
491 	 */
492 	BA_NOTIF = 0xc5,
493 
494 	/* Location Aware Regulatory */
495 	/**
496 	 * @MCC_UPDATE_CMD: using &struct iwl_mcc_update_cmd
497 	 */
498 	MCC_UPDATE_CMD = 0xc8,
499 
500 	/**
501 	 * @MCC_CHUB_UPDATE_CMD: using &struct iwl_mcc_chub_notif
502 	 */
503 	MCC_CHUB_UPDATE_CMD = 0xc9,
504 
505 	/**
506 	 * @MARKER_CMD: trace marker command, uses &struct iwl_mvm_marker
507 	 */
508 	MARKER_CMD = 0xcb,
509 
510 	/**
511 	 * @BT_PROFILE_NOTIFICATION: &struct iwl_bt_coex_profile_notif
512 	 */
513 	BT_PROFILE_NOTIFICATION = 0xce,
514 
515 	/**
516 	 * @BT_CONFIG: &struct iwl_bt_coex_cmd
517 	 */
518 	BT_CONFIG = 0x9b,
519 
520 	/**
521 	 * @BT_COEX_UPDATE_REDUCED_TXP:
522 	 * &struct iwl_bt_coex_reduced_txp_update_cmd
523 	 */
524 	BT_COEX_UPDATE_REDUCED_TXP = 0x5c,
525 
526 	/**
527 	 * @BT_COEX_CI: &struct iwl_bt_coex_ci_cmd
528 	 */
529 	BT_COEX_CI = 0x5d,
530 
531 	/**
532 	 * @REPLY_SF_CFG_CMD: &struct iwl_sf_cfg_cmd
533 	 */
534 	REPLY_SF_CFG_CMD = 0xd1,
535 	/**
536 	 * @REPLY_BEACON_FILTERING_CMD: &struct iwl_beacon_filter_cmd
537 	 */
538 	REPLY_BEACON_FILTERING_CMD = 0xd2,
539 
540 	/**
541 	 * @DTS_MEASUREMENT_NOTIFICATION:
542 	 * &struct iwl_dts_measurement_notif_v1 or
543 	 * &struct iwl_dts_measurement_notif_v2
544 	 */
545 	DTS_MEASUREMENT_NOTIFICATION = 0xdd,
546 
547 	/**
548 	 * @LDBG_CONFIG_CMD: configure continuous trace recording
549 	 */
550 	LDBG_CONFIG_CMD = 0xf6,
551 
552 	/**
553 	 * @DEBUG_LOG_MSG: Debugging log data from firmware
554 	 */
555 	DEBUG_LOG_MSG = 0xf7,
556 
557 	/**
558 	 * @BCAST_FILTER_CMD: &struct iwl_bcast_filter_cmd
559 	 */
560 	BCAST_FILTER_CMD = 0xcf,
561 
562 	/**
563 	 * @MCAST_FILTER_CMD: &struct iwl_mcast_filter_cmd
564 	 */
565 	MCAST_FILTER_CMD = 0xd0,
566 
567 	/**
568 	 * @D3_CONFIG_CMD: &struct iwl_d3_manager_config
569 	 */
570 	D3_CONFIG_CMD = 0xd3,
571 
572 	/**
573 	 * @PROT_OFFLOAD_CONFIG_CMD: Depending on firmware, uses one of
574 	 * &struct iwl_proto_offload_cmd_v1, &struct iwl_proto_offload_cmd_v2,
575 	 * &struct iwl_proto_offload_cmd_v3_small,
576 	 * &struct iwl_proto_offload_cmd_v3_large
577 	 */
578 	PROT_OFFLOAD_CONFIG_CMD = 0xd4,
579 
580 	/**
581 	 * @OFFLOADS_QUERY_CMD:
582 	 * No data in command, response in &struct iwl_wowlan_status
583 	 */
584 	OFFLOADS_QUERY_CMD = 0xd5,
585 
586 	/**
587 	 * @REMOTE_WAKE_CONFIG_CMD: &struct iwl_wowlan_remote_wake_config
588 	 */
589 	REMOTE_WAKE_CONFIG_CMD = 0xd6,
590 
591 	/**
592 	 * @D0I3_END_CMD: End D0i3/D3 state, no command data
593 	 */
594 	D0I3_END_CMD = 0xed,
595 
596 	/**
597 	 * @WOWLAN_PATTERNS: &struct iwl_wowlan_patterns_cmd
598 	 */
599 	WOWLAN_PATTERNS = 0xe0,
600 
601 	/**
602 	 * @WOWLAN_CONFIGURATION: &struct iwl_wowlan_config_cmd
603 	 */
604 	WOWLAN_CONFIGURATION = 0xe1,
605 
606 	/**
607 	 * @WOWLAN_TSC_RSC_PARAM: &struct iwl_wowlan_rsc_tsc_params_cmd
608 	 */
609 	WOWLAN_TSC_RSC_PARAM = 0xe2,
610 
611 	/**
612 	 * @WOWLAN_TKIP_PARAM: &struct iwl_wowlan_tkip_params_cmd
613 	 */
614 	WOWLAN_TKIP_PARAM = 0xe3,
615 
616 	/**
617 	 * @WOWLAN_KEK_KCK_MATERIAL: &struct iwl_wowlan_kek_kck_material_cmd
618 	 */
619 	WOWLAN_KEK_KCK_MATERIAL = 0xe4,
620 
621 	/**
622 	 * @WOWLAN_GET_STATUSES: response in &struct iwl_wowlan_status
623 	 */
624 	WOWLAN_GET_STATUSES = 0xe5,
625 
626 	/**
627 	 * @SCAN_OFFLOAD_PROFILES_QUERY_CMD:
628 	 * No command data, response is &struct iwl_scan_offload_profiles_query
629 	 */
630 	SCAN_OFFLOAD_PROFILES_QUERY_CMD = 0x56,
631 };
632 
633 /**
634  * enum iwl_system_subcmd_ids - system group command IDs
635  */
636 enum iwl_system_subcmd_ids {
637 	/**
638 	 * @SHARED_MEM_CFG_CMD:
639 	 * response in &struct iwl_shared_mem_cfg or
640 	 * &struct iwl_shared_mem_cfg_v2
641 	 */
642 	SHARED_MEM_CFG_CMD = 0x0,
643 
644 	/**
645 	 * @INIT_EXTENDED_CFG_CMD: &struct iwl_init_extended_cfg_cmd
646 	 */
647 	INIT_EXTENDED_CFG_CMD = 0x03,
648 
649 	/**
650 	 * @FSEQ_VER_MISMATCH_NTF: Notification about fseq version
651 	 *	mismatch during init.  The format is specified in
652 	 *	&struct iwl_fseq_ver_mismatch_ntf.
653 	 */
654 	FSEQ_VER_MISMATCH_NTF = 0xFF,
655 };
656 
657 #endif /* __iwl_fw_api_commands_h__ */
658