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