Linux Audio

Check our new training course

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