18e99ea8dSJohannes Berg /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */ 28e99ea8dSJohannes Berg /* 38e99ea8dSJohannes Berg * Copyright (C) 2013-2015 Intel Mobile Communications GmbH 48e99ea8dSJohannes Berg * Copyright (C) 2016-2017 Intel Deutschland GmbH 55ac54afdSIlan Peer * Copyright (C) 2018-2022 Intel Corporation 68e99ea8dSJohannes Berg */ 7d172a5efSJohannes Berg #ifndef __iwl_fw_api_commands_h__ 8d172a5efSJohannes Berg #define __iwl_fw_api_commands_h__ 9d172a5efSJohannes Berg 10d172a5efSJohannes Berg /** 11d172a5efSJohannes Berg * enum iwl_mvm_command_groups - command groups for the firmware 12d172a5efSJohannes Berg * @LEGACY_GROUP: legacy group, uses command IDs from &enum iwl_legacy_cmds 13d172a5efSJohannes Berg * @LONG_GROUP: legacy group with long header, also uses command IDs 14d172a5efSJohannes Berg * from &enum iwl_legacy_cmds 15d172a5efSJohannes Berg * @SYSTEM_GROUP: system group, uses command IDs from 16d172a5efSJohannes Berg * &enum iwl_system_subcmd_ids 17d172a5efSJohannes Berg * @MAC_CONF_GROUP: MAC configuration group, uses command IDs from 18d172a5efSJohannes Berg * &enum iwl_mac_conf_subcmd_ids 19d172a5efSJohannes Berg * @PHY_OPS_GROUP: PHY operations group, uses command IDs from 20d172a5efSJohannes Berg * &enum iwl_phy_ops_subcmd_ids 21d172a5efSJohannes Berg * @DATA_PATH_GROUP: data path group, uses command IDs from 22d172a5efSJohannes Berg * &enum iwl_data_path_subcmd_ids 235ac54afdSIlan Peer * @SCAN_GROUP: scan group, uses command IDs from 245ac54afdSIlan Peer * &enum iwl_scan_subcmd_ids 25d172a5efSJohannes Berg * @NAN_GROUP: NAN group, uses command IDs from &enum iwl_nan_subcmd_ids 266c161980SJohannes Berg * @LOCATION_GROUP: location group, uses command IDs from 276c161980SJohannes Berg * &enum iwl_location_subcmd_ids 28d172a5efSJohannes Berg * @PROT_OFFLOAD_GROUP: protocol offload group, uses command IDs from 29d172a5efSJohannes Berg * &enum iwl_prot_offload_subcmd_ids 30d172a5efSJohannes Berg * @REGULATORY_AND_NVM_GROUP: regulatory/NVM group, uses command IDs from 31d172a5efSJohannes Berg * &enum iwl_regulatory_and_nvm_subcmd_ids 32d172a5efSJohannes Berg * @DEBUG_GROUP: Debug group, uses command IDs from &enum iwl_debug_cmds 33d172a5efSJohannes Berg */ 34d172a5efSJohannes Berg enum iwl_mvm_command_groups { 35d172a5efSJohannes Berg LEGACY_GROUP = 0x0, 36d172a5efSJohannes Berg LONG_GROUP = 0x1, 37d172a5efSJohannes Berg SYSTEM_GROUP = 0x2, 38d172a5efSJohannes Berg MAC_CONF_GROUP = 0x3, 39d172a5efSJohannes Berg PHY_OPS_GROUP = 0x4, 40d172a5efSJohannes Berg DATA_PATH_GROUP = 0x5, 415ac54afdSIlan Peer SCAN_GROUP = 0x6, 42d172a5efSJohannes Berg NAN_GROUP = 0x7, 436c161980SJohannes Berg LOCATION_GROUP = 0x8, 44d172a5efSJohannes Berg PROT_OFFLOAD_GROUP = 0xb, 45d172a5efSJohannes Berg REGULATORY_AND_NVM_GROUP = 0xc, 46d172a5efSJohannes Berg DEBUG_GROUP = 0xf, 47d172a5efSJohannes Berg }; 48d172a5efSJohannes Berg 49d172a5efSJohannes Berg /** 50d172a5efSJohannes Berg * enum iwl_legacy_cmds - legacy group command IDs 51d172a5efSJohannes Berg */ 52d172a5efSJohannes Berg enum iwl_legacy_cmds { 53d172a5efSJohannes Berg /** 549422b978SLuca Coelho * @UCODE_ALIVE_NTFY: 55d172a5efSJohannes Berg * Alive data from the firmware, as described in 569422b978SLuca Coelho * &struct iwl_alive_ntf_v3 or &struct iwl_alive_ntf_v4 or 57708d8c53SJohannes Berg * &struct iwl_alive_ntf_v5 or &struct iwl_alive_ntf_v6. 58d172a5efSJohannes Berg */ 599422b978SLuca Coelho UCODE_ALIVE_NTFY = 0x1, 60d172a5efSJohannes Berg 61d172a5efSJohannes Berg /** 62d172a5efSJohannes Berg * @REPLY_ERROR: Cause an error in the firmware, for testing purposes. 63d172a5efSJohannes Berg */ 64d172a5efSJohannes Berg REPLY_ERROR = 0x2, 65d172a5efSJohannes Berg 66d172a5efSJohannes Berg /** 67d172a5efSJohannes Berg * @ECHO_CMD: Send data to the device to have it returned immediately. 68d172a5efSJohannes Berg */ 69d172a5efSJohannes Berg ECHO_CMD = 0x3, 70d172a5efSJohannes Berg 71d172a5efSJohannes Berg /** 72d172a5efSJohannes Berg * @INIT_COMPLETE_NOTIF: Notification that initialization is complete. 73d172a5efSJohannes Berg */ 74d172a5efSJohannes Berg INIT_COMPLETE_NOTIF = 0x4, 75d172a5efSJohannes Berg 76d172a5efSJohannes Berg /** 77d172a5efSJohannes Berg * @PHY_CONTEXT_CMD: 78f4340bafSJohannes Berg * Add/modify/remove a PHY context, using &struct iwl_phy_context_cmd 79f4340bafSJohannes Berg * or &struct iwl_phy_context_cmd_v1. 80d172a5efSJohannes Berg */ 81d172a5efSJohannes Berg PHY_CONTEXT_CMD = 0x8, 82d172a5efSJohannes Berg 83d172a5efSJohannes Berg /** 84d172a5efSJohannes Berg * @DBG_CFG: Debug configuration command. 85d172a5efSJohannes Berg */ 86d172a5efSJohannes Berg DBG_CFG = 0x9, 87d172a5efSJohannes Berg 88d172a5efSJohannes Berg /** 89d172a5efSJohannes Berg * @SCAN_ITERATION_COMPLETE_UMAC: 90d172a5efSJohannes Berg * Firmware indicates a scan iteration completed, using 91d172a5efSJohannes Berg * &struct iwl_umac_scan_iter_complete_notif. 92d172a5efSJohannes Berg */ 93d172a5efSJohannes Berg SCAN_ITERATION_COMPLETE_UMAC = 0xb5, 94d172a5efSJohannes Berg 95d172a5efSJohannes Berg /** 96d172a5efSJohannes Berg * @SCAN_CFG_CMD: 970c912045SJohannes Berg * uses &struct iwl_scan_config_v1, &struct iwl_scan_config_v2 980c912045SJohannes Berg * or &struct iwl_scan_config 99d172a5efSJohannes Berg */ 100d172a5efSJohannes Berg SCAN_CFG_CMD = 0xc, 101d172a5efSJohannes Berg 102d172a5efSJohannes Berg /** 103d172a5efSJohannes Berg * @SCAN_REQ_UMAC: uses &struct iwl_scan_req_umac 104d172a5efSJohannes Berg */ 105d172a5efSJohannes Berg SCAN_REQ_UMAC = 0xd, 106d172a5efSJohannes Berg 107d172a5efSJohannes Berg /** 108d172a5efSJohannes Berg * @SCAN_ABORT_UMAC: uses &struct iwl_umac_scan_abort 109d172a5efSJohannes Berg */ 110d172a5efSJohannes Berg SCAN_ABORT_UMAC = 0xe, 111d172a5efSJohannes Berg 112d172a5efSJohannes Berg /** 113d172a5efSJohannes Berg * @SCAN_COMPLETE_UMAC: uses &struct iwl_umac_scan_complete 114d172a5efSJohannes Berg */ 115d172a5efSJohannes Berg SCAN_COMPLETE_UMAC = 0xf, 116d172a5efSJohannes Berg 117d172a5efSJohannes Berg /** 118d172a5efSJohannes Berg * @BA_WINDOW_STATUS_NOTIFICATION_ID: 119d172a5efSJohannes Berg * uses &struct iwl_ba_window_status_notif 120d172a5efSJohannes Berg */ 121d172a5efSJohannes Berg BA_WINDOW_STATUS_NOTIFICATION_ID = 0x13, 122d172a5efSJohannes Berg 123d172a5efSJohannes Berg /** 124d172a5efSJohannes Berg * @ADD_STA_KEY: 125d172a5efSJohannes Berg * &struct iwl_mvm_add_sta_key_cmd_v1 or 126d172a5efSJohannes Berg * &struct iwl_mvm_add_sta_key_cmd. 127d172a5efSJohannes Berg */ 128d172a5efSJohannes Berg ADD_STA_KEY = 0x17, 129d172a5efSJohannes Berg 130d172a5efSJohannes Berg /** 131d172a5efSJohannes Berg * @ADD_STA: 132d172a5efSJohannes Berg * &struct iwl_mvm_add_sta_cmd or &struct iwl_mvm_add_sta_cmd_v7. 133d172a5efSJohannes Berg */ 134d172a5efSJohannes Berg ADD_STA = 0x18, 135d172a5efSJohannes Berg 136d172a5efSJohannes Berg /** 137d172a5efSJohannes Berg * @REMOVE_STA: &struct iwl_mvm_rm_sta_cmd 138d172a5efSJohannes Berg */ 139d172a5efSJohannes Berg REMOVE_STA = 0x19, 140d172a5efSJohannes Berg 141d172a5efSJohannes Berg /** 142a0ec0169SGolan Ben Ami * @TX_CMD: uses &struct iwl_tx_cmd or &struct iwl_tx_cmd_gen2 or 143a0ec0169SGolan Ben Ami * &struct iwl_tx_cmd_gen3, 144d172a5efSJohannes Berg * response in &struct iwl_mvm_tx_resp or 145d172a5efSJohannes Berg * &struct iwl_mvm_tx_resp_v3 146d172a5efSJohannes Berg */ 147d172a5efSJohannes Berg TX_CMD = 0x1c, 148d172a5efSJohannes Berg 149d172a5efSJohannes Berg /** 150d172a5efSJohannes Berg * @TXPATH_FLUSH: &struct iwl_tx_path_flush_cmd 15124091f87SEmmanuel Grumbach * response in &struct iwl_tx_path_flush_cmd_rsp 152d172a5efSJohannes Berg */ 153d172a5efSJohannes Berg TXPATH_FLUSH = 0x1e, 154d172a5efSJohannes Berg 155d172a5efSJohannes Berg /** 156d172a5efSJohannes Berg * @MGMT_MCAST_KEY: 157d172a5efSJohannes Berg * &struct iwl_mvm_mgmt_mcast_key_cmd or 158d172a5efSJohannes Berg * &struct iwl_mvm_mgmt_mcast_key_cmd_v1 159d172a5efSJohannes Berg */ 160d172a5efSJohannes Berg MGMT_MCAST_KEY = 0x1f, 161d172a5efSJohannes Berg 162d172a5efSJohannes Berg /* scheduler config */ 163d172a5efSJohannes Berg /** 164d172a5efSJohannes Berg * @SCD_QUEUE_CFG: &struct iwl_scd_txq_cfg_cmd for older hardware, 165d172a5efSJohannes Berg * &struct iwl_tx_queue_cfg_cmd with &struct iwl_tx_queue_cfg_rsp 1662f7a3863SLuca Coelho * for newer (22000) hardware. 167d172a5efSJohannes Berg */ 168d172a5efSJohannes Berg SCD_QUEUE_CFG = 0x1d, 169d172a5efSJohannes Berg 170d172a5efSJohannes Berg /** 171d172a5efSJohannes Berg * @WEP_KEY: uses &struct iwl_mvm_wep_key_cmd 172d172a5efSJohannes Berg */ 173d172a5efSJohannes Berg WEP_KEY = 0x20, 174d172a5efSJohannes Berg 175d172a5efSJohannes Berg /** 176d172a5efSJohannes Berg * @SHARED_MEM_CFG: 177d172a5efSJohannes Berg * retrieve shared memory configuration - response in 178d172a5efSJohannes Berg * &struct iwl_shared_mem_cfg 179d172a5efSJohannes Berg */ 180d172a5efSJohannes Berg SHARED_MEM_CFG = 0x25, 181d172a5efSJohannes Berg 182d172a5efSJohannes Berg /** 183d172a5efSJohannes Berg * @TDLS_CHANNEL_SWITCH_CMD: uses &struct iwl_tdls_channel_switch_cmd 184d172a5efSJohannes Berg */ 185d172a5efSJohannes Berg TDLS_CHANNEL_SWITCH_CMD = 0x27, 186d172a5efSJohannes Berg 187d172a5efSJohannes Berg /** 188d172a5efSJohannes Berg * @TDLS_CHANNEL_SWITCH_NOTIFICATION: 189d172a5efSJohannes Berg * uses &struct iwl_tdls_channel_switch_notif 190d172a5efSJohannes Berg */ 191d172a5efSJohannes Berg TDLS_CHANNEL_SWITCH_NOTIFICATION = 0xaa, 192d172a5efSJohannes Berg 193d172a5efSJohannes Berg /** 194d172a5efSJohannes Berg * @TDLS_CONFIG_CMD: 195d172a5efSJohannes Berg * &struct iwl_tdls_config_cmd, response in &struct iwl_tdls_config_res 196d172a5efSJohannes Berg */ 197d172a5efSJohannes Berg TDLS_CONFIG_CMD = 0xa7, 198d172a5efSJohannes Berg 199d172a5efSJohannes Berg /** 200d172a5efSJohannes Berg * @MAC_CONTEXT_CMD: &struct iwl_mac_ctx_cmd 201d172a5efSJohannes Berg */ 202d172a5efSJohannes Berg MAC_CONTEXT_CMD = 0x28, 203d172a5efSJohannes Berg 204d172a5efSJohannes Berg /** 205d172a5efSJohannes Berg * @TIME_EVENT_CMD: 206d172a5efSJohannes Berg * &struct iwl_time_event_cmd, response in &struct iwl_time_event_resp 207d172a5efSJohannes Berg */ 208d172a5efSJohannes Berg TIME_EVENT_CMD = 0x29, /* both CMD and response */ 209d172a5efSJohannes Berg 210d172a5efSJohannes Berg /** 211d172a5efSJohannes Berg * @TIME_EVENT_NOTIFICATION: &struct iwl_time_event_notif 212d172a5efSJohannes Berg */ 213d172a5efSJohannes Berg TIME_EVENT_NOTIFICATION = 0x2a, 214d172a5efSJohannes Berg 215d172a5efSJohannes Berg /** 216d172a5efSJohannes Berg * @BINDING_CONTEXT_CMD: 217d172a5efSJohannes Berg * &struct iwl_binding_cmd or &struct iwl_binding_cmd_v1 218d172a5efSJohannes Berg */ 219d172a5efSJohannes Berg BINDING_CONTEXT_CMD = 0x2b, 220d172a5efSJohannes Berg 221d172a5efSJohannes Berg /** 222d172a5efSJohannes Berg * @TIME_QUOTA_CMD: &struct iwl_time_quota_cmd 223d172a5efSJohannes Berg */ 224d172a5efSJohannes Berg TIME_QUOTA_CMD = 0x2c, 225d172a5efSJohannes Berg 226d172a5efSJohannes Berg /** 227d172a5efSJohannes Berg * @NON_QOS_TX_COUNTER_CMD: 228d172a5efSJohannes Berg * command is &struct iwl_nonqos_seq_query_cmd 229d172a5efSJohannes Berg */ 230d172a5efSJohannes Berg NON_QOS_TX_COUNTER_CMD = 0x2d, 231d172a5efSJohannes Berg 232d172a5efSJohannes Berg /** 2337089ae63SJohannes Berg * @LEDS_CMD: command is &struct iwl_led_cmd 2347089ae63SJohannes Berg */ 2357089ae63SJohannes Berg LEDS_CMD = 0x48, 2367089ae63SJohannes Berg 2377089ae63SJohannes Berg /** 238d172a5efSJohannes Berg * @LQ_CMD: using &struct iwl_lq_cmd 239d172a5efSJohannes Berg */ 240d172a5efSJohannes Berg LQ_CMD = 0x4e, 241d172a5efSJohannes Berg 242d172a5efSJohannes Berg /** 243d172a5efSJohannes Berg * @FW_PAGING_BLOCK_CMD: 244d172a5efSJohannes Berg * &struct iwl_fw_paging_cmd 245d172a5efSJohannes Berg */ 246d172a5efSJohannes Berg FW_PAGING_BLOCK_CMD = 0x4f, 247d172a5efSJohannes Berg 248d172a5efSJohannes Berg /** 249d172a5efSJohannes Berg * @SCAN_OFFLOAD_REQUEST_CMD: uses &struct iwl_scan_req_lmac 250d172a5efSJohannes Berg */ 251d172a5efSJohannes Berg SCAN_OFFLOAD_REQUEST_CMD = 0x51, 252d172a5efSJohannes Berg 253d172a5efSJohannes Berg /** 254d172a5efSJohannes Berg * @SCAN_OFFLOAD_ABORT_CMD: abort the scan - no further contents 255d172a5efSJohannes Berg */ 256d172a5efSJohannes Berg SCAN_OFFLOAD_ABORT_CMD = 0x52, 257d172a5efSJohannes Berg 258d172a5efSJohannes Berg /** 259d172a5efSJohannes Berg * @HOT_SPOT_CMD: uses &struct iwl_hs20_roc_req 260d172a5efSJohannes Berg */ 261d172a5efSJohannes Berg HOT_SPOT_CMD = 0x53, 262d172a5efSJohannes Berg 263d172a5efSJohannes Berg /** 264c7eca79dSAvraham Stern * @WNM_80211V_TIMING_MEASUREMENT_NOTIFICATION: Time Sync 265c7eca79dSAvraham Stern * measurement notification for TM/FTM. Sent on receipt of 266c7eca79dSAvraham Stern * respective WNM action frame for TM protocol or public action 267c7eca79dSAvraham Stern * frame for FTM protocol from peer device along with additional 268c7eca79dSAvraham Stern * meta data specified in &struct iwl_time_msmt_notify 269c7eca79dSAvraham Stern */ 270c7eca79dSAvraham Stern WNM_80211V_TIMING_MEASUREMENT_NOTIFICATION = 0x67, 271c7eca79dSAvraham Stern 272c7eca79dSAvraham Stern /** 273c7eca79dSAvraham Stern * @WNM_80211V_TIMING_MEASUREMENT_CONFIRM_NOTIFICATION: Time Sync 274c7eca79dSAvraham Stern * measurement confirmation notification for TM/FTM. Sent on 275c7eca79dSAvraham Stern * receipt of Ack from peer for previously Tx'ed TM/FTM 276c7eca79dSAvraham Stern * action frame along with additional meta data specified in 277c7eca79dSAvraham Stern * &struct iwl_time_msmt_cfm_notify 278c7eca79dSAvraham Stern */ 279c7eca79dSAvraham Stern WNM_80211V_TIMING_MEASUREMENT_CONFIRM_NOTIFICATION = 0x68, 280c7eca79dSAvraham Stern 281c7eca79dSAvraham Stern /** 282d172a5efSJohannes Berg * @SCAN_OFFLOAD_COMPLETE: 283d172a5efSJohannes Berg * notification, &struct iwl_periodic_scan_complete 284d172a5efSJohannes Berg */ 285d172a5efSJohannes Berg SCAN_OFFLOAD_COMPLETE = 0x6D, 286d172a5efSJohannes Berg 287d172a5efSJohannes Berg /** 288d172a5efSJohannes Berg * @SCAN_OFFLOAD_UPDATE_PROFILES_CMD: 289cdaba917SEmmanuel Grumbach * update scan offload (scheduled scan) profiles/blocklist/etc. 290d172a5efSJohannes Berg */ 291d172a5efSJohannes Berg SCAN_OFFLOAD_UPDATE_PROFILES_CMD = 0x6E, 292d172a5efSJohannes Berg 293d172a5efSJohannes Berg /** 294d172a5efSJohannes Berg * @MATCH_FOUND_NOTIFICATION: scan match found 295d172a5efSJohannes Berg */ 296d172a5efSJohannes Berg MATCH_FOUND_NOTIFICATION = 0xd9, 297d172a5efSJohannes Berg 298d172a5efSJohannes Berg /** 299d172a5efSJohannes Berg * @SCAN_ITERATION_COMPLETE: 300d172a5efSJohannes Berg * uses &struct iwl_lmac_scan_complete_notif 301d172a5efSJohannes Berg */ 302d172a5efSJohannes Berg SCAN_ITERATION_COMPLETE = 0xe7, 303d172a5efSJohannes Berg 304d172a5efSJohannes Berg /* Phy */ 305d172a5efSJohannes Berg /** 306cb3abd20SJohannes Berg * @PHY_CONFIGURATION_CMD: &struct iwl_phy_cfg_cmd_v1 or &struct iwl_phy_cfg_cmd_v3 307d172a5efSJohannes Berg */ 308d172a5efSJohannes Berg PHY_CONFIGURATION_CMD = 0x6a, 309d172a5efSJohannes Berg 310d172a5efSJohannes Berg /** 311d172a5efSJohannes Berg * @CALIB_RES_NOTIF_PHY_DB: &struct iwl_calib_res_notif_phy_db 312d172a5efSJohannes Berg */ 313d172a5efSJohannes Berg CALIB_RES_NOTIF_PHY_DB = 0x6b, 314d172a5efSJohannes Berg 315d172a5efSJohannes Berg /** 316d172a5efSJohannes Berg * @PHY_DB_CMD: &struct iwl_phy_db_cmd 317d172a5efSJohannes Berg */ 318d172a5efSJohannes Berg PHY_DB_CMD = 0x6c, 319d172a5efSJohannes Berg 320d172a5efSJohannes Berg /** 321d172a5efSJohannes Berg * @POWER_TABLE_CMD: &struct iwl_device_power_cmd 322d172a5efSJohannes Berg */ 323d172a5efSJohannes Berg POWER_TABLE_CMD = 0x77, 324d172a5efSJohannes Berg 325d172a5efSJohannes Berg /** 326d172a5efSJohannes Berg * @PSM_UAPSD_AP_MISBEHAVING_NOTIFICATION: 327d172a5efSJohannes Berg * &struct iwl_uapsd_misbehaving_ap_notif 328d172a5efSJohannes Berg */ 329d172a5efSJohannes Berg PSM_UAPSD_AP_MISBEHAVING_NOTIFICATION = 0x78, 330d172a5efSJohannes Berg 331d172a5efSJohannes Berg /** 332d172a5efSJohannes Berg * @LTR_CONFIG: &struct iwl_ltr_config_cmd 333d172a5efSJohannes Berg */ 334d172a5efSJohannes Berg LTR_CONFIG = 0xee, 335d172a5efSJohannes Berg 336d172a5efSJohannes Berg /** 337d172a5efSJohannes Berg * @REPLY_THERMAL_MNG_BACKOFF: 338d172a5efSJohannes Berg * Thermal throttling command 339d172a5efSJohannes Berg */ 340d172a5efSJohannes Berg REPLY_THERMAL_MNG_BACKOFF = 0x7e, 341d172a5efSJohannes Berg 342d172a5efSJohannes Berg /** 343d172a5efSJohannes Berg * @NVM_ACCESS_CMD: using &struct iwl_nvm_access_cmd 344d172a5efSJohannes Berg */ 345d172a5efSJohannes Berg NVM_ACCESS_CMD = 0x88, 346d172a5efSJohannes Berg 347d172a5efSJohannes Berg /** 348d172a5efSJohannes Berg * @BEACON_NOTIFICATION: &struct iwl_extended_beacon_notif 349d172a5efSJohannes Berg */ 350d172a5efSJohannes Berg BEACON_NOTIFICATION = 0x90, 351d172a5efSJohannes Berg 352d172a5efSJohannes Berg /** 353d172a5efSJohannes Berg * @BEACON_TEMPLATE_CMD: 354d172a5efSJohannes Berg * Uses one of &struct iwl_mac_beacon_cmd_v6, 355d172a5efSJohannes Berg * &struct iwl_mac_beacon_cmd_v7 or &struct iwl_mac_beacon_cmd 356d172a5efSJohannes Berg * depending on the device version. 357d172a5efSJohannes Berg */ 358d172a5efSJohannes Berg BEACON_TEMPLATE_CMD = 0x91, 359d172a5efSJohannes Berg /** 360d172a5efSJohannes Berg * @TX_ANT_CONFIGURATION_CMD: &struct iwl_tx_ant_cfg_cmd 361d172a5efSJohannes Berg */ 362d172a5efSJohannes Berg TX_ANT_CONFIGURATION_CMD = 0x98, 363d172a5efSJohannes Berg 364d172a5efSJohannes Berg /** 365a74231baSLiad Kaufman * @STATISTICS_CMD: 366a74231baSLiad Kaufman * one of &struct iwl_statistics_cmd, 367a74231baSLiad Kaufman * &struct iwl_notif_statistics_v11, 368a74231baSLiad Kaufman * &struct iwl_notif_statistics_v10, 369853f4954SMordechay Goodstein * &struct iwl_notif_statistics, 3706324c173SMordechay Goodstein * &struct iwl_statistics_operational_ntfy_ver_14 371d172a5efSJohannes Berg */ 372d172a5efSJohannes Berg STATISTICS_CMD = 0x9c, 373d172a5efSJohannes Berg 374d172a5efSJohannes Berg /** 375d172a5efSJohannes Berg * @STATISTICS_NOTIFICATION: 376d172a5efSJohannes Berg * one of &struct iwl_notif_statistics_v10, 377d172a5efSJohannes Berg * &struct iwl_notif_statistics_v11, 378853f4954SMordechay Goodstein * &struct iwl_notif_statistic, 3796324c173SMordechay Goodstein * &struct iwl_statistics_operational_ntfy_ver_14 380853f4954SMordechay Goodstein * &struct iwl_statistics_operational_ntfy 381d172a5efSJohannes Berg */ 382d172a5efSJohannes Berg STATISTICS_NOTIFICATION = 0x9d, 383d172a5efSJohannes Berg 384d172a5efSJohannes Berg /** 385d172a5efSJohannes Berg * @EOSP_NOTIFICATION: 386d172a5efSJohannes Berg * Notify that a service period ended, 387d172a5efSJohannes Berg * &struct iwl_mvm_eosp_notification 388d172a5efSJohannes Berg */ 389d172a5efSJohannes Berg EOSP_NOTIFICATION = 0x9e, 390d172a5efSJohannes Berg 391d172a5efSJohannes Berg /** 392d172a5efSJohannes Berg * @REDUCE_TX_POWER_CMD: 393216cdfb5SLuca Coelho * &struct iwl_dev_tx_power_cmd 394d172a5efSJohannes Berg */ 395d172a5efSJohannes Berg REDUCE_TX_POWER_CMD = 0x9f, 396d172a5efSJohannes Berg 397d172a5efSJohannes Berg /** 398d172a5efSJohannes Berg * @MISSED_BEACONS_NOTIFICATION: &struct iwl_missed_beacons_notif 399d172a5efSJohannes Berg */ 400d172a5efSJohannes Berg MISSED_BEACONS_NOTIFICATION = 0xa2, 401d172a5efSJohannes Berg 402d172a5efSJohannes Berg /** 403d172a5efSJohannes Berg * @MAC_PM_POWER_TABLE: using &struct iwl_mac_power_cmd 404d172a5efSJohannes Berg */ 405d172a5efSJohannes Berg MAC_PM_POWER_TABLE = 0xa9, 406d172a5efSJohannes Berg 407d172a5efSJohannes Berg /** 408d172a5efSJohannes Berg * @MFUART_LOAD_NOTIFICATION: &struct iwl_mfuart_load_notif 409d172a5efSJohannes Berg */ 410d172a5efSJohannes Berg MFUART_LOAD_NOTIFICATION = 0xb1, 411d172a5efSJohannes Berg 412d172a5efSJohannes Berg /** 413d172a5efSJohannes Berg * @RSS_CONFIG_CMD: &struct iwl_rss_config_cmd 414d172a5efSJohannes Berg */ 415d172a5efSJohannes Berg RSS_CONFIG_CMD = 0xb3, 416d172a5efSJohannes Berg 417d172a5efSJohannes Berg /** 418d172a5efSJohannes Berg * @REPLY_RX_PHY_CMD: &struct iwl_rx_phy_info 419d172a5efSJohannes Berg */ 420d172a5efSJohannes Berg REPLY_RX_PHY_CMD = 0xc0, 421d172a5efSJohannes Berg 422d172a5efSJohannes Berg /** 423d172a5efSJohannes Berg * @REPLY_RX_MPDU_CMD: 424d172a5efSJohannes Berg * &struct iwl_rx_mpdu_res_start or &struct iwl_rx_mpdu_desc 425d172a5efSJohannes Berg */ 426d172a5efSJohannes Berg REPLY_RX_MPDU_CMD = 0xc1, 427d172a5efSJohannes Berg 428d172a5efSJohannes Berg /** 429fe69b7d1SJohannes Berg * @BAR_FRAME_RELEASE: Frame release from BAR notification, used for 430fe69b7d1SJohannes Berg * multi-TID BAR (previously, the BAR frame itself was reported 431fe69b7d1SJohannes Berg * instead). Uses &struct iwl_bar_frame_release. 432fe69b7d1SJohannes Berg */ 433fe69b7d1SJohannes Berg BAR_FRAME_RELEASE = 0xc2, 434fe69b7d1SJohannes Berg 435fe69b7d1SJohannes Berg /** 436d172a5efSJohannes Berg * @FRAME_RELEASE: 437d172a5efSJohannes Berg * Frame release (reorder helper) notification, uses 438d172a5efSJohannes Berg * &struct iwl_frame_release 439d172a5efSJohannes Berg */ 440d172a5efSJohannes Berg FRAME_RELEASE = 0xc3, 441d172a5efSJohannes Berg 442d172a5efSJohannes Berg /** 443d172a5efSJohannes Berg * @BA_NOTIF: 444d172a5efSJohannes Berg * BlockAck notification, uses &struct iwl_mvm_compressed_ba_notif 445d172a5efSJohannes Berg * or &struct iwl_mvm_ba_notif depending on the HW 446d172a5efSJohannes Berg */ 447d172a5efSJohannes Berg BA_NOTIF = 0xc5, 448d172a5efSJohannes Berg 449d172a5efSJohannes Berg /* Location Aware Regulatory */ 450d172a5efSJohannes Berg /** 451d172a5efSJohannes Berg * @MCC_UPDATE_CMD: using &struct iwl_mcc_update_cmd 452d172a5efSJohannes Berg */ 453d172a5efSJohannes Berg MCC_UPDATE_CMD = 0xc8, 454d172a5efSJohannes Berg 455d172a5efSJohannes Berg /** 456d172a5efSJohannes Berg * @MCC_CHUB_UPDATE_CMD: using &struct iwl_mcc_chub_notif 457d172a5efSJohannes Berg */ 458d172a5efSJohannes Berg MCC_CHUB_UPDATE_CMD = 0xc9, 459d172a5efSJohannes Berg 460d172a5efSJohannes Berg /** 461d172a5efSJohannes Berg * @MARKER_CMD: trace marker command, uses &struct iwl_mvm_marker 4625281f518SMordechay Goodstein * with &struct iwl_mvm_marker_rsp 463d172a5efSJohannes Berg */ 464d172a5efSJohannes Berg MARKER_CMD = 0xcb, 465d172a5efSJohannes Berg 466d172a5efSJohannes Berg /** 467d172a5efSJohannes Berg * @BT_PROFILE_NOTIFICATION: &struct iwl_bt_coex_profile_notif 468d172a5efSJohannes Berg */ 469d172a5efSJohannes Berg BT_PROFILE_NOTIFICATION = 0xce, 470d172a5efSJohannes Berg 471d172a5efSJohannes Berg /** 472d172a5efSJohannes Berg * @BT_CONFIG: &struct iwl_bt_coex_cmd 473d172a5efSJohannes Berg */ 474d172a5efSJohannes Berg BT_CONFIG = 0x9b, 475d172a5efSJohannes Berg 476d172a5efSJohannes Berg /** 477d172a5efSJohannes Berg * @BT_COEX_UPDATE_REDUCED_TXP: 478d172a5efSJohannes Berg * &struct iwl_bt_coex_reduced_txp_update_cmd 479d172a5efSJohannes Berg */ 480d172a5efSJohannes Berg BT_COEX_UPDATE_REDUCED_TXP = 0x5c, 481d172a5efSJohannes Berg 482d172a5efSJohannes Berg /** 483d172a5efSJohannes Berg * @BT_COEX_CI: &struct iwl_bt_coex_ci_cmd 484d172a5efSJohannes Berg */ 485d172a5efSJohannes Berg BT_COEX_CI = 0x5d, 486d172a5efSJohannes Berg 487d172a5efSJohannes Berg /** 488d172a5efSJohannes Berg * @REPLY_SF_CFG_CMD: &struct iwl_sf_cfg_cmd 489d172a5efSJohannes Berg */ 490d172a5efSJohannes Berg REPLY_SF_CFG_CMD = 0xd1, 491d172a5efSJohannes Berg /** 492d172a5efSJohannes Berg * @REPLY_BEACON_FILTERING_CMD: &struct iwl_beacon_filter_cmd 493d172a5efSJohannes Berg */ 494d172a5efSJohannes Berg REPLY_BEACON_FILTERING_CMD = 0xd2, 495d172a5efSJohannes Berg 496d172a5efSJohannes Berg /** 497d172a5efSJohannes Berg * @DTS_MEASUREMENT_NOTIFICATION: 498d172a5efSJohannes Berg * &struct iwl_dts_measurement_notif_v1 or 499d172a5efSJohannes Berg * &struct iwl_dts_measurement_notif_v2 500d172a5efSJohannes Berg */ 501d172a5efSJohannes Berg DTS_MEASUREMENT_NOTIFICATION = 0xdd, 502d172a5efSJohannes Berg 503d172a5efSJohannes Berg /** 504d172a5efSJohannes Berg * @LDBG_CONFIG_CMD: configure continuous trace recording 505d172a5efSJohannes Berg */ 506d172a5efSJohannes Berg LDBG_CONFIG_CMD = 0xf6, 507d172a5efSJohannes Berg 508d172a5efSJohannes Berg /** 509d172a5efSJohannes Berg * @DEBUG_LOG_MSG: Debugging log data from firmware 510d172a5efSJohannes Berg */ 511d172a5efSJohannes Berg DEBUG_LOG_MSG = 0xf7, 512d172a5efSJohannes Berg 513d172a5efSJohannes Berg /** 514d172a5efSJohannes Berg * @MCAST_FILTER_CMD: &struct iwl_mcast_filter_cmd 515d172a5efSJohannes Berg */ 516d172a5efSJohannes Berg MCAST_FILTER_CMD = 0xd0, 517d172a5efSJohannes Berg 518d172a5efSJohannes Berg /** 519d172a5efSJohannes Berg * @D3_CONFIG_CMD: &struct iwl_d3_manager_config 520d172a5efSJohannes Berg */ 521d172a5efSJohannes Berg D3_CONFIG_CMD = 0xd3, 522d172a5efSJohannes Berg 523d172a5efSJohannes Berg /** 524d172a5efSJohannes Berg * @PROT_OFFLOAD_CONFIG_CMD: Depending on firmware, uses one of 525d172a5efSJohannes Berg * &struct iwl_proto_offload_cmd_v1, &struct iwl_proto_offload_cmd_v2, 526d172a5efSJohannes Berg * &struct iwl_proto_offload_cmd_v3_small, 527d172a5efSJohannes Berg * &struct iwl_proto_offload_cmd_v3_large 528d172a5efSJohannes Berg */ 529d172a5efSJohannes Berg PROT_OFFLOAD_CONFIG_CMD = 0xd4, 530d172a5efSJohannes Berg 531d172a5efSJohannes Berg /** 532d172a5efSJohannes Berg * @D0I3_END_CMD: End D0i3/D3 state, no command data 533d172a5efSJohannes Berg */ 534d172a5efSJohannes Berg D0I3_END_CMD = 0xed, 535d172a5efSJohannes Berg 536d172a5efSJohannes Berg /** 537d172a5efSJohannes Berg * @WOWLAN_PATTERNS: &struct iwl_wowlan_patterns_cmd 538d172a5efSJohannes Berg */ 539d172a5efSJohannes Berg WOWLAN_PATTERNS = 0xe0, 540d172a5efSJohannes Berg 541d172a5efSJohannes Berg /** 542d172a5efSJohannes Berg * @WOWLAN_CONFIGURATION: &struct iwl_wowlan_config_cmd 543d172a5efSJohannes Berg */ 544d172a5efSJohannes Berg WOWLAN_CONFIGURATION = 0xe1, 545d172a5efSJohannes Berg 546d172a5efSJohannes Berg /** 54779e561f0SJohannes Berg * @WOWLAN_TSC_RSC_PARAM: &struct iwl_wowlan_rsc_tsc_params_cmd_v4, 54879e561f0SJohannes Berg * &struct iwl_wowlan_rsc_tsc_params_cmd 549d172a5efSJohannes Berg */ 550d172a5efSJohannes Berg WOWLAN_TSC_RSC_PARAM = 0xe2, 551d172a5efSJohannes Berg 552d172a5efSJohannes Berg /** 553d172a5efSJohannes Berg * @WOWLAN_TKIP_PARAM: &struct iwl_wowlan_tkip_params_cmd 554d172a5efSJohannes Berg */ 555d172a5efSJohannes Berg WOWLAN_TKIP_PARAM = 0xe3, 556d172a5efSJohannes Berg 557d172a5efSJohannes Berg /** 558*43413a36SJohannes Berg * @WOWLAN_KEK_KCK_MATERIAL: &struct iwl_wowlan_kek_kck_material_cmd_v2, 559*43413a36SJohannes Berg * &struct iwl_wowlan_kek_kck_material_cmd_v3 or 560*43413a36SJohannes Berg * &struct iwl_wowlan_kek_kck_material_cmd_v4 561d172a5efSJohannes Berg */ 562d172a5efSJohannes Berg WOWLAN_KEK_KCK_MATERIAL = 0xe4, 563d172a5efSJohannes Berg 564d172a5efSJohannes Berg /** 565*43413a36SJohannes Berg * @WOWLAN_GET_STATUSES: response in &struct iwl_wowlan_status_v6, 566*43413a36SJohannes Berg * &struct iwl_wowlan_status_v7, &struct iwl_wowlan_status_v9 or 567*43413a36SJohannes Berg * &struct iwl_wowlan_status_v12 568d172a5efSJohannes Berg */ 569d172a5efSJohannes Berg WOWLAN_GET_STATUSES = 0xe5, 570d172a5efSJohannes Berg 571d172a5efSJohannes Berg /** 572*43413a36SJohannes Berg * @SCAN_OFFLOAD_PROFILES_QUERY_CMD: No command data, response is 573*43413a36SJohannes Berg * &struct iwl_scan_offload_profiles_query_v1 574d172a5efSJohannes Berg */ 575d172a5efSJohannes Berg SCAN_OFFLOAD_PROFILES_QUERY_CMD = 0x56, 576d172a5efSJohannes Berg }; 577d172a5efSJohannes Berg 578d172a5efSJohannes Berg /** 579d172a5efSJohannes Berg * enum iwl_system_subcmd_ids - system group command IDs 580d172a5efSJohannes Berg */ 581d172a5efSJohannes Berg enum iwl_system_subcmd_ids { 582d172a5efSJohannes Berg /** 583d172a5efSJohannes Berg * @SHARED_MEM_CFG_CMD: 584d172a5efSJohannes Berg * response in &struct iwl_shared_mem_cfg or 585d172a5efSJohannes Berg * &struct iwl_shared_mem_cfg_v2 586d172a5efSJohannes Berg */ 587d172a5efSJohannes Berg SHARED_MEM_CFG_CMD = 0x0, 588d172a5efSJohannes Berg 589d172a5efSJohannes Berg /** 590cceb4507SShahar S Matityahu * @SOC_CONFIGURATION_CMD: &struct iwl_soc_configuration_cmd 591cceb4507SShahar S Matityahu */ 592cceb4507SShahar S Matityahu SOC_CONFIGURATION_CMD = 0x01, 593cceb4507SShahar S Matityahu 594cceb4507SShahar S Matityahu /** 595d172a5efSJohannes Berg * @INIT_EXTENDED_CFG_CMD: &struct iwl_init_extended_cfg_cmd 596d172a5efSJohannes Berg */ 597d172a5efSJohannes Berg INIT_EXTENDED_CFG_CMD = 0x03, 598f130bb75SMordechay Goodstein 599f130bb75SMordechay Goodstein /** 600f130bb75SMordechay Goodstein * @FW_ERROR_RECOVERY_CMD: &struct iwl_fw_error_recovery_cmd 601f130bb75SMordechay Goodstein */ 602f130bb75SMordechay Goodstein FW_ERROR_RECOVERY_CMD = 0x7, 60321254908SGregory Greenman 60421254908SGregory Greenman /** 60521254908SGregory Greenman * @RFI_CONFIG_CMD: &struct iwl_rfi_config_cmd 60621254908SGregory Greenman */ 60721254908SGregory Greenman RFI_CONFIG_CMD = 0xb, 60821254908SGregory Greenman 60921254908SGregory Greenman /** 61021254908SGregory Greenman * @RFI_GET_FREQ_TABLE_CMD: &struct iwl_rfi_config_cmd 61121254908SGregory Greenman */ 61221254908SGregory Greenman RFI_GET_FREQ_TABLE_CMD = 0xc, 613e93d4aafSJohannes Berg 614e93d4aafSJohannes Berg /** 615e93d4aafSJohannes Berg * @SYSTEM_FEATURES_CONTROL_CMD: &struct iwl_system_features_control_cmd 616e93d4aafSJohannes Berg */ 617e93d4aafSJohannes Berg SYSTEM_FEATURES_CONTROL_CMD = 0xd, 61863b62a2dSGregory Greenman 61963b62a2dSGregory Greenman /** 62063b62a2dSGregory Greenman * @RFI_DEACTIVATE_NOTIF: &struct iwl_rfi_deactivate_notif 62163b62a2dSGregory Greenman */ 62263b62a2dSGregory Greenman RFI_DEACTIVATE_NOTIF = 0xff, 623d172a5efSJohannes Berg }; 624d172a5efSJohannes Berg 625d172a5efSJohannes Berg #endif /* __iwl_fw_api_commands_h__ */ 626