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) 2013 - 2015 Intel Mobile Communications GmbH
9  * Copyright(c) 2016 - 2017 Intel Deutschland GmbH
10  * Copyright(c) 2012 - 2014, 2020 Intel Corporation
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) 2013 - 2015 Intel Mobile Communications GmbH
31  * Copyright(c) 2016 - 2017 Intel Deutschland GmbH
32  * Copyright(c) 2012 - 2014, 2020 Intel Corporation
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  * @LOCATION_GROUP: location group, uses command IDs from
81  *	&enum iwl_location_subcmd_ids
82  * @PROT_OFFLOAD_GROUP: protocol offload group, uses command IDs from
83  *	&enum iwl_prot_offload_subcmd_ids
84  * @REGULATORY_AND_NVM_GROUP: regulatory/NVM group, uses command IDs from
85  *	&enum iwl_regulatory_and_nvm_subcmd_ids
86  * @DEBUG_GROUP: Debug group, uses command IDs from &enum iwl_debug_cmds
87  */
88 enum iwl_mvm_command_groups {
89 	LEGACY_GROUP = 0x0,
90 	LONG_GROUP = 0x1,
91 	SYSTEM_GROUP = 0x2,
92 	MAC_CONF_GROUP = 0x3,
93 	PHY_OPS_GROUP = 0x4,
94 	DATA_PATH_GROUP = 0x5,
95 	NAN_GROUP = 0x7,
96 	LOCATION_GROUP = 0x8,
97 	PROT_OFFLOAD_GROUP = 0xb,
98 	REGULATORY_AND_NVM_GROUP = 0xc,
99 	DEBUG_GROUP = 0xf,
100 };
101 
102 /**
103  * enum iwl_legacy_cmds - legacy group command IDs
104  */
105 enum iwl_legacy_cmds {
106 	/**
107 	 * @UCODE_ALIVE_NTFY:
108 	 * Alive data from the firmware, as described in
109 	 * &struct iwl_alive_ntf_v3 or &struct iwl_alive_ntf_v4 or
110 	 * &struct iwl_alive_ntf_v5.
111 	 */
112 	UCODE_ALIVE_NTFY = 0x1,
113 
114 	/**
115 	 * @REPLY_ERROR: Cause an error in the firmware, for testing purposes.
116 	 */
117 	REPLY_ERROR = 0x2,
118 
119 	/**
120 	 * @ECHO_CMD: Send data to the device to have it returned immediately.
121 	 */
122 	ECHO_CMD = 0x3,
123 
124 	/**
125 	 * @INIT_COMPLETE_NOTIF: Notification that initialization is complete.
126 	 */
127 	INIT_COMPLETE_NOTIF = 0x4,
128 
129 	/**
130 	 * @PHY_CONTEXT_CMD:
131 	 * Add/modify/remove a PHY context, using &struct iwl_phy_context_cmd.
132 	 */
133 	PHY_CONTEXT_CMD = 0x8,
134 
135 	/**
136 	 * @DBG_CFG: Debug configuration command.
137 	 */
138 	DBG_CFG = 0x9,
139 
140 	/**
141 	 * @SCAN_ITERATION_COMPLETE_UMAC:
142 	 * Firmware indicates a scan iteration completed, using
143 	 * &struct iwl_umac_scan_iter_complete_notif.
144 	 */
145 	SCAN_ITERATION_COMPLETE_UMAC = 0xb5,
146 
147 	/**
148 	 * @SCAN_CFG_CMD:
149 	 * uses &struct iwl_scan_config_v1 or &struct iwl_scan_config
150 	 */
151 	SCAN_CFG_CMD = 0xc,
152 
153 	/**
154 	 * @SCAN_REQ_UMAC: uses &struct iwl_scan_req_umac
155 	 */
156 	SCAN_REQ_UMAC = 0xd,
157 
158 	/**
159 	 * @SCAN_ABORT_UMAC: uses &struct iwl_umac_scan_abort
160 	 */
161 	SCAN_ABORT_UMAC = 0xe,
162 
163 	/**
164 	 * @SCAN_COMPLETE_UMAC: uses &struct iwl_umac_scan_complete
165 	 */
166 	SCAN_COMPLETE_UMAC = 0xf,
167 
168 	/**
169 	 * @BA_WINDOW_STATUS_NOTIFICATION_ID:
170 	 * uses &struct iwl_ba_window_status_notif
171 	 */
172 	BA_WINDOW_STATUS_NOTIFICATION_ID = 0x13,
173 
174 	/**
175 	 * @ADD_STA_KEY:
176 	 * &struct iwl_mvm_add_sta_key_cmd_v1 or
177 	 * &struct iwl_mvm_add_sta_key_cmd.
178 	 */
179 	ADD_STA_KEY = 0x17,
180 
181 	/**
182 	 * @ADD_STA:
183 	 * &struct iwl_mvm_add_sta_cmd or &struct iwl_mvm_add_sta_cmd_v7.
184 	 */
185 	ADD_STA = 0x18,
186 
187 	/**
188 	 * @REMOVE_STA: &struct iwl_mvm_rm_sta_cmd
189 	 */
190 	REMOVE_STA = 0x19,
191 
192 	/**
193 	 * @FW_GET_ITEM_CMD: uses &struct iwl_fw_get_item_cmd
194 	 */
195 	FW_GET_ITEM_CMD = 0x1a,
196 
197 	/**
198 	 * @TX_CMD: uses &struct iwl_tx_cmd or &struct iwl_tx_cmd_gen2 or
199 	 *	&struct iwl_tx_cmd_gen3,
200 	 *	response in &struct iwl_mvm_tx_resp or
201 	 *	&struct iwl_mvm_tx_resp_v3
202 	 */
203 	TX_CMD = 0x1c,
204 
205 	/**
206 	 * @TXPATH_FLUSH: &struct iwl_tx_path_flush_cmd
207 	 */
208 	TXPATH_FLUSH = 0x1e,
209 
210 	/**
211 	 * @MGMT_MCAST_KEY:
212 	 * &struct iwl_mvm_mgmt_mcast_key_cmd or
213 	 * &struct iwl_mvm_mgmt_mcast_key_cmd_v1
214 	 */
215 	MGMT_MCAST_KEY = 0x1f,
216 
217 	/* scheduler config */
218 	/**
219 	 * @SCD_QUEUE_CFG: &struct iwl_scd_txq_cfg_cmd for older hardware,
220 	 *	&struct iwl_tx_queue_cfg_cmd with &struct iwl_tx_queue_cfg_rsp
221 	 *	for newer (22000) hardware.
222 	 */
223 	SCD_QUEUE_CFG = 0x1d,
224 
225 	/**
226 	 * @WEP_KEY: uses &struct iwl_mvm_wep_key_cmd
227 	 */
228 	WEP_KEY = 0x20,
229 
230 	/**
231 	 * @SHARED_MEM_CFG:
232 	 * retrieve shared memory configuration - response in
233 	 * &struct iwl_shared_mem_cfg
234 	 */
235 	SHARED_MEM_CFG = 0x25,
236 
237 	/**
238 	 * @TDLS_CHANNEL_SWITCH_CMD: uses &struct iwl_tdls_channel_switch_cmd
239 	 */
240 	TDLS_CHANNEL_SWITCH_CMD = 0x27,
241 
242 	/**
243 	 * @TDLS_CHANNEL_SWITCH_NOTIFICATION:
244 	 * uses &struct iwl_tdls_channel_switch_notif
245 	 */
246 	TDLS_CHANNEL_SWITCH_NOTIFICATION = 0xaa,
247 
248 	/**
249 	 * @TDLS_CONFIG_CMD:
250 	 * &struct iwl_tdls_config_cmd, response in &struct iwl_tdls_config_res
251 	 */
252 	TDLS_CONFIG_CMD = 0xa7,
253 
254 	/**
255 	 * @MAC_CONTEXT_CMD: &struct iwl_mac_ctx_cmd
256 	 */
257 	MAC_CONTEXT_CMD = 0x28,
258 
259 	/**
260 	 * @TIME_EVENT_CMD:
261 	 * &struct iwl_time_event_cmd, response in &struct iwl_time_event_resp
262 	 */
263 	TIME_EVENT_CMD = 0x29, /* both CMD and response */
264 
265 	/**
266 	 * @TIME_EVENT_NOTIFICATION: &struct iwl_time_event_notif
267 	 */
268 	TIME_EVENT_NOTIFICATION = 0x2a,
269 
270 	/**
271 	 * @BINDING_CONTEXT_CMD:
272 	 * &struct iwl_binding_cmd or &struct iwl_binding_cmd_v1
273 	 */
274 	BINDING_CONTEXT_CMD = 0x2b,
275 
276 	/**
277 	 * @TIME_QUOTA_CMD: &struct iwl_time_quota_cmd
278 	 */
279 	TIME_QUOTA_CMD = 0x2c,
280 
281 	/**
282 	 * @NON_QOS_TX_COUNTER_CMD:
283 	 * command is &struct iwl_nonqos_seq_query_cmd
284 	 */
285 	NON_QOS_TX_COUNTER_CMD = 0x2d,
286 
287 	/**
288 	 * @LEDS_CMD: command is &struct iwl_led_cmd
289 	 */
290 	LEDS_CMD = 0x48,
291 
292 	/**
293 	 * @LQ_CMD: using &struct iwl_lq_cmd
294 	 */
295 	LQ_CMD = 0x4e,
296 
297 	/**
298 	 * @FW_PAGING_BLOCK_CMD:
299 	 * &struct iwl_fw_paging_cmd
300 	 */
301 	FW_PAGING_BLOCK_CMD = 0x4f,
302 
303 	/**
304 	 * @SCAN_OFFLOAD_REQUEST_CMD: uses &struct iwl_scan_req_lmac
305 	 */
306 	SCAN_OFFLOAD_REQUEST_CMD = 0x51,
307 
308 	/**
309 	 * @SCAN_OFFLOAD_ABORT_CMD: abort the scan - no further contents
310 	 */
311 	SCAN_OFFLOAD_ABORT_CMD = 0x52,
312 
313 	/**
314 	 * @HOT_SPOT_CMD: uses &struct iwl_hs20_roc_req
315 	 */
316 	HOT_SPOT_CMD = 0x53,
317 
318 	/**
319 	 * @SCAN_OFFLOAD_COMPLETE:
320 	 * notification, &struct iwl_periodic_scan_complete
321 	 */
322 	SCAN_OFFLOAD_COMPLETE = 0x6D,
323 
324 	/**
325 	 * @SCAN_OFFLOAD_UPDATE_PROFILES_CMD:
326 	 * update scan offload (scheduled scan) profiles/blacklist/etc.
327 	 */
328 	SCAN_OFFLOAD_UPDATE_PROFILES_CMD = 0x6E,
329 
330 	/**
331 	 * @MATCH_FOUND_NOTIFICATION: scan match found
332 	 */
333 	MATCH_FOUND_NOTIFICATION = 0xd9,
334 
335 	/**
336 	 * @SCAN_ITERATION_COMPLETE:
337 	 * uses &struct iwl_lmac_scan_complete_notif
338 	 */
339 	SCAN_ITERATION_COMPLETE = 0xe7,
340 
341 	/* Phy */
342 	/**
343 	 * @PHY_CONFIGURATION_CMD: &struct iwl_phy_cfg_cmd
344 	 */
345 	PHY_CONFIGURATION_CMD = 0x6a,
346 
347 	/**
348 	 * @CALIB_RES_NOTIF_PHY_DB: &struct iwl_calib_res_notif_phy_db
349 	 */
350 	CALIB_RES_NOTIF_PHY_DB = 0x6b,
351 
352 	/**
353 	 * @PHY_DB_CMD: &struct iwl_phy_db_cmd
354 	 */
355 	PHY_DB_CMD = 0x6c,
356 
357 	/**
358 	 * @POWER_TABLE_CMD: &struct iwl_device_power_cmd
359 	 */
360 	POWER_TABLE_CMD = 0x77,
361 
362 	/**
363 	 * @PSM_UAPSD_AP_MISBEHAVING_NOTIFICATION:
364 	 * &struct iwl_uapsd_misbehaving_ap_notif
365 	 */
366 	PSM_UAPSD_AP_MISBEHAVING_NOTIFICATION = 0x78,
367 
368 	/**
369 	 * @LTR_CONFIG: &struct iwl_ltr_config_cmd
370 	 */
371 	LTR_CONFIG = 0xee,
372 
373 	/**
374 	 * @REPLY_THERMAL_MNG_BACKOFF:
375 	 * Thermal throttling command
376 	 */
377 	REPLY_THERMAL_MNG_BACKOFF = 0x7e,
378 
379 	/**
380 	 * @DC2DC_CONFIG_CMD:
381 	 * Set/Get DC2DC frequency tune
382 	 * Command is &struct iwl_dc2dc_config_cmd,
383 	 * response is &struct iwl_dc2dc_config_resp
384 	 */
385 	DC2DC_CONFIG_CMD = 0x83,
386 
387 	/**
388 	 * @NVM_ACCESS_CMD: using &struct iwl_nvm_access_cmd
389 	 */
390 	NVM_ACCESS_CMD = 0x88,
391 
392 	/**
393 	 * @BEACON_NOTIFICATION: &struct iwl_extended_beacon_notif
394 	 */
395 	BEACON_NOTIFICATION = 0x90,
396 
397 	/**
398 	 * @BEACON_TEMPLATE_CMD:
399 	 *	Uses one of &struct iwl_mac_beacon_cmd_v6,
400 	 *	&struct iwl_mac_beacon_cmd_v7 or &struct iwl_mac_beacon_cmd
401 	 *	depending on the device version.
402 	 */
403 	BEACON_TEMPLATE_CMD = 0x91,
404 	/**
405 	 * @TX_ANT_CONFIGURATION_CMD: &struct iwl_tx_ant_cfg_cmd
406 	 */
407 	TX_ANT_CONFIGURATION_CMD = 0x98,
408 
409 	/**
410 	 * @STATISTICS_CMD:
411 	 * one of &struct iwl_statistics_cmd,
412 	 * &struct iwl_notif_statistics_v11,
413 	 * &struct iwl_notif_statistics_v10,
414 	 * &struct iwl_notif_statistics,
415 	 * &struct iwl_statistics_operational_ntfy
416 	 */
417 	STATISTICS_CMD = 0x9c,
418 
419 	/**
420 	 * @STATISTICS_NOTIFICATION:
421 	 * one of &struct iwl_notif_statistics_v10,
422 	 * &struct iwl_notif_statistics_v11,
423 	 * &struct iwl_notif_statistic,
424 	 * &struct iwl_statistics_operational_ntfy
425 	 */
426 	STATISTICS_NOTIFICATION = 0x9d,
427 
428 	/**
429 	 * @EOSP_NOTIFICATION:
430 	 * Notify that a service period ended,
431 	 * &struct iwl_mvm_eosp_notification
432 	 */
433 	EOSP_NOTIFICATION = 0x9e,
434 
435 	/**
436 	 * @REDUCE_TX_POWER_CMD:
437 	 * &struct iwl_dev_tx_power_cmd
438 	 */
439 	REDUCE_TX_POWER_CMD = 0x9f,
440 
441 	/**
442 	 * @CARD_STATE_NOTIFICATION:
443 	 * Card state (RF/CT kill) notification,
444 	 * uses &struct iwl_card_state_notif
445 	 */
446 	CARD_STATE_NOTIFICATION = 0xa1,
447 
448 	/**
449 	 * @MISSED_BEACONS_NOTIFICATION: &struct iwl_missed_beacons_notif
450 	 */
451 	MISSED_BEACONS_NOTIFICATION = 0xa2,
452 
453 	/**
454 	 * @MAC_PM_POWER_TABLE: using &struct iwl_mac_power_cmd
455 	 */
456 	MAC_PM_POWER_TABLE = 0xa9,
457 
458 	/**
459 	 * @MFUART_LOAD_NOTIFICATION: &struct iwl_mfuart_load_notif
460 	 */
461 	MFUART_LOAD_NOTIFICATION = 0xb1,
462 
463 	/**
464 	 * @RSS_CONFIG_CMD: &struct iwl_rss_config_cmd
465 	 */
466 	RSS_CONFIG_CMD = 0xb3,
467 
468 	/**
469 	 * @REPLY_RX_PHY_CMD: &struct iwl_rx_phy_info
470 	 */
471 	REPLY_RX_PHY_CMD = 0xc0,
472 
473 	/**
474 	 * @REPLY_RX_MPDU_CMD:
475 	 * &struct iwl_rx_mpdu_res_start or &struct iwl_rx_mpdu_desc
476 	 */
477 	REPLY_RX_MPDU_CMD = 0xc1,
478 
479 	/**
480 	 * @BAR_FRAME_RELEASE: Frame release from BAR notification, used for
481 	 *	multi-TID BAR (previously, the BAR frame itself was reported
482 	 *	instead). Uses &struct iwl_bar_frame_release.
483 	 */
484 	BAR_FRAME_RELEASE = 0xc2,
485 
486 	/**
487 	 * @FRAME_RELEASE:
488 	 * Frame release (reorder helper) notification, uses
489 	 * &struct iwl_frame_release
490 	 */
491 	FRAME_RELEASE = 0xc3,
492 
493 	/**
494 	 * @BA_NOTIF:
495 	 * BlockAck notification, uses &struct iwl_mvm_compressed_ba_notif
496 	 * or &struct iwl_mvm_ba_notif depending on the HW
497 	 */
498 	BA_NOTIF = 0xc5,
499 
500 	/* Location Aware Regulatory */
501 	/**
502 	 * @MCC_UPDATE_CMD: using &struct iwl_mcc_update_cmd
503 	 */
504 	MCC_UPDATE_CMD = 0xc8,
505 
506 	/**
507 	 * @MCC_CHUB_UPDATE_CMD: using &struct iwl_mcc_chub_notif
508 	 */
509 	MCC_CHUB_UPDATE_CMD = 0xc9,
510 
511 	/**
512 	 * @MARKER_CMD: trace marker command, uses &struct iwl_mvm_marker
513 	 * with &struct iwl_mvm_marker_rsp
514 	 */
515 	MARKER_CMD = 0xcb,
516 
517 	/**
518 	 * @BT_PROFILE_NOTIFICATION: &struct iwl_bt_coex_profile_notif
519 	 */
520 	BT_PROFILE_NOTIFICATION = 0xce,
521 
522 	/**
523 	 * @BT_CONFIG: &struct iwl_bt_coex_cmd
524 	 */
525 	BT_CONFIG = 0x9b,
526 
527 	/**
528 	 * @BT_COEX_UPDATE_REDUCED_TXP:
529 	 * &struct iwl_bt_coex_reduced_txp_update_cmd
530 	 */
531 	BT_COEX_UPDATE_REDUCED_TXP = 0x5c,
532 
533 	/**
534 	 * @BT_COEX_CI: &struct iwl_bt_coex_ci_cmd
535 	 */
536 	BT_COEX_CI = 0x5d,
537 
538 	/**
539 	 * @REPLY_SF_CFG_CMD: &struct iwl_sf_cfg_cmd
540 	 */
541 	REPLY_SF_CFG_CMD = 0xd1,
542 	/**
543 	 * @REPLY_BEACON_FILTERING_CMD: &struct iwl_beacon_filter_cmd
544 	 */
545 	REPLY_BEACON_FILTERING_CMD = 0xd2,
546 
547 	/**
548 	 * @DTS_MEASUREMENT_NOTIFICATION:
549 	 * &struct iwl_dts_measurement_notif_v1 or
550 	 * &struct iwl_dts_measurement_notif_v2
551 	 */
552 	DTS_MEASUREMENT_NOTIFICATION = 0xdd,
553 
554 	/**
555 	 * @LDBG_CONFIG_CMD: configure continuous trace recording
556 	 */
557 	LDBG_CONFIG_CMD = 0xf6,
558 
559 	/**
560 	 * @DEBUG_LOG_MSG: Debugging log data from firmware
561 	 */
562 	DEBUG_LOG_MSG = 0xf7,
563 
564 	/**
565 	 * @BCAST_FILTER_CMD: &struct iwl_bcast_filter_cmd
566 	 */
567 	BCAST_FILTER_CMD = 0xcf,
568 
569 	/**
570 	 * @MCAST_FILTER_CMD: &struct iwl_mcast_filter_cmd
571 	 */
572 	MCAST_FILTER_CMD = 0xd0,
573 
574 	/**
575 	 * @D3_CONFIG_CMD: &struct iwl_d3_manager_config
576 	 */
577 	D3_CONFIG_CMD = 0xd3,
578 
579 	/**
580 	 * @PROT_OFFLOAD_CONFIG_CMD: Depending on firmware, uses one of
581 	 * &struct iwl_proto_offload_cmd_v1, &struct iwl_proto_offload_cmd_v2,
582 	 * &struct iwl_proto_offload_cmd_v3_small,
583 	 * &struct iwl_proto_offload_cmd_v3_large
584 	 */
585 	PROT_OFFLOAD_CONFIG_CMD = 0xd4,
586 
587 	/**
588 	 * @OFFLOADS_QUERY_CMD:
589 	 * No data in command, response in &struct iwl_wowlan_status
590 	 */
591 	OFFLOADS_QUERY_CMD = 0xd5,
592 
593 	/**
594 	 * @REMOTE_WAKE_CONFIG_CMD: &struct iwl_wowlan_remote_wake_config
595 	 */
596 	REMOTE_WAKE_CONFIG_CMD = 0xd6,
597 
598 	/**
599 	 * @D0I3_END_CMD: End D0i3/D3 state, no command data
600 	 */
601 	D0I3_END_CMD = 0xed,
602 
603 	/**
604 	 * @WOWLAN_PATTERNS: &struct iwl_wowlan_patterns_cmd
605 	 */
606 	WOWLAN_PATTERNS = 0xe0,
607 
608 	/**
609 	 * @WOWLAN_CONFIGURATION: &struct iwl_wowlan_config_cmd
610 	 */
611 	WOWLAN_CONFIGURATION = 0xe1,
612 
613 	/**
614 	 * @WOWLAN_TSC_RSC_PARAM: &struct iwl_wowlan_rsc_tsc_params_cmd
615 	 */
616 	WOWLAN_TSC_RSC_PARAM = 0xe2,
617 
618 	/**
619 	 * @WOWLAN_TKIP_PARAM: &struct iwl_wowlan_tkip_params_cmd
620 	 */
621 	WOWLAN_TKIP_PARAM = 0xe3,
622 
623 	/**
624 	 * @WOWLAN_KEK_KCK_MATERIAL: &struct iwl_wowlan_kek_kck_material_cmd
625 	 */
626 	WOWLAN_KEK_KCK_MATERIAL = 0xe4,
627 
628 	/**
629 	 * @WOWLAN_GET_STATUSES: response in &struct iwl_wowlan_status
630 	 */
631 	WOWLAN_GET_STATUSES = 0xe5,
632 
633 	/**
634 	 * @SCAN_OFFLOAD_PROFILES_QUERY_CMD:
635 	 * No command data, response is &struct iwl_scan_offload_profiles_query
636 	 */
637 	SCAN_OFFLOAD_PROFILES_QUERY_CMD = 0x56,
638 };
639 
640 /**
641  * enum iwl_system_subcmd_ids - system group command IDs
642  */
643 enum iwl_system_subcmd_ids {
644 	/**
645 	 * @SHARED_MEM_CFG_CMD:
646 	 * response in &struct iwl_shared_mem_cfg or
647 	 * &struct iwl_shared_mem_cfg_v2
648 	 */
649 	SHARED_MEM_CFG_CMD = 0x0,
650 
651 	/**
652 	 * @SOC_CONFIGURATION_CMD: &struct iwl_soc_configuration_cmd
653 	 */
654 	SOC_CONFIGURATION_CMD = 0x01,
655 
656 	/**
657 	 * @INIT_EXTENDED_CFG_CMD: &struct iwl_init_extended_cfg_cmd
658 	 */
659 	INIT_EXTENDED_CFG_CMD = 0x03,
660 
661 	/**
662 	 * @FW_ERROR_RECOVERY_CMD: &struct iwl_fw_error_recovery_cmd
663 	 */
664 	FW_ERROR_RECOVERY_CMD = 0x7,
665 };
666 
667 #endif /* __iwl_fw_api_commands_h__ */
668