Loading...
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__ */
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__ */