1 /* 2 * Copyright (c) 2016-2017 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. Can also be 155 used for HE 156 157 <enum 1 0_4_us_sgi > Legacy short GI. Can also be 158 used for HE 159 160 <enum 2 1_6_us_sgi > HE related GI 161 162 <enum 3 3_2_us_sgi > HE related GI 163 164 <legal 0 - 3> 165 166 transmit_mcs 167 168 Field only valid when Tx_rate_stats_info_valid is set 169 170 171 172 Field filled in by PDG. 173 174 Not valid when in SW transmit mode 175 176 177 178 For details, refer to MCS_TYPE description 179 180 <legal all> 181 182 ofdma_transmission 183 184 Field only valid when Tx_rate_stats_info_valid is set 185 186 187 188 Field filled in by PDG. 189 190 191 192 Set when the transmission was an OFDMA transmission (DL 193 or UL). 194 195 <legal all> 196 197 tones_in_ru 198 199 Field only valid when Tx_rate_stats_info_valid is set 200 201 202 203 Field filled in by PDG. 204 205 Not valid when in SW transmit mode 206 207 208 209 The number of tones in the RU used. 210 211 <legal all> 212 213 reserved_0a 214 215 <legal 0> 216 217 tsf_directly_after_ppdu_transmission 218 219 Field only valid when Tx_rate_stats_info_valid is set 220 221 222 223 Lower 32 bits of the TSF, snapshot of this value when 224 transmission of the PPDU containing the frame finished. 225 226 <legal all> 227 */ 228 229 230 /* Description TX_RATE_STATS_INFO_0_TX_RATE_STATS_INFO_VALID 231 232 When set all other fields in this STRUCT contain valid 233 info. 234 235 236 237 238 <legal all> 239 */ 240 #define TX_RATE_STATS_INFO_0_TX_RATE_STATS_INFO_VALID_OFFSET 0x00000000 241 #define TX_RATE_STATS_INFO_0_TX_RATE_STATS_INFO_VALID_LSB 0 242 #define TX_RATE_STATS_INFO_0_TX_RATE_STATS_INFO_VALID_MASK 0x00000001 243 244 /* Description TX_RATE_STATS_INFO_0_TRANSMIT_BW 245 246 Field only valid when Tx_rate_stats_info_valid is set 247 248 249 250 Indicates the BW of the upcoming transmission that shall 251 likely start in about 3 -4 us on the medium 252 253 254 255 <enum 0 transmit_bw_20_MHz> 256 257 <enum 1 transmit_bw_40_MHz> 258 259 <enum 2 transmit_bw_80_MHz> 260 261 <enum 3 transmit_bw_160_MHz> 262 263 264 265 <legal all> 266 */ 267 #define TX_RATE_STATS_INFO_0_TRANSMIT_BW_OFFSET 0x00000000 268 #define TX_RATE_STATS_INFO_0_TRANSMIT_BW_LSB 1 269 #define TX_RATE_STATS_INFO_0_TRANSMIT_BW_MASK 0x00000006 270 271 /* Description TX_RATE_STATS_INFO_0_TRANSMIT_PKT_TYPE 272 273 Field only valid when Tx_rate_stats_info_valid is set 274 275 276 277 Field filled in by PDG. 278 279 Not valid when in SW transmit mode 280 281 282 283 The packet type 284 285 <enum 0 dot11a>802.11a PPDU type 286 287 <enum 1 dot11b>802.11b PPDU type 288 289 <enum 2 dot11n_mm>802.11n Mixed Mode PPDU type 290 291 <enum 3 dot11ac>802.11ac PPDU type 292 293 <enum 4 dot11ax>802.11ax PPDU type 294 */ 295 #define TX_RATE_STATS_INFO_0_TRANSMIT_PKT_TYPE_OFFSET 0x00000000 296 #define TX_RATE_STATS_INFO_0_TRANSMIT_PKT_TYPE_LSB 3 297 #define TX_RATE_STATS_INFO_0_TRANSMIT_PKT_TYPE_MASK 0x00000078 298 299 /* Description TX_RATE_STATS_INFO_0_TRANSMIT_STBC 300 301 Field only valid when Tx_rate_stats_info_valid is set 302 303 304 305 Field filled in by PDG. 306 307 Not valid when in SW transmit mode 308 309 310 311 When set, STBC transmission rate was used. 312 */ 313 #define TX_RATE_STATS_INFO_0_TRANSMIT_STBC_OFFSET 0x00000000 314 #define TX_RATE_STATS_INFO_0_TRANSMIT_STBC_LSB 7 315 #define TX_RATE_STATS_INFO_0_TRANSMIT_STBC_MASK 0x00000080 316 317 /* Description TX_RATE_STATS_INFO_0_TRANSMIT_LDPC 318 319 Field only valid when Tx_rate_stats_info_valid is set 320 321 322 323 Field filled in by PDG. 324 325 Not valid when in SW transmit mode 326 327 328 329 When set, use LDPC transmission rates 330 */ 331 #define TX_RATE_STATS_INFO_0_TRANSMIT_LDPC_OFFSET 0x00000000 332 #define TX_RATE_STATS_INFO_0_TRANSMIT_LDPC_LSB 8 333 #define TX_RATE_STATS_INFO_0_TRANSMIT_LDPC_MASK 0x00000100 334 335 /* Description TX_RATE_STATS_INFO_0_TRANSMIT_SGI 336 337 Field only valid when Tx_rate_stats_info_valid is set 338 339 340 341 Field filled in by PDG. 342 343 Not valid when in SW transmit mode 344 345 346 347 <enum 0 0_8_us_sgi > Legacy normal GI. Can also be 348 used for HE 349 350 <enum 1 0_4_us_sgi > Legacy short GI. Can also be 351 used for HE 352 353 <enum 2 1_6_us_sgi > HE related GI 354 355 <enum 3 3_2_us_sgi > HE related GI 356 357 <legal 0 - 3> 358 */ 359 #define TX_RATE_STATS_INFO_0_TRANSMIT_SGI_OFFSET 0x00000000 360 #define TX_RATE_STATS_INFO_0_TRANSMIT_SGI_LSB 9 361 #define TX_RATE_STATS_INFO_0_TRANSMIT_SGI_MASK 0x00000600 362 363 /* Description TX_RATE_STATS_INFO_0_TRANSMIT_MCS 364 365 Field only valid when Tx_rate_stats_info_valid is set 366 367 368 369 Field filled in by PDG. 370 371 Not valid when in SW transmit mode 372 373 374 375 For details, refer to MCS_TYPE description 376 377 <legal all> 378 */ 379 #define TX_RATE_STATS_INFO_0_TRANSMIT_MCS_OFFSET 0x00000000 380 #define TX_RATE_STATS_INFO_0_TRANSMIT_MCS_LSB 11 381 #define TX_RATE_STATS_INFO_0_TRANSMIT_MCS_MASK 0x00007800 382 383 /* Description TX_RATE_STATS_INFO_0_OFDMA_TRANSMISSION 384 385 Field only valid when Tx_rate_stats_info_valid is set 386 387 388 389 Field filled in by PDG. 390 391 392 393 Set when the transmission was an OFDMA transmission (DL 394 or UL). 395 396 <legal all> 397 */ 398 #define TX_RATE_STATS_INFO_0_OFDMA_TRANSMISSION_OFFSET 0x00000000 399 #define TX_RATE_STATS_INFO_0_OFDMA_TRANSMISSION_LSB 15 400 #define TX_RATE_STATS_INFO_0_OFDMA_TRANSMISSION_MASK 0x00008000 401 402 /* Description TX_RATE_STATS_INFO_0_TONES_IN_RU 403 404 Field only valid when Tx_rate_stats_info_valid is set 405 406 407 408 Field filled in by PDG. 409 410 Not valid when in SW transmit mode 411 412 413 414 The number of tones in the RU used. 415 416 <legal all> 417 */ 418 #define TX_RATE_STATS_INFO_0_TONES_IN_RU_OFFSET 0x00000000 419 #define TX_RATE_STATS_INFO_0_TONES_IN_RU_LSB 16 420 #define TX_RATE_STATS_INFO_0_TONES_IN_RU_MASK 0x0fff0000 421 422 /* Description TX_RATE_STATS_INFO_0_RESERVED_0A 423 424 <legal 0> 425 */ 426 #define TX_RATE_STATS_INFO_0_RESERVED_0A_OFFSET 0x00000000 427 #define TX_RATE_STATS_INFO_0_RESERVED_0A_LSB 28 428 #define TX_RATE_STATS_INFO_0_RESERVED_0A_MASK 0xf0000000 429 430 /* Description TX_RATE_STATS_INFO_1_TSF_DIRECTLY_AFTER_PPDU_TRANSMISSION 431 432 Field only valid when Tx_rate_stats_info_valid is set 433 434 435 436 Lower 32 bits of the TSF, snapshot of this value when 437 transmission of the PPDU containing the frame finished. 438 439 <legal all> 440 */ 441 #define TX_RATE_STATS_INFO_1_TSF_DIRECTLY_AFTER_PPDU_TRANSMISSION_OFFSET 0x00000004 442 #define TX_RATE_STATS_INFO_1_TSF_DIRECTLY_AFTER_PPDU_TRANSMISSION_LSB 0 443 #define TX_RATE_STATS_INFO_1_TSF_DIRECTLY_AFTER_PPDU_TRANSMISSION_MASK 0xffffffff 444 445 446 #endif // _TX_RATE_STATS_INFO_H_ 447