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 or
197 	 *	&struct iwl_tx_cmd_gen3,
198 	 *	response in &struct iwl_mvm_tx_resp or
199 	 *	&struct iwl_mvm_tx_resp_v3
200 	 */
201 	TX_CMD = 0x1c,
202 
203 	/**
204 	 * @TXPATH_FLUSH: &struct iwl_tx_path_flush_cmd
205 	 */
206 	TXPATH_FLUSH = 0x1e,
207 
208 	/**
209 	 * @MGMT_MCAST_KEY:
210 	 * &struct iwl_mvm_mgmt_mcast_key_cmd or
211 	 * &struct iwl_mvm_mgmt_mcast_key_cmd_v1
212 	 */
213 	MGMT_MCAST_KEY = 0x1f,
214 
215 	/* scheduler config */
216 	/**
217 	 * @SCD_QUEUE_CFG: &struct iwl_scd_txq_cfg_cmd for older hardware,
218 	 *	&struct iwl_tx_queue_cfg_cmd with &struct iwl_tx_queue_cfg_rsp
219 	 *	for newer (22000) hardware.
220 	 */
221 	SCD_QUEUE_CFG = 0x1d,
222 
223 	/**
224 	 * @WEP_KEY: uses &struct iwl_mvm_wep_key_cmd
225 	 */
226 	WEP_KEY = 0x20,
227 
228 	/**
229 	 * @SHARED_MEM_CFG:
230 	 * retrieve shared memory configuration - response in
231 	 * &struct iwl_shared_mem_cfg
232 	 */
233 	SHARED_MEM_CFG = 0x25,
234 
235 	/**
236 	 * @TDLS_CHANNEL_SWITCH_CMD: uses &struct iwl_tdls_channel_switch_cmd
237 	 */
238 	TDLS_CHANNEL_SWITCH_CMD = 0x27,
239 
240 	/**
241 	 * @TDLS_CHANNEL_SWITCH_NOTIFICATION:
242 	 * uses &struct iwl_tdls_channel_switch_notif
243 	 */
244 	TDLS_CHANNEL_SWITCH_NOTIFICATION = 0xaa,
245 
246 	/**
247 	 * @TDLS_CONFIG_CMD:
248 	 * &struct iwl_tdls_config_cmd, response in &struct iwl_tdls_config_res
249 	 */
250 	TDLS_CONFIG_CMD = 0xa7,
251 
252 	/**
253 	 * @MAC_CONTEXT_CMD: &struct iwl_mac_ctx_cmd
254 	 */
255 	MAC_CONTEXT_CMD = 0x28,
256 
257 	/**
258 	 * @TIME_EVENT_CMD:
259 	 * &struct iwl_time_event_cmd, response in &struct iwl_time_event_resp
260 	 */
261 	TIME_EVENT_CMD = 0x29, /* both CMD and response */
262 
263 	/**
264 	 * @TIME_EVENT_NOTIFICATION: &struct iwl_time_event_notif
265 	 */
266 	TIME_EVENT_NOTIFICATION = 0x2a,
267 
268 	/**
269 	 * @BINDING_CONTEXT_CMD:
270 	 * &struct iwl_binding_cmd or &struct iwl_binding_cmd_v1
271 	 */
272 	BINDING_CONTEXT_CMD = 0x2b,
273 
274 	/**
275 	 * @TIME_QUOTA_CMD: &struct iwl_time_quota_cmd
276 	 */
277 	TIME_QUOTA_CMD = 0x2c,
278 
279 	/**
280 	 * @NON_QOS_TX_COUNTER_CMD:
281 	 * command is &struct iwl_nonqos_seq_query_cmd
282 	 */
283 	NON_QOS_TX_COUNTER_CMD = 0x2d,
284 
285 	/**
286 	 * @LEDS_CMD: command is &struct iwl_led_cmd
287 	 */
288 	LEDS_CMD = 0x48,
289 
290 	/**
291 	 * @LQ_CMD: using &struct iwl_lq_cmd
292 	 */
293 	LQ_CMD = 0x4e,
294 
295 	/**
296 	 * @FW_PAGING_BLOCK_CMD:
297 	 * &struct iwl_fw_paging_cmd
298 	 */
299 	FW_PAGING_BLOCK_CMD = 0x4f,
300 
301 	/**
302 	 * @SCAN_OFFLOAD_REQUEST_CMD: uses &struct iwl_scan_req_lmac
303 	 */
304 	SCAN_OFFLOAD_REQUEST_CMD = 0x51,
305 
306 	/**
307 	 * @SCAN_OFFLOAD_ABORT_CMD: abort the scan - no further contents
308 	 */
309 	SCAN_OFFLOAD_ABORT_CMD = 0x52,
310 
311 	/**
312 	 * @HOT_SPOT_CMD: uses &struct iwl_hs20_roc_req
313 	 */
314 	HOT_SPOT_CMD = 0x53,
315 
316 	/**
317 	 * @SCAN_OFFLOAD_COMPLETE:
318 	 * notification, &struct iwl_periodic_scan_complete
319 	 */
320 	SCAN_OFFLOAD_COMPLETE = 0x6D,
321 
322 	/**
323 	 * @SCAN_OFFLOAD_UPDATE_PROFILES_CMD:
324 	 * update scan offload (scheduled scan) profiles/blacklist/etc.
325 	 */
326 	SCAN_OFFLOAD_UPDATE_PROFILES_CMD = 0x6E,
327 
328 	/**
329 	 * @MATCH_FOUND_NOTIFICATION: scan match found
330 	 */
331 	MATCH_FOUND_NOTIFICATION = 0xd9,
332 
333 	/**
334 	 * @SCAN_ITERATION_COMPLETE:
335 	 * uses &struct iwl_lmac_scan_complete_notif
336 	 */
337 	SCAN_ITERATION_COMPLETE = 0xe7,
338 
339 	/* Phy */
340 	/**
341 	 * @PHY_CONFIGURATION_CMD: &struct iwl_phy_cfg_cmd
342 	 */
343 	PHY_CONFIGURATION_CMD = 0x6a,
344 
345 	/**
346 	 * @CALIB_RES_NOTIF_PHY_DB: &struct iwl_calib_res_notif_phy_db
347 	 */
348 	CALIB_RES_NOTIF_PHY_DB = 0x6b,
349 
350 	/**
351 	 * @PHY_DB_CMD: &struct iwl_phy_db_cmd
352 	 */
353 	PHY_DB_CMD = 0x6c,
354 
355 	/**
356 	 * @TOF_CMD: &struct iwl_tof_config_cmd
357 	 */
358 	TOF_CMD = 0x10,
359 
360 	/**
361 	 * @TOF_NOTIFICATION: &struct iwl_tof_gen_resp_cmd
362 	 */
363 	TOF_NOTIFICATION = 0x11,
364 
365 	/**
366 	 * @POWER_TABLE_CMD: &struct iwl_device_power_cmd
367 	 */
368 	POWER_TABLE_CMD = 0x77,
369 
370 	/**
371 	 * @PSM_UAPSD_AP_MISBEHAVING_NOTIFICATION:
372 	 * &struct iwl_uapsd_misbehaving_ap_notif
373 	 */
374 	PSM_UAPSD_AP_MISBEHAVING_NOTIFICATION = 0x78,
375 
376 	/**
377 	 * @LTR_CONFIG: &struct iwl_ltr_config_cmd
378 	 */
379 	LTR_CONFIG = 0xee,
380 
381 	/**
382 	 * @REPLY_THERMAL_MNG_BACKOFF:
383 	 * Thermal throttling command
384 	 */
385 	REPLY_THERMAL_MNG_BACKOFF = 0x7e,
386 
387 	/**
388 	 * @DC2DC_CONFIG_CMD:
389 	 * Set/Get DC2DC frequency tune
390 	 * Command is &struct iwl_dc2dc_config_cmd,
391 	 * response is &struct iwl_dc2dc_config_resp
392 	 */
393 	DC2DC_CONFIG_CMD = 0x83,
394 
395 	/**
396 	 * @NVM_ACCESS_CMD: using &struct iwl_nvm_access_cmd
397 	 */
398 	NVM_ACCESS_CMD = 0x88,
399 
400 	/**
401 	 * @BEACON_NOTIFICATION: &struct iwl_extended_beacon_notif
402 	 */
403 	BEACON_NOTIFICATION = 0x90,
404 
405 	/**
406 	 * @BEACON_TEMPLATE_CMD:
407 	 *	Uses one of &struct iwl_mac_beacon_cmd_v6,
408 	 *	&struct iwl_mac_beacon_cmd_v7 or &struct iwl_mac_beacon_cmd
409 	 *	depending on the device version.
410 	 */
411 	BEACON_TEMPLATE_CMD = 0x91,
412 	/**
413 	 * @TX_ANT_CONFIGURATION_CMD: &struct iwl_tx_ant_cfg_cmd
414 	 */
415 	TX_ANT_CONFIGURATION_CMD = 0x98,
416 
417 	/**
418 	 * @STATISTICS_CMD: &struct iwl_statistics_cmd
419 	 */
420 	STATISTICS_CMD = 0x9c,
421 
422 	/**
423 	 * @STATISTICS_NOTIFICATION:
424 	 * one of &struct iwl_notif_statistics_v10,
425 	 * &struct iwl_notif_statistics_v11,
426 	 * &struct iwl_notif_statistics_cdb
427 	 */
428 	STATISTICS_NOTIFICATION = 0x9d,
429 
430 	/**
431 	 * @EOSP_NOTIFICATION:
432 	 * Notify that a service period ended,
433 	 * &struct iwl_mvm_eosp_notification
434 	 */
435 	EOSP_NOTIFICATION = 0x9e,
436 
437 	/**
438 	 * @REDUCE_TX_POWER_CMD:
439 	 * &struct iwl_dev_tx_power_cmd_v3 or &struct iwl_dev_tx_power_cmd
440 	 */
441 	REDUCE_TX_POWER_CMD = 0x9f,
442 
443 	/**
444 	 * @CARD_STATE_NOTIFICATION:
445 	 * Card state (RF/CT kill) notification,
446 	 * uses &struct iwl_card_state_notif
447 	 */
448 	CARD_STATE_NOTIFICATION = 0xa1,
449 
450 	/**
451 	 * @MISSED_BEACONS_NOTIFICATION: &struct iwl_missed_beacons_notif
452 	 */
453 	MISSED_BEACONS_NOTIFICATION = 0xa2,
454 
455 	/**
456 	 * @MAC_PM_POWER_TABLE: using &struct iwl_mac_power_cmd
457 	 */
458 	MAC_PM_POWER_TABLE = 0xa9,
459 
460 	/**
461 	 * @MFUART_LOAD_NOTIFICATION: &struct iwl_mfuart_load_notif
462 	 */
463 	MFUART_LOAD_NOTIFICATION = 0xb1,
464 
465 	/**
466 	 * @RSS_CONFIG_CMD: &struct iwl_rss_config_cmd
467 	 */
468 	RSS_CONFIG_CMD = 0xb3,
469 
470 	/**
471 	 * @REPLY_RX_PHY_CMD: &struct iwl_rx_phy_info
472 	 */
473 	REPLY_RX_PHY_CMD = 0xc0,
474 
475 	/**
476 	 * @REPLY_RX_MPDU_CMD:
477 	 * &struct iwl_rx_mpdu_res_start or &struct iwl_rx_mpdu_desc
478 	 */
479 	REPLY_RX_MPDU_CMD = 0xc1,
480 
481 	/**
482 	 * @FRAME_RELEASE:
483 	 * Frame release (reorder helper) notification, uses
484 	 * &struct iwl_frame_release
485 	 */
486 	FRAME_RELEASE = 0xc3,
487 
488 	/**
489 	 * @BA_NOTIF:
490 	 * BlockAck notification, uses &struct iwl_mvm_compressed_ba_notif
491 	 * or &struct iwl_mvm_ba_notif depending on the HW
492 	 */
493 	BA_NOTIF = 0xc5,
494 
495 	/* Location Aware Regulatory */
496 	/**
497 	 * @MCC_UPDATE_CMD: using &struct iwl_mcc_update_cmd
498 	 */
499 	MCC_UPDATE_CMD = 0xc8,
500 
501 	/**
502 	 * @MCC_CHUB_UPDATE_CMD: using &struct iwl_mcc_chub_notif
503 	 */
504 	MCC_CHUB_UPDATE_CMD = 0xc9,
505 
506 	/**
507 	 * @MARKER_CMD: trace marker command, uses &struct iwl_mvm_marker
508 	 * with &struct iwl_mvm_marker_rsp
509 	 */
510 	MARKER_CMD = 0xcb,
511 
512 	/**
513 	 * @BT_PROFILE_NOTIFICATION: &struct iwl_bt_coex_profile_notif
514 	 */
515 	BT_PROFILE_NOTIFICATION = 0xce,
516 
517 	/**
518 	 * @BT_CONFIG: &struct iwl_bt_coex_cmd
519 	 */
520 	BT_CONFIG = 0x9b,
521 
522 	/**
523 	 * @BT_COEX_UPDATE_REDUCED_TXP:
524 	 * &struct iwl_bt_coex_reduced_txp_update_cmd
525 	 */
526 	BT_COEX_UPDATE_REDUCED_TXP = 0x5c,
527 
528 	/**
529 	 * @BT_COEX_CI: &struct iwl_bt_coex_ci_cmd
530 	 */
531 	BT_COEX_CI = 0x5d,
532 
533 	/**
534 	 * @REPLY_SF_CFG_CMD: &struct iwl_sf_cfg_cmd
535 	 */
536 	REPLY_SF_CFG_CMD = 0xd1,
537 	/**
538 	 * @REPLY_BEACON_FILTERING_CMD: &struct iwl_beacon_filter_cmd
539 	 */
540 	REPLY_BEACON_FILTERING_CMD = 0xd2,
541 
542 	/**
543 	 * @DTS_MEASUREMENT_NOTIFICATION:
544 	 * &struct iwl_dts_measurement_notif_v1 or
545 	 * &struct iwl_dts_measurement_notif_v2
546 	 */
547 	DTS_MEASUREMENT_NOTIFICATION = 0xdd,
548 
549 	/**
550 	 * @LDBG_CONFIG_CMD: configure continuous trace recording
551 	 */
552 	LDBG_CONFIG_CMD = 0xf6,
553 
554 	/**
555 	 * @DEBUG_LOG_MSG: Debugging log data from firmware
556 	 */
557 	DEBUG_LOG_MSG = 0xf7,
558 
559 	/**
560 	 * @BCAST_FILTER_CMD: &struct iwl_bcast_filter_cmd
561 	 */
562 	BCAST_FILTER_CMD = 0xcf,
563 
564 	/**
565 	 * @MCAST_FILTER_CMD: &struct iwl_mcast_filter_cmd
566 	 */
567 	MCAST_FILTER_CMD = 0xd0,
568 
569 	/**
570 	 * @D3_CONFIG_CMD: &struct iwl_d3_manager_config
571 	 */
572 	D3_CONFIG_CMD = 0xd3,
573 
574 	/**
575 	 * @PROT_OFFLOAD_CONFIG_CMD: Depending on firmware, uses one of
576 	 * &struct iwl_proto_offload_cmd_v1, &struct iwl_proto_offload_cmd_v2,
577 	 * &struct iwl_proto_offload_cmd_v3_small,
578 	 * &struct iwl_proto_offload_cmd_v3_large
579 	 */
580 	PROT_OFFLOAD_CONFIG_CMD = 0xd4,
581 
582 	/**
583 	 * @OFFLOADS_QUERY_CMD:
584 	 * No data in command, response in &struct iwl_wowlan_status
585 	 */
586 	OFFLOADS_QUERY_CMD = 0xd5,
587 
588 	/**
589 	 * @REMOTE_WAKE_CONFIG_CMD: &struct iwl_wowlan_remote_wake_config
590 	 */
591 	REMOTE_WAKE_CONFIG_CMD = 0xd6,
592 
593 	/**
594 	 * @D0I3_END_CMD: End D0i3/D3 state, no command data
595 	 */
596 	D0I3_END_CMD = 0xed,
597 
598 	/**
599 	 * @WOWLAN_PATTERNS: &struct iwl_wowlan_patterns_cmd
600 	 */
601 	WOWLAN_PATTERNS = 0xe0,
602 
603 	/**
604 	 * @WOWLAN_CONFIGURATION: &struct iwl_wowlan_config_cmd
605 	 */
606 	WOWLAN_CONFIGURATION = 0xe1,
607 
608 	/**
609 	 * @WOWLAN_TSC_RSC_PARAM: &struct iwl_wowlan_rsc_tsc_params_cmd
610 	 */
611 	WOWLAN_TSC_RSC_PARAM = 0xe2,
612 
613 	/**
614 	 * @WOWLAN_TKIP_PARAM: &struct iwl_wowlan_tkip_params_cmd
615 	 */
616 	WOWLAN_TKIP_PARAM = 0xe3,
617 
618 	/**
619 	 * @WOWLAN_KEK_KCK_MATERIAL: &struct iwl_wowlan_kek_kck_material_cmd
620 	 */
621 	WOWLAN_KEK_KCK_MATERIAL = 0xe4,
622 
623 	/**
624 	 * @WOWLAN_GET_STATUSES: response in &struct iwl_wowlan_status
625 	 */
626 	WOWLAN_GET_STATUSES = 0xe5,
627 
628 	/**
629 	 * @SCAN_OFFLOAD_PROFILES_QUERY_CMD:
630 	 * No command data, response is &struct iwl_scan_offload_profiles_query
631 	 */
632 	SCAN_OFFLOAD_PROFILES_QUERY_CMD = 0x56,
633 };
634 
635 /**
636  * enum iwl_system_subcmd_ids - system group command IDs
637  */
638 enum iwl_system_subcmd_ids {
639 	/**
640 	 * @SHARED_MEM_CFG_CMD:
641 	 * response in &struct iwl_shared_mem_cfg or
642 	 * &struct iwl_shared_mem_cfg_v2
643 	 */
644 	SHARED_MEM_CFG_CMD = 0x0,
645 
646 	/**
647 	 * @INIT_EXTENDED_CFG_CMD: &struct iwl_init_extended_cfg_cmd
648 	 */
649 	INIT_EXTENDED_CFG_CMD = 0x03,
650 };
651 
652 #endif /* __iwl_fw_api_commands_h__ */
653