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 /** 10346d372afSGregory Greenman * @TLC_MNG_UPDATE_NOTIF: &struct iwl_tlc_update_notif 10446d372afSGregory Greenman */ 10546d372afSGregory Greenman TLC_MNG_UPDATE_NOTIF = 0xF7, 10646d372afSGregory Greenman 10746d372afSGregory Greenman /** 108d172a5efSJohannes Berg * @STA_PM_NOTIF: &struct iwl_mvm_pm_state_notification 109d172a5efSJohannes Berg */ 110d172a5efSJohannes Berg STA_PM_NOTIF = 0xFD, 111d172a5efSJohannes Berg 112d172a5efSJohannes Berg /** 113d172a5efSJohannes Berg * @MU_GROUP_MGMT_NOTIF: &struct iwl_mu_group_mgmt_notif 114d172a5efSJohannes Berg */ 115d172a5efSJohannes Berg MU_GROUP_MGMT_NOTIF = 0xFE, 116d172a5efSJohannes Berg 117d172a5efSJohannes Berg /** 118d172a5efSJohannes Berg * @RX_QUEUES_NOTIFICATION: &struct iwl_rxq_sync_notification 119d172a5efSJohannes Berg */ 120d172a5efSJohannes Berg RX_QUEUES_NOTIFICATION = 0xFF, 121d172a5efSJohannes Berg }; 122d172a5efSJohannes Berg 123d172a5efSJohannes Berg /** 124d172a5efSJohannes Berg * struct iwl_mu_group_mgmt_cmd - VHT MU-MIMO group configuration 125d172a5efSJohannes Berg * 126d172a5efSJohannes Berg * @reserved: reserved 127d172a5efSJohannes Berg * @membership_status: a bitmap of MU groups 128d172a5efSJohannes Berg * @user_position:the position of station in a group. If the station is in the 129d172a5efSJohannes Berg * group then bits (group * 2) is the position -1 130d172a5efSJohannes Berg */ 131d172a5efSJohannes Berg struct iwl_mu_group_mgmt_cmd { 132d172a5efSJohannes Berg __le32 reserved; 133d172a5efSJohannes Berg __le32 membership_status[2]; 134d172a5efSJohannes Berg __le32 user_position[4]; 135d172a5efSJohannes Berg } __packed; /* MU_GROUP_ID_MNG_TABLE_API_S_VER_1 */ 136d172a5efSJohannes Berg 137d172a5efSJohannes Berg /** 138d172a5efSJohannes Berg * struct iwl_mu_group_mgmt_notif - VHT MU-MIMO group id notification 139d172a5efSJohannes Berg * 140d172a5efSJohannes Berg * @membership_status: a bitmap of MU groups 141d172a5efSJohannes Berg * @user_position: the position of station in a group. If the station is in the 142d172a5efSJohannes Berg * group then bits (group * 2) is the position -1 143d172a5efSJohannes Berg */ 144d172a5efSJohannes Berg struct iwl_mu_group_mgmt_notif { 145d172a5efSJohannes Berg __le32 membership_status[2]; 146d172a5efSJohannes Berg __le32 user_position[4]; 147d172a5efSJohannes Berg } __packed; /* MU_GROUP_MNG_NTFY_API_S_VER_1 */ 148d172a5efSJohannes Berg 149d172a5efSJohannes Berg #endif /* __iwl_fw_api_datapath_h__ */ 150