1 /* 2 * Copyright (c) 2020 The Linux Foundation. All rights reserved. 3 * 4 * Permission to use, copy, modify, and/or distribute this software for any 5 * purpose with or without fee is hereby granted, provided that the above 6 * copyright notice and this permission notice appear in all copies. 7 * 8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 */ 16 17 // $ATH_LICENSE_HW_HDR_C$ 18 // 19 // DO NOT EDIT! This file is automatically generated 20 // These definitions are tied to a particular hardware layout 21 22 23 #ifndef _PHYRX_VHT_SIG_A_H_ 24 #define _PHYRX_VHT_SIG_A_H_ 25 #if !defined(__ASSEMBLER__) 26 #endif 27 28 #include "vht_sig_a_info.h" 29 30 // ################ START SUMMARY ################# 31 // 32 // Dword Fields 33 // 0-1 struct vht_sig_a_info phyrx_vht_sig_a_info_details; 34 // 35 // ################ END SUMMARY ################# 36 37 #define NUM_OF_DWORDS_PHYRX_VHT_SIG_A 2 38 39 struct phyrx_vht_sig_a { 40 struct vht_sig_a_info phyrx_vht_sig_a_info_details; 41 }; 42 43 /* 44 45 struct vht_sig_a_info phyrx_vht_sig_a_info_details 46 47 See detailed description of the STRUCT 48 */ 49 50 51 /* EXTERNAL REFERENCE : struct vht_sig_a_info phyrx_vht_sig_a_info_details */ 52 53 54 /* Description PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_BANDWIDTH 55 56 Packet bandwidth 57 58 59 60 <enum 0 20_MHZ_11AC> 61 62 <enum 1 40_MHZ_11AC> 63 64 <enum 2 80_MHZ_11AC> 65 66 <enum 3 160_MHZ_11AC> 67 68 69 70 <legal 0-3> 71 */ 72 #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_BANDWIDTH_OFFSET 0x00000000 73 #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_BANDWIDTH_LSB 0 74 #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_BANDWIDTH_MASK 0x00000003 75 76 /* Description PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0 77 78 Reserved. Set to 1 by MAC, PHY should ignore 79 80 <legal 1> 81 */ 82 #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0_OFFSET 0x00000000 83 #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0_LSB 2 84 #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0_MASK 0x00000004 85 86 /* Description PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_STBC 87 88 Space time block coding: 89 90 <enum 0 stbc_disabled> Indicates STBC is disabled 91 92 <enum 1 stbc_enabled> Indicates STBC is enabled on 93 all streams 94 95 <legal 0-1> 96 */ 97 #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_STBC_OFFSET 0x00000000 98 #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_STBC_LSB 3 99 #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_STBC_MASK 0x00000008 100 101 /* Description PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_GROUP_ID 102 103 In a SU VHT PPDU, if the PPDU carries MPDU(s) addressed 104 to an AP or to a mesh STA, the Group ID field is set to 0, 105 otherwise it is set to 63. In an NDP PPDU the Group ID is 106 set according to IEEE 802.11ac_D1.0 Section 9.30.6 107 (Transmission of a VHT NDP). For a MU-MIMO PPDU the Group ID 108 is set as in 802.11ac_D1.0 Section 22.3.11.3 (Group ID). 109 <legal all> 110 */ 111 #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_GROUP_ID_OFFSET 0x00000000 112 #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_GROUP_ID_LSB 4 113 #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_GROUP_ID_MASK 0x000003f0 114 115 /* Description PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_N_STS 116 117 For MU: 118 119 3 bits/user with maximum of 4 users (user u uses 120 121 vht_sig_a[0][10+3u] - vht_sig_a[0][12+3u]), u = 0, 1, 2, 122 3) 123 124 Set to 0 for 0 space time streams 125 126 Set to 1 for 1 space time stream 127 128 Set to 2 for 2 space time streams 129 130 Set to 3 for 3 space time streams 131 132 Set to 4 for 4 space time streams (not supported in Wifi 133 3.0) 134 135 Values 5-7 are reserved 136 137 In this field, references to user u should be 138 interpreted as MU user u. As described in the previous 139 chapter in this document (see chapter on User number), the 140 MU user value for a given client is defined for each MU 141 group that the client participates in. The MU user number is 142 not related to the internal user number that is used within 143 the BFer. 144 145 146 147 148 149 For SU: 150 151 vht_sig_a[0][12:10] 152 153 Set to 0 for 1 space time stream 154 155 Set to 1 for 2 space time streams 156 157 Set to 2 for 3 space time streams 158 159 Set to 3 for 4 space time streams 160 161 Set to 4 for 5 space time streams 162 163 Set to 5 for 6 space time streams 164 165 Set to 6 for 7 space time streams 166 167 Set to 7 for 8 space time streams 168 169 170 171 vht_sig_a[0][21:13] 172 173 Partial AID: 174 175 Set to the value of the TXVECTOR parameter PARTIAL_AID. 176 Partial AID provides an abbreviated indication of the 177 intended recipient(s) of the frame (see IEEE802.11ac_D1.0 178 Section 9.17a (Partial AID in VHT PPDUs)). 179 180 <legal all> 181 */ 182 #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_N_STS_OFFSET 0x00000000 183 #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_N_STS_LSB 10 184 #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_N_STS_MASK 0x003ffc00 185 186 /* Description PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_TXOP_PS_NOT_ALLOWED 187 188 E_num 0 txop_ps_allowed Not supported: If set to by 189 VHT AP if it allows non-AP VHT STAs in TXOP power save mode 190 to enter Doze state during a TXOP 191 192 <enum 1 no_txop_ps_allowed> Otherwise 193 194 <legal 1> 195 */ 196 #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_TXOP_PS_NOT_ALLOWED_OFFSET 0x00000000 197 #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_TXOP_PS_NOT_ALLOWED_LSB 22 198 #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_TXOP_PS_NOT_ALLOWED_MASK 0x00400000 199 200 /* Description PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0B 201 202 Reserved: Should be set to 1 by the MAC and ignored by 203 the PHY <legal 1> 204 */ 205 #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0B_OFFSET 0x00000000 206 #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0B_LSB 23 207 #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_0B_MASK 0x00800000 208 209 /* Description PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_RESERVED_0 210 211 This field is not part of HT-SIG: 212 213 Reserved: Should be set to 0 by the MAC and ignored by 214 the PHY <legal 0> 215 */ 216 #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_RESERVED_0_OFFSET 0x00000000 217 #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_RESERVED_0_LSB 24 218 #define PHYRX_VHT_SIG_A_0_PHYRX_VHT_SIG_A_INFO_DETAILS_RESERVED_0_MASK 0xff000000 219 220 /* Description PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_GI_SETTING 221 222 <enum 0 normal_gi> Indicates short guard interval 223 is not used in the data field 224 225 <enum 1 short_gi> Indicates short guard interval is 226 used in the data field 227 228 <enum 3 short_gi_ambiguity> Indicates short guard 229 interval is used in the data field and NSYM mod 10 = 9 230 231 NSYM is defined in IEEE802.11ac_D1.0 Section 22.4.3 232 (TXTIME and PSDU_LENGTH calculation). 233 234 <legal 0,1,3> 235 */ 236 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_GI_SETTING_OFFSET 0x00000004 237 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_GI_SETTING_LSB 0 238 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_GI_SETTING_MASK 0x00000003 239 240 /* Description PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_SU_MU_CODING 241 242 For an SU PPDU, B2 is set to 0 for BCC, 1 for LDPC For 243 an MU PPDU, if the MU[0] NSTS field is nonzero(#6773), then 244 B2 indicates the coding used for user 0; set to 0 for BCC 245 and 1 for LDPC. If the MU[0] NSTS field is 0, then this 246 field is reserved and set to 1 247 */ 248 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_SU_MU_CODING_OFFSET 0x00000004 249 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_SU_MU_CODING_LSB 2 250 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_SU_MU_CODING_MASK 0x00000004 251 252 /* Description PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_LDPC_EXTRA_SYMBOL 253 254 Set to 1 if the LDPC PPDU encoding process (if an SU 255 PPDU), or at least one LDPC user's PPDU encoding process (if 256 an MU PPDU), results in an extra OFDM symbol (or symbols) as 257 described in 22.3.10.5.4 (LDPC coding) and 22.3.10.5.5 258 (Encoding process for MU PPDUs). Set to 0 otherwise. 259 */ 260 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_LDPC_EXTRA_SYMBOL_OFFSET 0x00000004 261 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_LDPC_EXTRA_SYMBOL_LSB 3 262 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_LDPC_EXTRA_SYMBOL_MASK 0x00000008 263 264 /* Description PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_MCS 265 266 For SU: 267 268 Set to 0 for BPSK 1/2 269 270 Set to 1 for QPSK 1/2 271 272 Set to 2 for QPSK 3/4 273 274 Set to 3 for 16-QAM 1/2 275 276 Set to 4 for 16-QAM 3/4 277 278 Set to 5 for 64-QAM 2/3 279 280 Set to 6 for 64-QAM 3/4 281 282 Set to 7 for 64-QAM 5/6 283 284 Set to 8 for 256-QAM 3/4 285 286 Set to 9 for 256-QAM 5/6 287 288 For MU: 289 290 If NSTS for user 1 is non-zero, then vht_sig_a[1][4] 291 indicates coding for user 1: set to 0 for BCC, 1 for LDPC. 292 293 If NSTS for user 1 is set to 0, then vht_sig_a[1][4] is 294 reserved and set to 1. 295 296 If NSTS for user 2 is non-zero, then vht_sig_a[1][5] 297 indicates coding for user 2: set to 0 for BCC, 1 for LDPC. 298 299 If NSTS for user 2 is set to 0, then vht_sig_a[1][5] is 300 reserved and set to 1. 301 302 If NSTS for user 3 is non-zero, then vht_sig_a[1][6] 303 indicates coding for user 3: set to 0 for BCC, 1 for LDPC. 304 305 If NSTS for user 3 is set to 0, then vht_sig_a[1][6] is 306 reserved and set to 1. 307 308 vht_sig_a[1][7] is reserved and set to 1 309 310 <legal 0-15> 311 */ 312 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_MCS_OFFSET 0x00000004 313 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_MCS_LSB 4 314 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_MCS_MASK 0x000000f0 315 316 /* Description PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_BEAMFORMED 317 318 For SU: 319 320 Set to 1 if a Beamforming steering matrix is applied to 321 the waveform in an SU transmission as described in 322 IEEE802.11ac_D1.0 Section 19.3.11.11.2 (Spatial mapping), 323 set to 0 otherwise. 324 325 For MU: 326 327 Reserved and set to 1 328 329 <legal 0-1> 330 */ 331 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_BEAMFORMED_OFFSET 0x00000004 332 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_BEAMFORMED_LSB 8 333 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_BEAMFORMED_MASK 0x00000100 334 335 /* Description PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_1 336 337 Reserved and set to 1. <legal 1> 338 */ 339 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_1_OFFSET 0x00000004 340 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_1_LSB 9 341 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_VHTA_RESERVED_1_MASK 0x00000200 342 343 /* Description PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_CRC 344 345 CRC calculated as in IEEE802.11ac_D1.0 Section 346 19.3.9.4.4 (CRC calculation for HTSIG) with C7 in 347 vht_sig_a[1][10], etc. <legal all> 348 */ 349 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_CRC_OFFSET 0x00000004 350 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_CRC_LSB 10 351 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_CRC_MASK 0x0003fc00 352 353 /* Description PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_TAIL 354 355 Used to terminate the trellis of the convolutional 356 decoder. Set to 0. <legal 0> 357 */ 358 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_TAIL_OFFSET 0x00000004 359 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_TAIL_LSB 18 360 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_TAIL_MASK 0x00fc0000 361 362 /* Description PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_RESERVED_1 363 364 This field is not part of HT-SIG: 365 366 Reserved: Should be set to 0 by the MAC and ignored by 367 the PHY <legal 0> 368 */ 369 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_RESERVED_1_OFFSET 0x00000004 370 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_RESERVED_1_LSB 24 371 #define PHYRX_VHT_SIG_A_1_PHYRX_VHT_SIG_A_INFO_DETAILS_RESERVED_1_MASK 0xff000000 372 373 374 #endif // _PHYRX_VHT_SIG_A_H_ 375