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