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 118edbfaa1SSara Sharon * Copyright (C) 2018 Intel Corporation 12d172a5efSJohannes Berg * 13d172a5efSJohannes Berg * This program is free software; you can redistribute it and/or modify 14d172a5efSJohannes Berg * it under the terms of version 2 of the GNU General Public License as 15d172a5efSJohannes Berg * published by the Free Software Foundation. 16d172a5efSJohannes Berg * 17d172a5efSJohannes Berg * This program is distributed in the hope that it will be useful, but 18d172a5efSJohannes Berg * WITHOUT ANY WARRANTY; without even the implied warranty of 19d172a5efSJohannes Berg * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 20d172a5efSJohannes Berg * General Public License for more details. 21d172a5efSJohannes Berg * 22d172a5efSJohannes Berg * The full GNU General Public License is included in this distribution 23d172a5efSJohannes Berg * in the file called COPYING. 24d172a5efSJohannes Berg * 25d172a5efSJohannes Berg * Contact Information: 26d172a5efSJohannes Berg * Intel Linux Wireless <linuxwifi@intel.com> 27d172a5efSJohannes Berg * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 28d172a5efSJohannes Berg * 29d172a5efSJohannes Berg * BSD LICENSE 30d172a5efSJohannes Berg * 31d172a5efSJohannes Berg * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. 32d172a5efSJohannes Berg * Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH 33d172a5efSJohannes Berg * Copyright(c) 2016 - 2017 Intel Deutschland GmbH 348edbfaa1SSara Sharon * Copyright (C) 2018 Intel Corporation 35d172a5efSJohannes Berg * All rights reserved. 36d172a5efSJohannes Berg * 37d172a5efSJohannes Berg * Redistribution and use in source and binary forms, with or without 38d172a5efSJohannes Berg * modification, are permitted provided that the following conditions 39d172a5efSJohannes Berg * are met: 40d172a5efSJohannes Berg * 41d172a5efSJohannes Berg * * Redistributions of source code must retain the above copyright 42d172a5efSJohannes Berg * notice, this list of conditions and the following disclaimer. 43d172a5efSJohannes Berg * * Redistributions in binary form must reproduce the above copyright 44d172a5efSJohannes Berg * notice, this list of conditions and the following disclaimer in 45d172a5efSJohannes Berg * the documentation and/or other materials provided with the 46d172a5efSJohannes Berg * distribution. 47d172a5efSJohannes Berg * * Neither the name Intel Corporation nor the names of its 48d172a5efSJohannes Berg * contributors may be used to endorse or promote products derived 49d172a5efSJohannes Berg * from this software without specific prior written permission. 50d172a5efSJohannes Berg * 51d172a5efSJohannes Berg * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 52d172a5efSJohannes Berg * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 53d172a5efSJohannes Berg * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 54d172a5efSJohannes Berg * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 55d172a5efSJohannes Berg * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 56d172a5efSJohannes Berg * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 57d172a5efSJohannes Berg * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 58d172a5efSJohannes Berg * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 59d172a5efSJohannes Berg * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 60d172a5efSJohannes Berg * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 61d172a5efSJohannes Berg * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 62d172a5efSJohannes Berg * 63d172a5efSJohannes Berg *****************************************************************************/ 64d172a5efSJohannes Berg 65d172a5efSJohannes Berg #ifndef __iwl_fw_api_datapath_h__ 66d172a5efSJohannes Berg #define __iwl_fw_api_datapath_h__ 67d172a5efSJohannes Berg 68d172a5efSJohannes Berg /** 69d172a5efSJohannes Berg * enum iwl_data_path_subcmd_ids - data path group commands 70d172a5efSJohannes Berg */ 71d172a5efSJohannes Berg enum iwl_data_path_subcmd_ids { 72d172a5efSJohannes Berg /** 73d172a5efSJohannes Berg * @DQA_ENABLE_CMD: &struct iwl_dqa_enable_cmd 74d172a5efSJohannes Berg */ 75d172a5efSJohannes Berg DQA_ENABLE_CMD = 0x0, 76d172a5efSJohannes Berg 77d172a5efSJohannes Berg /** 78d172a5efSJohannes Berg * @UPDATE_MU_GROUPS_CMD: &struct iwl_mu_group_mgmt_cmd 79d172a5efSJohannes Berg */ 80d172a5efSJohannes Berg UPDATE_MU_GROUPS_CMD = 0x1, 81d172a5efSJohannes Berg 82d172a5efSJohannes Berg /** 83d172a5efSJohannes Berg * @TRIGGER_RX_QUEUES_NOTIF_CMD: &struct iwl_rxq_sync_cmd 84d172a5efSJohannes Berg */ 85d172a5efSJohannes Berg TRIGGER_RX_QUEUES_NOTIF_CMD = 0x2, 86d172a5efSJohannes Berg 87d172a5efSJohannes Berg /** 888a6171a7SLuca Coelho * @STA_HE_CTXT_CMD: &struct iwl_he_sta_context_cmd 898a6171a7SLuca Coelho */ 908a6171a7SLuca Coelho STA_HE_CTXT_CMD = 0x7, 918a6171a7SLuca Coelho 928a6171a7SLuca Coelho /** 938edbfaa1SSara Sharon * @RFH_QUEUE_CONFIG_CMD: &struct iwl_rfh_queue_config 948edbfaa1SSara Sharon */ 958edbfaa1SSara Sharon RFH_QUEUE_CONFIG_CMD = 0xD, 968edbfaa1SSara Sharon 978edbfaa1SSara Sharon /** 98110b32f0SGregory Greenman * @TLC_MNG_CONFIG_CMD: &struct iwl_tlc_config_cmd 99110b32f0SGregory Greenman */ 100110b32f0SGregory Greenman TLC_MNG_CONFIG_CMD = 0xF, 101110b32f0SGregory Greenman 102110b32f0SGregory Greenman /** 10398920961SShaul Triebitz * @HE_AIR_SNIFFER_CONFIG_CMD: &struct iwl_he_monitor_cmd 10498920961SShaul Triebitz */ 10598920961SShaul Triebitz HE_AIR_SNIFFER_CONFIG_CMD = 0x13, 10698920961SShaul Triebitz 10798920961SShaul Triebitz /** 108bf9dfedaSShaul Triebitz * @RX_NO_DATA_NOTIF: &struct iwl_rx_no_data 109bf9dfedaSShaul Triebitz */ 110bf9dfedaSShaul Triebitz RX_NO_DATA_NOTIF = 0xF5, 111bf9dfedaSShaul Triebitz 112bf9dfedaSShaul Triebitz /** 11346d372afSGregory Greenman * @TLC_MNG_UPDATE_NOTIF: &struct iwl_tlc_update_notif 11446d372afSGregory Greenman */ 11546d372afSGregory Greenman TLC_MNG_UPDATE_NOTIF = 0xF7, 11646d372afSGregory Greenman 11746d372afSGregory Greenman /** 118d172a5efSJohannes Berg * @STA_PM_NOTIF: &struct iwl_mvm_pm_state_notification 119d172a5efSJohannes Berg */ 120d172a5efSJohannes Berg STA_PM_NOTIF = 0xFD, 121d172a5efSJohannes Berg 122d172a5efSJohannes Berg /** 123d172a5efSJohannes Berg * @MU_GROUP_MGMT_NOTIF: &struct iwl_mu_group_mgmt_notif 124d172a5efSJohannes Berg */ 125d172a5efSJohannes Berg MU_GROUP_MGMT_NOTIF = 0xFE, 126d172a5efSJohannes Berg 127d172a5efSJohannes Berg /** 128d172a5efSJohannes Berg * @RX_QUEUES_NOTIFICATION: &struct iwl_rxq_sync_notification 129d172a5efSJohannes Berg */ 130d172a5efSJohannes Berg RX_QUEUES_NOTIFICATION = 0xFF, 131d172a5efSJohannes Berg }; 132d172a5efSJohannes Berg 133d172a5efSJohannes Berg /** 134d172a5efSJohannes Berg * struct iwl_mu_group_mgmt_cmd - VHT MU-MIMO group configuration 135d172a5efSJohannes Berg * 136d172a5efSJohannes Berg * @reserved: reserved 137d172a5efSJohannes Berg * @membership_status: a bitmap of MU groups 138d172a5efSJohannes Berg * @user_position:the position of station in a group. If the station is in the 139d172a5efSJohannes Berg * group then bits (group * 2) is the position -1 140d172a5efSJohannes Berg */ 141d172a5efSJohannes Berg struct iwl_mu_group_mgmt_cmd { 142d172a5efSJohannes Berg __le32 reserved; 143d172a5efSJohannes Berg __le32 membership_status[2]; 144d172a5efSJohannes Berg __le32 user_position[4]; 145d172a5efSJohannes Berg } __packed; /* MU_GROUP_ID_MNG_TABLE_API_S_VER_1 */ 146d172a5efSJohannes Berg 147d172a5efSJohannes Berg /** 148d172a5efSJohannes Berg * struct iwl_mu_group_mgmt_notif - VHT MU-MIMO group id notification 149d172a5efSJohannes Berg * 150d172a5efSJohannes Berg * @membership_status: a bitmap of MU groups 151d172a5efSJohannes Berg * @user_position: the position of station in a group. If the station is in the 152d172a5efSJohannes Berg * group then bits (group * 2) is the position -1 153d172a5efSJohannes Berg */ 154d172a5efSJohannes Berg struct iwl_mu_group_mgmt_notif { 155d172a5efSJohannes Berg __le32 membership_status[2]; 156d172a5efSJohannes Berg __le32 user_position[4]; 157d172a5efSJohannes Berg } __packed; /* MU_GROUP_MNG_NTFY_API_S_VER_1 */ 158d172a5efSJohannes Berg 159d172a5efSJohannes Berg #endif /* __iwl_fw_api_datapath_h__ */ 160