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