/* * Copyright (c) 2016 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. */ // $ATH_LICENSE_HW_HDR_C$ // // DO NOT EDIT! This file is automatically generated // These definitions are tied to a particular hardware layout #ifndef _TX_RATE_STATS_INFO_H_ #define _TX_RATE_STATS_INFO_H_ #if !defined(__ASSEMBLER__) #endif // ################ START SUMMARY ################# // // Dword Fields // 0 tx_rate_stats_info_valid[0], transmit_bw[2:1], transmit_pkt_type[6:3], transmit_stbc[7], transmit_ldpc[8], transmit_sgi[10:9], transmit_mcs[14:11], ofdma_transmission[15], tones_in_ru[27:16], reserved_0a[31:28] // 1 tsf_directly_after_ppdu_transmission[31:0] // // ################ END SUMMARY ################# #define NUM_OF_DWORDS_TX_RATE_STATS_INFO 2 struct tx_rate_stats_info { uint32_t tx_rate_stats_info_valid : 1, //[0] transmit_bw : 2, //[2:1] transmit_pkt_type : 4, //[6:3] transmit_stbc : 1, //[7] transmit_ldpc : 1, //[8] transmit_sgi : 2, //[10:9] transmit_mcs : 4, //[14:11] ofdma_transmission : 1, //[15] tones_in_ru : 12, //[27:16] reserved_0a : 4; //[31:28] uint32_t tsf_directly_after_ppdu_transmission: 32; //[31:0] }; /* tx_rate_stats_info_valid When set all other fields in this STRUCT contain valid info. transmit_bw Field only valid when Tx_rate_stats_info_valid is set Indicates the BW of the upcoming transmission that shall likely start in about 3 -4 us on the medium transmit_pkt_type Field only valid when Tx_rate_stats_info_valid is set Field filled in by PDG. Not valid when in SW transmit mode The packet type 802.11a PPDU type 802.11b PPDU type 802.11n Mixed Mode PPDU type 802.11ac PPDU type 802.11ax PPDU type transmit_stbc Field only valid when Tx_rate_stats_info_valid is set Field filled in by PDG. Not valid when in SW transmit mode When set, STBC transmission rate was used. transmit_ldpc Field only valid when Tx_rate_stats_info_valid is set Field filled in by PDG. Not valid when in SW transmit mode When set, use LDPC transmission rates transmit_sgi Field only valid when Tx_rate_stats_info_valid is set Field filled in by PDG. Not valid when in SW transmit mode Legacy normal GI Legacy short GI HE related GI HE related GI transmit_mcs Field only valid when Tx_rate_stats_info_valid is set Field filled in by PDG. Not valid when in SW transmit mode For details, refer to MCS_TYPE description ofdma_transmission Field only valid when Tx_rate_stats_info_valid is set Field filled in by PDG. Set when the transmission was an OFDMA transmission (DL or UL). tones_in_ru Field only valid when Tx_rate_stats_info_valid is set Field filled in by PDG. Not valid when in SW transmit mode The number of tones in the RU used. TODO: not clear yet what the number of tones is for RUs of 160 or 80 + 80 ??? For now assumption is that this value for this scenario will indicate: 0x7FF reserved_0a tsf_directly_after_ppdu_transmission Field only valid when Tx_rate_stats_info_valid is set Lower 32 bits of the TSF, snapshot of this value when transmission of the PPDU containing the frame finished. */ /* Description TX_RATE_STATS_INFO_0_TX_RATE_STATS_INFO_VALID When set all other fields in this STRUCT contain valid info. */ #define TX_RATE_STATS_INFO_0_TX_RATE_STATS_INFO_VALID_OFFSET 0x00000000 #define TX_RATE_STATS_INFO_0_TX_RATE_STATS_INFO_VALID_LSB 0 #define TX_RATE_STATS_INFO_0_TX_RATE_STATS_INFO_VALID_MASK 0x00000001 /* Description TX_RATE_STATS_INFO_0_TRANSMIT_BW Field only valid when Tx_rate_stats_info_valid is set Indicates the BW of the upcoming transmission that shall likely start in about 3 -4 us on the medium */ #define TX_RATE_STATS_INFO_0_TRANSMIT_BW_OFFSET 0x00000000 #define TX_RATE_STATS_INFO_0_TRANSMIT_BW_LSB 1 #define TX_RATE_STATS_INFO_0_TRANSMIT_BW_MASK 0x00000006 /* Description TX_RATE_STATS_INFO_0_TRANSMIT_PKT_TYPE Field only valid when Tx_rate_stats_info_valid is set Field filled in by PDG. Not valid when in SW transmit mode The packet type 802.11a PPDU type 802.11b PPDU type 802.11n Mixed Mode PPDU type 802.11ac PPDU type 802.11ax PPDU type */ #define TX_RATE_STATS_INFO_0_TRANSMIT_PKT_TYPE_OFFSET 0x00000000 #define TX_RATE_STATS_INFO_0_TRANSMIT_PKT_TYPE_LSB 3 #define TX_RATE_STATS_INFO_0_TRANSMIT_PKT_TYPE_MASK 0x00000078 /* Description TX_RATE_STATS_INFO_0_TRANSMIT_STBC Field only valid when Tx_rate_stats_info_valid is set Field filled in by PDG. Not valid when in SW transmit mode When set, STBC transmission rate was used. */ #define TX_RATE_STATS_INFO_0_TRANSMIT_STBC_OFFSET 0x00000000 #define TX_RATE_STATS_INFO_0_TRANSMIT_STBC_LSB 7 #define TX_RATE_STATS_INFO_0_TRANSMIT_STBC_MASK 0x00000080 /* Description TX_RATE_STATS_INFO_0_TRANSMIT_LDPC Field only valid when Tx_rate_stats_info_valid is set Field filled in by PDG. Not valid when in SW transmit mode When set, use LDPC transmission rates */ #define TX_RATE_STATS_INFO_0_TRANSMIT_LDPC_OFFSET 0x00000000 #define TX_RATE_STATS_INFO_0_TRANSMIT_LDPC_LSB 8 #define TX_RATE_STATS_INFO_0_TRANSMIT_LDPC_MASK 0x00000100 /* Description TX_RATE_STATS_INFO_0_TRANSMIT_SGI Field only valid when Tx_rate_stats_info_valid is set Field filled in by PDG. Not valid when in SW transmit mode Legacy normal GI Legacy short GI HE related GI HE related GI */ #define TX_RATE_STATS_INFO_0_TRANSMIT_SGI_OFFSET 0x00000000 #define TX_RATE_STATS_INFO_0_TRANSMIT_SGI_LSB 9 #define TX_RATE_STATS_INFO_0_TRANSMIT_SGI_MASK 0x00000600 /* Description TX_RATE_STATS_INFO_0_TRANSMIT_MCS Field only valid when Tx_rate_stats_info_valid is set Field filled in by PDG. Not valid when in SW transmit mode For details, refer to MCS_TYPE description */ #define TX_RATE_STATS_INFO_0_TRANSMIT_MCS_OFFSET 0x00000000 #define TX_RATE_STATS_INFO_0_TRANSMIT_MCS_LSB 11 #define TX_RATE_STATS_INFO_0_TRANSMIT_MCS_MASK 0x00007800 /* Description TX_RATE_STATS_INFO_0_OFDMA_TRANSMISSION Field only valid when Tx_rate_stats_info_valid is set Field filled in by PDG. Set when the transmission was an OFDMA transmission (DL or UL). */ #define TX_RATE_STATS_INFO_0_OFDMA_TRANSMISSION_OFFSET 0x00000000 #define TX_RATE_STATS_INFO_0_OFDMA_TRANSMISSION_LSB 15 #define TX_RATE_STATS_INFO_0_OFDMA_TRANSMISSION_MASK 0x00008000 /* Description TX_RATE_STATS_INFO_0_TONES_IN_RU Field only valid when Tx_rate_stats_info_valid is set Field filled in by PDG. Not valid when in SW transmit mode The number of tones in the RU used. TODO: not clear yet what the number of tones is for RUs of 160 or 80 + 80 ??? For now assumption is that this value for this scenario will indicate: 0x7FF */ #define TX_RATE_STATS_INFO_0_TONES_IN_RU_OFFSET 0x00000000 #define TX_RATE_STATS_INFO_0_TONES_IN_RU_LSB 16 #define TX_RATE_STATS_INFO_0_TONES_IN_RU_MASK 0x0fff0000 /* Description TX_RATE_STATS_INFO_0_RESERVED_0A */ #define TX_RATE_STATS_INFO_0_RESERVED_0A_OFFSET 0x00000000 #define TX_RATE_STATS_INFO_0_RESERVED_0A_LSB 28 #define TX_RATE_STATS_INFO_0_RESERVED_0A_MASK 0xf0000000 /* Description TX_RATE_STATS_INFO_1_TSF_DIRECTLY_AFTER_PPDU_TRANSMISSION Field only valid when Tx_rate_stats_info_valid is set Lower 32 bits of the TSF, snapshot of this value when transmission of the PPDU containing the frame finished. */ #define TX_RATE_STATS_INFO_1_TSF_DIRECTLY_AFTER_PPDU_TRANSMISSION_OFFSET 0x00000004 #define TX_RATE_STATS_INFO_1_TSF_DIRECTLY_AFTER_PPDU_TRANSMISSION_LSB 0 #define TX_RATE_STATS_INFO_1_TSF_DIRECTLY_AFTER_PPDU_TRANSMISSION_MASK 0xffffffff #endif // _TX_RATE_STATS_INFO_H_