1 2 /* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved. 3 * 4 * Permission to use, copy, modify, and/or distribute this software for any 5 * purpose with or without fee is hereby granted, provided that the above 6 * copyright notice and this permission notice appear in all copies. 7 * 8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 */ 16 17 18 19 20 21 22 23 24 25 26 #ifndef _TX_FES_STATUS_START_PROT_H_ 27 #define _TX_FES_STATUS_START_PROT_H_ 28 #if !defined(__ASSEMBLER__) 29 #endif 30 31 #define NUM_OF_DWORDS_TX_FES_STATUS_START_PROT 4 32 33 #define NUM_OF_QWORDS_TX_FES_STATUS_START_PROT 2 34 35 36 struct tx_fes_status_start_prot { 37 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 38 uint32_t prot_timestamp_lower_32 : 32; // [31:0] 39 uint32_t prot_timestamp_upper_32 : 32; // [31:0] 40 uint32_t subband_mask : 16, // [15:0] 41 reserved_2b : 4, // [19:16] 42 prot_coex_based_tx_bw : 3, // [22:20] 43 prot_coex_based_ant_mask : 8, // [30:23] 44 prot_coex_result_alt_based : 1; // [31:31] 45 uint32_t prot_coex_tx_pwr_shared_ant : 8, // [7:0] 46 prot_coex_tx_pwr_ant : 8, // [15:8] 47 prot_concurrent_bt_tx : 1, // [16:16] 48 prot_concurrent_wlan_tx : 1, // [17:17] 49 prot_concurrent_wan_tx : 1, // [18:18] 50 prot_concurrent_wan_rx : 1, // [19:19] 51 prot_coex_pwr_reduction_bt : 1, // [20:20] 52 prot_coex_pwr_reduction_wlan : 1, // [21:21] 53 prot_coex_pwr_reduction_wan : 1, // [22:22] 54 prot_request_packet_bw : 3, // [25:23] 55 response_type : 5, // [30:26] 56 reserved_3a : 1; // [31:31] 57 #else 58 uint32_t prot_timestamp_lower_32 : 32; // [31:0] 59 uint32_t prot_timestamp_upper_32 : 32; // [31:0] 60 uint32_t prot_coex_result_alt_based : 1, // [31:31] 61 prot_coex_based_ant_mask : 8, // [30:23] 62 prot_coex_based_tx_bw : 3, // [22:20] 63 reserved_2b : 4, // [19:16] 64 subband_mask : 16; // [15:0] 65 uint32_t reserved_3a : 1, // [31:31] 66 response_type : 5, // [30:26] 67 prot_request_packet_bw : 3, // [25:23] 68 prot_coex_pwr_reduction_wan : 1, // [22:22] 69 prot_coex_pwr_reduction_wlan : 1, // [21:21] 70 prot_coex_pwr_reduction_bt : 1, // [20:20] 71 prot_concurrent_wan_rx : 1, // [19:19] 72 prot_concurrent_wan_tx : 1, // [18:18] 73 prot_concurrent_wlan_tx : 1, // [17:17] 74 prot_concurrent_bt_tx : 1, // [16:16] 75 prot_coex_tx_pwr_ant : 8, // [15:8] 76 prot_coex_tx_pwr_shared_ant : 8; // [7:0] 77 #endif 78 }; 79 80 81 /* Description PROT_TIMESTAMP_LOWER_32 82 83 Global timer value at start of Protection transmission 84 */ 85 86 #define TX_FES_STATUS_START_PROT_PROT_TIMESTAMP_LOWER_32_OFFSET 0x0000000000000000 87 #define TX_FES_STATUS_START_PROT_PROT_TIMESTAMP_LOWER_32_LSB 0 88 #define TX_FES_STATUS_START_PROT_PROT_TIMESTAMP_LOWER_32_MSB 31 89 #define TX_FES_STATUS_START_PROT_PROT_TIMESTAMP_LOWER_32_MASK 0x00000000ffffffff 90 91 92 /* Description PROT_TIMESTAMP_UPPER_32 93 94 Global timer value at start of Protection transmission 95 */ 96 97 #define TX_FES_STATUS_START_PROT_PROT_TIMESTAMP_UPPER_32_OFFSET 0x0000000000000000 98 #define TX_FES_STATUS_START_PROT_PROT_TIMESTAMP_UPPER_32_LSB 32 99 #define TX_FES_STATUS_START_PROT_PROT_TIMESTAMP_UPPER_32_MSB 63 100 #define TX_FES_STATUS_START_PROT_PROT_TIMESTAMP_UPPER_32_MASK 0xffffffff00000000 101 102 103 /* Description SUBBAND_MASK 104 105 This mask indicates which 20 Mhz channels are actively used 106 in the BW or puncture pattern selected for transmit. 107 108 Bit 0: primary 20 Mhz 109 Bit 1: secondary 20 MHz 110 Etc. 111 112 Hamilton v1 used bits [5:1] for the 'Response_type' expected. 113 114 <legal all> 115 */ 116 117 #define TX_FES_STATUS_START_PROT_SUBBAND_MASK_OFFSET 0x0000000000000008 118 #define TX_FES_STATUS_START_PROT_SUBBAND_MASK_LSB 0 119 #define TX_FES_STATUS_START_PROT_SUBBAND_MASK_MSB 15 120 #define TX_FES_STATUS_START_PROT_SUBBAND_MASK_MASK 0x000000000000ffff 121 122 123 /* Description RESERVED_2B 124 125 <legal 0> 126 */ 127 128 #define TX_FES_STATUS_START_PROT_RESERVED_2B_OFFSET 0x0000000000000008 129 #define TX_FES_STATUS_START_PROT_RESERVED_2B_LSB 16 130 #define TX_FES_STATUS_START_PROT_RESERVED_2B_MSB 19 131 #define TX_FES_STATUS_START_PROT_RESERVED_2B_MASK 0x00000000000f0000 132 133 134 /* Description PROT_COEX_BASED_TX_BW 135 136 Field valid for Protection frame transmission 137 138 This is the transmit bandwidth value 139 that is granted by Coex. 140 141 <enum 0 20_mhz>20 Mhz BW 142 <enum 1 40_mhz>40 Mhz BW 143 <enum 2 80_mhz>80 Mhz BW 144 <enum 3 160_mhz>160 Mhz BW 145 <enum 4 320_mhz>320 Mhz BW 146 <enum 5 240_mhz>240 Mhz BW 147 */ 148 149 #define TX_FES_STATUS_START_PROT_PROT_COEX_BASED_TX_BW_OFFSET 0x0000000000000008 150 #define TX_FES_STATUS_START_PROT_PROT_COEX_BASED_TX_BW_LSB 20 151 #define TX_FES_STATUS_START_PROT_PROT_COEX_BASED_TX_BW_MSB 22 152 #define TX_FES_STATUS_START_PROT_PROT_COEX_BASED_TX_BW_MASK 0x0000000000700000 153 154 155 /* Description PROT_COEX_BASED_ANT_MASK 156 157 Field valid for Protection frame transmission 158 159 The antennas allowed to be used for this transmission. 160 (Coex is allowed to reduce the number of antennas to be 161 used, but not the number of SS) 162 <legal all> 163 */ 164 165 #define TX_FES_STATUS_START_PROT_PROT_COEX_BASED_ANT_MASK_OFFSET 0x0000000000000008 166 #define TX_FES_STATUS_START_PROT_PROT_COEX_BASED_ANT_MASK_LSB 23 167 #define TX_FES_STATUS_START_PROT_PROT_COEX_BASED_ANT_MASK_MSB 30 168 #define TX_FES_STATUS_START_PROT_PROT_COEX_BASED_ANT_MASK_MASK 0x000000007f800000 169 170 171 /* Description PROT_COEX_RESULT_ALT_BASED 172 173 Field valid for Protection frame transmission 174 175 When set, the resulting Coex transmit parameters are based 176 alternate transmit settings in the TX_RATE_SETTING STRUCT 177 of the original selected BW 178 179 When not set, the resulting Coex parameters are based on 180 the default transmit settings in the TX_RATE_SETTING STRUCT 181 182 183 <legal all> 184 */ 185 186 #define TX_FES_STATUS_START_PROT_PROT_COEX_RESULT_ALT_BASED_OFFSET 0x0000000000000008 187 #define TX_FES_STATUS_START_PROT_PROT_COEX_RESULT_ALT_BASED_LSB 31 188 #define TX_FES_STATUS_START_PROT_PROT_COEX_RESULT_ALT_BASED_MSB 31 189 #define TX_FES_STATUS_START_PROT_PROT_COEX_RESULT_ALT_BASED_MASK 0x0000000080000000 190 191 192 /* Description PROT_COEX_TX_PWR_SHARED_ANT 193 194 Field valid for Protection frame transmission 195 196 Transmit Power in s6.2 format. 197 In units of 0.25 dBm 198 <legal all> 199 */ 200 201 #define TX_FES_STATUS_START_PROT_PROT_COEX_TX_PWR_SHARED_ANT_OFFSET 0x0000000000000008 202 #define TX_FES_STATUS_START_PROT_PROT_COEX_TX_PWR_SHARED_ANT_LSB 32 203 #define TX_FES_STATUS_START_PROT_PROT_COEX_TX_PWR_SHARED_ANT_MSB 39 204 #define TX_FES_STATUS_START_PROT_PROT_COEX_TX_PWR_SHARED_ANT_MASK 0x000000ff00000000 205 206 207 /* Description PROT_COEX_TX_PWR_ANT 208 209 Field valid for Protection frame transmission 210 211 Transmit Power in s6.2 format. 212 In units of 0.25 dBm 213 <legal all> 214 */ 215 216 #define TX_FES_STATUS_START_PROT_PROT_COEX_TX_PWR_ANT_OFFSET 0x0000000000000008 217 #define TX_FES_STATUS_START_PROT_PROT_COEX_TX_PWR_ANT_LSB 40 218 #define TX_FES_STATUS_START_PROT_PROT_COEX_TX_PWR_ANT_MSB 47 219 #define TX_FES_STATUS_START_PROT_PROT_COEX_TX_PWR_ANT_MASK 0x0000ff0000000000 220 221 222 /* Description PROT_CONCURRENT_BT_TX 223 224 Field valid for Protection frame transmission 225 226 Indicate the current TX is concurrent with a BT transmission. 227 This bit is to be copied over into the FES status info. 228 229 <legal all> 230 */ 231 232 #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_BT_TX_OFFSET 0x0000000000000008 233 #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_BT_TX_LSB 48 234 #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_BT_TX_MSB 48 235 #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_BT_TX_MASK 0x0001000000000000 236 237 238 /* Description PROT_CONCURRENT_WLAN_TX 239 240 Field valid for Protection frame transmission 241 242 Indicate the current TX is concurrent with other WLAN transmission. 243 This bit is to be copied over into FES status info. <legal 244 all> 245 */ 246 247 #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WLAN_TX_OFFSET 0x0000000000000008 248 #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WLAN_TX_LSB 49 249 #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WLAN_TX_MSB 49 250 #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WLAN_TX_MASK 0x0002000000000000 251 252 253 /* Description PROT_CONCURRENT_WAN_TX 254 255 Field valid for Protection frame transmission 256 257 Indicate the current TX is concurrent with WAN transmission. 258 This bit is to be copied over into FES status info. 259 <legal all> 260 */ 261 262 #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WAN_TX_OFFSET 0x0000000000000008 263 #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WAN_TX_LSB 50 264 #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WAN_TX_MSB 50 265 #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WAN_TX_MASK 0x0004000000000000 266 267 268 /* Description PROT_CONCURRENT_WAN_RX 269 270 Field valid for Protection frame transmission 271 272 Indicate the current TX is concurrent with WAN reception. 273 This bit is to be copied over into FES status info. 274 <legal all> 275 */ 276 277 #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WAN_RX_OFFSET 0x0000000000000008 278 #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WAN_RX_LSB 51 279 #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WAN_RX_MSB 51 280 #define TX_FES_STATUS_START_PROT_PROT_CONCURRENT_WAN_RX_MASK 0x0008000000000000 281 282 283 /* Description PROT_COEX_PWR_REDUCTION_BT 284 285 When set, transmit power for the protection frame is reduced 286 due to BT coex reason 287 <legal all> 288 */ 289 290 #define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_BT_OFFSET 0x0000000000000008 291 #define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_BT_LSB 52 292 #define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_BT_MSB 52 293 #define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_BT_MASK 0x0010000000000000 294 295 296 /* Description PROT_COEX_PWR_REDUCTION_WLAN 297 298 When set, transmit power for the protection frame is reduced 299 due to wlan coex reason 300 <legal all> 301 */ 302 303 #define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_WLAN_OFFSET 0x0000000000000008 304 #define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_WLAN_LSB 53 305 #define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_WLAN_MSB 53 306 #define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_WLAN_MASK 0x0020000000000000 307 308 309 /* Description PROT_COEX_PWR_REDUCTION_WAN 310 311 When set, transmit power for the protection frame is reduced 312 due to wan coex reason 313 <legal all> 314 */ 315 316 #define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_WAN_OFFSET 0x0000000000000008 317 #define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_WAN_LSB 54 318 #define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_WAN_MSB 54 319 #define TX_FES_STATUS_START_PROT_PROT_COEX_PWR_REDUCTION_WAN_MASK 0x0040000000000000 320 321 322 /* Description PROT_REQUEST_PACKET_BW 323 324 The requested transmit BW to PDG 325 Note that Coex can have changed the actual allowed transmit 326 bandwidth. 327 328 <enum 0 20_mhz>20 Mhz BW 329 <enum 1 40_mhz>40 Mhz BW 330 <enum 2 80_mhz>80 Mhz BW 331 <enum 3 160_mhz>160 Mhz BW 332 <enum 4 320_mhz>320 Mhz BW 333 <enum 5 240_mhz>240 Mhz BW 334 */ 335 336 #define TX_FES_STATUS_START_PROT_PROT_REQUEST_PACKET_BW_OFFSET 0x0000000000000008 337 #define TX_FES_STATUS_START_PROT_PROT_REQUEST_PACKET_BW_LSB 55 338 #define TX_FES_STATUS_START_PROT_PROT_REQUEST_PACKET_BW_MSB 57 339 #define TX_FES_STATUS_START_PROT_PROT_REQUEST_PACKET_BW_MASK 0x0380000000000000 340 341 342 /* Description RESPONSE_TYPE 343 344 PPDU transmission Response type expected 345 346 <enum 0 no_response_expected>After transmission of this 347 frame, no response in SIFS time is expected 348 349 When TXPCU sees this setting, it shall not generated the 350 EXPECTED_RESPONSE TLV. 351 352 RXPCU should never see this setting 353 <enum 1 ack_expected>An ACK frame is expected as response 354 355 356 RXPCU is just expecting any response. It is TXPCU who checks 357 that the right response was received. 358 <enum 2 ba_64_bitmap_expected>BA with 64 bitmap is expected. 359 360 361 PDG DOES NOT use the size info to calculated response duration. 362 The length of the response will have to be programmed by 363 SW in the per-BW 'Expected_ppdu_resp_length' field. 364 365 For TXPCU only the fact that it is a BA is important. Actual 366 received BA size is not important 367 368 RXPCU is just expecting any response. It is TXPCU who checks 369 that the right response was received. 370 <enum 3 ba_256_expected>BA with 256 bitmap is expected. 371 372 PDG DOES NOT use the size info to calculated response duration. 373 The length of the response will have to be programmed by 374 SW in the per-BW 'Expected_ppdu_resp_length' field. 375 376 For TXPCU only the fact that it is a BA is important. Actual 377 received BA size is not important 378 379 RXPCU is just expecting any response. It is TXPCU who checks 380 that the right response was received. 381 <enum 4 actionnoack_expected>SW sets this after sending 382 NDP or BR-Poll. 383 384 As PDG has no idea on how long the reception is going to 385 be, the reception time of the response will have to be 386 programmed by SW in the 'Extend_duration_value_bw...' field 387 388 389 RXPCU is just expecting any response. It is TXPCU who checks 390 that the right response was received. 391 <enum 5 ack_ba_expected>PDG uses the size info and assumes 392 single BA format with ACK and 64 bitmap embedded. 393 If SW expects more bitmaps in case of multi-TID, is shall 394 program the 'Extend_duration_value_bw...' field for additional 395 duration time. 396 For TXPCU only the fact that an ACK and/or BA is received 397 is important. Reception of only ACK or BA is also considered 398 a success. 399 SW also typically sets this when sending VHT single MPDU. 400 Some chip vendors might send BA rather than ACK in response 401 to VHT single MPDU but still we want to accept BA as well. 402 403 404 RXPCU is just expecting any response. It is TXPCU who checks 405 that the right response was received. 406 <enum 6 cts_expected>SW sets this after queuing RTS frame 407 as standalone packet and sending it. 408 409 RXPCU is just expecting any response. It is TXPCU who checks 410 that the right response was received. 411 <enum 7 ack_data_expected>SW sets this after sending PS-Poll. 412 413 414 For TXPCU either ACK and/or data reception is considered 415 success. 416 PDG basis it's response duration calculation on an ACK. 417 For the data portion, SW shall program the 'Extend_duration_value_bw...' 418 field 419 <enum 8 ndp_ack_expected>Reserved for 11ah usage. 420 <enum 9 ndp_modified_ack>Reserved for 11ah usage 421 <enum 10 ndp_ba_expected>Reserved for 11ah usage. 422 <enum 11 ndp_cts_expected>Reserved for 11ah usage 423 <enum 12 ndp_ack_or_ndp_modified_ack_expected>Reserved for 424 11ah usage 425 <enum 13 ul_mu_ba_expected>NOT SUPPORTED IN NAPIER AX AND 426 HASTINGS 427 428 TXPCU expects UL MU OFDMA or UL MU MIMO reception. 429 As PDG does not know how RUs are assigned for the uplink 430 portion, PDG can not calculate the uplink duration. Therefor 431 SW shall program the 'Extend_duration_value_bw...' field 432 433 434 RXPCU will report any frame received, irrespective of it 435 having been UL MU or SU It is TXPCUs responsibility to 436 distinguish between the UL MU or SU 437 438 TXPCU can check in TLV RECEIVED_RESPONSE_INFO MU_Response_BA_bitmap 439 if indeed BA was received 440 <enum 14 ul_mu_ba_and_data_expected>NOT SUPPORTED IN NAPIER 441 AX AND HASTINGS 442 443 TXPCU expects UL MU OFDMA or UL MU MIMO reception. 444 As PDG does not know how RUs are assigned for the uplink 445 portion, PDG can not calculate the uplink duration. Therefor 446 SW shall program the 'Extend_duration_value_bw...' field 447 448 449 RXPCU will report any frame received, irrespective of it 450 having been UL MU or SU It is TXPCUs responsibility to 451 distinguish between the UL MU or SU 452 453 TXPCU can check in TLV RECEIVED_RESPONSE_INFO, field MU_Response_data_bitmap 454 and MU_Response_BA_bitmap if indeed BA and data was received 455 456 <enum 15 ul_mu_cbf_expected>NOT SUPPORTED IN NAPIER AX AND 457 HASTINGS 458 459 When selected, CBF frames are expected to be received in 460 MU reception (uplink OFDMA or uplink MIMO) 461 462 RXPCU is just expecting any response. It is TXPCU who checks 463 that the right response was received 464 TXPCU can check in TLV RECEIVED_RESPONSE_INFO, field MU_Response_cbf_bitmap 465 if indeed CBF frames were received. 466 <enum 16 ul_mu_frames_expected>When selected, MPDU frames 467 are expected in the MU reception (uplink OFDMA or uplink 468 MIMO) 469 470 RXPCU is just expecting any response. It is TXPCU who checks 471 that the right response was received 472 473 TXPCU can check in TLV RECEIVED_RESPONSE_INFO, field MU_Response_bitmap 474 if indeed frames were received. 475 <enum 17 any_response_to_this_device>Any response expected 476 to be send to this device in SIFS time is acceptable. 477 478 RXPCU is just expecting any response. It is TXPCU who checks 479 that the right response was received 480 481 For TXPCU, UL MU or SU is both acceptable. 482 483 Can be used for complex OFDMA scenarios. PDG can not calculate 484 the uplink duration. Therefor SW shall program the 'Extend_duration_value_bw...' 485 field 486 <enum 18 any_response_accepted>Any frame in the medium to 487 this or any other device, is acceptable as response. 488 RXPCU is just expecting any response. It is TXPCU who checks 489 that the right response was received 490 491 For TXPCU, UL MU or SU is both acceptable. 492 493 Can be used for complex OFDMA scenarios. PDG can not calculate 494 the uplink duration. Therefor SW shall program the 'Extend_duration_value_bw...' 495 field 496 <enum 19 frameless_phyrx_response_accepted>Any MU frameless 497 reception generated by the PHY is acceptable. 498 499 PHY indicates this type of reception explicitly in TLV PHYRX_RSSI_LEGACY, 500 field Reception_type == reception_is_frameless 501 502 RXPCU will report any frame received, irrespective of it 503 having been UL MU or SU. 504 505 This can be used for complex MU-MIMO or OFDMA scenarios, 506 like receiving MU-CTS. 507 508 PDG can not calculate the uplink duration. Therefor SW shall 509 program the 'Extend_duration_value_bw...' field 510 <enum 20 ranging_ndp_and_lmr_expected>SW sets this after 511 sending ranging NDPA followed by NDP as an ISTA and NDP 512 and LMR (Action No Ack) are expected as back-to-back reception 513 in SIFS. 514 515 As PDG has no idea on how long the reception is going to 516 be, the reception time of the response will have to be 517 programmed by SW in the 'Extend_duration_value_bw...' field 518 519 520 RXPCU is just expecting any response. It is TXPCU who checks 521 that the right response was received. 522 <enum 21 ba_512_expected>BA with 512 bitmap is expected. 523 524 525 PDG DOES NOT use the size info to calculated response duration. 526 The length of the response will have to be programmed by 527 SW in the per-BW 'Expected_ppdu_resp_length' field. 528 529 For TXPCU only the fact that it is a BA is important. Actual 530 received BA size is not important 531 532 RXPCU is just expecting any response. It is TXPCU who checks 533 that the right response was received. 534 <enum 22 ba_1024_expected>BA with 1024 bitmap is expected. 535 536 537 PDG DOES NOT use the size info to calculated response duration. 538 The length of the response will have to be programmed by 539 SW in the per-BW 'Expected_ppdu_resp_length' field. 540 541 For TXPCU only the fact that it is a BA is important. Actual 542 received BA size is not important 543 544 RXPCU is just expecting any response. It is TXPCU who checks 545 that the right response was received. 546 <enum 23 ul_mu_ranging_cts2s_expected>When selected, CTS2S 547 frames are expected to be received in MU reception (uplink 548 OFDMA) 549 550 RXPCU shall check each response for CTS2S and report to 551 TXPCU. 552 553 TXPCU can check in the TLV 'RECEIVED_RESPONSE_INFO,' fields 554 'MU_Response_bitmap' and 'TB_Ranging_Resp' if indeed CTS2S 555 frames were received. 556 <enum 24 ul_mu_ranging_ndp_expected>When selected, UL NDP 557 frames are expected to be received in MU reception (uplink 558 spatial multiplexing) 559 560 RXPCU shall check each response for NDP and report to TXPCU. 561 562 563 TXPCU can check in the TLV 'RECEIVED_RESPONSE_INFO,' fields 564 'MU_Response_bitmap' and 'TB_Ranging_Resp' if indeed NDP 565 frames were received. 566 <enum 25 ul_mu_ranging_lmr_expected>When selected, LMR frames 567 are expected to be received in MU reception (uplink OFDMA 568 or uplink MIMO) 569 570 RXPCU shall check each response for LMR and report to TXPCU. 571 572 573 TXPCU can check in the TLV 'RECEIVED_RESPONSE_INFO,' fields 574 'MU_Response_bitmap' and 'TB_Ranging_Resp' if indeed LMR 575 frames were received. 576 */ 577 578 #define TX_FES_STATUS_START_PROT_RESPONSE_TYPE_OFFSET 0x0000000000000008 579 #define TX_FES_STATUS_START_PROT_RESPONSE_TYPE_LSB 58 580 #define TX_FES_STATUS_START_PROT_RESPONSE_TYPE_MSB 62 581 #define TX_FES_STATUS_START_PROT_RESPONSE_TYPE_MASK 0x7c00000000000000 582 583 584 /* Description RESERVED_3A 585 586 */ 587 588 #define TX_FES_STATUS_START_PROT_RESERVED_3A_OFFSET 0x0000000000000008 589 #define TX_FES_STATUS_START_PROT_RESERVED_3A_LSB 63 590 #define TX_FES_STATUS_START_PROT_RESERVED_3A_MSB 63 591 #define TX_FES_STATUS_START_PROT_RESERVED_3A_MASK 0x8000000000000000 592 593 594 595 #endif // TX_FES_STATUS_START_PROT 596