/* * Copyright (c) 2020 The Linux Foundation. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the * above copyright notice and this permission notice appear in all * copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR * PERFORMANCE OF THIS SOFTWARE. */ // // DO NOT EDIT! This file is automatically generated // These definitions are tied to a particular hardware layout #ifndef _PHYRX_USER_INFO_H_ #define _PHYRX_USER_INFO_H_ #if !defined(__ASSEMBLER__) #endif #include "receive_user_info.h" // ################ START SUMMARY ################# // // Dword Fields // 0-2 struct receive_user_info receive_user_info_details; // // ################ END SUMMARY ################# #define NUM_OF_DWORDS_PHYRX_USER_INFO 3 struct phyrx_user_info { struct receive_user_info receive_user_info_details; }; /* struct receive_user_info receive_user_info_details Overview of receive parameters that the MAC needs to prepend to every received MSDU/MPDU. PHY RX gathers this info for the MAC */ /* EXTERNAL REFERENCE : struct receive_user_info receive_user_info_details */ /* Description PHYRX_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_PHY_PPDU_ID A ppdu counter value that PHY increments for every PPDU received. The counter value wraps around */ #define PHYRX_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_PHY_PPDU_ID_OFFSET 0x00000000 #define PHYRX_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_PHY_PPDU_ID_LSB 0 #define PHYRX_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_PHY_PPDU_ID_MASK 0x0000ffff /* Description PHYRX_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_USER_RSSI RSSI for this user Frequency domain RSSI measurement for this user. Based on the channel estimate. */ #define PHYRX_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_USER_RSSI_OFFSET 0x00000000 #define PHYRX_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_USER_RSSI_LSB 16 #define PHYRX_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_USER_RSSI_MASK 0x00ff0000 /* Description PHYRX_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_PKT_TYPE Packet type: 802.11a PPDU type 802.11b PPDU type 802.11n Mixed Mode PPDU type 802.11ac PPDU type 802.11ax PPDU type 802.11ba (WUR) PPDU type */ #define PHYRX_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_PKT_TYPE_OFFSET 0x00000000 #define PHYRX_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_PKT_TYPE_LSB 24 #define PHYRX_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_PKT_TYPE_MASK 0x0f000000 /* Description PHYRX_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_STBC When set, use STBC transmission rates */ #define PHYRX_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_STBC_OFFSET 0x00000000 #define PHYRX_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_STBC_LSB 28 #define PHYRX_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_STBC_MASK 0x10000000 /* Description PHYRX_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_RECEPTION_TYPE Indicates what type of reception this is. Basic SU reception (not part of OFDMA or MU-MIMO) This is related to DL type of reception This is related to DL type of reception This is related to DL type of reception This is related to UL type of reception This is related to UL type of reception This is related to UL type of reception */ #define PHYRX_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_RECEPTION_TYPE_OFFSET 0x00000000 #define PHYRX_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_RECEPTION_TYPE_LSB 29 #define PHYRX_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_RECEPTION_TYPE_MASK 0xe0000000 /* Description PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_RATE_MCS For details, refer to MCS_TYPE description */ #define PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_RATE_MCS_OFFSET 0x00000004 #define PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_RATE_MCS_LSB 0 #define PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_RATE_MCS_MASK 0x0000000f /* Description PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_SGI Field only valid when pkt type is HT, VHT or HE. Legacy normal GI. Can also be used for HE Legacy short GI. Can also be used for HE HE related GI HE related GI */ #define PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_SGI_OFFSET 0x00000004 #define PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_SGI_LSB 4 #define PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_SGI_MASK 0x00000030 /* Description PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_RECEIVE_BANDWIDTH Full receive Bandwidth */ #define PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_RECEIVE_BANDWIDTH_OFFSET 0x00000004 #define PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_RECEIVE_BANDWIDTH_LSB 6 #define PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_RECEIVE_BANDWIDTH_MASK 0x000000c0 /* Description PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_MIMO_SS_BITMAP Bitmap, with each bit indicating if the related spatial stream is used for this STA LSB related to SS 0 0: spatial stream not used for this reception 1: spatial stream used for this reception */ #define PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_MIMO_SS_BITMAP_OFFSET 0x00000004 #define PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_MIMO_SS_BITMAP_LSB 8 #define PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_MIMO_SS_BITMAP_MASK 0x0000ff00 /* Description PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_RU_ALLOCATION Field only valid in case of OFDMA type receptions (DL and UL) Indicates the RU number associated with this user. In case of reception where the transmission was DL MU OFDMA, this field provides the RU pattern. Note that fields ofdma_user_index and ofdma_content_channel are needed to determine which RU (within a 40 MHz channel) was actually assigned to this user, but this does not give info on which 40 MHz channel was assigned to this user. Please refer DL_ofdma_ru_* in PHYRX_PKT_END_INFO for complete RU info for this user. In case of reception where the transmission was UL MU OFDMA, PHY is recommended to insert the RU start index in this field. Note that PHY may insert the RU width in Reserved_2a[6:0]. */ #define PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_RU_ALLOCATION_OFFSET 0x00000004 #define PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_RU_ALLOCATION_LSB 16 #define PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_RU_ALLOCATION_MASK 0x00ff0000 /* Description PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_USER_INDEX Field only valid in the of DL MU OFDMA reception The user number within the RU_allocation. This is needed for SW to determine the exact RU position within the reception. */ #define PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_USER_INDEX_OFFSET 0x00000004 #define PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_USER_INDEX_LSB 24 #define PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_USER_INDEX_MASK 0x7f000000 /* Description PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_CONTENT_CHANNEL Field only valid in the of DL MU OFDMA/MIMO reception In case of DL MU reception, this field indicates the content channel number where PHY found the RU information for this user This is needed for SW to determine the exact RU position within the reception. */ #define PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_CONTENT_CHANNEL_OFFSET 0x00000004 #define PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_CONTENT_CHANNEL_LSB 31 #define PHYRX_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_CONTENT_CHANNEL_MASK 0x80000000 /* Description PHYRX_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_LDPC When set, use LDPC transmission rates were used. */ #define PHYRX_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_LDPC_OFFSET 0x00000008 #define PHYRX_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_LDPC_LSB 0 #define PHYRX_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_LDPC_MASK 0x00000001 /* Description PHYRX_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_RU_WIDTH In case of UL OFDMA reception, PHY is recommended to insert the RU width In Hastings80: was using Reserved_2a[6:0]. */ #define PHYRX_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_RU_WIDTH_OFFSET 0x00000008 #define PHYRX_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_RU_WIDTH_LSB 1 #define PHYRX_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_RU_WIDTH_MASK 0x000000fe /* Description PHYRX_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_RESERVED_2A */ #define PHYRX_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_RESERVED_2A_OFFSET 0x00000008 #define PHYRX_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_RESERVED_2A_LSB 8 #define PHYRX_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_RESERVED_2A_MASK 0xffffff00 #endif // _PHYRX_USER_INFO_H_