1 /* 2 * Copyright (c) 2020 The Linux Foundation. All rights reserved. 3 * 4 * Permission to use, copy, modify, and/or distribute this software for 5 * any purpose with or without fee is hereby granted, provided that the 6 * above copyright notice and this permission notice appear in all 7 * copies. 8 * 9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL 10 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED 11 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE 12 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 13 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR 14 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 15 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 16 * PERFORMANCE OF THIS SOFTWARE. 17 */ 18 19 // 20 // DO NOT EDIT! This file is automatically generated 21 // These definitions are tied to a particular hardware layout 22 23 24 #ifndef _PHYRX_HT_SIG_H_ 25 #define _PHYRX_HT_SIG_H_ 26 #if !defined(__ASSEMBLER__) 27 #endif 28 29 #include "ht_sig_info.h" 30 31 // ################ START SUMMARY ################# 32 // 33 // Dword Fields 34 // 0-1 struct ht_sig_info phyrx_ht_sig_info_details; 35 // 36 // ################ END SUMMARY ################# 37 38 #define NUM_OF_DWORDS_PHYRX_HT_SIG 2 39 40 struct phyrx_ht_sig { 41 struct ht_sig_info phyrx_ht_sig_info_details; 42 }; 43 44 /* 45 46 struct ht_sig_info phyrx_ht_sig_info_details 47 48 See detailed description of the STRUCT 49 */ 50 51 52 /* EXTERNAL REFERENCE : struct ht_sig_info phyrx_ht_sig_info_details */ 53 54 55 /* Description PHYRX_HT_SIG_0_PHYRX_HT_SIG_INFO_DETAILS_MCS 56 57 Modulation Coding Scheme: 58 59 0-7 are used for single stream 60 61 8-15 are used for 2 streams 62 63 16-23 are used for 3 streams 64 65 24-31 are used for 4 streams 66 67 32 is used for duplicate HT20 (unsupported) 68 69 33-76 is used for unequal modulation (unsupported) 70 71 77-127 is reserved. 72 73 <legal 0-31> 74 */ 75 #define PHYRX_HT_SIG_0_PHYRX_HT_SIG_INFO_DETAILS_MCS_OFFSET 0x00000000 76 #define PHYRX_HT_SIG_0_PHYRX_HT_SIG_INFO_DETAILS_MCS_LSB 0 77 #define PHYRX_HT_SIG_0_PHYRX_HT_SIG_INFO_DETAILS_MCS_MASK 0x0000007f 78 79 /* Description PHYRX_HT_SIG_0_PHYRX_HT_SIG_INFO_DETAILS_CBW 80 81 Packet bandwidth: 82 83 <enum 0 ht_20_mhz> 84 85 <enum 1 ht_40_mhz> 86 87 <legal 0-1> 88 */ 89 #define PHYRX_HT_SIG_0_PHYRX_HT_SIG_INFO_DETAILS_CBW_OFFSET 0x00000000 90 #define PHYRX_HT_SIG_0_PHYRX_HT_SIG_INFO_DETAILS_CBW_LSB 7 91 #define PHYRX_HT_SIG_0_PHYRX_HT_SIG_INFO_DETAILS_CBW_MASK 0x00000080 92 93 /* Description PHYRX_HT_SIG_0_PHYRX_HT_SIG_INFO_DETAILS_LENGTH 94 95 This is the MPDU or A-MPDU length in octets of the PPDU 96 97 <legal all> 98 */ 99 #define PHYRX_HT_SIG_0_PHYRX_HT_SIG_INFO_DETAILS_LENGTH_OFFSET 0x00000000 100 #define PHYRX_HT_SIG_0_PHYRX_HT_SIG_INFO_DETAILS_LENGTH_LSB 8 101 #define PHYRX_HT_SIG_0_PHYRX_HT_SIG_INFO_DETAILS_LENGTH_MASK 0x00ffff00 102 103 /* Description PHYRX_HT_SIG_0_PHYRX_HT_SIG_INFO_DETAILS_RESERVED_0 104 105 This field is not part of HT-SIG 106 107 Reserved: Should be set to 0 by the MAC and ignored by 108 the PHY <legal 0> 109 */ 110 #define PHYRX_HT_SIG_0_PHYRX_HT_SIG_INFO_DETAILS_RESERVED_0_OFFSET 0x00000000 111 #define PHYRX_HT_SIG_0_PHYRX_HT_SIG_INFO_DETAILS_RESERVED_0_LSB 24 112 #define PHYRX_HT_SIG_0_PHYRX_HT_SIG_INFO_DETAILS_RESERVED_0_MASK 0xff000000 113 114 /* Description PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_SMOOTHING 115 116 Field indicates if smoothing is needed 117 118 E_num 0 do_smoothing Unsupported setting: indicates 119 smoothing is often used for beamforming 120 121 122 <legal 1> 123 */ 124 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_SMOOTHING_OFFSET 0x00000004 125 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_SMOOTHING_LSB 0 126 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_SMOOTHING_MASK 0x00000001 127 128 /* Description PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_NOT_SOUNDING 129 130 E_num 0 sounding Unsupported setting: indicates 131 sounding is used 132 133 <enum 1 no_sounding> Indicates no sounding is used 134 135 <legal 1> 136 */ 137 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_NOT_SOUNDING_OFFSET 0x00000004 138 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_NOT_SOUNDING_LSB 1 139 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_NOT_SOUNDING_MASK 0x00000002 140 141 /* Description PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_HT_RESERVED 142 143 Reserved: Should be set to 1 by the MAC and ignored by 144 the PHY 145 146 <legal 1> 147 */ 148 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_HT_RESERVED_OFFSET 0x00000004 149 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_HT_RESERVED_LSB 2 150 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_HT_RESERVED_MASK 0x00000004 151 152 /* Description PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_AGGREGATION 153 154 <enum 0 mpdu> Indicates MPDU format 155 156 <enum 1 a_mpdu> Indicates A-MPDU format 157 158 <legal 0-1> 159 */ 160 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_AGGREGATION_OFFSET 0x00000004 161 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_AGGREGATION_LSB 3 162 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_AGGREGATION_MASK 0x00000008 163 164 /* Description PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_STBC 165 166 <enum 0 no_stbc> Indicates no STBC 167 168 <enum 1 1_str_stbc> Indicates 1 stream STBC 169 170 E_num 2 2_str_stbc Indicates 2 stream STBC 171 (Unsupported) 172 173 <legal 0-1> 174 */ 175 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_STBC_OFFSET 0x00000004 176 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_STBC_LSB 4 177 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_STBC_MASK 0x00000030 178 179 /* Description PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_FEC_CODING 180 181 <enum 0 ht_bcc> Indicates BCC coding 182 183 <enum 1 ht_ldpc> Indicates LDPC coding 184 185 <legal 0-1> 186 */ 187 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_FEC_CODING_OFFSET 0x00000004 188 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_FEC_CODING_LSB 6 189 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_FEC_CODING_MASK 0x00000040 190 191 /* Description PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_SHORT_GI 192 193 <enum 0 ht_normal_gi> Indicates normal guard 194 interval 195 196 197 <legal 0-1> 198 */ 199 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_SHORT_GI_OFFSET 0x00000004 200 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_SHORT_GI_LSB 7 201 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_SHORT_GI_MASK 0x00000080 202 203 /* Description PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_NUM_EXT_SP_STR 204 205 Number of extension spatial streams: (Used for TxBF) 206 207 <enum 0 0_ext_sp_str> No extension spatial streams 208 209 E_num 1 1_ext_sp_str Not supported: 1 extension 210 spatial streams 211 212 E_num 2 2_ext_sp_str Not supported: 2 extension 213 spatial streams 214 215 <legal 0> 216 */ 217 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_NUM_EXT_SP_STR_OFFSET 0x00000004 218 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_NUM_EXT_SP_STR_LSB 8 219 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_NUM_EXT_SP_STR_MASK 0x00000300 220 221 /* Description PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_CRC 222 223 The CRC protects the HT-SIG (HT-SIG[0][23:0] and 224 HT-SIG[1][9:0]. The generator polynomial is G(D) = D8 + D2 + 225 D + 1. <legal all> 226 */ 227 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_CRC_OFFSET 0x00000004 228 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_CRC_LSB 10 229 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_CRC_MASK 0x0003fc00 230 231 /* Description PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_SIGNAL_TAIL 232 233 The 6 bits of tail is always set to 0 is used to flush 234 the BCC encoder and decoder. <legal 0> 235 */ 236 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_SIGNAL_TAIL_OFFSET 0x00000004 237 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_SIGNAL_TAIL_LSB 18 238 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_SIGNAL_TAIL_MASK 0x00fc0000 239 240 /* Description PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_RESERVED_1 241 242 This field is not part of HT-SIG: 243 244 Reserved: Should be set to 0 by the MAC and ignored by 245 the PHY. <legal 0> 246 */ 247 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_RESERVED_1_OFFSET 0x00000004 248 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_RESERVED_1_LSB 24 249 #define PHYRX_HT_SIG_1_PHYRX_HT_SIG_INFO_DETAILS_RESERVED_1_MASK 0xff000000 250 251 252 #endif // _PHYRX_HT_SIG_H_ 253