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 */
36enum 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 */
55enum 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 */
584enum 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 */
641enum 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