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