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