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 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  * @PROT_OFFLOAD_GROUP: protocol offload group, uses command IDs from
29  *	&enum iwl_prot_offload_subcmd_ids
30  * @REGULATORY_AND_NVM_GROUP: regulatory/NVM group, uses command IDs from
31  *	&enum iwl_regulatory_and_nvm_subcmd_ids
32  * @DEBUG_GROUP: Debug group, uses command IDs from &enum iwl_debug_cmds
33  * @STATISTICS_GROUP: Statistics group, uses command IDs from
34  *	&enum iwl_statistics_subcmd_ids
35  */
36 enum iwl_mvm_command_groups {
37 	LEGACY_GROUP = 0x0,
38 	LONG_GROUP = 0x1,
39 	SYSTEM_GROUP = 0x2,
40 	MAC_CONF_GROUP = 0x3,
41 	PHY_OPS_GROUP = 0x4,
42 	DATA_PATH_GROUP = 0x5,
43 	SCAN_GROUP = 0x6,
44 	NAN_GROUP = 0x7,
45 	LOCATION_GROUP = 0x8,
46 	PROT_OFFLOAD_GROUP = 0xb,
47 	REGULATORY_AND_NVM_GROUP = 0xc,
48 	DEBUG_GROUP = 0xf,
49 	STATISTICS_GROUP = 0x10,
50 };
51 
52 /**
53  * enum iwl_legacy_cmds - legacy group command IDs
54  */
55 enum iwl_legacy_cmds {
56 	/**
57 	 * @UCODE_ALIVE_NTFY:
58 	 * Alive data from the firmware, as described in
59 	 * &struct iwl_alive_ntf_v3 or &struct iwl_alive_ntf_v4 or
60 	 * &struct iwl_alive_ntf_v5 or &struct iwl_alive_ntf_v6.
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 or &struct iwl_tx_cmd_gen2 or
146 	 *	&struct iwl_tx_cmd_gen3,
147 	 *	response in &struct iwl_mvm_tx_resp or
148 	 *	&struct iwl_mvm_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 	 * @MATCH_FOUND_NOTIFICATION: scan match found
298 	 */
299 	MATCH_FOUND_NOTIFICATION = 0xd9,
300 
301 	/**
302 	 * @SCAN_ITERATION_COMPLETE:
303 	 * uses &struct iwl_lmac_scan_complete_notif
304 	 */
305 	SCAN_ITERATION_COMPLETE = 0xe7,
306 
307 	/* Phy */
308 	/**
309 	 * @PHY_CONFIGURATION_CMD: &struct iwl_phy_cfg_cmd_v1 or &struct iwl_phy_cfg_cmd_v3
310 	 */
311 	PHY_CONFIGURATION_CMD = 0x6a,
312 
313 	/**
314 	 * @CALIB_RES_NOTIF_PHY_DB: &struct iwl_calib_res_notif_phy_db
315 	 */
316 	CALIB_RES_NOTIF_PHY_DB = 0x6b,
317 
318 	/**
319 	 * @PHY_DB_CMD: &struct iwl_phy_db_cmd
320 	 */
321 	PHY_DB_CMD = 0x6c,
322 
323 	/**
324 	 * @POWER_TABLE_CMD: &struct iwl_device_power_cmd
325 	 */
326 	POWER_TABLE_CMD = 0x77,
327 
328 	/**
329 	 * @PSM_UAPSD_AP_MISBEHAVING_NOTIFICATION:
330 	 * &struct iwl_uapsd_misbehaving_ap_notif
331 	 */
332 	PSM_UAPSD_AP_MISBEHAVING_NOTIFICATION = 0x78,
333 
334 	/**
335 	 * @LTR_CONFIG: &struct iwl_ltr_config_cmd
336 	 */
337 	LTR_CONFIG = 0xee,
338 
339 	/**
340 	 * @REPLY_THERMAL_MNG_BACKOFF:
341 	 * Thermal throttling command
342 	 */
343 	REPLY_THERMAL_MNG_BACKOFF = 0x7e,
344 
345 	/**
346 	 * @NVM_ACCESS_CMD: using &struct iwl_nvm_access_cmd
347 	 */
348 	NVM_ACCESS_CMD = 0x88,
349 
350 	/**
351 	 * @BEACON_NOTIFICATION: &struct iwl_extended_beacon_notif
352 	 */
353 	BEACON_NOTIFICATION = 0x90,
354 
355 	/**
356 	 * @BEACON_TEMPLATE_CMD:
357 	 *	Uses one of &struct iwl_mac_beacon_cmd_v6,
358 	 *	&struct iwl_mac_beacon_cmd_v7 or &struct iwl_mac_beacon_cmd
359 	 *	depending on the device version.
360 	 */
361 	BEACON_TEMPLATE_CMD = 0x91,
362 	/**
363 	 * @TX_ANT_CONFIGURATION_CMD: &struct iwl_tx_ant_cfg_cmd
364 	 */
365 	TX_ANT_CONFIGURATION_CMD = 0x98,
366 
367 	/**
368 	 * @STATISTICS_CMD:
369 	 * one of &struct iwl_statistics_cmd,
370 	 * &struct iwl_notif_statistics_v11,
371 	 * &struct iwl_notif_statistics_v10,
372 	 * &struct iwl_notif_statistics,
373 	 * &struct iwl_statistics_operational_ntfy_ver_14
374 	 */
375 	STATISTICS_CMD = 0x9c,
376 
377 	/**
378 	 * @STATISTICS_NOTIFICATION:
379 	 * one of &struct iwl_notif_statistics_v10,
380 	 * &struct iwl_notif_statistics_v11,
381 	 * &struct iwl_notif_statistic,
382 	 * &struct iwl_statistics_operational_ntfy_ver_14
383 	 * &struct iwl_statistics_operational_ntfy
384 	 */
385 	STATISTICS_NOTIFICATION = 0x9d,
386 
387 	/**
388 	 * @EOSP_NOTIFICATION:
389 	 * Notify that a service period ended,
390 	 * &struct iwl_mvm_eosp_notification
391 	 */
392 	EOSP_NOTIFICATION = 0x9e,
393 
394 	/**
395 	 * @REDUCE_TX_POWER_CMD:
396 	 * &struct iwl_dev_tx_power_cmd
397 	 */
398 	REDUCE_TX_POWER_CMD = 0x9f,
399 
400 	/**
401 	 * @MISSED_BEACONS_NOTIFICATION: &struct iwl_missed_beacons_notif
402 	 */
403 	MISSED_BEACONS_NOTIFICATION = 0xa2,
404 
405 	/**
406 	 * @MAC_PM_POWER_TABLE: using &struct iwl_mac_power_cmd
407 	 */
408 	MAC_PM_POWER_TABLE = 0xa9,
409 
410 	/**
411 	 * @MFUART_LOAD_NOTIFICATION: &struct iwl_mfuart_load_notif
412 	 */
413 	MFUART_LOAD_NOTIFICATION = 0xb1,
414 
415 	/**
416 	 * @RSS_CONFIG_CMD: &struct iwl_rss_config_cmd
417 	 */
418 	RSS_CONFIG_CMD = 0xb3,
419 
420 	/**
421 	 * @REPLY_RX_PHY_CMD: &struct iwl_rx_phy_info
422 	 */
423 	REPLY_RX_PHY_CMD = 0xc0,
424 
425 	/**
426 	 * @REPLY_RX_MPDU_CMD:
427 	 * &struct iwl_rx_mpdu_res_start or &struct iwl_rx_mpdu_desc
428 	 */
429 	REPLY_RX_MPDU_CMD = 0xc1,
430 
431 	/**
432 	 * @BAR_FRAME_RELEASE: Frame release from BAR notification, used for
433 	 *	multi-TID BAR (previously, the BAR frame itself was reported
434 	 *	instead). Uses &struct iwl_bar_frame_release.
435 	 */
436 	BAR_FRAME_RELEASE = 0xc2,
437 
438 	/**
439 	 * @FRAME_RELEASE:
440 	 * Frame release (reorder helper) notification, uses
441 	 * &struct iwl_frame_release
442 	 */
443 	FRAME_RELEASE = 0xc3,
444 
445 	/**
446 	 * @BA_NOTIF:
447 	 * BlockAck notification, uses &struct iwl_mvm_compressed_ba_notif
448 	 * or &struct iwl_mvm_ba_notif depending on the HW
449 	 */
450 	BA_NOTIF = 0xc5,
451 
452 	/* Location Aware Regulatory */
453 	/**
454 	 * @MCC_UPDATE_CMD: using &struct iwl_mcc_update_cmd
455 	 */
456 	MCC_UPDATE_CMD = 0xc8,
457 
458 	/**
459 	 * @MCC_CHUB_UPDATE_CMD: using &struct iwl_mcc_chub_notif
460 	 */
461 	MCC_CHUB_UPDATE_CMD = 0xc9,
462 
463 	/**
464 	 * @MARKER_CMD: trace marker command, uses &struct iwl_mvm_marker
465 	 * with &struct iwl_mvm_marker_rsp
466 	 */
467 	MARKER_CMD = 0xcb,
468 
469 	/**
470 	 * @BT_PROFILE_NOTIFICATION: &struct iwl_bt_coex_profile_notif
471 	 */
472 	BT_PROFILE_NOTIFICATION = 0xce,
473 
474 	/**
475 	 * @BT_CONFIG: &struct iwl_bt_coex_cmd
476 	 */
477 	BT_CONFIG = 0x9b,
478 
479 	/**
480 	 * @BT_COEX_UPDATE_REDUCED_TXP:
481 	 * &struct iwl_bt_coex_reduced_txp_update_cmd
482 	 */
483 	BT_COEX_UPDATE_REDUCED_TXP = 0x5c,
484 
485 	/**
486 	 * @BT_COEX_CI: &struct iwl_bt_coex_ci_cmd
487 	 */
488 	BT_COEX_CI = 0x5d,
489 
490 	/**
491 	 * @REPLY_SF_CFG_CMD: &struct iwl_sf_cfg_cmd
492 	 */
493 	REPLY_SF_CFG_CMD = 0xd1,
494 	/**
495 	 * @REPLY_BEACON_FILTERING_CMD: &struct iwl_beacon_filter_cmd
496 	 */
497 	REPLY_BEACON_FILTERING_CMD = 0xd2,
498 
499 	/**
500 	 * @DTS_MEASUREMENT_NOTIFICATION:
501 	 * &struct iwl_dts_measurement_notif_v1 or
502 	 * &struct iwl_dts_measurement_notif_v2
503 	 */
504 	DTS_MEASUREMENT_NOTIFICATION = 0xdd,
505 
506 	/**
507 	 * @LDBG_CONFIG_CMD: configure continuous trace recording
508 	 */
509 	LDBG_CONFIG_CMD = 0xf6,
510 
511 	/**
512 	 * @DEBUG_LOG_MSG: Debugging log data from firmware
513 	 */
514 	DEBUG_LOG_MSG = 0xf7,
515 
516 	/**
517 	 * @MCAST_FILTER_CMD: &struct iwl_mcast_filter_cmd
518 	 */
519 	MCAST_FILTER_CMD = 0xd0,
520 
521 	/**
522 	 * @D3_CONFIG_CMD: &struct iwl_d3_manager_config
523 	 */
524 	D3_CONFIG_CMD = 0xd3,
525 
526 	/**
527 	 * @PROT_OFFLOAD_CONFIG_CMD: Depending on firmware, uses one of
528 	 * &struct iwl_proto_offload_cmd_v1, &struct iwl_proto_offload_cmd_v2,
529 	 * &struct iwl_proto_offload_cmd_v3_small,
530 	 * &struct iwl_proto_offload_cmd_v3_large
531 	 */
532 	PROT_OFFLOAD_CONFIG_CMD = 0xd4,
533 
534 	/**
535 	 * @D0I3_END_CMD: End D0i3/D3 state, no command data
536 	 */
537 	D0I3_END_CMD = 0xed,
538 
539 	/**
540 	 * @WOWLAN_PATTERNS: &struct iwl_wowlan_patterns_cmd
541 	 */
542 	WOWLAN_PATTERNS = 0xe0,
543 
544 	/**
545 	 * @WOWLAN_CONFIGURATION: &struct iwl_wowlan_config_cmd
546 	 */
547 	WOWLAN_CONFIGURATION = 0xe1,
548 
549 	/**
550 	 * @WOWLAN_TSC_RSC_PARAM: &struct iwl_wowlan_rsc_tsc_params_cmd_v4,
551 	 *	&struct iwl_wowlan_rsc_tsc_params_cmd
552 	 */
553 	WOWLAN_TSC_RSC_PARAM = 0xe2,
554 
555 	/**
556 	 * @WOWLAN_TKIP_PARAM: &struct iwl_wowlan_tkip_params_cmd
557 	 */
558 	WOWLAN_TKIP_PARAM = 0xe3,
559 
560 	/**
561 	 * @WOWLAN_KEK_KCK_MATERIAL: &struct iwl_wowlan_kek_kck_material_cmd_v2,
562 	 * &struct iwl_wowlan_kek_kck_material_cmd_v3 or
563 	 * &struct iwl_wowlan_kek_kck_material_cmd_v4
564 	 */
565 	WOWLAN_KEK_KCK_MATERIAL = 0xe4,
566 
567 	/**
568 	 * @WOWLAN_GET_STATUSES: response in &struct iwl_wowlan_status_v6,
569 	 *	&struct iwl_wowlan_status_v7, &struct iwl_wowlan_status_v9 or
570 	 *	&struct iwl_wowlan_status_v12
571 	 */
572 	WOWLAN_GET_STATUSES = 0xe5,
573 
574 	/**
575 	 * @SCAN_OFFLOAD_PROFILES_QUERY_CMD: No command data, response is
576 	 *	&struct iwl_scan_offload_profiles_query_v1
577 	 */
578 	SCAN_OFFLOAD_PROFILES_QUERY_CMD = 0x56,
579 };
580 
581 /**
582  * enum iwl_system_subcmd_ids - system group command IDs
583  */
584 enum iwl_system_subcmd_ids {
585 	/**
586 	 * @SHARED_MEM_CFG_CMD:
587 	 * response in &struct iwl_shared_mem_cfg or
588 	 * &struct iwl_shared_mem_cfg_v2
589 	 */
590 	SHARED_MEM_CFG_CMD = 0x0,
591 
592 	/**
593 	 * @SOC_CONFIGURATION_CMD: &struct iwl_soc_configuration_cmd
594 	 */
595 	SOC_CONFIGURATION_CMD = 0x01,
596 
597 	/**
598 	 * @INIT_EXTENDED_CFG_CMD: &struct iwl_init_extended_cfg_cmd
599 	 */
600 	INIT_EXTENDED_CFG_CMD = 0x03,
601 
602 	/**
603 	 * @FW_ERROR_RECOVERY_CMD: &struct iwl_fw_error_recovery_cmd
604 	 */
605 	FW_ERROR_RECOVERY_CMD = 0x7,
606 
607 	/**
608 	 * @RFI_CONFIG_CMD: &struct iwl_rfi_config_cmd
609 	 */
610 	RFI_CONFIG_CMD = 0xb,
611 
612 	/**
613 	 * @RFI_GET_FREQ_TABLE_CMD: &struct iwl_rfi_config_cmd
614 	 */
615 	RFI_GET_FREQ_TABLE_CMD = 0xc,
616 
617 	/**
618 	 * @SYSTEM_FEATURES_CONTROL_CMD: &struct iwl_system_features_control_cmd
619 	 */
620 	SYSTEM_FEATURES_CONTROL_CMD = 0xd,
621 
622 	/**
623 	 * @SYSTEM_STATISTICS_CMD: &struct iwl_system_statistics_cmd
624 	 */
625 	SYSTEM_STATISTICS_CMD = 0xf,
626 
627 	/**
628 	 * @SYSTEM_STATISTICS_END_NOTIF: &struct iwl_system_statistics_end_notif
629 	 */
630 	SYSTEM_STATISTICS_END_NOTIF = 0xfd,
631 
632 	/**
633 	 * @RFI_DEACTIVATE_NOTIF: &struct iwl_rfi_deactivate_notif
634 	 */
635 	RFI_DEACTIVATE_NOTIF = 0xff,
636 };
637 
638 /**
639  * enum iwl_statistics_subcmd_ids - Statistics group command IDs
640  */
641 enum iwl_statistics_subcmd_ids {
642 	/**
643 	 * @STATISTICS_OPER_NOTIF: Notification about operational
644 	 *	statistics &struct iwl_system_statistics_notif_oper
645 	 */
646 	STATISTICS_OPER_NOTIF = 0x0,
647 
648 	/**
649 	 * @STATISTICS_OPER_PART1_NOTIF: Notification about operational part1
650 	 *	statistics &struct iwl_system_statistics_part1_notif_oper
651 	 */
652 	STATISTICS_OPER_PART1_NOTIF = 0x1,
653 };
654 
655 #endif /* __iwl_fw_api_commands_h__ */
656