1 /* 2 * Copyright (c) 2019 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 _TX_RATE_STATS_INFO_H_ 25 #define _TX_RATE_STATS_INFO_H_ 26 #if !defined(__ASSEMBLER__) 27 #endif 28 29 30 // ################ START SUMMARY ################# 31 // 32 // Dword Fields 33 // 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] 34 // 1 ppdu_transmission_tsf[31:0] 35 // 36 // ################ END SUMMARY ################# 37 38 #define NUM_OF_DWORDS_TX_RATE_STATS_INFO 2 39 40 struct tx_rate_stats_info { 41 uint32_t tx_rate_stats_info_valid : 1, //[0] 42 transmit_bw : 2, //[2:1] 43 transmit_pkt_type : 4, //[6:3] 44 transmit_stbc : 1, //[7] 45 transmit_ldpc : 1, //[8] 46 transmit_sgi : 2, //[10:9] 47 transmit_mcs : 4, //[14:11] 48 ofdma_transmission : 1, //[15] 49 tones_in_ru : 12, //[27:16] 50 reserved_0a : 4; //[31:28] 51 uint32_t ppdu_transmission_tsf : 32; //[31:0] 52 }; 53 54 /* 55 56 tx_rate_stats_info_valid 57 58 When set all other fields in this STRUCT contain valid 59 info. 60 61 62 63 64 <legal all> 65 66 transmit_bw 67 68 Field only valid when Tx_rate_stats_info_valid is set 69 70 71 72 Indicates the BW of the upcoming transmission that shall 73 likely start in about 3 -4 us on the medium 74 75 76 77 <enum 0 transmit_bw_20_MHz> 78 79 <enum 1 transmit_bw_40_MHz> 80 81 <enum 2 transmit_bw_80_MHz> 82 83 <enum 3 transmit_bw_160_MHz> 84 85 86 87 <legal all> 88 89 transmit_pkt_type 90 91 Field only valid when Tx_rate_stats_info_valid is set 92 93 94 95 Field filled in by PDG. 96 97 Not valid when in SW transmit mode 98 99 100 101 The packet type 102 103 <enum 0 dot11a>802.11a PPDU type 104 105 <enum 1 dot11b>802.11b PPDU type 106 107 <enum 2 dot11n_mm>802.11n Mixed Mode PPDU type 108 109 <enum 3 dot11ac>802.11ac PPDU type 110 111 <enum 4 dot11ax>802.11ax PPDU type 112 113 <enum 5 dot11ba>802.11ba (WUR) PPDU type 114 115 transmit_stbc 116 117 Field only valid when Tx_rate_stats_info_valid is set 118 119 120 121 Field filled in by PDG. 122 123 Not valid when in SW transmit mode 124 125 126 127 When set, STBC transmission rate was used. 128 129 transmit_ldpc 130 131 Field only valid when Tx_rate_stats_info_valid is set 132 133 134 135 Field filled in by PDG. 136 137 Not valid when in SW transmit mode 138 139 140 141 When set, use LDPC transmission rates 142 143 transmit_sgi 144 145 Field only valid when Tx_rate_stats_info_valid is set 146 147 148 149 Field filled in by PDG. 150 151 Not valid when in SW transmit mode 152 153 154 155 <enum 0 0_8_us_sgi > Legacy normal GI. Can also be 156 used for HE 157 158 <enum 1 0_4_us_sgi > Legacy short GI. Can also be 159 used for HE 160 161 <enum 2 1_6_us_sgi > HE related GI 162 163 <enum 3 3_2_us_sgi > HE related GI 164 165 <legal 0 - 3> 166 167 transmit_mcs 168 169 Field only valid when Tx_rate_stats_info_valid is set 170 171 172 173 Field filled in by PDG. 174 175 Not valid when in SW transmit mode 176 177 178 179 For details, refer to MCS_TYPE description 180 181 <legal all> 182 183 ofdma_transmission 184 185 Field only valid when Tx_rate_stats_info_valid is set 186 187 188 189 Field filled in by PDG. 190 191 192 193 Set when the transmission was an OFDMA transmission (DL 194 or UL). 195 196 <legal all> 197 198 tones_in_ru 199 200 Field only valid when Tx_rate_stats_info_valid is set 201 202 203 204 Field filled in by PDG. 205 206 Not valid when in SW transmit mode 207 208 209 210 The number of tones in the RU used. 211 212 <legal all> 213 214 reserved_0a 215 216 <legal 0> 217 218 ppdu_transmission_tsf 219 220 Field only valid when Tx_rate_stats_info_valid is set 221 222 223 224 Based on a HWSCH configuration register setting, this 225 field either contains: 226 227 228 229 Lower 32 bits of the TSF, snapshot of this value when 230 transmission of the PPDU containing the frame finished. 231 232 OR 233 234 Lower 32 bits of the TSF, snapshot of this value when 235 transmission of the PPDU containing the frame started 236 237 238 239 <legal all> 240 */ 241 242 243 /* Description TX_RATE_STATS_INFO_0_TX_RATE_STATS_INFO_VALID 244 245 When set all other fields in this STRUCT contain valid 246 info. 247 248 249 250 251 <legal all> 252 */ 253 #define TX_RATE_STATS_INFO_0_TX_RATE_STATS_INFO_VALID_OFFSET 0x00000000 254 #define TX_RATE_STATS_INFO_0_TX_RATE_STATS_INFO_VALID_LSB 0 255 #define TX_RATE_STATS_INFO_0_TX_RATE_STATS_INFO_VALID_MASK 0x00000001 256 257 /* Description TX_RATE_STATS_INFO_0_TRANSMIT_BW 258 259 Field only valid when Tx_rate_stats_info_valid is set 260 261 262 263 Indicates the BW of the upcoming transmission that shall 264 likely start in about 3 -4 us on the medium 265 266 267 268 <enum 0 transmit_bw_20_MHz> 269 270 <enum 1 transmit_bw_40_MHz> 271 272 <enum 2 transmit_bw_80_MHz> 273 274 <enum 3 transmit_bw_160_MHz> 275 276 277 278 <legal all> 279 */ 280 #define TX_RATE_STATS_INFO_0_TRANSMIT_BW_OFFSET 0x00000000 281 #define TX_RATE_STATS_INFO_0_TRANSMIT_BW_LSB 1 282 #define TX_RATE_STATS_INFO_0_TRANSMIT_BW_MASK 0x00000006 283 284 /* Description TX_RATE_STATS_INFO_0_TRANSMIT_PKT_TYPE 285 286 Field only valid when Tx_rate_stats_info_valid is set 287 288 289 290 Field filled in by PDG. 291 292 Not valid when in SW transmit mode 293 294 295 296 The packet type 297 298 <enum 0 dot11a>802.11a PPDU type 299 300 <enum 1 dot11b>802.11b PPDU type 301 302 <enum 2 dot11n_mm>802.11n Mixed Mode PPDU type 303 304 <enum 3 dot11ac>802.11ac PPDU type 305 306 <enum 4 dot11ax>802.11ax PPDU type 307 308 <enum 5 dot11ba>802.11ba (WUR) PPDU type 309 */ 310 #define TX_RATE_STATS_INFO_0_TRANSMIT_PKT_TYPE_OFFSET 0x00000000 311 #define TX_RATE_STATS_INFO_0_TRANSMIT_PKT_TYPE_LSB 3 312 #define TX_RATE_STATS_INFO_0_TRANSMIT_PKT_TYPE_MASK 0x00000078 313 314 /* Description TX_RATE_STATS_INFO_0_TRANSMIT_STBC 315 316 Field only valid when Tx_rate_stats_info_valid is set 317 318 319 320 Field filled in by PDG. 321 322 Not valid when in SW transmit mode 323 324 325 326 When set, STBC transmission rate was used. 327 */ 328 #define TX_RATE_STATS_INFO_0_TRANSMIT_STBC_OFFSET 0x00000000 329 #define TX_RATE_STATS_INFO_0_TRANSMIT_STBC_LSB 7 330 #define TX_RATE_STATS_INFO_0_TRANSMIT_STBC_MASK 0x00000080 331 332 /* Description TX_RATE_STATS_INFO_0_TRANSMIT_LDPC 333 334 Field only valid when Tx_rate_stats_info_valid is set 335 336 337 338 Field filled in by PDG. 339 340 Not valid when in SW transmit mode 341 342 343 344 When set, use LDPC transmission rates 345 */ 346 #define TX_RATE_STATS_INFO_0_TRANSMIT_LDPC_OFFSET 0x00000000 347 #define TX_RATE_STATS_INFO_0_TRANSMIT_LDPC_LSB 8 348 #define TX_RATE_STATS_INFO_0_TRANSMIT_LDPC_MASK 0x00000100 349 350 /* Description TX_RATE_STATS_INFO_0_TRANSMIT_SGI 351 352 Field only valid when Tx_rate_stats_info_valid is set 353 354 355 356 Field filled in by PDG. 357 358 Not valid when in SW transmit mode 359 360 361 362 <enum 0 0_8_us_sgi > Legacy normal GI. Can also be 363 used for HE 364 365 <enum 1 0_4_us_sgi > Legacy short GI. Can also be 366 used for HE 367 368 <enum 2 1_6_us_sgi > HE related GI 369 370 <enum 3 3_2_us_sgi > HE related GI 371 372 <legal 0 - 3> 373 */ 374 #define TX_RATE_STATS_INFO_0_TRANSMIT_SGI_OFFSET 0x00000000 375 #define TX_RATE_STATS_INFO_0_TRANSMIT_SGI_LSB 9 376 #define TX_RATE_STATS_INFO_0_TRANSMIT_SGI_MASK 0x00000600 377 378 /* Description TX_RATE_STATS_INFO_0_TRANSMIT_MCS 379 380 Field only valid when Tx_rate_stats_info_valid is set 381 382 383 384 Field filled in by PDG. 385 386 Not valid when in SW transmit mode 387 388 389 390 For details, refer to MCS_TYPE description 391 392 <legal all> 393 */ 394 #define TX_RATE_STATS_INFO_0_TRANSMIT_MCS_OFFSET 0x00000000 395 #define TX_RATE_STATS_INFO_0_TRANSMIT_MCS_LSB 11 396 #define TX_RATE_STATS_INFO_0_TRANSMIT_MCS_MASK 0x00007800 397 398 /* Description TX_RATE_STATS_INFO_0_OFDMA_TRANSMISSION 399 400 Field only valid when Tx_rate_stats_info_valid is set 401 402 403 404 Field filled in by PDG. 405 406 407 408 Set when the transmission was an OFDMA transmission (DL 409 or UL). 410 411 <legal all> 412 */ 413 #define TX_RATE_STATS_INFO_0_OFDMA_TRANSMISSION_OFFSET 0x00000000 414 #define TX_RATE_STATS_INFO_0_OFDMA_TRANSMISSION_LSB 15 415 #define TX_RATE_STATS_INFO_0_OFDMA_TRANSMISSION_MASK 0x00008000 416 417 /* Description TX_RATE_STATS_INFO_0_TONES_IN_RU 418 419 Field only valid when Tx_rate_stats_info_valid is set 420 421 422 423 Field filled in by PDG. 424 425 Not valid when in SW transmit mode 426 427 428 429 The number of tones in the RU used. 430 431 <legal all> 432 */ 433 #define TX_RATE_STATS_INFO_0_TONES_IN_RU_OFFSET 0x00000000 434 #define TX_RATE_STATS_INFO_0_TONES_IN_RU_LSB 16 435 #define TX_RATE_STATS_INFO_0_TONES_IN_RU_MASK 0x0fff0000 436 437 /* Description TX_RATE_STATS_INFO_0_RESERVED_0A 438 439 <legal 0> 440 */ 441 #define TX_RATE_STATS_INFO_0_RESERVED_0A_OFFSET 0x00000000 442 #define TX_RATE_STATS_INFO_0_RESERVED_0A_LSB 28 443 #define TX_RATE_STATS_INFO_0_RESERVED_0A_MASK 0xf0000000 444 445 /* Description TX_RATE_STATS_INFO_1_PPDU_TRANSMISSION_TSF 446 447 Field only valid when Tx_rate_stats_info_valid is set 448 449 450 451 Based on a HWSCH configuration register setting, this 452 field either contains: 453 454 455 456 Lower 32 bits of the TSF, snapshot of this value when 457 transmission of the PPDU containing the frame finished. 458 459 OR 460 461 Lower 32 bits of the TSF, snapshot of this value when 462 transmission of the PPDU containing the frame started 463 464 465 466 <legal all> 467 */ 468 #define TX_RATE_STATS_INFO_1_PPDU_TRANSMISSION_TSF_OFFSET 0x00000004 469 #define TX_RATE_STATS_INFO_1_PPDU_TRANSMISSION_TSF_LSB 0 470 #define TX_RATE_STATS_INFO_1_PPDU_TRANSMISSION_TSF_MASK 0xffffffff 471 472 473 #endif // _TX_RATE_STATS_INFO_H_ 474