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 _PDG_RESPONSE_H_ 27 #define _PDG_RESPONSE_H_ 28 #if !defined(__ASSEMBLER__) 29 #endif 30 31 #include "pdg_response_rate_setting.h" 32 #define NUM_OF_DWORDS_PDG_RESPONSE 12 33 34 #define NUM_OF_QWORDS_PDG_RESPONSE 6 35 36 37 struct pdg_response { 38 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 39 struct pdg_response_rate_setting hw_response_rate_info; 40 uint32_t hw_response_tx_duration : 16, // [15:0] 41 rx_duration_field : 16; // [31:16] 42 uint32_t punctured_response_transmission : 1, // [0:0] 43 cca_subband_channel_bonding_mask : 16, // [16:1] 44 scrambler_seed_override : 2, // [18:17] 45 response_density_valid : 1, // [19:19] 46 response_density : 5, // [24:20] 47 more_data : 1, // [25:25] 48 duration_indication : 1, // [26:26] 49 relayed_frame : 1, // [27:27] 50 address_indicator : 1, // [28:28] 51 bandwidth : 3; // [31:29] 52 uint32_t ack_id : 16, // [15:0] 53 block_ack_bitmap : 16; // [31:16] 54 uint32_t response_frame_type : 4, // [3:0] 55 ack_id_ext : 10, // [13:4] 56 ftm_en : 1, // [14:14] 57 group_id : 6, // [20:15] 58 sta_partial_aid : 11; // [31:21] 59 uint32_t ndp_ba_start_seq_ctrl : 12, // [11:0] 60 active_channel : 3, // [14:12] 61 txop_duration_all_ones : 1, // [15:15] 62 frame_length : 16; // [31:16] 63 #else 64 struct pdg_response_rate_setting hw_response_rate_info; 65 uint32_t rx_duration_field : 16, // [31:16] 66 hw_response_tx_duration : 16; // [15:0] 67 uint32_t bandwidth : 3, // [31:29] 68 address_indicator : 1, // [28:28] 69 relayed_frame : 1, // [27:27] 70 duration_indication : 1, // [26:26] 71 more_data : 1, // [25:25] 72 response_density : 5, // [24:20] 73 response_density_valid : 1, // [19:19] 74 scrambler_seed_override : 2, // [18:17] 75 cca_subband_channel_bonding_mask : 16, // [16:1] 76 punctured_response_transmission : 1; // [0:0] 77 uint32_t block_ack_bitmap : 16, // [31:16] 78 ack_id : 16; // [15:0] 79 uint32_t sta_partial_aid : 11, // [31:21] 80 group_id : 6, // [20:15] 81 ftm_en : 1, // [14:14] 82 ack_id_ext : 10, // [13:4] 83 response_frame_type : 4; // [3:0] 84 uint32_t frame_length : 16, // [31:16] 85 txop_duration_all_ones : 1, // [15:15] 86 active_channel : 3, // [14:12] 87 ndp_ba_start_seq_ctrl : 12; // [11:0] 88 #endif 89 }; 90 91 92 /* Description HW_RESPONSE_RATE_INFO 93 94 All transmit rate related parameters 95 */ 96 97 98 /* Description RESERVED_0A 99 100 101 <legal 0> 102 */ 103 104 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_0A_OFFSET 0x0000000000000000 105 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_0A_LSB 0 106 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_0A_MSB 0 107 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_0A_MASK 0x0000000000000001 108 109 110 /* Description TX_ANTENNA_SECTOR_CTRL 111 112 Sectored transmit antenna 113 <legal all> 114 */ 115 116 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_ANTENNA_SECTOR_CTRL_OFFSET 0x0000000000000000 117 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_ANTENNA_SECTOR_CTRL_LSB 1 118 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_ANTENNA_SECTOR_CTRL_MSB 24 119 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_ANTENNA_SECTOR_CTRL_MASK 0x0000000001fffffe 120 121 122 /* Description PKT_TYPE 123 124 Packet type: 125 <enum 0 dot11a>802.11a PPDU type 126 <enum 1 dot11b>802.11b PPDU type 127 <enum 2 dot11n_mm>802.11n Mixed Mode PPDU type 128 <enum 3 dot11ac>802.11ac PPDU type 129 <enum 4 dot11ax>802.11ax PPDU type 130 <enum 5 dot11ba>802.11ba (WUR) PPDU type 131 <enum 6 dot11be>802.11be PPDU type 132 <enum 7 dot11az>802.11az (ranging) PPDU type 133 <enum 8 dot11n_gf>802.11n Green Field PPDU type (unsupported 134 & aborted) 135 */ 136 137 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_PKT_TYPE_OFFSET 0x0000000000000000 138 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_PKT_TYPE_LSB 25 139 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_PKT_TYPE_MSB 28 140 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_PKT_TYPE_MASK 0x000000001e000000 141 142 143 /* Description SMOOTHING 144 145 This field is used by PDG to populate the SMOOTHING filed 146 in the SIG Preamble of the PPDU 147 <legal 0-1> 148 */ 149 150 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_SMOOTHING_OFFSET 0x0000000000000000 151 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_SMOOTHING_LSB 29 152 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_SMOOTHING_MSB 29 153 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_SMOOTHING_MASK 0x0000000020000000 154 155 156 /* Description LDPC 157 158 When set, use LDPC transmission rates 159 */ 160 161 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_LDPC_OFFSET 0x0000000000000000 162 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_LDPC_LSB 30 163 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_LDPC_MSB 30 164 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_LDPC_MASK 0x0000000040000000 165 166 167 /* Description STBC 168 169 When set, use STBC transmission rates 170 */ 171 172 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_STBC_OFFSET 0x0000000000000000 173 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_STBC_LSB 31 174 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_STBC_MSB 31 175 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_STBC_MASK 0x0000000080000000 176 177 178 /* Description ALT_TX_PWR 179 180 Coex related AlternativeTransmit parameter 181 182 Transmit Power in s6.2 format. 183 In units of 0.25 dBm 184 <legal all> 185 */ 186 187 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_PWR_OFFSET 0x0000000000000000 188 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_PWR_LSB 32 189 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_PWR_MSB 39 190 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_PWR_MASK 0x000000ff00000000 191 192 193 /* Description ALT_MIN_TX_PWR 194 195 Coex related Alternative Transmit parameter 196 197 Minimum allowed Transmit Power in s6.2 format. 198 In units of 0.25 dBm 199 <legal all> 200 */ 201 202 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_MIN_TX_PWR_OFFSET 0x0000000000000000 203 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_MIN_TX_PWR_LSB 40 204 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_MIN_TX_PWR_MSB 47 205 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_MIN_TX_PWR_MASK 0x0000ff0000000000 206 207 208 /* Description ALT_NSS 209 210 Coex related Alternative Transmit parameter 211 212 Number of spatial streams. 213 214 <enum 0 1_spatial_stream>Single spatial stream 215 <enum 1 2_spatial_streams>2 spatial streams 216 <enum 2 3_spatial_streams>3 spatial streams 217 <enum 3 4_spatial_streams>4 spatial streams 218 <enum 4 5_spatial_streams>5 spatial streams 219 <enum 5 6_spatial_streams>6 spatial streams 220 <enum 6 7_spatial_streams>7 spatial streams 221 <enum 7 8_spatial_streams>8 spatial streams 222 */ 223 224 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_NSS_OFFSET 0x0000000000000000 225 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_NSS_LSB 48 226 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_NSS_MSB 50 227 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_NSS_MASK 0x0007000000000000 228 229 230 /* Description ALT_TX_CHAIN_MASK 231 232 Coex related Alternative Transmit parameter 233 234 Chain mask to support up to 8 antennas. 235 <legal 1-255> 236 */ 237 238 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_CHAIN_MASK_OFFSET 0x0000000000000000 239 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_CHAIN_MASK_LSB 51 240 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_CHAIN_MASK_MSB 58 241 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_CHAIN_MASK_MASK 0x07f8000000000000 242 243 244 /* Description ALT_BW 245 246 Coex related Alternative Transmit parameter 247 248 The BW of the upcoming transmission. 249 250 <enum 0 20_mhz>20 Mhz BW 251 <enum 1 40_mhz>40 Mhz BW 252 <enum 2 80_mhz>80 Mhz BW 253 <enum 3 160_mhz>160 Mhz BW 254 <enum 4 320_mhz>320 Mhz BW 255 <enum 5 240_mhz>240 Mhz BW 256 */ 257 258 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_BW_OFFSET 0x0000000000000000 259 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_BW_LSB 59 260 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_BW_MSB 61 261 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_BW_MASK 0x3800000000000000 262 263 264 /* Description STF_LTF_3DB_BOOST 265 266 Boost the STF and LTF power by 3dB in 11a/n/ac packets. 267 This includes both the legacy preambles and the HT/VHT preambles.0: 268 disable power boost1: enable power boost 269 <legal all> 270 */ 271 272 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_STF_LTF_3DB_BOOST_OFFSET 0x0000000000000000 273 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_STF_LTF_3DB_BOOST_LSB 62 274 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_STF_LTF_3DB_BOOST_MSB 62 275 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_STF_LTF_3DB_BOOST_MASK 0x4000000000000000 276 277 278 /* Description FORCE_EXTRA_SYMBOL 279 280 Set to 1 to force an extra OFDM symbol (or symbols) even 281 if the PPDU encoding process does not result in an extra 282 OFDM symbol (or symbols) 283 */ 284 285 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_FORCE_EXTRA_SYMBOL_OFFSET 0x0000000000000000 286 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_FORCE_EXTRA_SYMBOL_LSB 63 287 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_FORCE_EXTRA_SYMBOL_MSB 63 288 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_FORCE_EXTRA_SYMBOL_MASK 0x8000000000000000 289 290 291 /* Description ALT_RATE_MCS 292 293 Coex related Alternative Transmit parameter 294 295 For details, refer to MCS_TYPE 296 Note: This is "rate" in case of 11a/11b 297 description 298 <legal all> 299 */ 300 301 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_RATE_MCS_OFFSET 0x0000000000000008 302 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_RATE_MCS_LSB 0 303 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_RATE_MCS_MSB 3 304 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_RATE_MCS_MASK 0x000000000000000f 305 306 307 /* Description NSS 308 309 Number of spatial streams. 310 311 <enum 0 1_spatial_stream>Single spatial stream 312 <enum 1 2_spatial_streams>2 spatial streams 313 <enum 2 3_spatial_streams>3 spatial streams 314 <enum 3 4_spatial_streams>4 spatial streams 315 <enum 4 5_spatial_streams>5 spatial streams 316 <enum 5 6_spatial_streams>6 spatial streams 317 <enum 6 7_spatial_streams>7 spatial streams 318 <enum 7 8_spatial_streams>8 spatial streams 319 */ 320 321 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_NSS_OFFSET 0x0000000000000008 322 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_NSS_LSB 4 323 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_NSS_MSB 6 324 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_NSS_MASK 0x0000000000000070 325 326 327 /* Description DPD_ENABLE 328 329 DPD enable control 330 331 This is needed on a per packet basis 332 <enum 0 dpd_off> DPD profile not applied to current 333 packet 334 <enum 1 dpd_on> DPD profile applied to current packet 335 if available 336 <legal 0-1> 337 338 This field is not applicable in11ah mode of operation and 339 is ignored by the HW 340 */ 341 342 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DPD_ENABLE_OFFSET 0x0000000000000008 343 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DPD_ENABLE_LSB 7 344 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DPD_ENABLE_MSB 7 345 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DPD_ENABLE_MASK 0x0000000000000080 346 347 348 /* Description TX_PWR 349 350 Transmit Power in s6.2 format. 351 In units of 0.25 dBm 352 <legal all> 353 */ 354 355 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_PWR_OFFSET 0x0000000000000008 356 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_PWR_LSB 8 357 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_PWR_MSB 15 358 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_PWR_MASK 0x000000000000ff00 359 360 361 /* Description MIN_TX_PWR 362 363 Coex related field: 364 365 Minimum allowed Transmit Power in s6.2 format. 366 In units of 0.25 dBm 367 <legal all> 368 */ 369 370 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MIN_TX_PWR_OFFSET 0x0000000000000008 371 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MIN_TX_PWR_LSB 16 372 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MIN_TX_PWR_MSB 23 373 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MIN_TX_PWR_MASK 0x0000000000ff0000 374 375 376 /* Description TX_CHAIN_MASK 377 378 Chain mask to support up to 8 antennas. 379 <legal 1-255> 380 */ 381 382 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_CHAIN_MASK_OFFSET 0x0000000000000008 383 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_CHAIN_MASK_LSB 24 384 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_CHAIN_MASK_MSB 31 385 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_CHAIN_MASK_MASK 0x00000000ff000000 386 387 388 /* Description RESERVED_3A 389 390 <legal 0> 391 */ 392 393 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_3A_OFFSET 0x0000000000000008 394 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_3A_LSB 32 395 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_3A_MSB 39 396 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_3A_MASK 0x000000ff00000000 397 398 399 /* Description SGI 400 401 Field only valid when pkt type is HT or VHT.For 11ax see 402 field Dot11ax_CP_LTF_size 403 404 <enum 0 0_8_us_sgi > Legacy normal GI. Can also be used 405 for HE 406 <enum 1 0_4_us_sgi > Legacy short GI. Can also be used 407 for HE 408 <enum 2 1_6_us_sgi > Not used for pre 11ax pkt_types. 409 410 <enum 3 3_2_us_sgi > Not used for pre 11ax pkt_types 411 412 413 <legal 0 - 3> 414 */ 415 416 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_SGI_OFFSET 0x0000000000000008 417 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_SGI_LSB 40 418 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_SGI_MSB 41 419 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_SGI_MASK 0x0000030000000000 420 421 422 /* Description RATE_MCS 423 424 For details, refer to MCS_TYPE description 425 Note: This is "rate" in case of 11a/11b 426 427 <legal all> 428 */ 429 430 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RATE_MCS_OFFSET 0x0000000000000008 431 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RATE_MCS_LSB 42 432 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RATE_MCS_MSB 45 433 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RATE_MCS_MASK 0x00003c0000000000 434 435 436 /* Description RESERVED_3B 437 438 <legal 0> 439 */ 440 441 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_3B_OFFSET 0x0000000000000008 442 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_3B_LSB 46 443 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_3B_MSB 47 444 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_3B_MASK 0x0000c00000000000 445 446 447 /* Description TX_PWR_1 448 449 Default (desired) transmit parameter for the second chain 450 451 452 Transmit Power in s6.2 format. 453 In units of 0.25 dBm 454 455 Note that there is no Min value for this 456 <legal all> 457 */ 458 459 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_PWR_1_OFFSET 0x0000000000000008 460 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_PWR_1_LSB 48 461 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_PWR_1_MSB 55 462 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_PWR_1_MASK 0x00ff000000000000 463 464 465 /* Description ALT_TX_PWR_1 466 467 Alternate (desired) transmit parameter for the second chain 468 469 470 Transmit Power in s6.2 format. 471 In units of 0.25 dBm 472 473 Note that there is no Min value for this 474 <legal all> 475 */ 476 477 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_PWR_1_OFFSET 0x0000000000000008 478 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_PWR_1_LSB 56 479 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_PWR_1_MSB 63 480 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_PWR_1_MASK 0xff00000000000000 481 482 483 /* Description AGGREGATION 484 485 Field only valid in case of pkt_type == 11n 486 487 <enum 0 mpdu> Indicates MPDU format. TXPCU will select 488 this setting if the CBF response only contains a single 489 segment 490 <enum 1 a_mpdu> Indicates A-MPDU format. TXPCU will 491 select this setting if the CBF response will contain two 492 or more segments 493 <legal 0-1> 494 */ 495 496 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_AGGREGATION_OFFSET 0x0000000000000010 497 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_AGGREGATION_LSB 0 498 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_AGGREGATION_MSB 0 499 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_AGGREGATION_MASK 0x0000000000000001 500 501 502 /* Description DOT11AX_BSS_COLOR_ID 503 504 BSS color of the nextwork to which this STA belongs. 505 When generated by TXPCU, this field is set equal to: Dot11ax_received_Bss_color_id 506 507 508 <legal all> 509 */ 510 511 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_BSS_COLOR_ID_OFFSET 0x0000000000000010 512 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_BSS_COLOR_ID_LSB 1 513 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_BSS_COLOR_ID_MSB 6 514 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_BSS_COLOR_ID_MASK 0x000000000000007e 515 516 517 /* Description DOT11AX_SPATIAL_REUSE 518 519 This field is only valid for pkt_type == 11ax 520 521 Spatial re-use 522 <legal all> 523 */ 524 525 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_SPATIAL_REUSE_OFFSET 0x0000000000000010 526 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_SPATIAL_REUSE_LSB 7 527 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_SPATIAL_REUSE_MSB 10 528 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_SPATIAL_REUSE_MASK 0x0000000000000780 529 530 531 /* Description DOT11AX_CP_LTF_SIZE 532 533 field is only valid for pkt_type == 11ax 534 535 Indicates the CP and HE-LTF type 536 537 <enum 0 OneX_LTF_0_8CP> 1xLTF + 0.8 us CP 538 <enum 1 TwoX_LTF_0_8CP> 2x LTF + 0.8 µs CP 539 <enum 2 TwoX_LTF_1_6CP> 2x LTF + 1.6 µs CP 540 <enum 3 FourX_LTF_0_8CP_3_2CP> 541 When DCM == 0 OR STBC == 0: 4x LTF + 3.2 µs CP 542 When DCM == 1 AND STBC == 1: 4x LTF + 0.8 µs CP. Note: 543 In this scenario, Neither DCM nor STBC is applied to HE 544 data field. 545 546 If ( DCM == 1 ) and ( MCS > 0 ) and (STBC == 0) 547 0 = 1xLTF + 0.4 usec 548 1 = 2xLTF + 0.4 usec 549 2~3 = Reserved 550 551 <legal all> 552 */ 553 554 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_CP_LTF_SIZE_OFFSET 0x0000000000000010 555 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_CP_LTF_SIZE_LSB 11 556 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_CP_LTF_SIZE_MSB 12 557 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_CP_LTF_SIZE_MASK 0x0000000000001800 558 559 560 /* Description DOT11AX_DCM 561 562 field is only valid for pkt_type == 11ax 563 564 Indicates whether dual sub-carrier modulation is applied 565 566 0: No DCM 567 1:DCM 568 <legal all> 569 */ 570 571 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DCM_OFFSET 0x0000000000000010 572 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DCM_LSB 13 573 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DCM_MSB 13 574 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DCM_MASK 0x0000000000002000 575 576 577 /* Description DOT11AX_DOPPLER_INDICATION 578 579 field is only valid for pkt_type == 11ax 580 581 0: No Doppler support 582 1: Doppler support 583 <legal all> 584 */ 585 586 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DOPPLER_INDICATION_OFFSET 0x0000000000000010 587 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DOPPLER_INDICATION_LSB 14 588 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DOPPLER_INDICATION_MSB 14 589 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DOPPLER_INDICATION_MASK 0x0000000000004000 590 591 592 /* Description DOT11AX_SU_EXTENDED 593 594 field is only valid for pkt_type == 11ax OR pkt_type == 595 11be 596 597 When set, the 11ax or 11be frame is of the extended range 598 format 599 <legal all> 600 */ 601 602 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_SU_EXTENDED_OFFSET 0x0000000000000010 603 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_SU_EXTENDED_LSB 15 604 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_SU_EXTENDED_MSB 15 605 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_SU_EXTENDED_MASK 0x0000000000008000 606 607 608 /* Description DOT11AX_MIN_PACKET_EXTENSION 609 610 field is only valid for pkt_type == 11ax OR pkt_type == 611 11be 612 613 The min packet extension duration for this user. 614 0: no extension 615 1: 8us 616 2: 16 us 617 3: 20 us (only for .11be) 618 <legal 0-3> 619 */ 620 621 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_MIN_PACKET_EXTENSION_OFFSET 0x0000000000000010 622 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_MIN_PACKET_EXTENSION_LSB 16 623 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_MIN_PACKET_EXTENSION_MSB 17 624 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_MIN_PACKET_EXTENSION_MASK 0x0000000000030000 625 626 627 /* Description DOT11AX_PE_NSS 628 629 Number of active spatial streams during packet extension. 630 631 632 <enum 0 1_spatial_stream>Single spatial stream 633 <enum 1 2_spatial_streams>2 spatial streams 634 <enum 2 3_spatial_streams>3 spatial streams 635 <enum 3 4_spatial_streams>4 spatial streams 636 <enum 4 5_spatial_streams>5 spatial streams 637 <enum 5 6_spatial_streams>6 spatial streams 638 <enum 6 7_spatial_streams>7 spatial streams 639 <enum 7 8_spatial_streams>8 spatial streams 640 */ 641 642 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_NSS_OFFSET 0x0000000000000010 643 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_NSS_LSB 18 644 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_NSS_MSB 20 645 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_NSS_MASK 0x00000000001c0000 646 647 648 /* Description DOT11AX_PE_CONTENT 649 650 Content of packet extension. Valid for all 11ax packets 651 having packet extension 652 653 0-he_ltf, 1-last_data_symbol 654 <legal all> 655 */ 656 657 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_CONTENT_OFFSET 0x0000000000000010 658 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_CONTENT_LSB 21 659 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_CONTENT_MSB 21 660 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_CONTENT_MASK 0x0000000000200000 661 662 663 /* Description DOT11AX_PE_LTF_SIZE 664 665 LTF size to be used during packet extention. . This field 666 is valid for both FTM and non-FTM packets. 667 0-1x 668 1-2x (unsupported un HWK-1) 669 2-4x (unsupported un HWK-1) 670 <legal all> 671 */ 672 673 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_LTF_SIZE_OFFSET 0x0000000000000010 674 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_LTF_SIZE_LSB 22 675 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_LTF_SIZE_MSB 23 676 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_LTF_SIZE_MASK 0x0000000000c00000 677 678 679 /* Description DOT11AX_CHAIN_CSD_EN 680 681 This field denotes whether to apply CSD on the preamble 682 and data portion of the packet. This field is valid for 683 all transmit packets 684 0: disable per-chain csd 685 1: enable per-chain csd 686 <legal all> 687 */ 688 689 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_CHAIN_CSD_EN_OFFSET 0x0000000000000010 690 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_CHAIN_CSD_EN_LSB 24 691 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_CHAIN_CSD_EN_MSB 24 692 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_CHAIN_CSD_EN_MASK 0x0000000001000000 693 694 695 /* Description DOT11AX_PE_CHAIN_CSD_EN 696 697 This field denotes whether to apply CSD on the packet extension 698 portion of the packet. This field is valid for all 11ax 699 packets. 700 0: disable per-chain csd 701 1: enable per-chain csd 702 <legal all> 703 */ 704 705 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_CHAIN_CSD_EN_OFFSET 0x0000000000000010 706 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_CHAIN_CSD_EN_LSB 25 707 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_CHAIN_CSD_EN_MSB 25 708 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_CHAIN_CSD_EN_MASK 0x0000000002000000 709 710 711 /* Description DOT11AX_DL_UL_FLAG 712 713 field is only valid for pkt_type == 11ax 714 715 <enum 0 DL_UL_FLAG_IS_DL_OR_TDLS> 716 <enum 1 DL_UL_FLAG_IS_UL> 717 718 <legal all> 719 */ 720 721 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DL_UL_FLAG_OFFSET 0x0000000000000010 722 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DL_UL_FLAG_LSB 26 723 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DL_UL_FLAG_MSB 26 724 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DL_UL_FLAG_MASK 0x0000000004000000 725 726 727 /* Description RESERVED_4A 728 729 <legal 0> 730 */ 731 732 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_4A_OFFSET 0x0000000000000010 733 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_4A_LSB 27 734 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_4A_MSB 31 735 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_4A_MASK 0x00000000f8000000 736 737 738 /* Description DOT11AX_EXT_RU_START_INDEX 739 740 field is only valid for pkt_type == 11ax and Dot11ax_su_extended 741 == 1 742 743 RU Number to which User is assigned 744 745 The RU numbering bitwidth is only enough to cover the 20MHz 746 BW that extended range allows 747 <legal 0-8> 748 */ 749 750 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_EXT_RU_START_INDEX_OFFSET 0x0000000000000010 751 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_EXT_RU_START_INDEX_LSB 32 752 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_EXT_RU_START_INDEX_MSB 35 753 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_EXT_RU_START_INDEX_MASK 0x0000000f00000000 754 755 756 /* Description DOT11AX_EXT_RU_SIZE 757 758 field is only valid for pkt_type == 11ax and Dot11ax_su_extended 759 == 1 or pkt_type == 11be and EHT_duplicate_mode == 1 760 761 The size of the RU for this user. 762 763 In case of EHT duplicate transmissions, this field indicates 764 the width of the actual content before duplication, e.g. 765 a 40 MHz PPDU duplicated to 160 MHz will have the bandwidth 766 fields indicating 160 MHz and this field set to e-num 4 767 (RU_484). 768 769 <enum 0 RU_26> 770 <enum 1 RU_52> 771 <enum 2 RU_106> 772 <enum 3 RU_242> 773 <enum 4 RU_484> 774 <enum 5 RU_996> 775 <enum 6 RU_1992> 776 <enum 7 RU_FULLBW> Set when the RU occupies the full packet 777 bandwidth 778 <enum 8 RU_FULLBW_240> Set when the RU occupies the full 779 packet bandwidth 780 <enum 9 RU_FULLBW_320> Set when the RU occupies the full 781 packet bandwidth 782 <enum 10 RU_MULTI_LARGE> DO NOT USE 783 <enum 11 RU_78> DO NOT USE 784 <enum 12 RU_132> DO NOT USE 785 <legal 0-12> 786 */ 787 788 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_EXT_RU_SIZE_OFFSET 0x0000000000000010 789 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_EXT_RU_SIZE_LSB 36 790 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_EXT_RU_SIZE_MSB 39 791 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_EXT_RU_SIZE_MASK 0x000000f000000000 792 793 794 /* Description EHT_DUPLICATE_MODE 795 796 Field only valid for pkt_type == 11be 797 798 Indicates EHT duplicate modulation 799 800 <enum 0 eht_no_duplicate> 801 <enum 1 eht_2x_duplicate> 802 <enum 2 eht_4x_duplicate> 803 804 <legal 0-2> 805 */ 806 807 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_EHT_DUPLICATE_MODE_OFFSET 0x0000000000000010 808 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_EHT_DUPLICATE_MODE_LSB 40 809 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_EHT_DUPLICATE_MODE_MSB 41 810 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_EHT_DUPLICATE_MODE_MASK 0x0000030000000000 811 812 813 /* Description HE_SIGB_DCM 814 815 Indicates whether dual sub-carrier modulation is applied 816 to EHT-SIG 817 <legal all> 818 */ 819 820 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_HE_SIGB_DCM_OFFSET 0x0000000000000010 821 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_HE_SIGB_DCM_LSB 42 822 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_HE_SIGB_DCM_MSB 42 823 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_HE_SIGB_DCM_MASK 0x0000040000000000 824 825 826 /* Description HE_SIGB_0_MCS 827 828 Indicates the MCS of EHT-SIG 829 830 For details, refer to MCS_TYPE description 831 <legal all> 832 */ 833 834 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_HE_SIGB_0_MCS_OFFSET 0x0000000000000010 835 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_HE_SIGB_0_MCS_LSB 43 836 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_HE_SIGB_0_MCS_MSB 45 837 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_HE_SIGB_0_MCS_MASK 0x0000380000000000 838 839 840 /* Description NUM_HE_SIGB_SYM 841 842 Indicates the number of EHT-SIG symbols 843 844 This field is 0-based with 0 indicating that 1 eht_sig symbol 845 needs to be transmitted. 846 <legal all> 847 */ 848 849 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_NUM_HE_SIGB_SYM_OFFSET 0x0000000000000010 850 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_NUM_HE_SIGB_SYM_LSB 46 851 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_NUM_HE_SIGB_SYM_MSB 50 852 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_NUM_HE_SIGB_SYM_MASK 0x0007c00000000000 853 854 855 /* Description REQUIRED_RESPONSE_TIME_SOURCE 856 857 <enum 0 reqd_resp_time_src_is_RXPCU> Typically from received 858 HT Control for sync MLO response 859 <enum 1 reqd_resp_time_src_is_FW> 860 Typically from 'PCU_PPDU_SETUP_INIT' for sync MLO response 861 to response 862 <legal all> 863 */ 864 865 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_REQUIRED_RESPONSE_TIME_SOURCE_OFFSET 0x0000000000000010 866 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_REQUIRED_RESPONSE_TIME_SOURCE_LSB 51 867 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_REQUIRED_RESPONSE_TIME_SOURCE_MSB 51 868 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_REQUIRED_RESPONSE_TIME_SOURCE_MASK 0x0008000000000000 869 870 871 /* Description RESERVED_5A 872 873 <legal 0> 874 */ 875 876 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_5A_OFFSET 0x0000000000000010 877 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_5A_LSB 52 878 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_5A_MSB 57 879 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_5A_MASK 0x03f0000000000000 880 881 882 /* Description U_SIG_PUNCTURE_PATTERN_ENCODING 883 884 6-bit value copied from 'RX_RESPONSE_REQUIRED_INFO' and 'TX_CBF_INFO' 885 to pass on to PDG 886 <legal 0-29> 887 */ 888 889 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_OFFSET 0x0000000000000010 890 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_LSB 58 891 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_MSB 63 892 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_MASK 0xfc00000000000000 893 894 895 /* Description MLO_STA_ID_DETAILS_RX 896 897 16-bi value copied from 'RX_RESPONSE_REQUIRED_INFO' to pass 898 on to PDG 899 900 Bits 10 and 11 are not valid, bits [9:0] reflect 'NSTR_MLO_STA_ID' 901 from address search. 902 903 See definition of mlo_sta_id_details. 904 */ 905 906 907 /* Description NSTR_MLO_STA_ID 908 909 ID of peer participating in non-STR MLO 910 */ 911 912 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_OFFSET 0x0000000000000018 913 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_LSB 0 914 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_MSB 9 915 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_MASK 0x00000000000003ff 916 917 918 /* Description BLOCK_SELF_ML_SYNC 919 920 Only valid for TX 921 922 When set, this provides an indication to block the peer 923 for self-link. 924 */ 925 926 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_OFFSET 0x0000000000000018 927 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_LSB 10 928 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_MSB 10 929 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_MASK 0x0000000000000400 930 931 932 /* Description BLOCK_PARTNER_ML_SYNC 933 934 Only valid for TX 935 936 When set, this provides an indication to block the peer 937 for partner links. 938 */ 939 940 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_OFFSET 0x0000000000000018 941 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_LSB 11 942 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_MSB 11 943 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_MASK 0x0000000000000800 944 945 946 /* Description NSTR_MLO_STA_ID_VALID 947 948 All the fields in this TLV are valid only if this bit is 949 set. 950 */ 951 952 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_OFFSET 0x0000000000000018 953 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_LSB 12 954 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_MSB 12 955 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_MASK 0x0000000000001000 956 957 958 /* Description RESERVED_0A 959 960 <legal 0> 961 */ 962 963 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_RESERVED_0A_OFFSET 0x0000000000000018 964 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_RESERVED_0A_LSB 13 965 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_RESERVED_0A_MSB 15 966 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_RESERVED_0A_MASK 0x000000000000e000 967 968 969 /* Description REQUIRED_RESPONSE_TIME 970 971 When non-zero, indicates that PDG shall pad the response 972 transmission to the indicated duration (in us) 973 */ 974 975 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_REQUIRED_RESPONSE_TIME_OFFSET 0x0000000000000018 976 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_REQUIRED_RESPONSE_TIME_LSB 16 977 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_REQUIRED_RESPONSE_TIME_MSB 27 978 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_REQUIRED_RESPONSE_TIME_MASK 0x000000000fff0000 979 980 981 /* Description DOT11BE_PARAMS_PLACEHOLDER 982 983 4 bytes for use as placeholders for 'Dot11be_*' parameters 984 985 */ 986 987 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11BE_PARAMS_PLACEHOLDER_OFFSET 0x0000000000000018 988 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11BE_PARAMS_PLACEHOLDER_LSB 28 989 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11BE_PARAMS_PLACEHOLDER_MSB 31 990 #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11BE_PARAMS_PLACEHOLDER_MASK 0x00000000f0000000 991 992 993 /* Description HW_RESPONSE_TX_DURATION 994 995 The amount of time the transmission of the HW response will 996 take (in us) 997 998 Used for coex..... 999 1000 This field also represents the 'alt_hw_response_tx_duration'. 1001 Note that this implies that no different duration can be 1002 programmed for the default and alt setting. SW should program 1003 the worst case value in the RXPCU table in case they are 1004 different. 1005 <legal all> 1006 */ 1007 1008 #define PDG_RESPONSE_HW_RESPONSE_TX_DURATION_OFFSET 0x0000000000000018 1009 #define PDG_RESPONSE_HW_RESPONSE_TX_DURATION_LSB 32 1010 #define PDG_RESPONSE_HW_RESPONSE_TX_DURATION_MSB 47 1011 #define PDG_RESPONSE_HW_RESPONSE_TX_DURATION_MASK 0x0000ffff00000000 1012 1013 1014 /* Description RX_DURATION_FIELD 1015 1016 The duration field in the received frame. 1017 PDG uses this field to calculate what the duration field 1018 value should be in the response frame. 1019 This is returned to the TX PCU 1020 1021 This field is used in 11ah mode as well 1022 <legal all> 1023 */ 1024 1025 #define PDG_RESPONSE_RX_DURATION_FIELD_OFFSET 0x0000000000000018 1026 #define PDG_RESPONSE_RX_DURATION_FIELD_LSB 48 1027 #define PDG_RESPONSE_RX_DURATION_FIELD_MSB 63 1028 #define PDG_RESPONSE_RX_DURATION_FIELD_MASK 0xffff000000000000 1029 1030 1031 /* Description PUNCTURED_RESPONSE_TRANSMISSION 1032 1033 When set, this response frame will be transmitted using 1034 a puncture transmit pattern that is indicated in the cca_subband_channel_bonding_mask 1035 field. 1036 1037 Typically used in the Response to response transmissions. 1038 1039 <legal all> 1040 */ 1041 1042 #define PDG_RESPONSE_PUNCTURED_RESPONSE_TRANSMISSION_OFFSET 0x0000000000000020 1043 #define PDG_RESPONSE_PUNCTURED_RESPONSE_TRANSMISSION_LSB 0 1044 #define PDG_RESPONSE_PUNCTURED_RESPONSE_TRANSMISSION_MSB 0 1045 #define PDG_RESPONSE_PUNCTURED_RESPONSE_TRANSMISSION_MASK 0x0000000000000001 1046 1047 1048 /* Description CCA_SUBBAND_CHANNEL_BONDING_MASK 1049 1050 Field only valid when 'Punctured_response_transmission' 1051 is set 1052 1053 Indicates which 20 Mhz channels will be used for the transmission. 1054 1055 1056 Bit 0: primary 20 Mhz 1057 Bit 1: secondary 20 MHz. 1058 Etc. 1059 1060 <legal 1-65535> 1061 */ 1062 1063 #define PDG_RESPONSE_CCA_SUBBAND_CHANNEL_BONDING_MASK_OFFSET 0x0000000000000020 1064 #define PDG_RESPONSE_CCA_SUBBAND_CHANNEL_BONDING_MASK_LSB 1 1065 #define PDG_RESPONSE_CCA_SUBBAND_CHANNEL_BONDING_MASK_MSB 16 1066 #define PDG_RESPONSE_CCA_SUBBAND_CHANNEL_BONDING_MASK_MASK 0x000000000001fffe 1067 1068 1069 /* Description SCRAMBLER_SEED_OVERRIDE 1070 1071 Used in dynamic BW RTS-CTS, BAR -BA, etc. kind of exchanges. 1072 1073 1074 0: PDG will use all 7 bits of the scrambler seed. 1075 1: PDG will override bits [6:5] of the scrambler_seed 1076 with BW information. 1077 2: PDG will override bits [6:5] and bit [3] of the scrambler_seed 1078 with BW information for .11be dynamic BW procedure. 1079 1080 <legal 0-2> 1081 */ 1082 1083 #define PDG_RESPONSE_SCRAMBLER_SEED_OVERRIDE_OFFSET 0x0000000000000020 1084 #define PDG_RESPONSE_SCRAMBLER_SEED_OVERRIDE_LSB 17 1085 #define PDG_RESPONSE_SCRAMBLER_SEED_OVERRIDE_MSB 18 1086 #define PDG_RESPONSE_SCRAMBLER_SEED_OVERRIDE_MASK 0x0000000000060000 1087 1088 1089 /* Description RESPONSE_DENSITY_VALID 1090 1091 When set, field Response_density has valid info. TXPCU sets 1092 this for multi segment CBF response generation. 1093 <legal all> 1094 */ 1095 1096 #define PDG_RESPONSE_RESPONSE_DENSITY_VALID_OFFSET 0x0000000000000020 1097 #define PDG_RESPONSE_RESPONSE_DENSITY_VALID_LSB 19 1098 #define PDG_RESPONSE_RESPONSE_DENSITY_VALID_MSB 19 1099 #define PDG_RESPONSE_RESPONSE_DENSITY_VALID_MASK 0x0000000000080000 1100 1101 1102 /* Description RESPONSE_DENSITY 1103 1104 Field only valid when Response_density_valid is set. 1105 When Response_density_valid is NOT set, this field is set 1106 to 0 1107 1108 The MPDU density is required for the response frame (in 1109 us). PDG will translate this value into minimum number of 1110 words per MPDU and give this back to TXPCU in TLV PCU_PPDU_SETUP_USER 1111 field min_mpdu_spacing 1112 1113 TXPCU gets this value from a register. 1114 <legal all> 1115 */ 1116 1117 #define PDG_RESPONSE_RESPONSE_DENSITY_OFFSET 0x0000000000000020 1118 #define PDG_RESPONSE_RESPONSE_DENSITY_LSB 20 1119 #define PDG_RESPONSE_RESPONSE_DENSITY_MSB 24 1120 #define PDG_RESPONSE_RESPONSE_DENSITY_MASK 0x0000000001f00000 1121 1122 1123 /* Description MORE_DATA 1124 1125 This setting is used for 1126 NDP ACK response frames 1127 NDP Modified ACK response frames 1128 The value of this field comes from a register programming. 1129 The register resides in TxPCU and is programmed by SW within 1130 SIFS response time when responding with NDP ACK or NDP 1131 Modified ACK. 1132 <legal all> 1133 */ 1134 1135 #define PDG_RESPONSE_MORE_DATA_OFFSET 0x0000000000000020 1136 #define PDG_RESPONSE_MORE_DATA_LSB 25 1137 #define PDG_RESPONSE_MORE_DATA_MSB 25 1138 #define PDG_RESPONSE_MORE_DATA_MASK 0x0000000002000000 1139 1140 1141 /* Description DURATION_INDICATION 1142 1143 This setting is used for 1144 NDP ACK response frames 1145 NDP Modified ACK response frames 1146 The value of this field comes from a register programming. 1147 The register resides in TxPCU and is programmed by SW within 1148 SIFS response time when responding with NDP ACK or NDP 1149 Modified ACK. 1150 <legal all> 1151 */ 1152 1153 #define PDG_RESPONSE_DURATION_INDICATION_OFFSET 0x0000000000000020 1154 #define PDG_RESPONSE_DURATION_INDICATION_LSB 26 1155 #define PDG_RESPONSE_DURATION_INDICATION_MSB 26 1156 #define PDG_RESPONSE_DURATION_INDICATION_MASK 0x0000000004000000 1157 1158 1159 /* Description RELAYED_FRAME 1160 1161 This setting is used to fill the field in the SIG preamble 1162 for 1163 NDP ACK response frame 1164 This feature is not supported and TxPCU should program this 1165 field to Zero. PDG will ignore this field. 1166 <legal all> 1167 */ 1168 1169 #define PDG_RESPONSE_RELAYED_FRAME_OFFSET 0x0000000000000020 1170 #define PDG_RESPONSE_RELAYED_FRAME_LSB 27 1171 #define PDG_RESPONSE_RELAYED_FRAME_MSB 27 1172 #define PDG_RESPONSE_RELAYED_FRAME_MASK 0x0000000008000000 1173 1174 1175 /* Description ADDRESS_INDICATOR 1176 1177 This bit is used to fill the address_indicator field in 1178 the SIG preamble of NDP CTS response frame. 1179 1180 This feature is not supported and TxPCU should program this 1181 field to Zero. PDG will use this field to populate the 1182 NDP response frame 1183 <legal all> 1184 */ 1185 1186 #define PDG_RESPONSE_ADDRESS_INDICATOR_OFFSET 0x0000000000000020 1187 #define PDG_RESPONSE_ADDRESS_INDICATOR_LSB 28 1188 #define PDG_RESPONSE_ADDRESS_INDICATOR_MSB 28 1189 #define PDG_RESPONSE_ADDRESS_INDICATOR_MASK 0x0000000010000000 1190 1191 1192 /* Description BANDWIDTH 1193 1194 Packet bandwidth: 1195 1196 <enum 0 20_mhz>20 Mhz BW 1197 <enum 1 40_mhz>40 Mhz BW 1198 <enum 2 80_mhz>80 Mhz BW 1199 <enum 3 160_mhz>160 Mhz BW 1200 <enum 4 320_mhz>320 Mhz BW 1201 <enum 5 240_mhz>240 Mhz BW 1202 */ 1203 1204 #define PDG_RESPONSE_BANDWIDTH_OFFSET 0x0000000000000020 1205 #define PDG_RESPONSE_BANDWIDTH_LSB 29 1206 #define PDG_RESPONSE_BANDWIDTH_MSB 31 1207 #define PDG_RESPONSE_BANDWIDTH_MASK 0x00000000e0000000 1208 1209 1210 /* Description ACK_ID 1211 1212 ACK_ID in NDP_ACK frames, NDP Modified ACK frames 1213 1214 For BW > 1MHz 1215 [15:0] = ack_id 1216 1217 For BW = 1MHz 1218 1219 [8:0] = ack_id 1220 [15:9] = Reserved 1221 For NDP BA 1222 If BW=1MHz 1223 [1:0] = Block ACK ID 1224 [15:2] = Reserved 1225 1226 If BW>1MHz 1227 [5:0] = Block ACK ID 1228 [15:2] = Reserved 1229 <legal all> 1230 */ 1231 1232 #define PDG_RESPONSE_ACK_ID_OFFSET 0x0000000000000020 1233 #define PDG_RESPONSE_ACK_ID_LSB 32 1234 #define PDG_RESPONSE_ACK_ID_MSB 47 1235 #define PDG_RESPONSE_ACK_ID_MASK 0x0000ffff00000000 1236 1237 1238 /* Description BLOCK_ACK_BITMAP 1239 1240 Block Ack bitmap field for generating the NDP BA frames 1241 in 1MHz and >= 2MHz 1242 <legal all> 1243 */ 1244 1245 #define PDG_RESPONSE_BLOCK_ACK_BITMAP_OFFSET 0x0000000000000020 1246 #define PDG_RESPONSE_BLOCK_ACK_BITMAP_LSB 48 1247 #define PDG_RESPONSE_BLOCK_ACK_BITMAP_MSB 63 1248 #define PDG_RESPONSE_BLOCK_ACK_BITMAP_MASK 0xffff000000000000 1249 1250 1251 /* Description RESPONSE_FRAME_TYPE 1252 1253 Coex related field 1254 <enum 0 Non_11ah_ACK > 1255 <enum 1 Non_11ah_BA > also used for M-BA 1256 <enum 2 Non_11ah_CTS > 1257 <enum 3 AH_NDP_CTS> 1258 <enum 4 AH_NDP_ACK> 1259 <enum 5 AH_NDP_BA> 1260 <enum 6 AH_NDP_MOD_ACK> 1261 <enum 7 AH_Normal_ACK> 1262 <enum 8 AH_Normal_BA> 1263 <enum 9 RTT_ACK> 1264 <enum 10 CBF_RESPONSE> 1265 <enum 11 MBA> This can be a multi STA BA or multi TID BA 1266 1267 <enum 12 Ranging_NDP> 1268 <enum 13 LMR_RESPONSE> Ranging NDP response followed by 1269 LMR response for Rx ranging NDPA followed by NDP 1270 1271 <legal 0-13> 1272 */ 1273 1274 #define PDG_RESPONSE_RESPONSE_FRAME_TYPE_OFFSET 0x0000000000000028 1275 #define PDG_RESPONSE_RESPONSE_FRAME_TYPE_LSB 0 1276 #define PDG_RESPONSE_RESPONSE_FRAME_TYPE_MSB 3 1277 #define PDG_RESPONSE_RESPONSE_FRAME_TYPE_MASK 0x000000000000000f 1278 1279 1280 /* Description ACK_ID_EXT 1281 1282 This is populated by TxPCU from the RX_RESPONSE_REQUIRED_INFO.ack_id_ext. 1283 1284 */ 1285 1286 #define PDG_RESPONSE_ACK_ID_EXT_OFFSET 0x0000000000000028 1287 #define PDG_RESPONSE_ACK_ID_EXT_LSB 4 1288 #define PDG_RESPONSE_ACK_ID_EXT_MSB 13 1289 #define PDG_RESPONSE_ACK_ID_EXT_MASK 0x0000000000003ff0 1290 1291 1292 /* Description FTM_EN 1293 1294 This field is set to 1 if the response packet is either 1295 an FTM_1 or an FTM_2 packet or an HE-Ranging NDP (11az). 1296 1297 1298 0: non-FTM frame 1299 1: FTM or HE-Randing NDP Frame 1300 <legal all> 1301 */ 1302 1303 #define PDG_RESPONSE_FTM_EN_OFFSET 0x0000000000000028 1304 #define PDG_RESPONSE_FTM_EN_LSB 14 1305 #define PDG_RESPONSE_FTM_EN_MSB 14 1306 #define PDG_RESPONSE_FTM_EN_MASK 0x0000000000004000 1307 1308 1309 /* Description GROUP_ID 1310 1311 Specifies the Group ID of response frames transmitted at 1312 VHT rates for MU transmissions. This filed applies to both 1313 non-11ah and 11ah modes. 1314 */ 1315 1316 #define PDG_RESPONSE_GROUP_ID_OFFSET 0x0000000000000028 1317 #define PDG_RESPONSE_GROUP_ID_LSB 15 1318 #define PDG_RESPONSE_GROUP_ID_MSB 20 1319 #define PDG_RESPONSE_GROUP_ID_MASK 0x00000000001f8000 1320 1321 1322 /* Description STA_PARTIAL_AID 1323 1324 In 11AH mode of Operation: 1325 1326 This field is used to populate the ID field in the SIG PPDUs 1327 of BW>1MHz and non-NDP frames. For example, the use case 1328 would be in a Speed Frame Exchange, we may be generating 1329 the SIG PPDU in response and this field is needed to populate 1330 the ID field in the SIGA preamble . This value is based 1331 on the Table provided by 9.17b section of the Draft P802.11ah_D1.1 1332 Specification 1333 1334 In 11AH mode of Operation: 1335 1336 This field is also used to populate the field of RA/Parial_BSSID 1337 in the NDP CTS response frames In non-11AH mode: 1338 1339 In non-11AH mode of Operation: 1340 1341 Specifies the partial AID of response frames transmitted 1342 at VHT rates. 1343 <legal all> 1344 */ 1345 1346 #define PDG_RESPONSE_STA_PARTIAL_AID_OFFSET 0x0000000000000028 1347 #define PDG_RESPONSE_STA_PARTIAL_AID_LSB 21 1348 #define PDG_RESPONSE_STA_PARTIAL_AID_MSB 31 1349 #define PDG_RESPONSE_STA_PARTIAL_AID_MASK 0x00000000ffe00000 1350 1351 1352 /* Description NDP_BA_START_SEQ_CTRL 1353 1354 Starting Sequence Control - Sequence number of the first 1355 MPDU in the frame soliciting the Block Ack. 1356 */ 1357 1358 #define PDG_RESPONSE_NDP_BA_START_SEQ_CTRL_OFFSET 0x0000000000000028 1359 #define PDG_RESPONSE_NDP_BA_START_SEQ_CTRL_LSB 32 1360 #define PDG_RESPONSE_NDP_BA_START_SEQ_CTRL_MSB 43 1361 #define PDG_RESPONSE_NDP_BA_START_SEQ_CTRL_MASK 0x00000fff00000000 1362 1363 1364 /* Description ACTIVE_CHANNEL 1365 1366 This field indicates the active frequency band when the 1367 packet bandwidth is less than the channel bandwidth. For 1368 non 11ax packets this is same as the primary channel 1369 <legal all> 1370 */ 1371 1372 #define PDG_RESPONSE_ACTIVE_CHANNEL_OFFSET 0x0000000000000028 1373 #define PDG_RESPONSE_ACTIVE_CHANNEL_LSB 44 1374 #define PDG_RESPONSE_ACTIVE_CHANNEL_MSB 46 1375 #define PDG_RESPONSE_ACTIVE_CHANNEL_MASK 0x0000700000000000 1376 1377 1378 /* Description TXOP_DURATION_ALL_ONES 1379 1380 When set, either the TXOP_DURATION of the received frame 1381 was set to all 1s or there is a BSS color collision. The 1382 TXOP_DURATION of the transmit response should be forced 1383 to all 1s. 1384 1385 <legal all> 1386 */ 1387 1388 #define PDG_RESPONSE_TXOP_DURATION_ALL_ONES_OFFSET 0x0000000000000028 1389 #define PDG_RESPONSE_TXOP_DURATION_ALL_ONES_LSB 47 1390 #define PDG_RESPONSE_TXOP_DURATION_ALL_ONES_MSB 47 1391 #define PDG_RESPONSE_TXOP_DURATION_ALL_ONES_MASK 0x0000800000000000 1392 1393 1394 /* Description FRAME_LENGTH 1395 1396 The response frame length in bytes 1397 (This includes the FCS field) 1398 <legal all> 1399 */ 1400 1401 #define PDG_RESPONSE_FRAME_LENGTH_OFFSET 0x0000000000000028 1402 #define PDG_RESPONSE_FRAME_LENGTH_LSB 48 1403 #define PDG_RESPONSE_FRAME_LENGTH_MSB 63 1404 #define PDG_RESPONSE_FRAME_LENGTH_MASK 0xffff000000000000 1405 1406 1407 1408 #endif // PDG_RESPONSE 1409