| /****************************************************************************** | 
 |  * | 
 |  * This file is provided under a dual BSD/GPLv2 license.  When using or | 
 |  * redistributing this file, you may do so under either license. | 
 |  * | 
 |  * GPL LICENSE SUMMARY | 
 |  * | 
 |  * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. | 
 |  * Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH | 
 |  * Copyright(c) 2016 - 2017 Intel Deutschland GmbH | 
 |  * | 
 |  * This program is free software; you can redistribute it and/or modify | 
 |  * it under the terms of version 2 of the GNU General Public License as | 
 |  * published by the Free Software Foundation. | 
 |  * | 
 |  * This program is distributed in the hope that it will be useful, but | 
 |  * WITHOUT ANY WARRANTY; without even the implied warranty of | 
 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | 
 |  * General Public License for more details. | 
 |  * | 
 |  * The full GNU General Public License is included in this distribution | 
 |  * in the file called COPYING. | 
 |  * | 
 |  * Contact Information: | 
 |  *  Intel Linux Wireless <linuxwifi@intel.com> | 
 |  * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 | 
 |  * | 
 |  * BSD LICENSE | 
 |  * | 
 |  * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. | 
 |  * Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH | 
 |  * Copyright(c) 2016 - 2017 Intel Deutschland GmbH | 
 |  * All rights reserved. | 
 |  * | 
 |  * Redistribution and use in source and binary forms, with or without | 
 |  * modification, are permitted provided that the following conditions | 
 |  * are met: | 
 |  * | 
 |  *  * Redistributions of source code must retain the above copyright | 
 |  *    notice, this list of conditions and the following disclaimer. | 
 |  *  * Redistributions in binary form must reproduce the above copyright | 
 |  *    notice, this list of conditions and the following disclaimer in | 
 |  *    the documentation and/or other materials provided with the | 
 |  *    distribution. | 
 |  *  * Neither the name Intel Corporation nor the names of its | 
 |  *    contributors may be used to endorse or promote products derived | 
 |  *    from this software without specific prior written permission. | 
 |  * | 
 |  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | 
 |  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | 
 |  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | 
 |  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | 
 |  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | 
 |  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | 
 |  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | 
 |  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 
 |  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 
 |  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 
 |  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 
 |  * | 
 |  *****************************************************************************/ | 
 |  | 
 | #ifndef __iwl_fw_api_commands_h__ | 
 | #define __iwl_fw_api_commands_h__ | 
 |  | 
 | /** | 
 |  * enum iwl_mvm_command_groups - command groups for the firmware | 
 |  * @LEGACY_GROUP: legacy group, uses command IDs from &enum iwl_legacy_cmds | 
 |  * @LONG_GROUP: legacy group with long header, also uses command IDs | 
 |  *	from &enum iwl_legacy_cmds | 
 |  * @SYSTEM_GROUP: system group, uses command IDs from | 
 |  *	&enum iwl_system_subcmd_ids | 
 |  * @MAC_CONF_GROUP: MAC configuration group, uses command IDs from | 
 |  *	&enum iwl_mac_conf_subcmd_ids | 
 |  * @PHY_OPS_GROUP: PHY operations group, uses command IDs from | 
 |  *	&enum iwl_phy_ops_subcmd_ids | 
 |  * @DATA_PATH_GROUP: data path group, uses command IDs from | 
 |  *	&enum iwl_data_path_subcmd_ids | 
 |  * @NAN_GROUP: NAN group, uses command IDs from &enum iwl_nan_subcmd_ids | 
 |  * @TOF_GROUP: TOF group, uses command IDs from &enum iwl_tof_subcmd_ids | 
 |  * @PROT_OFFLOAD_GROUP: protocol offload group, uses command IDs from | 
 |  *	&enum iwl_prot_offload_subcmd_ids | 
 |  * @REGULATORY_AND_NVM_GROUP: regulatory/NVM group, uses command IDs from | 
 |  *	&enum iwl_regulatory_and_nvm_subcmd_ids | 
 |  * @DEBUG_GROUP: Debug group, uses command IDs from &enum iwl_debug_cmds | 
 |  */ | 
 | enum iwl_mvm_command_groups { | 
 | 	LEGACY_GROUP = 0x0, | 
 | 	LONG_GROUP = 0x1, | 
 | 	SYSTEM_GROUP = 0x2, | 
 | 	MAC_CONF_GROUP = 0x3, | 
 | 	PHY_OPS_GROUP = 0x4, | 
 | 	DATA_PATH_GROUP = 0x5, | 
 | 	NAN_GROUP = 0x7, | 
 | 	TOF_GROUP = 0x8, | 
 | 	PROT_OFFLOAD_GROUP = 0xb, | 
 | 	REGULATORY_AND_NVM_GROUP = 0xc, | 
 | 	DEBUG_GROUP = 0xf, | 
 | }; | 
 |  | 
 | /** | 
 |  * enum iwl_legacy_cmds - legacy group command IDs | 
 |  */ | 
 | enum iwl_legacy_cmds { | 
 | 	/** | 
 | 	 * @MVM_ALIVE: | 
 | 	 * Alive data from the firmware, as described in | 
 | 	 * &struct mvm_alive_resp_v3 or &struct mvm_alive_resp. | 
 | 	 */ | 
 | 	MVM_ALIVE = 0x1, | 
 |  | 
 | 	/** | 
 | 	 * @REPLY_ERROR: Cause an error in the firmware, for testing purposes. | 
 | 	 */ | 
 | 	REPLY_ERROR = 0x2, | 
 |  | 
 | 	/** | 
 | 	 * @ECHO_CMD: Send data to the device to have it returned immediately. | 
 | 	 */ | 
 | 	ECHO_CMD = 0x3, | 
 |  | 
 | 	/** | 
 | 	 * @INIT_COMPLETE_NOTIF: Notification that initialization is complete. | 
 | 	 */ | 
 | 	INIT_COMPLETE_NOTIF = 0x4, | 
 |  | 
 | 	/** | 
 | 	 * @PHY_CONTEXT_CMD: | 
 | 	 * Add/modify/remove a PHY context, using &struct iwl_phy_context_cmd. | 
 | 	 */ | 
 | 	PHY_CONTEXT_CMD = 0x8, | 
 |  | 
 | 	/** | 
 | 	 * @DBG_CFG: Debug configuration command. | 
 | 	 */ | 
 | 	DBG_CFG = 0x9, | 
 |  | 
 | 	/** | 
 | 	 * @SCAN_ITERATION_COMPLETE_UMAC: | 
 | 	 * Firmware indicates a scan iteration completed, using | 
 | 	 * &struct iwl_umac_scan_iter_complete_notif. | 
 | 	 */ | 
 | 	SCAN_ITERATION_COMPLETE_UMAC = 0xb5, | 
 |  | 
 | 	/** | 
 | 	 * @SCAN_CFG_CMD: | 
 | 	 * uses &struct iwl_scan_config_v1 or &struct iwl_scan_config | 
 | 	 */ | 
 | 	SCAN_CFG_CMD = 0xc, | 
 |  | 
 | 	/** | 
 | 	 * @SCAN_REQ_UMAC: uses &struct iwl_scan_req_umac | 
 | 	 */ | 
 | 	SCAN_REQ_UMAC = 0xd, | 
 |  | 
 | 	/** | 
 | 	 * @SCAN_ABORT_UMAC: uses &struct iwl_umac_scan_abort | 
 | 	 */ | 
 | 	SCAN_ABORT_UMAC = 0xe, | 
 |  | 
 | 	/** | 
 | 	 * @SCAN_COMPLETE_UMAC: uses &struct iwl_umac_scan_complete | 
 | 	 */ | 
 | 	SCAN_COMPLETE_UMAC = 0xf, | 
 |  | 
 | 	/** | 
 | 	 * @BA_WINDOW_STATUS_NOTIFICATION_ID: | 
 | 	 * uses &struct iwl_ba_window_status_notif | 
 | 	 */ | 
 | 	BA_WINDOW_STATUS_NOTIFICATION_ID = 0x13, | 
 |  | 
 | 	/** | 
 | 	 * @ADD_STA_KEY: | 
 | 	 * &struct iwl_mvm_add_sta_key_cmd_v1 or | 
 | 	 * &struct iwl_mvm_add_sta_key_cmd. | 
 | 	 */ | 
 | 	ADD_STA_KEY = 0x17, | 
 |  | 
 | 	/** | 
 | 	 * @ADD_STA: | 
 | 	 * &struct iwl_mvm_add_sta_cmd or &struct iwl_mvm_add_sta_cmd_v7. | 
 | 	 */ | 
 | 	ADD_STA = 0x18, | 
 |  | 
 | 	/** | 
 | 	 * @REMOVE_STA: &struct iwl_mvm_rm_sta_cmd | 
 | 	 */ | 
 | 	REMOVE_STA = 0x19, | 
 |  | 
 | 	/** | 
 | 	 * @FW_GET_ITEM_CMD: uses &struct iwl_fw_get_item_cmd | 
 | 	 */ | 
 | 	FW_GET_ITEM_CMD = 0x1a, | 
 |  | 
 | 	/** | 
 | 	 * @TX_CMD: uses &struct iwl_tx_cmd or &struct iwl_tx_cmd_gen2, | 
 | 	 *	response in &struct iwl_mvm_tx_resp or | 
 | 	 *	&struct iwl_mvm_tx_resp_v3 | 
 | 	 */ | 
 | 	TX_CMD = 0x1c, | 
 |  | 
 | 	/** | 
 | 	 * @TXPATH_FLUSH: &struct iwl_tx_path_flush_cmd | 
 | 	 */ | 
 | 	TXPATH_FLUSH = 0x1e, | 
 |  | 
 | 	/** | 
 | 	 * @MGMT_MCAST_KEY: | 
 | 	 * &struct iwl_mvm_mgmt_mcast_key_cmd or | 
 | 	 * &struct iwl_mvm_mgmt_mcast_key_cmd_v1 | 
 | 	 */ | 
 | 	MGMT_MCAST_KEY = 0x1f, | 
 |  | 
 | 	/* scheduler config */ | 
 | 	/** | 
 | 	 * @SCD_QUEUE_CFG: &struct iwl_scd_txq_cfg_cmd for older hardware, | 
 | 	 *	&struct iwl_tx_queue_cfg_cmd with &struct iwl_tx_queue_cfg_rsp | 
 | 	 *	for newer (A000) hardware. | 
 | 	 */ | 
 | 	SCD_QUEUE_CFG = 0x1d, | 
 |  | 
 | 	/** | 
 | 	 * @WEP_KEY: uses &struct iwl_mvm_wep_key_cmd | 
 | 	 */ | 
 | 	WEP_KEY = 0x20, | 
 |  | 
 | 	/** | 
 | 	 * @SHARED_MEM_CFG: | 
 | 	 * retrieve shared memory configuration - response in | 
 | 	 * &struct iwl_shared_mem_cfg | 
 | 	 */ | 
 | 	SHARED_MEM_CFG = 0x25, | 
 |  | 
 | 	/** | 
 | 	 * @TDLS_CHANNEL_SWITCH_CMD: uses &struct iwl_tdls_channel_switch_cmd | 
 | 	 */ | 
 | 	TDLS_CHANNEL_SWITCH_CMD = 0x27, | 
 |  | 
 | 	/** | 
 | 	 * @TDLS_CHANNEL_SWITCH_NOTIFICATION: | 
 | 	 * uses &struct iwl_tdls_channel_switch_notif | 
 | 	 */ | 
 | 	TDLS_CHANNEL_SWITCH_NOTIFICATION = 0xaa, | 
 |  | 
 | 	/** | 
 | 	 * @TDLS_CONFIG_CMD: | 
 | 	 * &struct iwl_tdls_config_cmd, response in &struct iwl_tdls_config_res | 
 | 	 */ | 
 | 	TDLS_CONFIG_CMD = 0xa7, | 
 |  | 
 | 	/** | 
 | 	 * @MAC_CONTEXT_CMD: &struct iwl_mac_ctx_cmd | 
 | 	 */ | 
 | 	MAC_CONTEXT_CMD = 0x28, | 
 |  | 
 | 	/** | 
 | 	 * @TIME_EVENT_CMD: | 
 | 	 * &struct iwl_time_event_cmd, response in &struct iwl_time_event_resp | 
 | 	 */ | 
 | 	TIME_EVENT_CMD = 0x29, /* both CMD and response */ | 
 |  | 
 | 	/** | 
 | 	 * @TIME_EVENT_NOTIFICATION: &struct iwl_time_event_notif | 
 | 	 */ | 
 | 	TIME_EVENT_NOTIFICATION = 0x2a, | 
 |  | 
 | 	/** | 
 | 	 * @BINDING_CONTEXT_CMD: | 
 | 	 * &struct iwl_binding_cmd or &struct iwl_binding_cmd_v1 | 
 | 	 */ | 
 | 	BINDING_CONTEXT_CMD = 0x2b, | 
 |  | 
 | 	/** | 
 | 	 * @TIME_QUOTA_CMD: &struct iwl_time_quota_cmd | 
 | 	 */ | 
 | 	TIME_QUOTA_CMD = 0x2c, | 
 |  | 
 | 	/** | 
 | 	 * @NON_QOS_TX_COUNTER_CMD: | 
 | 	 * command is &struct iwl_nonqos_seq_query_cmd | 
 | 	 */ | 
 | 	NON_QOS_TX_COUNTER_CMD = 0x2d, | 
 |  | 
 | 	/** | 
 | 	 * @LEDS_CMD: command is &struct iwl_led_cmd | 
 | 	 */ | 
 | 	LEDS_CMD = 0x48, | 
 |  | 
 | 	/** | 
 | 	 * @LQ_CMD: using &struct iwl_lq_cmd | 
 | 	 */ | 
 | 	LQ_CMD = 0x4e, | 
 |  | 
 | 	/** | 
 | 	 * @FW_PAGING_BLOCK_CMD: | 
 | 	 * &struct iwl_fw_paging_cmd | 
 | 	 */ | 
 | 	FW_PAGING_BLOCK_CMD = 0x4f, | 
 |  | 
 | 	/** | 
 | 	 * @SCAN_OFFLOAD_REQUEST_CMD: uses &struct iwl_scan_req_lmac | 
 | 	 */ | 
 | 	SCAN_OFFLOAD_REQUEST_CMD = 0x51, | 
 |  | 
 | 	/** | 
 | 	 * @SCAN_OFFLOAD_ABORT_CMD: abort the scan - no further contents | 
 | 	 */ | 
 | 	SCAN_OFFLOAD_ABORT_CMD = 0x52, | 
 |  | 
 | 	/** | 
 | 	 * @HOT_SPOT_CMD: uses &struct iwl_hs20_roc_req | 
 | 	 */ | 
 | 	HOT_SPOT_CMD = 0x53, | 
 |  | 
 | 	/** | 
 | 	 * @SCAN_OFFLOAD_COMPLETE: | 
 | 	 * notification, &struct iwl_periodic_scan_complete | 
 | 	 */ | 
 | 	SCAN_OFFLOAD_COMPLETE = 0x6D, | 
 |  | 
 | 	/** | 
 | 	 * @SCAN_OFFLOAD_UPDATE_PROFILES_CMD: | 
 | 	 * update scan offload (scheduled scan) profiles/blacklist/etc. | 
 | 	 */ | 
 | 	SCAN_OFFLOAD_UPDATE_PROFILES_CMD = 0x6E, | 
 |  | 
 | 	/** | 
 | 	 * @MATCH_FOUND_NOTIFICATION: scan match found | 
 | 	 */ | 
 | 	MATCH_FOUND_NOTIFICATION = 0xd9, | 
 |  | 
 | 	/** | 
 | 	 * @SCAN_ITERATION_COMPLETE: | 
 | 	 * uses &struct iwl_lmac_scan_complete_notif | 
 | 	 */ | 
 | 	SCAN_ITERATION_COMPLETE = 0xe7, | 
 |  | 
 | 	/* Phy */ | 
 | 	/** | 
 | 	 * @PHY_CONFIGURATION_CMD: &struct iwl_phy_cfg_cmd | 
 | 	 */ | 
 | 	PHY_CONFIGURATION_CMD = 0x6a, | 
 |  | 
 | 	/** | 
 | 	 * @CALIB_RES_NOTIF_PHY_DB: &struct iwl_calib_res_notif_phy_db | 
 | 	 */ | 
 | 	CALIB_RES_NOTIF_PHY_DB = 0x6b, | 
 |  | 
 | 	/** | 
 | 	 * @PHY_DB_CMD: &struct iwl_phy_db_cmd | 
 | 	 */ | 
 | 	PHY_DB_CMD = 0x6c, | 
 |  | 
 | 	/** | 
 | 	 * @TOF_CMD: &struct iwl_tof_config_cmd | 
 | 	 */ | 
 | 	TOF_CMD = 0x10, | 
 |  | 
 | 	/** | 
 | 	 * @TOF_NOTIFICATION: &struct iwl_tof_gen_resp_cmd | 
 | 	 */ | 
 | 	TOF_NOTIFICATION = 0x11, | 
 |  | 
 | 	/** | 
 | 	 * @POWER_TABLE_CMD: &struct iwl_device_power_cmd | 
 | 	 */ | 
 | 	POWER_TABLE_CMD = 0x77, | 
 |  | 
 | 	/** | 
 | 	 * @PSM_UAPSD_AP_MISBEHAVING_NOTIFICATION: | 
 | 	 * &struct iwl_uapsd_misbehaving_ap_notif | 
 | 	 */ | 
 | 	PSM_UAPSD_AP_MISBEHAVING_NOTIFICATION = 0x78, | 
 |  | 
 | 	/** | 
 | 	 * @LTR_CONFIG: &struct iwl_ltr_config_cmd | 
 | 	 */ | 
 | 	LTR_CONFIG = 0xee, | 
 |  | 
 | 	/** | 
 | 	 * @REPLY_THERMAL_MNG_BACKOFF: | 
 | 	 * Thermal throttling command | 
 | 	 */ | 
 | 	REPLY_THERMAL_MNG_BACKOFF = 0x7e, | 
 |  | 
 | 	/** | 
 | 	 * @DC2DC_CONFIG_CMD: | 
 | 	 * Set/Get DC2DC frequency tune | 
 | 	 * Command is &struct iwl_dc2dc_config_cmd, | 
 | 	 * response is &struct iwl_dc2dc_config_resp | 
 | 	 */ | 
 | 	DC2DC_CONFIG_CMD = 0x83, | 
 |  | 
 | 	/** | 
 | 	 * @NVM_ACCESS_CMD: using &struct iwl_nvm_access_cmd | 
 | 	 */ | 
 | 	NVM_ACCESS_CMD = 0x88, | 
 |  | 
 | 	/** | 
 | 	 * @BEACON_NOTIFICATION: &struct iwl_extended_beacon_notif | 
 | 	 */ | 
 | 	BEACON_NOTIFICATION = 0x90, | 
 |  | 
 | 	/** | 
 | 	 * @BEACON_TEMPLATE_CMD: | 
 | 	 *	Uses one of &struct iwl_mac_beacon_cmd_v6, | 
 | 	 *	&struct iwl_mac_beacon_cmd_v7 or &struct iwl_mac_beacon_cmd | 
 | 	 *	depending on the device version. | 
 | 	 */ | 
 | 	BEACON_TEMPLATE_CMD = 0x91, | 
 | 	/** | 
 | 	 * @TX_ANT_CONFIGURATION_CMD: &struct iwl_tx_ant_cfg_cmd | 
 | 	 */ | 
 | 	TX_ANT_CONFIGURATION_CMD = 0x98, | 
 |  | 
 | 	/** | 
 | 	 * @STATISTICS_CMD: &struct iwl_statistics_cmd | 
 | 	 */ | 
 | 	STATISTICS_CMD = 0x9c, | 
 |  | 
 | 	/** | 
 | 	 * @STATISTICS_NOTIFICATION: | 
 | 	 * one of &struct iwl_notif_statistics_v10, | 
 | 	 * &struct iwl_notif_statistics_v11, | 
 | 	 * &struct iwl_notif_statistics_cdb | 
 | 	 */ | 
 | 	STATISTICS_NOTIFICATION = 0x9d, | 
 |  | 
 | 	/** | 
 | 	 * @EOSP_NOTIFICATION: | 
 | 	 * Notify that a service period ended, | 
 | 	 * &struct iwl_mvm_eosp_notification | 
 | 	 */ | 
 | 	EOSP_NOTIFICATION = 0x9e, | 
 |  | 
 | 	/** | 
 | 	 * @REDUCE_TX_POWER_CMD: | 
 | 	 * &struct iwl_dev_tx_power_cmd_v3 or &struct iwl_dev_tx_power_cmd | 
 | 	 */ | 
 | 	REDUCE_TX_POWER_CMD = 0x9f, | 
 |  | 
 | 	/** | 
 | 	 * @CARD_STATE_NOTIFICATION: | 
 | 	 * Card state (RF/CT kill) notification, | 
 | 	 * uses &struct iwl_card_state_notif | 
 | 	 */ | 
 | 	CARD_STATE_NOTIFICATION = 0xa1, | 
 |  | 
 | 	/** | 
 | 	 * @MISSED_BEACONS_NOTIFICATION: &struct iwl_missed_beacons_notif | 
 | 	 */ | 
 | 	MISSED_BEACONS_NOTIFICATION = 0xa2, | 
 |  | 
 | 	/** | 
 | 	 * @MAC_PM_POWER_TABLE: using &struct iwl_mac_power_cmd | 
 | 	 */ | 
 | 	MAC_PM_POWER_TABLE = 0xa9, | 
 |  | 
 | 	/** | 
 | 	 * @MFUART_LOAD_NOTIFICATION: &struct iwl_mfuart_load_notif | 
 | 	 */ | 
 | 	MFUART_LOAD_NOTIFICATION = 0xb1, | 
 |  | 
 | 	/** | 
 | 	 * @RSS_CONFIG_CMD: &struct iwl_rss_config_cmd | 
 | 	 */ | 
 | 	RSS_CONFIG_CMD = 0xb3, | 
 |  | 
 | 	/** | 
 | 	 * @REPLY_RX_PHY_CMD: &struct iwl_rx_phy_info | 
 | 	 */ | 
 | 	REPLY_RX_PHY_CMD = 0xc0, | 
 |  | 
 | 	/** | 
 | 	 * @REPLY_RX_MPDU_CMD: | 
 | 	 * &struct iwl_rx_mpdu_res_start or &struct iwl_rx_mpdu_desc | 
 | 	 */ | 
 | 	REPLY_RX_MPDU_CMD = 0xc1, | 
 |  | 
 | 	/** | 
 | 	 * @FRAME_RELEASE: | 
 | 	 * Frame release (reorder helper) notification, uses | 
 | 	 * &struct iwl_frame_release | 
 | 	 */ | 
 | 	FRAME_RELEASE = 0xc3, | 
 |  | 
 | 	/** | 
 | 	 * @BA_NOTIF: | 
 | 	 * BlockAck notification, uses &struct iwl_mvm_compressed_ba_notif | 
 | 	 * or &struct iwl_mvm_ba_notif depending on the HW | 
 | 	 */ | 
 | 	BA_NOTIF = 0xc5, | 
 |  | 
 | 	/* Location Aware Regulatory */ | 
 | 	/** | 
 | 	 * @MCC_UPDATE_CMD: using &struct iwl_mcc_update_cmd | 
 | 	 */ | 
 | 	MCC_UPDATE_CMD = 0xc8, | 
 |  | 
 | 	/** | 
 | 	 * @MCC_CHUB_UPDATE_CMD: using &struct iwl_mcc_chub_notif | 
 | 	 */ | 
 | 	MCC_CHUB_UPDATE_CMD = 0xc9, | 
 |  | 
 | 	/** | 
 | 	 * @MARKER_CMD: trace marker command, uses &struct iwl_mvm_marker | 
 | 	 */ | 
 | 	MARKER_CMD = 0xcb, | 
 |  | 
 | 	/** | 
 | 	 * @BT_PROFILE_NOTIFICATION: &struct iwl_bt_coex_profile_notif | 
 | 	 */ | 
 | 	BT_PROFILE_NOTIFICATION = 0xce, | 
 |  | 
 | 	/** | 
 | 	 * @BT_CONFIG: &struct iwl_bt_coex_cmd | 
 | 	 */ | 
 | 	BT_CONFIG = 0x9b, | 
 |  | 
 | 	/** | 
 | 	 * @BT_COEX_UPDATE_REDUCED_TXP: | 
 | 	 * &struct iwl_bt_coex_reduced_txp_update_cmd | 
 | 	 */ | 
 | 	BT_COEX_UPDATE_REDUCED_TXP = 0x5c, | 
 |  | 
 | 	/** | 
 | 	 * @BT_COEX_CI: &struct iwl_bt_coex_ci_cmd | 
 | 	 */ | 
 | 	BT_COEX_CI = 0x5d, | 
 |  | 
 | 	/** | 
 | 	 * @REPLY_SF_CFG_CMD: &struct iwl_sf_cfg_cmd | 
 | 	 */ | 
 | 	REPLY_SF_CFG_CMD = 0xd1, | 
 | 	/** | 
 | 	 * @REPLY_BEACON_FILTERING_CMD: &struct iwl_beacon_filter_cmd | 
 | 	 */ | 
 | 	REPLY_BEACON_FILTERING_CMD = 0xd2, | 
 |  | 
 | 	/** | 
 | 	 * @DTS_MEASUREMENT_NOTIFICATION: | 
 | 	 * &struct iwl_dts_measurement_notif_v1 or | 
 | 	 * &struct iwl_dts_measurement_notif_v2 | 
 | 	 */ | 
 | 	DTS_MEASUREMENT_NOTIFICATION = 0xdd, | 
 |  | 
 | 	/** | 
 | 	 * @LDBG_CONFIG_CMD: configure continuous trace recording | 
 | 	 */ | 
 | 	LDBG_CONFIG_CMD = 0xf6, | 
 |  | 
 | 	/** | 
 | 	 * @DEBUG_LOG_MSG: Debugging log data from firmware | 
 | 	 */ | 
 | 	DEBUG_LOG_MSG = 0xf7, | 
 |  | 
 | 	/** | 
 | 	 * @BCAST_FILTER_CMD: &struct iwl_bcast_filter_cmd | 
 | 	 */ | 
 | 	BCAST_FILTER_CMD = 0xcf, | 
 |  | 
 | 	/** | 
 | 	 * @MCAST_FILTER_CMD: &struct iwl_mcast_filter_cmd | 
 | 	 */ | 
 | 	MCAST_FILTER_CMD = 0xd0, | 
 |  | 
 | 	/** | 
 | 	 * @D3_CONFIG_CMD: &struct iwl_d3_manager_config | 
 | 	 */ | 
 | 	D3_CONFIG_CMD = 0xd3, | 
 |  | 
 | 	/** | 
 | 	 * @PROT_OFFLOAD_CONFIG_CMD: Depending on firmware, uses one of | 
 | 	 * &struct iwl_proto_offload_cmd_v1, &struct iwl_proto_offload_cmd_v2, | 
 | 	 * &struct iwl_proto_offload_cmd_v3_small, | 
 | 	 * &struct iwl_proto_offload_cmd_v3_large | 
 | 	 */ | 
 | 	PROT_OFFLOAD_CONFIG_CMD = 0xd4, | 
 |  | 
 | 	/** | 
 | 	 * @OFFLOADS_QUERY_CMD: | 
 | 	 * No data in command, response in &struct iwl_wowlan_status | 
 | 	 */ | 
 | 	OFFLOADS_QUERY_CMD = 0xd5, | 
 |  | 
 | 	/** | 
 | 	 * @REMOTE_WAKE_CONFIG_CMD: &struct iwl_wowlan_remote_wake_config | 
 | 	 */ | 
 | 	REMOTE_WAKE_CONFIG_CMD = 0xd6, | 
 |  | 
 | 	/** | 
 | 	 * @D0I3_END_CMD: End D0i3/D3 state, no command data | 
 | 	 */ | 
 | 	D0I3_END_CMD = 0xed, | 
 |  | 
 | 	/** | 
 | 	 * @WOWLAN_PATTERNS: &struct iwl_wowlan_patterns_cmd | 
 | 	 */ | 
 | 	WOWLAN_PATTERNS = 0xe0, | 
 |  | 
 | 	/** | 
 | 	 * @WOWLAN_CONFIGURATION: &struct iwl_wowlan_config_cmd | 
 | 	 */ | 
 | 	WOWLAN_CONFIGURATION = 0xe1, | 
 |  | 
 | 	/** | 
 | 	 * @WOWLAN_TSC_RSC_PARAM: &struct iwl_wowlan_rsc_tsc_params_cmd | 
 | 	 */ | 
 | 	WOWLAN_TSC_RSC_PARAM = 0xe2, | 
 |  | 
 | 	/** | 
 | 	 * @WOWLAN_TKIP_PARAM: &struct iwl_wowlan_tkip_params_cmd | 
 | 	 */ | 
 | 	WOWLAN_TKIP_PARAM = 0xe3, | 
 |  | 
 | 	/** | 
 | 	 * @WOWLAN_KEK_KCK_MATERIAL: &struct iwl_wowlan_kek_kck_material_cmd | 
 | 	 */ | 
 | 	WOWLAN_KEK_KCK_MATERIAL = 0xe4, | 
 |  | 
 | 	/** | 
 | 	 * @WOWLAN_GET_STATUSES: response in &struct iwl_wowlan_status | 
 | 	 */ | 
 | 	WOWLAN_GET_STATUSES = 0xe5, | 
 |  | 
 | 	/** | 
 | 	 * @SCAN_OFFLOAD_PROFILES_QUERY_CMD: | 
 | 	 * No command data, response is &struct iwl_scan_offload_profiles_query | 
 | 	 */ | 
 | 	SCAN_OFFLOAD_PROFILES_QUERY_CMD = 0x56, | 
 | }; | 
 |  | 
 | /** | 
 |  * enum iwl_system_subcmd_ids - system group command IDs | 
 |  */ | 
 | enum iwl_system_subcmd_ids { | 
 | 	/** | 
 | 	 * @SHARED_MEM_CFG_CMD: | 
 | 	 * response in &struct iwl_shared_mem_cfg or | 
 | 	 * &struct iwl_shared_mem_cfg_v2 | 
 | 	 */ | 
 | 	SHARED_MEM_CFG_CMD = 0x0, | 
 |  | 
 | 	/** | 
 | 	 * @INIT_EXTENDED_CFG_CMD: &struct iwl_init_extended_cfg_cmd | 
 | 	 */ | 
 | 	INIT_EXTENDED_CFG_CMD = 0x03, | 
 |  | 
 | 	/** | 
 | 	 * @FSEQ_VER_MISMATCH_NTF: Notification about fseq version | 
 | 	 *	mismatch during init.  The format is specified in | 
 | 	 *	&struct iwl_fseq_ver_mismatch_ntf. | 
 | 	 */ | 
 | 	FSEQ_VER_MISMATCH_NTF = 0xFF, | 
 | }; | 
 |  | 
 | #endif /* __iwl_fw_api_commands_h__ */ |