xref: /linux/drivers/net/wireless/intel/iwlwifi/fw/api/commands.h (revision 8c1104b006414a404d32000191fb31917c965c98)
1 /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
2 /*
3  * Copyright (C) 2013-2015 Intel Mobile Communications GmbH
4  * Copyright (C) 2016-2017 Intel Deutschland GmbH
5  * Copyright (C) 2018-2022, 2024-2026 Intel Corporation
6  */
7 #ifndef __iwl_fw_api_commands_h__
8 #define __iwl_fw_api_commands_h__
9 
10 /**
11  * enum iwl_mvm_command_groups - command groups for the firmware
12  * @LEGACY_GROUP: legacy group, uses command IDs from &enum iwl_legacy_cmds
13  * @LONG_GROUP: legacy group with long header, also uses command IDs
14  *	from &enum iwl_legacy_cmds
15  * @SYSTEM_GROUP: system group, uses command IDs from
16  *	&enum iwl_system_subcmd_ids
17  * @MAC_CONF_GROUP: MAC configuration group, uses command IDs from
18  *	&enum iwl_mac_conf_subcmd_ids
19  * @PHY_OPS_GROUP: PHY operations group, uses command IDs from
20  *	&enum iwl_phy_ops_subcmd_ids
21  * @DATA_PATH_GROUP: data path group, uses command IDs from
22  *	&enum iwl_data_path_subcmd_ids
23  * @SCAN_GROUP: scan group, uses command IDs from
24  *	&enum iwl_scan_subcmd_ids
25  * @LOCATION_GROUP: location group, uses command IDs from
26  *	&enum iwl_location_subcmd_ids
27  * @BT_COEX_GROUP: bt coex group, uses command IDs from
28  *	&enum iwl_bt_coex_subcmd_ids
29  * @PROT_OFFLOAD_GROUP: protocol offload group, uses command IDs from
30  *	&enum iwl_prot_offload_subcmd_ids
31  * @REGULATORY_AND_NVM_GROUP: regulatory/NVM group, uses command IDs from
32  *	&enum iwl_regulatory_and_nvm_subcmd_ids
33  * @DEBUG_GROUP: Debug group, uses command IDs from &enum iwl_debug_cmds
34  * @STATISTICS_GROUP: Statistics group, uses command IDs from
35  *	&enum iwl_statistics_subcmd_ids
36  */
37 enum iwl_mvm_command_groups {
38 	LEGACY_GROUP = 0x0,
39 	LONG_GROUP = 0x1,
40 	SYSTEM_GROUP = 0x2,
41 	MAC_CONF_GROUP = 0x3,
42 	PHY_OPS_GROUP = 0x4,
43 	DATA_PATH_GROUP = 0x5,
44 	SCAN_GROUP = 0x6,
45 	LOCATION_GROUP = 0x8,
46 	BT_COEX_GROUP = 0x9,
47 	PROT_OFFLOAD_GROUP = 0xb,
48 	REGULATORY_AND_NVM_GROUP = 0xc,
49 	DEBUG_GROUP = 0xf,
50 	STATISTICS_GROUP = 0x10,
51 };
52 
53 /**
54  * enum iwl_legacy_cmds - legacy group command IDs
55  */
56 enum iwl_legacy_cmds {
57 	/**
58 	 * @UCODE_ALIVE_NTFY:
59 	 * Alive data from the firmware, as described in
60 	 * &struct iwl_alive_ntf_v3 or &struct iwl_alive_ntf_v7.
61 	 */
62 	UCODE_ALIVE_NTFY = 0x1,
63 
64 	/**
65 	 * @REPLY_ERROR: Cause an error in the firmware, for testing purposes.
66 	 */
67 	REPLY_ERROR = 0x2,
68 
69 	/**
70 	 * @ECHO_CMD: Send data to the device to have it returned immediately.
71 	 */
72 	ECHO_CMD = 0x3,
73 
74 	/**
75 	 * @INIT_COMPLETE_NOTIF: Notification that initialization is complete.
76 	 */
77 	INIT_COMPLETE_NOTIF = 0x4,
78 
79 	/**
80 	 * @PHY_CONTEXT_CMD:
81 	 * Add/modify/remove a PHY context, using &struct iwl_phy_context_cmd
82 	 *	or &struct iwl_phy_context_cmd_v1.
83 	 */
84 	PHY_CONTEXT_CMD = 0x8,
85 
86 	/**
87 	 * @DBG_CFG: Debug configuration command.
88 	 */
89 	DBG_CFG = 0x9,
90 
91 	/**
92 	 * @SCAN_ITERATION_COMPLETE_UMAC:
93 	 * Firmware indicates a scan iteration completed, using
94 	 * &struct iwl_umac_scan_iter_complete_notif.
95 	 */
96 	SCAN_ITERATION_COMPLETE_UMAC = 0xb5,
97 
98 	/**
99 	 * @SCAN_CFG_CMD:
100 	 * uses &struct iwl_scan_config_v1, &struct iwl_scan_config_v2
101 	 * or &struct iwl_scan_config
102 	 */
103 	SCAN_CFG_CMD = 0xc,
104 
105 	/**
106 	 * @SCAN_REQ_UMAC: uses &struct iwl_scan_req_umac
107 	 */
108 	SCAN_REQ_UMAC = 0xd,
109 
110 	/**
111 	 * @SCAN_ABORT_UMAC: uses &struct iwl_umac_scan_abort
112 	 */
113 	SCAN_ABORT_UMAC = 0xe,
114 
115 	/**
116 	 * @SCAN_COMPLETE_UMAC: uses &struct iwl_umac_scan_complete
117 	 */
118 	SCAN_COMPLETE_UMAC = 0xf,
119 
120 	/**
121 	 * @BA_WINDOW_STATUS_NOTIFICATION_ID:
122 	 * uses &struct iwl_ba_window_status_notif
123 	 */
124 	BA_WINDOW_STATUS_NOTIFICATION_ID = 0x13,
125 
126 	/**
127 	 * @ADD_STA_KEY:
128 	 * &struct iwl_mvm_add_sta_key_cmd_v1 or
129 	 * &struct iwl_mvm_add_sta_key_cmd.
130 	 */
131 	ADD_STA_KEY = 0x17,
132 
133 	/**
134 	 * @ADD_STA:
135 	 * &struct iwl_mvm_add_sta_cmd or &struct iwl_mvm_add_sta_cmd_v7.
136 	 */
137 	ADD_STA = 0x18,
138 
139 	/**
140 	 * @REMOVE_STA: &struct iwl_mvm_rm_sta_cmd
141 	 */
142 	REMOVE_STA = 0x19,
143 
144 	/**
145 	 * @TX_CMD: uses &struct iwl_tx_cmd_v6 or &struct iwl_tx_cmd_v9 or
146 	 *	&struct iwl_tx_cmd,
147 	 *	response in &struct iwl_tx_resp or
148 	 *	&struct iwl_tx_resp_v3
149 	 */
150 	TX_CMD = 0x1c,
151 
152 	/**
153 	 * @TXPATH_FLUSH: &struct iwl_tx_path_flush_cmd
154 	 *	response in &struct iwl_tx_path_flush_cmd_rsp
155 	 */
156 	TXPATH_FLUSH = 0x1e,
157 
158 	/**
159 	 * @MGMT_MCAST_KEY:
160 	 * &struct iwl_mvm_mgmt_mcast_key_cmd or
161 	 * &struct iwl_mvm_mgmt_mcast_key_cmd_v1
162 	 */
163 	MGMT_MCAST_KEY = 0x1f,
164 
165 	/* scheduler config */
166 	/**
167 	 * @SCD_QUEUE_CFG: &struct iwl_scd_txq_cfg_cmd for older hardware,
168 	 *	&struct iwl_tx_queue_cfg_cmd with &struct iwl_tx_queue_cfg_rsp
169 	 *	for newer (22000) hardware.
170 	 */
171 	SCD_QUEUE_CFG = 0x1d,
172 
173 	/**
174 	 * @WEP_KEY: uses &struct iwl_mvm_wep_key_cmd
175 	 */
176 	WEP_KEY = 0x20,
177 
178 	/**
179 	 * @SHARED_MEM_CFG:
180 	 * retrieve shared memory configuration - response in
181 	 * &struct iwl_shared_mem_cfg
182 	 */
183 	SHARED_MEM_CFG = 0x25,
184 
185 	/**
186 	 * @TDLS_CHANNEL_SWITCH_CMD: uses &struct iwl_tdls_channel_switch_cmd
187 	 */
188 	TDLS_CHANNEL_SWITCH_CMD = 0x27,
189 
190 	/**
191 	 * @TDLS_CHANNEL_SWITCH_NOTIFICATION:
192 	 * uses &struct iwl_tdls_channel_switch_notif
193 	 */
194 	TDLS_CHANNEL_SWITCH_NOTIFICATION = 0xaa,
195 
196 	/**
197 	 * @TDLS_CONFIG_CMD:
198 	 * &struct iwl_tdls_config_cmd, response in &struct iwl_tdls_config_res
199 	 */
200 	TDLS_CONFIG_CMD = 0xa7,
201 
202 	/**
203 	 * @MAC_CONTEXT_CMD: &struct iwl_mac_ctx_cmd
204 	 */
205 	MAC_CONTEXT_CMD = 0x28,
206 
207 	/**
208 	 * @TIME_EVENT_CMD:
209 	 * &struct iwl_time_event_cmd, response in &struct iwl_time_event_resp
210 	 */
211 	TIME_EVENT_CMD = 0x29, /* both CMD and response */
212 
213 	/**
214 	 * @TIME_EVENT_NOTIFICATION: &struct iwl_time_event_notif
215 	 */
216 	TIME_EVENT_NOTIFICATION = 0x2a,
217 
218 	/**
219 	 * @BINDING_CONTEXT_CMD:
220 	 * &struct iwl_binding_cmd or &struct iwl_binding_cmd_v1
221 	 */
222 	BINDING_CONTEXT_CMD = 0x2b,
223 
224 	/**
225 	 * @TIME_QUOTA_CMD: &struct iwl_time_quota_cmd
226 	 */
227 	TIME_QUOTA_CMD = 0x2c,
228 
229 	/**
230 	 * @NON_QOS_TX_COUNTER_CMD:
231 	 * command is &struct iwl_nonqos_seq_query_cmd
232 	 */
233 	NON_QOS_TX_COUNTER_CMD = 0x2d,
234 
235 	/**
236 	 * @LEDS_CMD: command is &struct iwl_led_cmd
237 	 */
238 	LEDS_CMD = 0x48,
239 
240 	/**
241 	 * @LQ_CMD: using &struct iwl_lq_cmd
242 	 */
243 	LQ_CMD = 0x4e,
244 
245 	/**
246 	 * @FW_PAGING_BLOCK_CMD:
247 	 * &struct iwl_fw_paging_cmd
248 	 */
249 	FW_PAGING_BLOCK_CMD = 0x4f,
250 
251 	/**
252 	 * @SCAN_OFFLOAD_REQUEST_CMD: uses &struct iwl_scan_req_lmac
253 	 */
254 	SCAN_OFFLOAD_REQUEST_CMD = 0x51,
255 
256 	/**
257 	 * @SCAN_OFFLOAD_ABORT_CMD: abort the scan - no further contents
258 	 */
259 	SCAN_OFFLOAD_ABORT_CMD = 0x52,
260 
261 	/**
262 	 * @HOT_SPOT_CMD: uses &struct iwl_hs20_roc_req
263 	 */
264 	HOT_SPOT_CMD = 0x53,
265 
266 	/**
267 	 * @WNM_80211V_TIMING_MEASUREMENT_NOTIFICATION: Time Sync
268 	 *	measurement notification for TM/FTM. Sent on receipt of
269 	 *	respective WNM action frame for TM protocol or public action
270 	 *	frame for FTM protocol from peer device along with additional
271 	 *	meta data specified in &struct iwl_time_msmt_notify
272 	 */
273 	WNM_80211V_TIMING_MEASUREMENT_NOTIFICATION = 0x67,
274 
275 	/**
276 	 * @WNM_80211V_TIMING_MEASUREMENT_CONFIRM_NOTIFICATION: Time Sync
277 	 *	measurement confirmation notification for TM/FTM. Sent on
278 	 *	receipt of Ack from peer for previously Tx'ed TM/FTM
279 	 *	action frame along with additional meta data specified in
280 	 *	&struct iwl_time_msmt_cfm_notify
281 	 */
282 	WNM_80211V_TIMING_MEASUREMENT_CONFIRM_NOTIFICATION = 0x68,
283 
284 	/**
285 	 * @SCAN_OFFLOAD_COMPLETE:
286 	 * notification, &struct iwl_periodic_scan_complete
287 	 */
288 	SCAN_OFFLOAD_COMPLETE = 0x6D,
289 
290 	/**
291 	 * @SCAN_OFFLOAD_UPDATE_PROFILES_CMD:
292 	 * update scan offload (scheduled scan) profiles/blocklist/etc.
293 	 */
294 	SCAN_OFFLOAD_UPDATE_PROFILES_CMD = 0x6E,
295 
296 	/**
297 	 * @SCAN_START_NOTIFICATION_UMAC: uses &struct iwl_umac_scan_start
298 	 */
299 	SCAN_START_NOTIFICATION_UMAC = 0xb2,
300 
301 	/**
302 	 * @MATCH_FOUND_NOTIFICATION: scan match found
303 	 */
304 	MATCH_FOUND_NOTIFICATION = 0xd9,
305 
306 	/**
307 	 * @SCAN_ITERATION_COMPLETE:
308 	 * uses &struct iwl_lmac_scan_complete_notif
309 	 */
310 	SCAN_ITERATION_COMPLETE = 0xe7,
311 
312 	/* Phy */
313 	/**
314 	 * @PHY_CONFIGURATION_CMD: &struct iwl_phy_cfg_cmd_v1 or &struct iwl_phy_cfg_cmd_v3
315 	 */
316 	PHY_CONFIGURATION_CMD = 0x6a,
317 
318 	/**
319 	 * @CALIB_RES_NOTIF_PHY_DB: &struct iwl_calib_res_notif_phy_db
320 	 */
321 	CALIB_RES_NOTIF_PHY_DB = 0x6b,
322 
323 	/**
324 	 * @PHY_DB_CMD: &struct iwl_phy_db_cmd
325 	 */
326 	PHY_DB_CMD = 0x6c,
327 
328 	/**
329 	 * @POWER_TABLE_CMD: &struct iwl_device_power_cmd
330 	 */
331 	POWER_TABLE_CMD = 0x77,
332 
333 	/**
334 	 * @PSM_UAPSD_AP_MISBEHAVING_NOTIFICATION:
335 	 * &struct iwl_uapsd_misbehaving_ap_notif
336 	 */
337 	PSM_UAPSD_AP_MISBEHAVING_NOTIFICATION = 0x78,
338 
339 	/**
340 	 * @LTR_CONFIG: &struct iwl_ltr_config_cmd
341 	 */
342 	LTR_CONFIG = 0xee,
343 
344 	/**
345 	 * @REPLY_THERMAL_MNG_BACKOFF:
346 	 * Thermal throttling command
347 	 */
348 	REPLY_THERMAL_MNG_BACKOFF = 0x7e,
349 
350 	/**
351 	 * @NVM_ACCESS_CMD: using &struct iwl_nvm_access_cmd
352 	 */
353 	NVM_ACCESS_CMD = 0x88,
354 
355 	/**
356 	 * @BEACON_NOTIFICATION: &struct iwl_extended_beacon_notif
357 	 */
358 	BEACON_NOTIFICATION = 0x90,
359 
360 	/**
361 	 * @BEACON_TEMPLATE_CMD:
362 	 *	Uses one of &struct iwl_mac_beacon_cmd_v6,
363 	 *	&struct iwl_mac_beacon_cmd_v7 or &struct iwl_mac_beacon_cmd
364 	 *	depending on the device version.
365 	 */
366 	BEACON_TEMPLATE_CMD = 0x91,
367 	/**
368 	 * @TX_ANT_CONFIGURATION_CMD: &struct iwl_tx_ant_cfg_cmd
369 	 */
370 	TX_ANT_CONFIGURATION_CMD = 0x98,
371 
372 	/**
373 	 * @STATISTICS_CMD:
374 	 * one of &struct iwl_statistics_cmd,
375 	 * &struct iwl_notif_statistics_v11,
376 	 * &struct iwl_notif_statistics_v10,
377 	 * &struct iwl_notif_statistics,
378 	 * &struct iwl_statistics_operational_ntfy_ver_14
379 	 */
380 	STATISTICS_CMD = 0x9c,
381 
382 	/**
383 	 * @STATISTICS_NOTIFICATION:
384 	 * one of &struct iwl_notif_statistics_v10,
385 	 * &struct iwl_notif_statistics_v11,
386 	 * &struct iwl_notif_statistics,
387 	 * &struct iwl_statistics_operational_ntfy_ver_14
388 	 * &struct iwl_statistics_operational_ntfy
389 	 */
390 	STATISTICS_NOTIFICATION = 0x9d,
391 
392 	/**
393 	 * @EOSP_NOTIFICATION:
394 	 * Notify that a service period ended,
395 	 * &struct iwl_mvm_eosp_notification
396 	 */
397 	EOSP_NOTIFICATION = 0x9e,
398 
399 	/**
400 	 * @REDUCE_TX_POWER_CMD:
401 	 * &struct iwl_dev_tx_power_cmd
402 	 */
403 	REDUCE_TX_POWER_CMD = 0x9f,
404 
405 	/**
406 	 * @MISSED_BEACONS_NOTIFICATION: &struct iwl_missed_beacons_notif_v4
407 	 */
408 	MISSED_BEACONS_NOTIFICATION = 0xa2,
409 
410 	/**
411 	 * @MAC_PM_POWER_TABLE: using &struct iwl_mac_power_cmd
412 	 */
413 	MAC_PM_POWER_TABLE = 0xa9,
414 
415 	/**
416 	 * @MFUART_LOAD_NOTIFICATION: &struct iwl_mfuart_load_notif
417 	 */
418 	MFUART_LOAD_NOTIFICATION = 0xb1,
419 
420 	/**
421 	 * @RSS_CONFIG_CMD: &struct iwl_rss_config_cmd
422 	 */
423 	RSS_CONFIG_CMD = 0xb3,
424 
425 	/**
426 	 * @REPLY_RX_PHY_CMD: &struct iwl_rx_phy_info
427 	 */
428 	REPLY_RX_PHY_CMD = 0xc0,
429 
430 	/**
431 	 * @REPLY_RX_MPDU_CMD:
432 	 * &struct iwl_rx_mpdu_res_start or &struct iwl_rx_mpdu_desc
433 	 */
434 	REPLY_RX_MPDU_CMD = 0xc1,
435 
436 	/**
437 	 * @BAR_FRAME_RELEASE: Frame release from BAR notification, used for
438 	 *	multi-TID BAR (previously, the BAR frame itself was reported
439 	 *	instead). Uses &struct iwl_bar_frame_release.
440 	 */
441 	BAR_FRAME_RELEASE = 0xc2,
442 
443 	/**
444 	 * @FRAME_RELEASE:
445 	 * Frame release (reorder helper) notification, uses
446 	 * &struct iwl_frame_release
447 	 */
448 	FRAME_RELEASE = 0xc3,
449 
450 	/**
451 	 * @BA_NOTIF:
452 	 * BlockAck notification, uses &struct iwl_compressed_ba_notif
453 	 * or &struct iwl_mvm_ba_notif depending on the HW
454 	 */
455 	BA_NOTIF = 0xc5,
456 
457 	/* Location Aware Regulatory */
458 	/**
459 	 * @MCC_UPDATE_CMD: using &struct iwl_mcc_update_cmd
460 	 */
461 	MCC_UPDATE_CMD = 0xc8,
462 
463 	/**
464 	 * @MCC_CHUB_UPDATE_CMD: using &struct iwl_mcc_chub_notif
465 	 */
466 	MCC_CHUB_UPDATE_CMD = 0xc9,
467 
468 	/**
469 	 * @MARKER_CMD: trace marker command, uses &struct iwl_marker
470 	 * with &struct iwl_marker_rsp
471 	 */
472 	MARKER_CMD = 0xcb,
473 
474 	/**
475 	 * @BT_PROFILE_NOTIFICATION: &struct iwl_bt_coex_prof_old_notif
476 	 */
477 	BT_PROFILE_NOTIFICATION = 0xce,
478 
479 	/**
480 	 * @BT_CONFIG: &struct iwl_bt_coex_cmd
481 	 */
482 	BT_CONFIG = 0x9b,
483 
484 	/**
485 	 * @BT_COEX_UPDATE_REDUCED_TXP:
486 	 * &struct iwl_bt_coex_reduced_txp_update_cmd
487 	 */
488 	BT_COEX_UPDATE_REDUCED_TXP = 0x5c,
489 
490 	/**
491 	 * @BT_COEX_CI: &struct iwl_bt_coex_ci_cmd
492 	 */
493 	BT_COEX_CI = 0x5d,
494 
495 	/**
496 	 * @REPLY_SF_CFG_CMD: &struct iwl_sf_cfg_cmd
497 	 */
498 	REPLY_SF_CFG_CMD = 0xd1,
499 	/**
500 	 * @REPLY_BEACON_FILTERING_CMD: &struct iwl_beacon_filter_cmd
501 	 */
502 	REPLY_BEACON_FILTERING_CMD = 0xd2,
503 
504 	/**
505 	 * @DTS_MEASUREMENT_NOTIFICATION:
506 	 * &struct iwl_dts_measurement_notif_v1 or
507 	 * &struct iwl_dts_measurement_notif
508 	 */
509 	DTS_MEASUREMENT_NOTIFICATION = 0xdd,
510 
511 	/**
512 	 * @DEBUG_HOST_COMMAND: &struct iwl_dhc_cmd
513 	 */
514 	DEBUG_HOST_COMMAND = 0xf1,
515 
516 	/**
517 	 * @LDBG_CONFIG_CMD: configure continuous trace recording
518 	 */
519 	LDBG_CONFIG_CMD = 0xf6,
520 
521 	/**
522 	 * @DEBUG_LOG_MSG: Debugging log data from firmware
523 	 */
524 	DEBUG_LOG_MSG = 0xf7,
525 
526 	/**
527 	 * @MCAST_FILTER_CMD: &struct iwl_mcast_filter_cmd
528 	 */
529 	MCAST_FILTER_CMD = 0xd0,
530 
531 	/**
532 	 * @D3_CONFIG_CMD: &struct iwl_d3_manager_config
533 	 */
534 	D3_CONFIG_CMD = 0xd3,
535 
536 	/**
537 	 * @PROT_OFFLOAD_CONFIG_CMD: Depending on firmware, uses one of
538 	 * &struct iwl_proto_offload_cmd_v1, &struct iwl_proto_offload_cmd_v2,
539 	 * &struct iwl_proto_offload_cmd_v3_small,
540 	 * &struct iwl_proto_offload_cmd_v3_large
541 	 */
542 	PROT_OFFLOAD_CONFIG_CMD = 0xd4,
543 
544 	/**
545 	 * @D0I3_END_CMD: End D0i3/D3 state, no command data
546 	 */
547 	D0I3_END_CMD = 0xed,
548 
549 	/**
550 	 * @WOWLAN_PATTERNS: &struct iwl_wowlan_patterns_cmd
551 	 */
552 	WOWLAN_PATTERNS = 0xe0,
553 
554 	/**
555 	 * @WOWLAN_CONFIGURATION: &struct iwl_wowlan_config_cmd
556 	 */
557 	WOWLAN_CONFIGURATION = 0xe1,
558 
559 	/**
560 	 * @WOWLAN_TSC_RSC_PARAM: &struct iwl_wowlan_rsc_tsc_params_cmd_ver_2,
561 	 *	&struct iwl_wowlan_rsc_tsc_params_cmd
562 	 */
563 	WOWLAN_TSC_RSC_PARAM = 0xe2,
564 
565 	/**
566 	 * @WOWLAN_TKIP_PARAM: &struct iwl_wowlan_tkip_params_cmd
567 	 */
568 	WOWLAN_TKIP_PARAM = 0xe3,
569 
570 	/**
571 	 * @WOWLAN_KEK_KCK_MATERIAL: &struct iwl_wowlan_kek_kck_material_cmd_v2,
572 	 * &struct iwl_wowlan_kek_kck_material_cmd_v3 or
573 	 * &struct iwl_wowlan_kek_kck_material_cmd_v4
574 	 */
575 	WOWLAN_KEK_KCK_MATERIAL = 0xe4,
576 
577 	/**
578 	 * @WOWLAN_GET_STATUSES: response in &struct iwl_wowlan_status_v6 or
579 	 *	&struct iwl_wowlan_status_v7
580 	 */
581 	WOWLAN_GET_STATUSES = 0xe5,
582 
583 	/**
584 	 * @SCAN_OFFLOAD_PROFILES_QUERY_CMD: No command data, response is
585 	 *	&struct iwl_scan_offload_profiles_query_v1
586 	 */
587 	SCAN_OFFLOAD_PROFILES_QUERY_CMD = 0x56,
588 };
589 
590 /**
591  * enum iwl_system_subcmd_ids - system group command IDs
592  */
593 enum iwl_system_subcmd_ids {
594 	/**
595 	 * @SHARED_MEM_CFG_CMD:
596 	 * response in &struct iwl_shared_mem_cfg or
597 	 * &struct iwl_shared_mem_cfg_v2
598 	 */
599 	SHARED_MEM_CFG_CMD = 0x0,
600 
601 	/**
602 	 * @SOC_CONFIGURATION_CMD: &struct iwl_soc_configuration_cmd
603 	 */
604 	SOC_CONFIGURATION_CMD = 0x01,
605 
606 	/**
607 	 * @INIT_EXTENDED_CFG_CMD: &struct iwl_init_extended_cfg_cmd
608 	 */
609 	INIT_EXTENDED_CFG_CMD = 0x03,
610 
611 	/**
612 	 * @FW_ERROR_RECOVERY_CMD: &struct iwl_fw_error_recovery_cmd
613 	 */
614 	FW_ERROR_RECOVERY_CMD = 0x7,
615 
616 	/**
617 	 * @RFI_CONFIG_CMD: &struct iwl_rfi_config_cmd
618 	 */
619 	RFI_CONFIG_CMD = 0xb,
620 
621 	/**
622 	 * @RFI_GET_FREQ_TABLE_CMD: &struct iwl_rfi_config_cmd
623 	 */
624 	RFI_GET_FREQ_TABLE_CMD = 0xc,
625 
626 	/**
627 	 * @SYSTEM_FEATURES_CONTROL_CMD: &struct iwl_system_features_control_cmd
628 	 */
629 	SYSTEM_FEATURES_CONTROL_CMD = 0xd,
630 
631 	/**
632 	 * @SYSTEM_STATISTICS_CMD: &struct iwl_system_statistics_cmd
633 	 */
634 	SYSTEM_STATISTICS_CMD = 0xf,
635 
636 	/**
637 	 * @SYSTEM_STATISTICS_END_NOTIF: &struct iwl_system_statistics_end_notif
638 	 */
639 	SYSTEM_STATISTICS_END_NOTIF = 0xfd,
640 
641 	/**
642 	 * @RFI_DEACTIVATE_NOTIF: &struct iwl_rfi_deactivate_notif
643 	 */
644 	RFI_DEACTIVATE_NOTIF = 0xff,
645 };
646 
647 /**
648  * enum iwl_statistics_subcmd_ids - Statistics group command IDs
649  */
650 enum iwl_statistics_subcmd_ids {
651 	/**
652 	 * @STATISTICS_OPER_NOTIF: Notification about operational
653 	 *	statistics &struct iwl_system_statistics_notif_oper_v3
654 	 */
655 	STATISTICS_OPER_NOTIF = 0x0,
656 
657 	/**
658 	 * @STATISTICS_OPER_PART1_NOTIF: Notification about operational part1
659 	 *	statistics &struct iwl_system_statistics_part1_notif_oper
660 	 */
661 	STATISTICS_OPER_PART1_NOTIF = 0x1,
662 };
663 
664 #endif /* __iwl_fw_api_commands_h__ */
665