Linux Audio

Check our new training course

Loading...
v6.13.7
  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 */
 38enum 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 */
 58enum 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 */
587enum 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 */
644enum 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__ */
v5.9
  1/******************************************************************************
  2 *
  3 * This file is provided under a dual BSD/GPLv2 license.  When using or
  4 * redistributing this file, you may do so under either license.
  5 *
  6 * GPL LICENSE SUMMARY
  7 *
  8 * Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
  9 * Copyright(c) 2016 - 2017 Intel Deutschland GmbH
 10 * Copyright(c) 2012 - 2014, 2020 Intel Corporation
 11 *
 12 * This program is free software; you can redistribute it and/or modify
 13 * it under the terms of version 2 of the GNU General Public License as
 14 * published by the Free Software Foundation.
 15 *
 16 * This program is distributed in the hope that it will be useful, but
 17 * WITHOUT ANY WARRANTY; without even the implied warranty of
 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 19 * General Public License for more details.
 20 *
 21 * The full GNU General Public License is included in this distribution
 22 * in the file called COPYING.
 23 *
 24 * Contact Information:
 25 *  Intel Linux Wireless <linuxwifi@intel.com>
 26 * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
 27 *
 28 * BSD LICENSE
 29 *
 30 * Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
 31 * Copyright(c) 2016 - 2017 Intel Deutschland GmbH
 32 * Copyright(c) 2012 - 2014, 2020 Intel Corporation
 33 * All rights reserved.
 34 *
 35 * Redistribution and use in source and binary forms, with or without
 36 * modification, are permitted provided that the following conditions
 37 * are met:
 38 *
 39 *  * Redistributions of source code must retain the above copyright
 40 *    notice, this list of conditions and the following disclaimer.
 41 *  * Redistributions in binary form must reproduce the above copyright
 42 *    notice, this list of conditions and the following disclaimer in
 43 *    the documentation and/or other materials provided with the
 44 *    distribution.
 45 *  * Neither the name Intel Corporation nor the names of its
 46 *    contributors may be used to endorse or promote products derived
 47 *    from this software without specific prior written permission.
 48 *
 49 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 50 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 51 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 52 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 53 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 54 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 55 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 56 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 57 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 58 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 59 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 60 *
 61 *****************************************************************************/
 62
 63#ifndef __iwl_fw_api_commands_h__
 64#define __iwl_fw_api_commands_h__
 65
 66/**
 67 * enum iwl_mvm_command_groups - command groups for the firmware
 68 * @LEGACY_GROUP: legacy group, uses command IDs from &enum iwl_legacy_cmds
 69 * @LONG_GROUP: legacy group with long header, also uses command IDs
 70 *	from &enum iwl_legacy_cmds
 71 * @SYSTEM_GROUP: system group, uses command IDs from
 72 *	&enum iwl_system_subcmd_ids
 73 * @MAC_CONF_GROUP: MAC configuration group, uses command IDs from
 74 *	&enum iwl_mac_conf_subcmd_ids
 75 * @PHY_OPS_GROUP: PHY operations group, uses command IDs from
 76 *	&enum iwl_phy_ops_subcmd_ids
 77 * @DATA_PATH_GROUP: data path group, uses command IDs from
 78 *	&enum iwl_data_path_subcmd_ids
 
 
 79 * @NAN_GROUP: NAN group, uses command IDs from &enum iwl_nan_subcmd_ids
 80 * @LOCATION_GROUP: location group, uses command IDs from
 81 *	&enum iwl_location_subcmd_ids
 
 
 82 * @PROT_OFFLOAD_GROUP: protocol offload group, uses command IDs from
 83 *	&enum iwl_prot_offload_subcmd_ids
 84 * @REGULATORY_AND_NVM_GROUP: regulatory/NVM group, uses command IDs from
 85 *	&enum iwl_regulatory_and_nvm_subcmd_ids
 86 * @DEBUG_GROUP: Debug group, uses command IDs from &enum iwl_debug_cmds
 
 
 87 */
 88enum iwl_mvm_command_groups {
 89	LEGACY_GROUP = 0x0,
 90	LONG_GROUP = 0x1,
 91	SYSTEM_GROUP = 0x2,
 92	MAC_CONF_GROUP = 0x3,
 93	PHY_OPS_GROUP = 0x4,
 94	DATA_PATH_GROUP = 0x5,
 
 95	NAN_GROUP = 0x7,
 96	LOCATION_GROUP = 0x8,
 
 97	PROT_OFFLOAD_GROUP = 0xb,
 98	REGULATORY_AND_NVM_GROUP = 0xc,
 99	DEBUG_GROUP = 0xf,
 
100};
101
102/**
103 * enum iwl_legacy_cmds - legacy group command IDs
104 */
105enum iwl_legacy_cmds {
106	/**
107	 * @MVM_ALIVE:
108	 * Alive data from the firmware, as described in
109	 * &struct mvm_alive_resp_v3 or &struct mvm_alive_resp.
 
110	 */
111	MVM_ALIVE = 0x1,
112
113	/**
114	 * @REPLY_ERROR: Cause an error in the firmware, for testing purposes.
115	 */
116	REPLY_ERROR = 0x2,
117
118	/**
119	 * @ECHO_CMD: Send data to the device to have it returned immediately.
120	 */
121	ECHO_CMD = 0x3,
122
123	/**
124	 * @INIT_COMPLETE_NOTIF: Notification that initialization is complete.
125	 */
126	INIT_COMPLETE_NOTIF = 0x4,
127
128	/**
129	 * @PHY_CONTEXT_CMD:
130	 * Add/modify/remove a PHY context, using &struct iwl_phy_context_cmd.
 
131	 */
132	PHY_CONTEXT_CMD = 0x8,
133
134	/**
135	 * @DBG_CFG: Debug configuration command.
136	 */
137	DBG_CFG = 0x9,
138
139	/**
140	 * @SCAN_ITERATION_COMPLETE_UMAC:
141	 * Firmware indicates a scan iteration completed, using
142	 * &struct iwl_umac_scan_iter_complete_notif.
143	 */
144	SCAN_ITERATION_COMPLETE_UMAC = 0xb5,
145
146	/**
147	 * @SCAN_CFG_CMD:
148	 * uses &struct iwl_scan_config_v1 or &struct iwl_scan_config
 
149	 */
150	SCAN_CFG_CMD = 0xc,
151
152	/**
153	 * @SCAN_REQ_UMAC: uses &struct iwl_scan_req_umac
154	 */
155	SCAN_REQ_UMAC = 0xd,
156
157	/**
158	 * @SCAN_ABORT_UMAC: uses &struct iwl_umac_scan_abort
159	 */
160	SCAN_ABORT_UMAC = 0xe,
161
162	/**
163	 * @SCAN_COMPLETE_UMAC: uses &struct iwl_umac_scan_complete
164	 */
165	SCAN_COMPLETE_UMAC = 0xf,
166
167	/**
168	 * @BA_WINDOW_STATUS_NOTIFICATION_ID:
169	 * uses &struct iwl_ba_window_status_notif
170	 */
171	BA_WINDOW_STATUS_NOTIFICATION_ID = 0x13,
172
173	/**
174	 * @ADD_STA_KEY:
175	 * &struct iwl_mvm_add_sta_key_cmd_v1 or
176	 * &struct iwl_mvm_add_sta_key_cmd.
177	 */
178	ADD_STA_KEY = 0x17,
179
180	/**
181	 * @ADD_STA:
182	 * &struct iwl_mvm_add_sta_cmd or &struct iwl_mvm_add_sta_cmd_v7.
183	 */
184	ADD_STA = 0x18,
185
186	/**
187	 * @REMOVE_STA: &struct iwl_mvm_rm_sta_cmd
188	 */
189	REMOVE_STA = 0x19,
190
191	/**
192	 * @FW_GET_ITEM_CMD: uses &struct iwl_fw_get_item_cmd
193	 */
194	FW_GET_ITEM_CMD = 0x1a,
195
196	/**
197	 * @TX_CMD: uses &struct iwl_tx_cmd or &struct iwl_tx_cmd_gen2 or
198	 *	&struct iwl_tx_cmd_gen3,
199	 *	response in &struct iwl_mvm_tx_resp or
200	 *	&struct iwl_mvm_tx_resp_v3
201	 */
202	TX_CMD = 0x1c,
203
204	/**
205	 * @TXPATH_FLUSH: &struct iwl_tx_path_flush_cmd
 
206	 */
207	TXPATH_FLUSH = 0x1e,
208
209	/**
210	 * @MGMT_MCAST_KEY:
211	 * &struct iwl_mvm_mgmt_mcast_key_cmd or
212	 * &struct iwl_mvm_mgmt_mcast_key_cmd_v1
213	 */
214	MGMT_MCAST_KEY = 0x1f,
215
216	/* scheduler config */
217	/**
218	 * @SCD_QUEUE_CFG: &struct iwl_scd_txq_cfg_cmd for older hardware,
219	 *	&struct iwl_tx_queue_cfg_cmd with &struct iwl_tx_queue_cfg_rsp
220	 *	for newer (22000) hardware.
221	 */
222	SCD_QUEUE_CFG = 0x1d,
223
224	/**
225	 * @WEP_KEY: uses &struct iwl_mvm_wep_key_cmd
226	 */
227	WEP_KEY = 0x20,
228
229	/**
230	 * @SHARED_MEM_CFG:
231	 * retrieve shared memory configuration - response in
232	 * &struct iwl_shared_mem_cfg
233	 */
234	SHARED_MEM_CFG = 0x25,
235
236	/**
237	 * @TDLS_CHANNEL_SWITCH_CMD: uses &struct iwl_tdls_channel_switch_cmd
238	 */
239	TDLS_CHANNEL_SWITCH_CMD = 0x27,
240
241	/**
242	 * @TDLS_CHANNEL_SWITCH_NOTIFICATION:
243	 * uses &struct iwl_tdls_channel_switch_notif
244	 */
245	TDLS_CHANNEL_SWITCH_NOTIFICATION = 0xaa,
246
247	/**
248	 * @TDLS_CONFIG_CMD:
249	 * &struct iwl_tdls_config_cmd, response in &struct iwl_tdls_config_res
250	 */
251	TDLS_CONFIG_CMD = 0xa7,
252
253	/**
254	 * @MAC_CONTEXT_CMD: &struct iwl_mac_ctx_cmd
255	 */
256	MAC_CONTEXT_CMD = 0x28,
257
258	/**
259	 * @TIME_EVENT_CMD:
260	 * &struct iwl_time_event_cmd, response in &struct iwl_time_event_resp
261	 */
262	TIME_EVENT_CMD = 0x29, /* both CMD and response */
263
264	/**
265	 * @TIME_EVENT_NOTIFICATION: &struct iwl_time_event_notif
266	 */
267	TIME_EVENT_NOTIFICATION = 0x2a,
268
269	/**
270	 * @BINDING_CONTEXT_CMD:
271	 * &struct iwl_binding_cmd or &struct iwl_binding_cmd_v1
272	 */
273	BINDING_CONTEXT_CMD = 0x2b,
274
275	/**
276	 * @TIME_QUOTA_CMD: &struct iwl_time_quota_cmd
277	 */
278	TIME_QUOTA_CMD = 0x2c,
279
280	/**
281	 * @NON_QOS_TX_COUNTER_CMD:
282	 * command is &struct iwl_nonqos_seq_query_cmd
283	 */
284	NON_QOS_TX_COUNTER_CMD = 0x2d,
285
286	/**
287	 * @LEDS_CMD: command is &struct iwl_led_cmd
288	 */
289	LEDS_CMD = 0x48,
290
291	/**
292	 * @LQ_CMD: using &struct iwl_lq_cmd
293	 */
294	LQ_CMD = 0x4e,
295
296	/**
297	 * @FW_PAGING_BLOCK_CMD:
298	 * &struct iwl_fw_paging_cmd
299	 */
300	FW_PAGING_BLOCK_CMD = 0x4f,
301
302	/**
303	 * @SCAN_OFFLOAD_REQUEST_CMD: uses &struct iwl_scan_req_lmac
304	 */
305	SCAN_OFFLOAD_REQUEST_CMD = 0x51,
306
307	/**
308	 * @SCAN_OFFLOAD_ABORT_CMD: abort the scan - no further contents
309	 */
310	SCAN_OFFLOAD_ABORT_CMD = 0x52,
311
312	/**
313	 * @HOT_SPOT_CMD: uses &struct iwl_hs20_roc_req
314	 */
315	HOT_SPOT_CMD = 0x53,
316
317	/**
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
318	 * @SCAN_OFFLOAD_COMPLETE:
319	 * notification, &struct iwl_periodic_scan_complete
320	 */
321	SCAN_OFFLOAD_COMPLETE = 0x6D,
322
323	/**
324	 * @SCAN_OFFLOAD_UPDATE_PROFILES_CMD:
325	 * update scan offload (scheduled scan) profiles/blacklist/etc.
326	 */
327	SCAN_OFFLOAD_UPDATE_PROFILES_CMD = 0x6E,
328
329	/**
330	 * @MATCH_FOUND_NOTIFICATION: scan match found
331	 */
332	MATCH_FOUND_NOTIFICATION = 0xd9,
333
334	/**
335	 * @SCAN_ITERATION_COMPLETE:
336	 * uses &struct iwl_lmac_scan_complete_notif
337	 */
338	SCAN_ITERATION_COMPLETE = 0xe7,
339
340	/* Phy */
341	/**
342	 * @PHY_CONFIGURATION_CMD: &struct iwl_phy_cfg_cmd
343	 */
344	PHY_CONFIGURATION_CMD = 0x6a,
345
346	/**
347	 * @CALIB_RES_NOTIF_PHY_DB: &struct iwl_calib_res_notif_phy_db
348	 */
349	CALIB_RES_NOTIF_PHY_DB = 0x6b,
350
351	/**
352	 * @PHY_DB_CMD: &struct iwl_phy_db_cmd
353	 */
354	PHY_DB_CMD = 0x6c,
355
356	/**
357	 * @POWER_TABLE_CMD: &struct iwl_device_power_cmd
358	 */
359	POWER_TABLE_CMD = 0x77,
360
361	/**
362	 * @PSM_UAPSD_AP_MISBEHAVING_NOTIFICATION:
363	 * &struct iwl_uapsd_misbehaving_ap_notif
364	 */
365	PSM_UAPSD_AP_MISBEHAVING_NOTIFICATION = 0x78,
366
367	/**
368	 * @LTR_CONFIG: &struct iwl_ltr_config_cmd
369	 */
370	LTR_CONFIG = 0xee,
371
372	/**
373	 * @REPLY_THERMAL_MNG_BACKOFF:
374	 * Thermal throttling command
375	 */
376	REPLY_THERMAL_MNG_BACKOFF = 0x7e,
377
378	/**
379	 * @DC2DC_CONFIG_CMD:
380	 * Set/Get DC2DC frequency tune
381	 * Command is &struct iwl_dc2dc_config_cmd,
382	 * response is &struct iwl_dc2dc_config_resp
383	 */
384	DC2DC_CONFIG_CMD = 0x83,
385
386	/**
387	 * @NVM_ACCESS_CMD: using &struct iwl_nvm_access_cmd
388	 */
389	NVM_ACCESS_CMD = 0x88,
390
391	/**
392	 * @BEACON_NOTIFICATION: &struct iwl_extended_beacon_notif
393	 */
394	BEACON_NOTIFICATION = 0x90,
395
396	/**
397	 * @BEACON_TEMPLATE_CMD:
398	 *	Uses one of &struct iwl_mac_beacon_cmd_v6,
399	 *	&struct iwl_mac_beacon_cmd_v7 or &struct iwl_mac_beacon_cmd
400	 *	depending on the device version.
401	 */
402	BEACON_TEMPLATE_CMD = 0x91,
403	/**
404	 * @TX_ANT_CONFIGURATION_CMD: &struct iwl_tx_ant_cfg_cmd
405	 */
406	TX_ANT_CONFIGURATION_CMD = 0x98,
407
408	/**
409	 * @STATISTICS_CMD:
410	 * one of &struct iwl_statistics_cmd,
411	 * &struct iwl_notif_statistics_v11,
412	 * &struct iwl_notif_statistics_v10,
413	 * &struct iwl_notif_statistics
 
414	 */
415	STATISTICS_CMD = 0x9c,
416
417	/**
418	 * @STATISTICS_NOTIFICATION:
419	 * one of &struct iwl_notif_statistics_v10,
420	 * &struct iwl_notif_statistics_v11,
421	 * &struct iwl_notif_statistics
 
 
422	 */
423	STATISTICS_NOTIFICATION = 0x9d,
424
425	/**
426	 * @EOSP_NOTIFICATION:
427	 * Notify that a service period ended,
428	 * &struct iwl_mvm_eosp_notification
429	 */
430	EOSP_NOTIFICATION = 0x9e,
431
432	/**
433	 * @REDUCE_TX_POWER_CMD:
434	 * &struct iwl_dev_tx_power_cmd_v3 or &struct iwl_dev_tx_power_cmd_v4
435	 * or &struct iwl_dev_tx_power_cmd
436	 */
437	REDUCE_TX_POWER_CMD = 0x9f,
438
439	/**
440	 * @CARD_STATE_NOTIFICATION:
441	 * Card state (RF/CT kill) notification,
442	 * uses &struct iwl_card_state_notif
443	 */
444	CARD_STATE_NOTIFICATION = 0xa1,
445
446	/**
447	 * @MISSED_BEACONS_NOTIFICATION: &struct iwl_missed_beacons_notif
448	 */
449	MISSED_BEACONS_NOTIFICATION = 0xa2,
450
451	/**
452	 * @MAC_PM_POWER_TABLE: using &struct iwl_mac_power_cmd
453	 */
454	MAC_PM_POWER_TABLE = 0xa9,
455
456	/**
457	 * @MFUART_LOAD_NOTIFICATION: &struct iwl_mfuart_load_notif
458	 */
459	MFUART_LOAD_NOTIFICATION = 0xb1,
460
461	/**
462	 * @RSS_CONFIG_CMD: &struct iwl_rss_config_cmd
463	 */
464	RSS_CONFIG_CMD = 0xb3,
465
466	/**
467	 * @REPLY_RX_PHY_CMD: &struct iwl_rx_phy_info
468	 */
469	REPLY_RX_PHY_CMD = 0xc0,
470
471	/**
472	 * @REPLY_RX_MPDU_CMD:
473	 * &struct iwl_rx_mpdu_res_start or &struct iwl_rx_mpdu_desc
474	 */
475	REPLY_RX_MPDU_CMD = 0xc1,
476
477	/**
478	 * @BAR_FRAME_RELEASE: Frame release from BAR notification, used for
479	 *	multi-TID BAR (previously, the BAR frame itself was reported
480	 *	instead). Uses &struct iwl_bar_frame_release.
481	 */
482	BAR_FRAME_RELEASE = 0xc2,
483
484	/**
485	 * @FRAME_RELEASE:
486	 * Frame release (reorder helper) notification, uses
487	 * &struct iwl_frame_release
488	 */
489	FRAME_RELEASE = 0xc3,
490
491	/**
492	 * @BA_NOTIF:
493	 * BlockAck notification, uses &struct iwl_mvm_compressed_ba_notif
494	 * or &struct iwl_mvm_ba_notif depending on the HW
495	 */
496	BA_NOTIF = 0xc5,
497
498	/* Location Aware Regulatory */
499	/**
500	 * @MCC_UPDATE_CMD: using &struct iwl_mcc_update_cmd
501	 */
502	MCC_UPDATE_CMD = 0xc8,
503
504	/**
505	 * @MCC_CHUB_UPDATE_CMD: using &struct iwl_mcc_chub_notif
506	 */
507	MCC_CHUB_UPDATE_CMD = 0xc9,
508
509	/**
510	 * @MARKER_CMD: trace marker command, uses &struct iwl_mvm_marker
511	 * with &struct iwl_mvm_marker_rsp
512	 */
513	MARKER_CMD = 0xcb,
514
515	/**
516	 * @BT_PROFILE_NOTIFICATION: &struct iwl_bt_coex_profile_notif
517	 */
518	BT_PROFILE_NOTIFICATION = 0xce,
519
520	/**
521	 * @BT_CONFIG: &struct iwl_bt_coex_cmd
522	 */
523	BT_CONFIG = 0x9b,
524
525	/**
526	 * @BT_COEX_UPDATE_REDUCED_TXP:
527	 * &struct iwl_bt_coex_reduced_txp_update_cmd
528	 */
529	BT_COEX_UPDATE_REDUCED_TXP = 0x5c,
530
531	/**
532	 * @BT_COEX_CI: &struct iwl_bt_coex_ci_cmd
533	 */
534	BT_COEX_CI = 0x5d,
535
536	/**
537	 * @REPLY_SF_CFG_CMD: &struct iwl_sf_cfg_cmd
538	 */
539	REPLY_SF_CFG_CMD = 0xd1,
540	/**
541	 * @REPLY_BEACON_FILTERING_CMD: &struct iwl_beacon_filter_cmd
542	 */
543	REPLY_BEACON_FILTERING_CMD = 0xd2,
544
545	/**
546	 * @DTS_MEASUREMENT_NOTIFICATION:
547	 * &struct iwl_dts_measurement_notif_v1 or
548	 * &struct iwl_dts_measurement_notif_v2
549	 */
550	DTS_MEASUREMENT_NOTIFICATION = 0xdd,
551
552	/**
553	 * @LDBG_CONFIG_CMD: configure continuous trace recording
554	 */
555	LDBG_CONFIG_CMD = 0xf6,
556
557	/**
558	 * @DEBUG_LOG_MSG: Debugging log data from firmware
559	 */
560	DEBUG_LOG_MSG = 0xf7,
561
562	/**
563	 * @BCAST_FILTER_CMD: &struct iwl_bcast_filter_cmd
564	 */
565	BCAST_FILTER_CMD = 0xcf,
566
567	/**
568	 * @MCAST_FILTER_CMD: &struct iwl_mcast_filter_cmd
569	 */
570	MCAST_FILTER_CMD = 0xd0,
571
572	/**
573	 * @D3_CONFIG_CMD: &struct iwl_d3_manager_config
574	 */
575	D3_CONFIG_CMD = 0xd3,
576
577	/**
578	 * @PROT_OFFLOAD_CONFIG_CMD: Depending on firmware, uses one of
579	 * &struct iwl_proto_offload_cmd_v1, &struct iwl_proto_offload_cmd_v2,
580	 * &struct iwl_proto_offload_cmd_v3_small,
581	 * &struct iwl_proto_offload_cmd_v3_large
582	 */
583	PROT_OFFLOAD_CONFIG_CMD = 0xd4,
584
585	/**
586	 * @OFFLOADS_QUERY_CMD:
587	 * No data in command, response in &struct iwl_wowlan_status
588	 */
589	OFFLOADS_QUERY_CMD = 0xd5,
590
591	/**
592	 * @REMOTE_WAKE_CONFIG_CMD: &struct iwl_wowlan_remote_wake_config
593	 */
594	REMOTE_WAKE_CONFIG_CMD = 0xd6,
595
596	/**
597	 * @D0I3_END_CMD: End D0i3/D3 state, no command data
598	 */
599	D0I3_END_CMD = 0xed,
600
601	/**
602	 * @WOWLAN_PATTERNS: &struct iwl_wowlan_patterns_cmd
603	 */
604	WOWLAN_PATTERNS = 0xe0,
605
606	/**
607	 * @WOWLAN_CONFIGURATION: &struct iwl_wowlan_config_cmd
608	 */
609	WOWLAN_CONFIGURATION = 0xe1,
610
611	/**
612	 * @WOWLAN_TSC_RSC_PARAM: &struct iwl_wowlan_rsc_tsc_params_cmd
 
613	 */
614	WOWLAN_TSC_RSC_PARAM = 0xe2,
615
616	/**
617	 * @WOWLAN_TKIP_PARAM: &struct iwl_wowlan_tkip_params_cmd
618	 */
619	WOWLAN_TKIP_PARAM = 0xe3,
620
621	/**
622	 * @WOWLAN_KEK_KCK_MATERIAL: &struct iwl_wowlan_kek_kck_material_cmd
 
 
623	 */
624	WOWLAN_KEK_KCK_MATERIAL = 0xe4,
625
626	/**
627	 * @WOWLAN_GET_STATUSES: response in &struct iwl_wowlan_status
 
 
628	 */
629	WOWLAN_GET_STATUSES = 0xe5,
630
631	/**
632	 * @SCAN_OFFLOAD_PROFILES_QUERY_CMD:
633	 * No command data, response is &struct iwl_scan_offload_profiles_query
634	 */
635	SCAN_OFFLOAD_PROFILES_QUERY_CMD = 0x56,
636};
637
638/**
639 * enum iwl_system_subcmd_ids - system group command IDs
640 */
641enum iwl_system_subcmd_ids {
642	/**
643	 * @SHARED_MEM_CFG_CMD:
644	 * response in &struct iwl_shared_mem_cfg or
645	 * &struct iwl_shared_mem_cfg_v2
646	 */
647	SHARED_MEM_CFG_CMD = 0x0,
648
649	/**
650	 * @SOC_CONFIGURATION_CMD: &struct iwl_soc_configuration_cmd
651	 */
652	SOC_CONFIGURATION_CMD = 0x01,
653
654	/**
655	 * @INIT_EXTENDED_CFG_CMD: &struct iwl_init_extended_cfg_cmd
656	 */
657	INIT_EXTENDED_CFG_CMD = 0x03,
658
659	/**
660	 * @FW_ERROR_RECOVERY_CMD: &struct iwl_fw_error_recovery_cmd
661	 */
662	FW_ERROR_RECOVERY_CMD = 0x7,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
663};
664
665#endif /* __iwl_fw_api_commands_h__ */