1 2 /* Copyright (c) 2022, Qualcomm Innovation Center, Inc. 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 18 19 20 21 22 23 24 25 26 #ifndef _TX_FES_STATUS_USER_PPDU_H_ 27 #define _TX_FES_STATUS_USER_PPDU_H_ 28 #if !defined(__ASSEMBLER__) 29 #endif 30 31 #define NUM_OF_DWORDS_TX_FES_STATUS_USER_PPDU 6 32 33 #define NUM_OF_QWORDS_TX_FES_STATUS_USER_PPDU 3 34 35 36 struct tx_fes_status_user_ppdu { 37 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 38 uint32_t underflow_mpdu_count : 9, // [8:0] 39 data_underflow_warning : 2, // [10:9] 40 bw_drop_underflow_warning : 1, // [11:11] 41 qc_eosp_setting : 1, // [12:12] 42 fc_more_data_setting : 1, // [13:13] 43 fc_pwr_mgt_setting : 1, // [14:14] 44 mpdu_tx_count : 9, // [23:15] 45 user_blocked : 1, // [24:24] 46 pre_trig_response_delim_count : 7; // [31:25] 47 uint32_t underflow_byte_count : 16, // [15:0] 48 coex_abort_mpdu_count_valid : 1, // [16:16] 49 coex_abort_mpdu_count : 9, // [25:17] 50 transmitted_tid : 4, // [29:26] 51 txdma_dropped_mpdu_warning : 1, // [30:30] 52 reserved_1 : 1; // [31:31] 53 uint32_t duration : 16, // [15:0] 54 num_eof_delim_added : 16; // [31:16] 55 uint32_t psdu_octet : 24, // [23:0] 56 qos_buf_state : 8; // [31:24] 57 uint32_t num_null_delim_added : 22, // [21:0] 58 reserved_4a : 2, // [23:22] 59 cv_corr_user_valid_in_phy : 1, // [24:24] 60 nss : 3, // [27:25] 61 mcs : 4; // [31:28] 62 uint32_t ht_control : 32; // [31:0] 63 #else 64 uint32_t pre_trig_response_delim_count : 7, // [31:25] 65 user_blocked : 1, // [24:24] 66 mpdu_tx_count : 9, // [23:15] 67 fc_pwr_mgt_setting : 1, // [14:14] 68 fc_more_data_setting : 1, // [13:13] 69 qc_eosp_setting : 1, // [12:12] 70 bw_drop_underflow_warning : 1, // [11:11] 71 data_underflow_warning : 2, // [10:9] 72 underflow_mpdu_count : 9; // [8:0] 73 uint32_t reserved_1 : 1, // [31:31] 74 txdma_dropped_mpdu_warning : 1, // [30:30] 75 transmitted_tid : 4, // [29:26] 76 coex_abort_mpdu_count : 9, // [25:17] 77 coex_abort_mpdu_count_valid : 1, // [16:16] 78 underflow_byte_count : 16; // [15:0] 79 uint32_t num_eof_delim_added : 16, // [31:16] 80 duration : 16; // [15:0] 81 uint32_t qos_buf_state : 8, // [31:24] 82 psdu_octet : 24; // [23:0] 83 uint32_t mcs : 4, // [31:28] 84 nss : 3, // [27:25] 85 cv_corr_user_valid_in_phy : 1, // [24:24] 86 reserved_4a : 2, // [23:22] 87 num_null_delim_added : 22; // [21:0] 88 uint32_t ht_control : 32; // [31:0] 89 #endif 90 }; 91 92 93 /* Description UNDERFLOW_MPDU_COUNT 94 95 The MPDU count correctly received from TX DMA when the first 96 underrun condition was detected 97 <legal 0-256> 98 */ 99 100 #define TX_FES_STATUS_USER_PPDU_UNDERFLOW_MPDU_COUNT_OFFSET 0x0000000000000000 101 #define TX_FES_STATUS_USER_PPDU_UNDERFLOW_MPDU_COUNT_LSB 0 102 #define TX_FES_STATUS_USER_PPDU_UNDERFLOW_MPDU_COUNT_MSB 8 103 #define TX_FES_STATUS_USER_PPDU_UNDERFLOW_MPDU_COUNT_MASK 0x00000000000001ff 104 105 106 /* Description DATA_UNDERFLOW_WARNING 107 108 Mac data underflow warning for this user 109 110 <enum 0 no_data_underrun> No data underflow 111 <enum 1 data_underrun_between_mpdu> PCU experienced data 112 underflow in between MPDUs 113 <enum 2 data_underrun_within_mpdu> PCU experienced data 114 underflow within an MPDU 115 <legal 0-2> 116 */ 117 118 #define TX_FES_STATUS_USER_PPDU_DATA_UNDERFLOW_WARNING_OFFSET 0x0000000000000000 119 #define TX_FES_STATUS_USER_PPDU_DATA_UNDERFLOW_WARNING_LSB 9 120 #define TX_FES_STATUS_USER_PPDU_DATA_UNDERFLOW_WARNING_MSB 10 121 #define TX_FES_STATUS_USER_PPDU_DATA_UNDERFLOW_WARNING_MASK 0x0000000000000600 122 123 124 /* Description BW_DROP_UNDERFLOW_WARNING 125 126 When set, data underflow happened while TXPCU was busy with 127 dropping a frame that is only allowed to go out at certain 128 BW, which is not the BW of the current transmission 129 <legal all> 130 */ 131 132 #define TX_FES_STATUS_USER_PPDU_BW_DROP_UNDERFLOW_WARNING_OFFSET 0x0000000000000000 133 #define TX_FES_STATUS_USER_PPDU_BW_DROP_UNDERFLOW_WARNING_LSB 11 134 #define TX_FES_STATUS_USER_PPDU_BW_DROP_UNDERFLOW_WARNING_MSB 11 135 #define TX_FES_STATUS_USER_PPDU_BW_DROP_UNDERFLOW_WARNING_MASK 0x0000000000000800 136 137 138 /* Description QC_EOSP_SETTING 139 140 This field indicates if TX PCU set the eosp bit in the QoS 141 control field for this user (indicated in field User_Id.) 142 143 0: No action 144 1: eosp bit is set in all the transmitted frames. This is 145 done upon request of the PDG. 146 <legal all> 147 */ 148 149 #define TX_FES_STATUS_USER_PPDU_QC_EOSP_SETTING_OFFSET 0x0000000000000000 150 #define TX_FES_STATUS_USER_PPDU_QC_EOSP_SETTING_LSB 12 151 #define TX_FES_STATUS_USER_PPDU_QC_EOSP_SETTING_MSB 12 152 #define TX_FES_STATUS_USER_PPDU_QC_EOSP_SETTING_MASK 0x0000000000001000 153 154 155 /* Description FC_MORE_DATA_SETTING 156 157 This field indicates what the setting was of the More data 158 bit in the Frame control field for this user (indicated 159 in field User_Id.) 160 161 Note that TXPCU, depending on programming, might overwrite 162 this bit in the Frame control field or just passes on what 163 SW and/or OLE has already programmed. Either way, TXPCU 164 just blindly copies the final setting of this "more Data" 165 bit in the frame control field into this field in the TLV. 166 167 168 0: more_data bit NOT set 169 1: more_data bit is set 170 <legal all> 171 */ 172 173 #define TX_FES_STATUS_USER_PPDU_FC_MORE_DATA_SETTING_OFFSET 0x0000000000000000 174 #define TX_FES_STATUS_USER_PPDU_FC_MORE_DATA_SETTING_LSB 13 175 #define TX_FES_STATUS_USER_PPDU_FC_MORE_DATA_SETTING_MSB 13 176 #define TX_FES_STATUS_USER_PPDU_FC_MORE_DATA_SETTING_MASK 0x0000000000002000 177 178 179 /* Description FC_PWR_MGT_SETTING 180 181 This field indicates what the setting was of the pwr bit 182 in the Frame control field for this user (indicated in 183 field User_Id.) 184 185 Note that TXPCU never manipulates the pwr bit in the FC 186 field. Generating the correct setting is all managed by 187 TX OLE. 188 TXPCU just reports here what the pwr setting was of the (last) 189 transmitted MPDU. 190 191 0: pwr_mgt bit NOT set 192 1: pwr_mgt bit is set 193 <legal all> 194 */ 195 196 #define TX_FES_STATUS_USER_PPDU_FC_PWR_MGT_SETTING_OFFSET 0x0000000000000000 197 #define TX_FES_STATUS_USER_PPDU_FC_PWR_MGT_SETTING_LSB 14 198 #define TX_FES_STATUS_USER_PPDU_FC_PWR_MGT_SETTING_MSB 14 199 #define TX_FES_STATUS_USER_PPDU_FC_PWR_MGT_SETTING_MASK 0x0000000000004000 200 201 202 /* Description MPDU_TX_COUNT 203 204 Number of MPDU frames transmitted 205 206 Note: MPDUs that had an underrun during transmission will 207 still be listed here. The assumption is that underrun is 208 a very rare occasion, and any miscounting can therefor 209 be accepted. If underrun happens too often, SW should change 210 the density settings. 211 <legal 0-256> 212 */ 213 214 #define TX_FES_STATUS_USER_PPDU_MPDU_TX_COUNT_OFFSET 0x0000000000000000 215 #define TX_FES_STATUS_USER_PPDU_MPDU_TX_COUNT_LSB 15 216 #define TX_FES_STATUS_USER_PPDU_MPDU_TX_COUNT_MSB 23 217 #define TX_FES_STATUS_USER_PPDU_MPDU_TX_COUNT_MASK 0x0000000000ff8000 218 219 220 /* Description USER_BLOCKED 221 222 When set, TXPCU received the TX_PEER_ENTRY TLV with bit 'Block_this_user' 223 set. As a result TXDMA did not push in any MPDUs for this 224 user and non were expected to be transmitted. TXPCU will 225 therefor NOT report any underrun conditions for this user 226 227 <legal all> 228 */ 229 230 #define TX_FES_STATUS_USER_PPDU_USER_BLOCKED_OFFSET 0x0000000000000000 231 #define TX_FES_STATUS_USER_PPDU_USER_BLOCKED_LSB 24 232 #define TX_FES_STATUS_USER_PPDU_USER_BLOCKED_MSB 24 233 #define TX_FES_STATUS_USER_PPDU_USER_BLOCKED_MASK 0x0000000001000000 234 235 236 /* Description PRE_TRIG_RESPONSE_DELIM_COUNT 237 238 This field is only valid when this TX_FES_STATUS_USER_PPDU 239 is generated in the context of sending a response to a 240 received trigger frame....(=> TX_FES_STATUS start indicated 241 for field Transmit_start_reason == Trigger_based_transmit_start) 242 243 244 The number of NULL delimiters the TXPCU passed on to the 245 PHY before any real MPDU (response) data is given to the 246 PHY that originated from the SCHeduler command. 247 248 NOTE that this should not be flagged as an underrun condition. 249 250 251 In units of 32 delimiters. 252 253 <legal all> 254 */ 255 256 #define TX_FES_STATUS_USER_PPDU_PRE_TRIG_RESPONSE_DELIM_COUNT_OFFSET 0x0000000000000000 257 #define TX_FES_STATUS_USER_PPDU_PRE_TRIG_RESPONSE_DELIM_COUNT_LSB 25 258 #define TX_FES_STATUS_USER_PPDU_PRE_TRIG_RESPONSE_DELIM_COUNT_MSB 31 259 #define TX_FES_STATUS_USER_PPDU_PRE_TRIG_RESPONSE_DELIM_COUNT_MASK 0x00000000fe000000 260 261 262 /* Description UNDERFLOW_BYTE_COUNT 263 264 The number of bytes correctly received for this MPDU when 265 the first underrun condition was detected 266 267 In case of self-gen + SCH related data, self-gen will not 268 be part of the underflow byte count. For example, in case 269 of BA/CBF, if underrun is hit immediately after BA/CBF 270 is sent, the underflow byte count will be 0.the BA/CBF bytes 271 will not be part of the underflow byte count. 272 */ 273 274 #define TX_FES_STATUS_USER_PPDU_UNDERFLOW_BYTE_COUNT_OFFSET 0x0000000000000000 275 #define TX_FES_STATUS_USER_PPDU_UNDERFLOW_BYTE_COUNT_LSB 32 276 #define TX_FES_STATUS_USER_PPDU_UNDERFLOW_BYTE_COUNT_MSB 47 277 #define TX_FES_STATUS_USER_PPDU_UNDERFLOW_BYTE_COUNT_MASK 0x0000ffff00000000 278 279 280 /* Description COEX_ABORT_MPDU_COUNT_VALID 281 282 When set to 1, the (A-MPDU) transmission was silently aborted 283 in the middle of transmission. The PHY faked the remaining 284 transmission on the medium, so that TX PCU is still waiting 285 for the BA frame to be received. 286 */ 287 288 #define TX_FES_STATUS_USER_PPDU_COEX_ABORT_MPDU_COUNT_VALID_OFFSET 0x0000000000000000 289 #define TX_FES_STATUS_USER_PPDU_COEX_ABORT_MPDU_COUNT_VALID_LSB 48 290 #define TX_FES_STATUS_USER_PPDU_COEX_ABORT_MPDU_COUNT_VALID_MSB 48 291 #define TX_FES_STATUS_USER_PPDU_COEX_ABORT_MPDU_COUNT_VALID_MASK 0x0001000000000000 292 293 294 /* Description COEX_ABORT_MPDU_COUNT 295 296 Field only valid when 'Coex_abort_mpdu_count_valid' is set. 297 298 The number of MPDU frames that were properly sent bdoefore 299 the coex transmit abort request was received 300 <legal 0-256> 301 */ 302 303 #define TX_FES_STATUS_USER_PPDU_COEX_ABORT_MPDU_COUNT_OFFSET 0x0000000000000000 304 #define TX_FES_STATUS_USER_PPDU_COEX_ABORT_MPDU_COUNT_LSB 49 305 #define TX_FES_STATUS_USER_PPDU_COEX_ABORT_MPDU_COUNT_MSB 57 306 #define TX_FES_STATUS_USER_PPDU_COEX_ABORT_MPDU_COUNT_MASK 0x03fe000000000000 307 308 309 /* Description TRANSMITTED_TID 310 311 TID field blindy copied over from the TX_QUEUE_EXTENSION 312 TLV, field qos_ctrl[3:0] 313 <legal all> 314 */ 315 316 #define TX_FES_STATUS_USER_PPDU_TRANSMITTED_TID_OFFSET 0x0000000000000000 317 #define TX_FES_STATUS_USER_PPDU_TRANSMITTED_TID_LSB 58 318 #define TX_FES_STATUS_USER_PPDU_TRANSMITTED_TID_MSB 61 319 #define TX_FES_STATUS_USER_PPDU_TRANSMITTED_TID_MASK 0x3c00000000000000 320 321 322 /* Description TXDMA_DROPPED_MPDU_WARNING 323 324 Indication to FW a warning that Tx DMA has dropped MPDUs 325 due to SFM FIFO full condition 326 TXPCU fills this from OR of all TXDMA_dropped_mpdu_warning 327 in 'TX_MPDU_STARTs' for this PPDU. 328 <legal all> 329 */ 330 331 #define TX_FES_STATUS_USER_PPDU_TXDMA_DROPPED_MPDU_WARNING_OFFSET 0x0000000000000000 332 #define TX_FES_STATUS_USER_PPDU_TXDMA_DROPPED_MPDU_WARNING_LSB 62 333 #define TX_FES_STATUS_USER_PPDU_TXDMA_DROPPED_MPDU_WARNING_MSB 62 334 #define TX_FES_STATUS_USER_PPDU_TXDMA_DROPPED_MPDU_WARNING_MASK 0x4000000000000000 335 336 337 /* Description RESERVED_1 338 339 Reserved and not used by HW 340 <legal 0> 341 */ 342 343 #define TX_FES_STATUS_USER_PPDU_RESERVED_1_OFFSET 0x0000000000000000 344 #define TX_FES_STATUS_USER_PPDU_RESERVED_1_LSB 63 345 #define TX_FES_STATUS_USER_PPDU_RESERVED_1_MSB 63 346 #define TX_FES_STATUS_USER_PPDU_RESERVED_1_MASK 0x8000000000000000 347 348 349 /* Description DURATION 350 351 The value of the duration field that TXPCU inserted in transmitted 352 frames, for Tx Monitor to report 353 354 For frames of encap type Ethernet or 802_3 TXPCU will always 355 insert this value 356 357 358 For frames of encap type: RAW and Native WiFi, TXPCU will 359 check the 'Duration_field_mask' setting in TX_RAW_OR_NATIVE_FRAME_SETUP 360 TLV to find out if overwrite is enabled. (This is per user) 361 362 363 In case of multi TID transmission of Multi STA transmission, 364 TXPCU will look at the 'TX_RAW_OR_NATIVE_FRAME_SETUP' of 365 the 'first user' 366 Hamilton v1 used this for 'num_null_delim_added' and bits 367 [15:0] of word 4 for this field. 368 <legal all> 369 */ 370 371 #define TX_FES_STATUS_USER_PPDU_DURATION_OFFSET 0x0000000000000008 372 #define TX_FES_STATUS_USER_PPDU_DURATION_LSB 0 373 #define TX_FES_STATUS_USER_PPDU_DURATION_MSB 15 374 #define TX_FES_STATUS_USER_PPDU_DURATION_MASK 0x000000000000ffff 375 376 377 /* Description NUM_EOF_DELIM_ADDED 378 379 The total number of EOF pad delimiters added by TXPCU to 380 the current PPDU for the MD/multi-TID group this user belongs 381 to 382 383 Set to 0xFFFF if the number exceeds the field width 384 <legal all> 385 */ 386 387 #define TX_FES_STATUS_USER_PPDU_NUM_EOF_DELIM_ADDED_OFFSET 0x0000000000000008 388 #define TX_FES_STATUS_USER_PPDU_NUM_EOF_DELIM_ADDED_LSB 16 389 #define TX_FES_STATUS_USER_PPDU_NUM_EOF_DELIM_ADDED_MSB 31 390 #define TX_FES_STATUS_USER_PPDU_NUM_EOF_DELIM_ADDED_MASK 0x00000000ffff0000 391 392 393 /* Description PSDU_OCTET 394 395 Field only valid in case in 'TX_FES_STATUS_START' the field 396 Transmit_start_reason != Trigger_based_transmit_start 397 398 PSDU length in octets which includes all useful data in 399 a packet which includes EOF padding and final padding (including 400 the last 0 - 3 bytes). 401 402 This is copied by TXPCU from 'PCU_PPDU_SETUP_USER.' 403 404 <legal all> 405 */ 406 407 #define TX_FES_STATUS_USER_PPDU_PSDU_OCTET_OFFSET 0x0000000000000008 408 #define TX_FES_STATUS_USER_PPDU_PSDU_OCTET_LSB 32 409 #define TX_FES_STATUS_USER_PPDU_PSDU_OCTET_MSB 55 410 #define TX_FES_STATUS_USER_PPDU_PSDU_OCTET_MASK 0x00ffffff00000000 411 412 413 /* Description QOS_BUF_STATE 414 415 The value of the buffer state field in the QoS control that 416 TXPCU inserted in transmitted frames, for Tx Monitor to 417 report 418 419 TXPCU checks the '*Buf_state*' settings in 'TX_QUEUE_EXTENSION' 420 TLV to determine the value to insert. 421 422 If TXPCU did not overwrite the buffer state field, this 423 shall be set to 0x0. 424 <legal all> 425 */ 426 427 #define TX_FES_STATUS_USER_PPDU_QOS_BUF_STATE_OFFSET 0x0000000000000008 428 #define TX_FES_STATUS_USER_PPDU_QOS_BUF_STATE_LSB 56 429 #define TX_FES_STATUS_USER_PPDU_QOS_BUF_STATE_MSB 63 430 #define TX_FES_STATUS_USER_PPDU_QOS_BUF_STATE_MASK 0xff00000000000000 431 432 433 /* Description NUM_NULL_DELIM_ADDED 434 435 The total number of non-EOF pad/null delimiters added by 436 TXPCU to the current PPDU for this user 437 438 Set to 0x3FFFFF if the number exceeds the field width 439 Hamilton v1 used bits [15:0] for 'Duration' and bits [23:16] 440 for 'Qos_Buf_state' using bits [15:0] of word 2 for this 441 field. 442 <legal all> 443 */ 444 445 #define TX_FES_STATUS_USER_PPDU_NUM_NULL_DELIM_ADDED_OFFSET 0x0000000000000010 446 #define TX_FES_STATUS_USER_PPDU_NUM_NULL_DELIM_ADDED_LSB 0 447 #define TX_FES_STATUS_USER_PPDU_NUM_NULL_DELIM_ADDED_MSB 21 448 #define TX_FES_STATUS_USER_PPDU_NUM_NULL_DELIM_ADDED_MASK 0x00000000003fffff 449 450 451 /* Description RESERVED_4A 452 453 <legal 0> 454 */ 455 456 #define TX_FES_STATUS_USER_PPDU_RESERVED_4A_OFFSET 0x0000000000000010 457 #define TX_FES_STATUS_USER_PPDU_RESERVED_4A_LSB 22 458 #define TX_FES_STATUS_USER_PPDU_RESERVED_4A_MSB 23 459 #define TX_FES_STATUS_USER_PPDU_RESERVED_4A_MASK 0x0000000000c00000 460 461 462 /* Description CV_CORR_USER_VALID_IN_PHY 463 464 PDG sets this as 1 for up to 8 users enabled in 'PHYTX_CV_CORR_STATUS' 465 after CV correlation, to be copied from 'PCU_PPDU_SETUP_USER.' 466 467 468 <legal all> 469 */ 470 471 #define TX_FES_STATUS_USER_PPDU_CV_CORR_USER_VALID_IN_PHY_OFFSET 0x0000000000000010 472 #define TX_FES_STATUS_USER_PPDU_CV_CORR_USER_VALID_IN_PHY_LSB 24 473 #define TX_FES_STATUS_USER_PPDU_CV_CORR_USER_VALID_IN_PHY_MSB 24 474 #define TX_FES_STATUS_USER_PPDU_CV_CORR_USER_VALID_IN_PHY_MASK 0x0000000001000000 475 476 477 /* Description NSS 478 479 Number of Spatial Streams occupied by the User, to be copied 480 from 'PCU_PPDU_SETUP_USER' by TXPCU 481 482 <enum 0 1_spatial_stream>Single spatial stream 483 <enum 1 2_spatial_streams>2 spatial streams 484 <enum 2 3_spatial_streams>3 spatial streams 485 <enum 3 4_spatial_streams>4 spatial streams 486 <enum 4 5_spatial_streams>5 spatial streams 487 <enum 5 6_spatial_streams>6 spatial streams 488 <enum 6 7_spatial_streams>7 spatial streams 489 <enum 7 8_spatial_streams>8 spatial streams 490 */ 491 492 #define TX_FES_STATUS_USER_PPDU_NSS_OFFSET 0x0000000000000010 493 #define TX_FES_STATUS_USER_PPDU_NSS_LSB 25 494 #define TX_FES_STATUS_USER_PPDU_NSS_MSB 27 495 #define TX_FES_STATUS_USER_PPDU_NSS_MASK 0x000000000e000000 496 497 498 /* Description MCS 499 500 Modulation Coding Scheme for the User, to be copied from 501 'PCU_PPDU_SETUP_USER' by TXPCU 502 503 <legal all> 504 */ 505 506 #define TX_FES_STATUS_USER_PPDU_MCS_OFFSET 0x0000000000000010 507 #define TX_FES_STATUS_USER_PPDU_MCS_LSB 28 508 #define TX_FES_STATUS_USER_PPDU_MCS_MSB 31 509 #define TX_FES_STATUS_USER_PPDU_MCS_MASK 0x00000000f0000000 510 511 512 /* Description HT_CONTROL 513 514 The value of the HT control field that TXPCU inserted in 515 transmitted frames, for Tx Monitor to report 516 517 TXPCU checks the various HT-control-related settings in 'TX_QUEUE_EXTENSION' 518 TLV to determine the value to insert. 519 520 If TXPCU did not overwrite the HT control field, this shall 521 be set to 0x0. 522 <legal all> 523 */ 524 525 #define TX_FES_STATUS_USER_PPDU_HT_CONTROL_OFFSET 0x0000000000000010 526 #define TX_FES_STATUS_USER_PPDU_HT_CONTROL_LSB 32 527 #define TX_FES_STATUS_USER_PPDU_HT_CONTROL_MSB 63 528 #define TX_FES_STATUS_USER_PPDU_HT_CONTROL_MASK 0xffffffff00000000 529 530 531 532 #endif // TX_FES_STATUS_USER_PPDU 533