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_datapath_h__ 64d172a5efSJohannes Berg #define __iwl_fw_api_datapath_h__ 65d172a5efSJohannes Berg 66d172a5efSJohannes Berg /** 67d172a5efSJohannes Berg * enum iwl_data_path_subcmd_ids - data path group commands 68d172a5efSJohannes Berg */ 69d172a5efSJohannes Berg enum iwl_data_path_subcmd_ids { 70d172a5efSJohannes Berg /** 71d172a5efSJohannes Berg * @DQA_ENABLE_CMD: &struct iwl_dqa_enable_cmd 72d172a5efSJohannes Berg */ 73d172a5efSJohannes Berg DQA_ENABLE_CMD = 0x0, 74d172a5efSJohannes Berg 75d172a5efSJohannes Berg /** 76d172a5efSJohannes Berg * @UPDATE_MU_GROUPS_CMD: &struct iwl_mu_group_mgmt_cmd 77d172a5efSJohannes Berg */ 78d172a5efSJohannes Berg UPDATE_MU_GROUPS_CMD = 0x1, 79d172a5efSJohannes Berg 80d172a5efSJohannes Berg /** 81d172a5efSJohannes Berg * @TRIGGER_RX_QUEUES_NOTIF_CMD: &struct iwl_rxq_sync_cmd 82d172a5efSJohannes Berg */ 83d172a5efSJohannes Berg TRIGGER_RX_QUEUES_NOTIF_CMD = 0x2, 84d172a5efSJohannes Berg 85d172a5efSJohannes Berg /** 86d172a5efSJohannes Berg * @STA_PM_NOTIF: &struct iwl_mvm_pm_state_notification 87d172a5efSJohannes Berg */ 88d172a5efSJohannes Berg STA_PM_NOTIF = 0xFD, 89d172a5efSJohannes Berg 90d172a5efSJohannes Berg /** 91d172a5efSJohannes Berg * @MU_GROUP_MGMT_NOTIF: &struct iwl_mu_group_mgmt_notif 92d172a5efSJohannes Berg */ 93d172a5efSJohannes Berg MU_GROUP_MGMT_NOTIF = 0xFE, 94d172a5efSJohannes Berg 95d172a5efSJohannes Berg /** 96d172a5efSJohannes Berg * @RX_QUEUES_NOTIFICATION: &struct iwl_rxq_sync_notification 97d172a5efSJohannes Berg */ 98d172a5efSJohannes Berg RX_QUEUES_NOTIFICATION = 0xFF, 99d172a5efSJohannes Berg }; 100d172a5efSJohannes Berg 101d172a5efSJohannes Berg /** 102d172a5efSJohannes Berg * struct iwl_mu_group_mgmt_cmd - VHT MU-MIMO group configuration 103d172a5efSJohannes Berg * 104d172a5efSJohannes Berg * @reserved: reserved 105d172a5efSJohannes Berg * @membership_status: a bitmap of MU groups 106d172a5efSJohannes Berg * @user_position:the position of station in a group. If the station is in the 107d172a5efSJohannes Berg * group then bits (group * 2) is the position -1 108d172a5efSJohannes Berg */ 109d172a5efSJohannes Berg struct iwl_mu_group_mgmt_cmd { 110d172a5efSJohannes Berg __le32 reserved; 111d172a5efSJohannes Berg __le32 membership_status[2]; 112d172a5efSJohannes Berg __le32 user_position[4]; 113d172a5efSJohannes Berg } __packed; /* MU_GROUP_ID_MNG_TABLE_API_S_VER_1 */ 114d172a5efSJohannes Berg 115d172a5efSJohannes Berg /** 116d172a5efSJohannes Berg * struct iwl_mu_group_mgmt_notif - VHT MU-MIMO group id notification 117d172a5efSJohannes Berg * 118d172a5efSJohannes Berg * @membership_status: a bitmap of MU groups 119d172a5efSJohannes Berg * @user_position: the position of station in a group. If the station is in the 120d172a5efSJohannes Berg * group then bits (group * 2) is the position -1 121d172a5efSJohannes Berg */ 122d172a5efSJohannes Berg struct iwl_mu_group_mgmt_notif { 123d172a5efSJohannes Berg __le32 membership_status[2]; 124d172a5efSJohannes Berg __le32 user_position[4]; 125d172a5efSJohannes Berg } __packed; /* MU_GROUP_MNG_NTFY_API_S_VER_1 */ 126d172a5efSJohannes Berg 127d172a5efSJohannes Berg #endif /* __iwl_fw_api_datapath_h__ */ 128