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_PPDU_H_ 27 #define _TX_FES_STATUS_START_PPDU_H_ 28 #if !defined(__ASSEMBLER__) 29 #endif 30 31 #define NUM_OF_DWORDS_TX_FES_STATUS_START_PPDU 4 32 33 #define NUM_OF_QWORDS_TX_FES_STATUS_START_PPDU 2 34 35 36 struct tx_fes_status_start_ppdu { 37 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 38 uint32_t ppdu_timestamp_lower_32 : 32; // [31:0] 39 uint32_t ppdu_timestamp_upper_32 : 32; // [31:0] 40 uint32_t subband_mask : 16, // [15:0] 41 ndp_frame : 2, // [17:16] 42 reserved_2b : 2, // [19:18] 43 coex_based_tx_bw : 3, // [22:20] 44 coex_based_ant_mask : 8, // [30:23] 45 reserved_2c : 1; // [31:31] 46 uint32_t coex_based_tx_pwr_shared_ant : 8, // [7:0] 47 coex_based_tx_pwr_ant : 8, // [15:8] 48 concurrent_bt_tx : 1, // [16:16] 49 concurrent_wlan_tx : 1, // [17:17] 50 concurrent_wan_tx : 1, // [18:18] 51 concurrent_wan_rx : 1, // [19:19] 52 coex_pwr_reduction_bt : 1, // [20:20] 53 coex_pwr_reduction_wlan : 1, // [21:21] 54 coex_pwr_reduction_wan : 1, // [22:22] 55 coex_result_alt_based : 1, // [23:23] 56 request_packet_bw : 3, // [26:24] 57 response_type : 5; // [31:27] 58 #else 59 uint32_t ppdu_timestamp_lower_32 : 32; // [31:0] 60 uint32_t ppdu_timestamp_upper_32 : 32; // [31:0] 61 uint32_t reserved_2c : 1, // [31:31] 62 coex_based_ant_mask : 8, // [30:23] 63 coex_based_tx_bw : 3, // [22:20] 64 reserved_2b : 2, // [19:18] 65 ndp_frame : 2, // [17:16] 66 subband_mask : 16; // [15:0] 67 uint32_t response_type : 5, // [31:27] 68 request_packet_bw : 3, // [26:24] 69 coex_result_alt_based : 1, // [23:23] 70 coex_pwr_reduction_wan : 1, // [22:22] 71 coex_pwr_reduction_wlan : 1, // [21:21] 72 coex_pwr_reduction_bt : 1, // [20:20] 73 concurrent_wan_rx : 1, // [19:19] 74 concurrent_wan_tx : 1, // [18:18] 75 concurrent_wlan_tx : 1, // [17:17] 76 concurrent_bt_tx : 1, // [16:16] 77 coex_based_tx_pwr_ant : 8, // [15:8] 78 coex_based_tx_pwr_shared_ant : 8; // [7:0] 79 #endif 80 }; 81 82 83 /* Description PPDU_TIMESTAMP_LOWER_32 84 85 Global timer value at start of Protection transmission 86 */ 87 88 #define TX_FES_STATUS_START_PPDU_PPDU_TIMESTAMP_LOWER_32_OFFSET 0x0000000000000000 89 #define TX_FES_STATUS_START_PPDU_PPDU_TIMESTAMP_LOWER_32_LSB 0 90 #define TX_FES_STATUS_START_PPDU_PPDU_TIMESTAMP_LOWER_32_MSB 31 91 #define TX_FES_STATUS_START_PPDU_PPDU_TIMESTAMP_LOWER_32_MASK 0x00000000ffffffff 92 93 94 /* Description PPDU_TIMESTAMP_UPPER_32 95 96 Global timer value at start of Protection transmission 97 */ 98 99 #define TX_FES_STATUS_START_PPDU_PPDU_TIMESTAMP_UPPER_32_OFFSET 0x0000000000000000 100 #define TX_FES_STATUS_START_PPDU_PPDU_TIMESTAMP_UPPER_32_LSB 32 101 #define TX_FES_STATUS_START_PPDU_PPDU_TIMESTAMP_UPPER_32_MSB 63 102 #define TX_FES_STATUS_START_PPDU_PPDU_TIMESTAMP_UPPER_32_MASK 0xffffffff00000000 103 104 105 /* Description SUBBAND_MASK 106 107 This mask indicates which 20 Mhz channels are actively used 108 in the BW or puncture pattern selected for transmit. 109 110 Bit 0: primary 20 Mhz 111 Bit 1: secondary 20 MHz 112 Etc. 113 114 Hamilton v1 used bits [8:4] for the 'Response_type' expected 115 and bits [10:9] for the 'ndp_frame' field from 'TX_FES_SETUP.' 116 117 <legal all> 118 */ 119 120 #define TX_FES_STATUS_START_PPDU_SUBBAND_MASK_OFFSET 0x0000000000000008 121 #define TX_FES_STATUS_START_PPDU_SUBBAND_MASK_LSB 0 122 #define TX_FES_STATUS_START_PPDU_SUBBAND_MASK_MSB 15 123 #define TX_FES_STATUS_START_PPDU_SUBBAND_MASK_MASK 0x000000000000ffff 124 125 126 /* Description NDP_FRAME 127 128 Bit copied from the TX_FES_SETUP TLV 129 130 <enum 0 no_ndp>No NDP transmission 131 <enum 1 beamforming_ndp>Beamforming NDP 132 <enum 2 he_ranging_ndp>11az NDP (HE Ranging NDP) 133 <enum 3 he_feedback_ndp>Short TB (HE Feedback NDP) 134 */ 135 136 #define TX_FES_STATUS_START_PPDU_NDP_FRAME_OFFSET 0x0000000000000008 137 #define TX_FES_STATUS_START_PPDU_NDP_FRAME_LSB 16 138 #define TX_FES_STATUS_START_PPDU_NDP_FRAME_MSB 17 139 #define TX_FES_STATUS_START_PPDU_NDP_FRAME_MASK 0x0000000000030000 140 141 142 /* Description RESERVED_2B 143 144 <legal 0> 145 */ 146 147 #define TX_FES_STATUS_START_PPDU_RESERVED_2B_OFFSET 0x0000000000000008 148 #define TX_FES_STATUS_START_PPDU_RESERVED_2B_LSB 18 149 #define TX_FES_STATUS_START_PPDU_RESERVED_2B_MSB 19 150 #define TX_FES_STATUS_START_PPDU_RESERVED_2B_MASK 0x00000000000c0000 151 152 153 /* Description COEX_BASED_TX_BW 154 155 Field valid for regular PPDU frame transmission 156 157 This is the transmit bandwidth value 158 that is granted by Coex. 159 160 <enum 0 20_mhz>20 Mhz BW 161 <enum 1 40_mhz>40 Mhz BW 162 <enum 2 80_mhz>80 Mhz BW 163 <enum 3 160_mhz>160 Mhz BW 164 <enum 4 320_mhz>320 Mhz BW 165 <enum 5 240_mhz>240 Mhz BW 166 */ 167 168 #define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_BW_OFFSET 0x0000000000000008 169 #define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_BW_LSB 20 170 #define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_BW_MSB 22 171 #define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_BW_MASK 0x0000000000700000 172 173 174 /* Description COEX_BASED_ANT_MASK 175 176 Field valid for regular PPDU or Response frame transmission 177 178 179 The antennas allowed to be used for this transmission. 180 (Coex is allowed to reduce the number of antennas to be 181 used, but not the number of SS) 182 <legal all> 183 */ 184 185 #define TX_FES_STATUS_START_PPDU_COEX_BASED_ANT_MASK_OFFSET 0x0000000000000008 186 #define TX_FES_STATUS_START_PPDU_COEX_BASED_ANT_MASK_LSB 23 187 #define TX_FES_STATUS_START_PPDU_COEX_BASED_ANT_MASK_MSB 30 188 #define TX_FES_STATUS_START_PPDU_COEX_BASED_ANT_MASK_MASK 0x000000007f800000 189 190 191 /* Description RESERVED_2C 192 193 <legal 0> 194 */ 195 196 #define TX_FES_STATUS_START_PPDU_RESERVED_2C_OFFSET 0x0000000000000008 197 #define TX_FES_STATUS_START_PPDU_RESERVED_2C_LSB 31 198 #define TX_FES_STATUS_START_PPDU_RESERVED_2C_MSB 31 199 #define TX_FES_STATUS_START_PPDU_RESERVED_2C_MASK 0x0000000080000000 200 201 202 /* Description COEX_BASED_TX_PWR_SHARED_ANT 203 204 Field valid for regular PPDU or Response frame transmission 205 206 207 Granted tx power for the shared antenna. 208 209 Transmit Power in s6.2 format. 210 In units of 0.25 dBm 211 <legal all> 212 */ 213 214 #define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_PWR_SHARED_ANT_OFFSET 0x0000000000000008 215 #define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_PWR_SHARED_ANT_LSB 32 216 #define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_PWR_SHARED_ANT_MSB 39 217 #define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_PWR_SHARED_ANT_MASK 0x000000ff00000000 218 219 220 /* Description COEX_BASED_TX_PWR_ANT 221 222 Field valid for regular PPDU or Response frame transmission 223 224 225 Granted tx power for the unshared antenna 226 Transmit Power in s6.2 format. 227 In units of 0.25 dBm 228 <legal all> 229 */ 230 231 #define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_PWR_ANT_OFFSET 0x0000000000000008 232 #define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_PWR_ANT_LSB 40 233 #define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_PWR_ANT_MSB 47 234 #define TX_FES_STATUS_START_PPDU_COEX_BASED_TX_PWR_ANT_MASK 0x0000ff0000000000 235 236 237 /* Description CONCURRENT_BT_TX 238 239 Indicate the current TX is concurrent with a BT transmission. 240 This bit is to be copied over into the FES status info. 241 242 <legal all> 243 */ 244 245 #define TX_FES_STATUS_START_PPDU_CONCURRENT_BT_TX_OFFSET 0x0000000000000008 246 #define TX_FES_STATUS_START_PPDU_CONCURRENT_BT_TX_LSB 48 247 #define TX_FES_STATUS_START_PPDU_CONCURRENT_BT_TX_MSB 48 248 #define TX_FES_STATUS_START_PPDU_CONCURRENT_BT_TX_MASK 0x0001000000000000 249 250 251 /* Description CONCURRENT_WLAN_TX 252 253 Field valid for regular PPDU or Response frame transmission 254 255 256 Indicate the current TX is concurrent with other WLAN transmission. 257 This bit is to be copied over into FES status info. 258 <legal all> 259 */ 260 261 #define TX_FES_STATUS_START_PPDU_CONCURRENT_WLAN_TX_OFFSET 0x0000000000000008 262 #define TX_FES_STATUS_START_PPDU_CONCURRENT_WLAN_TX_LSB 49 263 #define TX_FES_STATUS_START_PPDU_CONCURRENT_WLAN_TX_MSB 49 264 #define TX_FES_STATUS_START_PPDU_CONCURRENT_WLAN_TX_MASK 0x0002000000000000 265 266 267 /* Description CONCURRENT_WAN_TX 268 269 Field valid for regular PPDU or Response frame transmission 270 271 272 Indicate the current TX is concurrent with WAN transmission. 273 This bit is to be copied over into FES status info. 274 <legal all> 275 */ 276 277 #define TX_FES_STATUS_START_PPDU_CONCURRENT_WAN_TX_OFFSET 0x0000000000000008 278 #define TX_FES_STATUS_START_PPDU_CONCURRENT_WAN_TX_LSB 50 279 #define TX_FES_STATUS_START_PPDU_CONCURRENT_WAN_TX_MSB 50 280 #define TX_FES_STATUS_START_PPDU_CONCURRENT_WAN_TX_MASK 0x0004000000000000 281 282 283 /* Description CONCURRENT_WAN_RX 284 285 Field valid for regular PPDU or Response frame transmission 286 287 288 Indicate the current TX is concurrent with WAN reception. 289 This bit is to be copied over into FES status info. 290 <legal all> 291 */ 292 293 #define TX_FES_STATUS_START_PPDU_CONCURRENT_WAN_RX_OFFSET 0x0000000000000008 294 #define TX_FES_STATUS_START_PPDU_CONCURRENT_WAN_RX_LSB 51 295 #define TX_FES_STATUS_START_PPDU_CONCURRENT_WAN_RX_MSB 51 296 #define TX_FES_STATUS_START_PPDU_CONCURRENT_WAN_RX_MASK 0x0008000000000000 297 298 299 /* Description COEX_PWR_REDUCTION_BT 300 301 Field valid for regular or response frame transmission. 302 When set, transmit power is reduced due to BT coex reason 303 304 <legal all> 305 */ 306 307 #define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_BT_OFFSET 0x0000000000000008 308 #define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_BT_LSB 52 309 #define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_BT_MSB 52 310 #define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_BT_MASK 0x0010000000000000 311 312 313 /* Description COEX_PWR_REDUCTION_WLAN 314 315 Field valid for regular or response frame transmission. 316 When set, transmit power is reduced due to wlan coex reason 317 318 <legal all> 319 */ 320 321 #define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_WLAN_OFFSET 0x0000000000000008 322 #define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_WLAN_LSB 53 323 #define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_WLAN_MSB 53 324 #define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_WLAN_MASK 0x0020000000000000 325 326 327 /* Description COEX_PWR_REDUCTION_WAN 328 329 Field valid for regular or response frame transmission. 330 When set, transmit power is reduced due to wan coex reason 331 332 <legal all> 333 */ 334 335 #define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_WAN_OFFSET 0x0000000000000008 336 #define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_WAN_LSB 54 337 #define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_WAN_MSB 54 338 #define TX_FES_STATUS_START_PPDU_COEX_PWR_REDUCTION_WAN_MASK 0x0040000000000000 339 340 341 /* Description COEX_RESULT_ALT_BASED 342 343 Field valid for regular PPDU or Response frame transmission 344 345 346 When set, the resulting Coex transmit parameters are based 347 alternate transmit settings in the TX_RATE_SETTING STRUCT 348 of the original selected BW 349 350 When not set, the resulting Coex parameters are based on 351 the default transmit settings in the TX_RATE_SETTING STRUCT 352 353 354 <legal all> 355 */ 356 357 #define TX_FES_STATUS_START_PPDU_COEX_RESULT_ALT_BASED_OFFSET 0x0000000000000008 358 #define TX_FES_STATUS_START_PPDU_COEX_RESULT_ALT_BASED_LSB 55 359 #define TX_FES_STATUS_START_PPDU_COEX_RESULT_ALT_BASED_MSB 55 360 #define TX_FES_STATUS_START_PPDU_COEX_RESULT_ALT_BASED_MASK 0x0080000000000000 361 362 363 /* Description REQUEST_PACKET_BW 364 365 The requested transmit BW to PDG 366 Note that Coex can have changed the actual allowed transmit 367 bandwidth. 368 369 <enum 0 20_mhz>20 Mhz BW 370 <enum 1 40_mhz>40 Mhz BW 371 <enum 2 80_mhz>80 Mhz BW 372 <enum 3 160_mhz>160 Mhz BW 373 <enum 4 320_mhz>320 Mhz BW 374 <enum 5 240_mhz>240 Mhz BW 375 */ 376 377 #define TX_FES_STATUS_START_PPDU_REQUEST_PACKET_BW_OFFSET 0x0000000000000008 378 #define TX_FES_STATUS_START_PPDU_REQUEST_PACKET_BW_LSB 56 379 #define TX_FES_STATUS_START_PPDU_REQUEST_PACKET_BW_MSB 58 380 #define TX_FES_STATUS_START_PPDU_REQUEST_PACKET_BW_MASK 0x0700000000000000 381 382 383 /* Description RESPONSE_TYPE 384 385 PPDU transmission Response type expected 386 387 <enum 0 no_response_expected>After transmission of this 388 frame, no response in SIFS time is expected 389 390 When TXPCU sees this setting, it shall not generated the 391 EXPECTED_RESPONSE TLV. 392 393 RXPCU should never see this setting 394 <enum 1 ack_expected>An ACK frame is expected as response 395 396 397 RXPCU is just expecting any response. It is TXPCU who checks 398 that the right response was received. 399 <enum 2 ba_64_bitmap_expected>BA with 64 bitmap is expected. 400 401 402 PDG DOES NOT use the size info to calculated response duration. 403 The length of the response will have to be programmed by 404 SW in the per-BW 'Expected_ppdu_resp_length' field. 405 406 For TXPCU only the fact that it is a BA is important. Actual 407 received BA size is not important 408 409 RXPCU is just expecting any response. It is TXPCU who checks 410 that the right response was received. 411 <enum 3 ba_256_expected>BA with 256 bitmap is expected. 412 413 PDG DOES NOT use the size info to calculated response duration. 414 The length of the response will have to be programmed by 415 SW in the per-BW 'Expected_ppdu_resp_length' field. 416 417 For TXPCU only the fact that it is a BA is important. Actual 418 received BA size is not important 419 420 RXPCU is just expecting any response. It is TXPCU who checks 421 that the right response was received. 422 <enum 4 actionnoack_expected>SW sets this after sending 423 NDP or BR-Poll. 424 425 As PDG has no idea on how long the reception is going to 426 be, the reception time of the response will have to be 427 programmed by SW in the 'Extend_duration_value_bw...' field 428 429 430 RXPCU is just expecting any response. It is TXPCU who checks 431 that the right response was received. 432 <enum 5 ack_ba_expected>PDG uses the size info and assumes 433 single BA format with ACK and 64 bitmap embedded. 434 If SW expects more bitmaps in case of multi-TID, is shall 435 program the 'Extend_duration_value_bw...' field for additional 436 duration time. 437 For TXPCU only the fact that an ACK and/or BA is received 438 is important. Reception of only ACK or BA is also considered 439 a success. 440 SW also typically sets this when sending VHT single MPDU. 441 Some chip vendors might send BA rather than ACK in response 442 to VHT single MPDU but still we want to accept BA as well. 443 444 445 RXPCU is just expecting any response. It is TXPCU who checks 446 that the right response was received. 447 <enum 6 cts_expected>SW sets this after queuing RTS frame 448 as standalone packet and sending it. 449 450 RXPCU is just expecting any response. It is TXPCU who checks 451 that the right response was received. 452 <enum 7 ack_data_expected>SW sets this after sending PS-Poll. 453 454 455 For TXPCU either ACK and/or data reception is considered 456 success. 457 PDG basis it's response duration calculation on an ACK. 458 For the data portion, SW shall program the 'Extend_duration_value_bw...' 459 field 460 <enum 8 ndp_ack_expected>Reserved for 11ah usage. 461 <enum 9 ndp_modified_ack>Reserved for 11ah usage 462 <enum 10 ndp_ba_expected>Reserved for 11ah usage. 463 <enum 11 ndp_cts_expected>Reserved for 11ah usage 464 <enum 12 ndp_ack_or_ndp_modified_ack_expected>Reserved for 465 11ah usage 466 <enum 13 ul_mu_ba_expected>NOT SUPPORTED IN NAPIER AX AND 467 HASTINGS 468 469 TXPCU expects UL MU OFDMA or UL MU MIMO reception. 470 As PDG does not know how RUs are assigned for the uplink 471 portion, PDG can not calculate the uplink duration. Therefor 472 SW shall program the 'Extend_duration_value_bw...' field 473 474 475 RXPCU will report any frame received, irrespective of it 476 having been UL MU or SU It is TXPCUs responsibility to 477 distinguish between the UL MU or SU 478 479 TXPCU can check in TLV RECEIVED_RESPONSE_INFO MU_Response_BA_bitmap 480 if indeed BA was received 481 <enum 14 ul_mu_ba_and_data_expected>NOT SUPPORTED IN NAPIER 482 AX AND HASTINGS 483 484 TXPCU expects UL MU OFDMA or UL MU MIMO reception. 485 As PDG does not know how RUs are assigned for the uplink 486 portion, PDG can not calculate the uplink duration. Therefor 487 SW shall program the 'Extend_duration_value_bw...' field 488 489 490 RXPCU will report any frame received, irrespective of it 491 having been UL MU or SU It is TXPCUs responsibility to 492 distinguish between the UL MU or SU 493 494 TXPCU can check in TLV RECEIVED_RESPONSE_INFO, field MU_Response_data_bitmap 495 and MU_Response_BA_bitmap if indeed BA and data was received 496 497 <enum 15 ul_mu_cbf_expected>NOT SUPPORTED IN NAPIER AX AND 498 HASTINGS 499 500 When selected, CBF frames are expected to be received in 501 MU reception (uplink OFDMA or uplink MIMO) 502 503 RXPCU is just expecting any response. It is TXPCU who checks 504 that the right response was received 505 TXPCU can check in TLV RECEIVED_RESPONSE_INFO, field MU_Response_cbf_bitmap 506 if indeed CBF frames were received. 507 <enum 16 ul_mu_frames_expected>When selected, MPDU frames 508 are expected in the MU reception (uplink OFDMA or uplink 509 MIMO) 510 511 RXPCU is just expecting any response. It is TXPCU who checks 512 that the right response was received 513 514 TXPCU can check in TLV RECEIVED_RESPONSE_INFO, field MU_Response_bitmap 515 if indeed frames were received. 516 <enum 17 any_response_to_this_device>Any response expected 517 to be send to this device in SIFS time is acceptable. 518 519 RXPCU is just expecting any response. It is TXPCU who checks 520 that the right response was received 521 522 For TXPCU, UL MU or SU is both acceptable. 523 524 Can be used for complex OFDMA scenarios. PDG can not calculate 525 the uplink duration. Therefor SW shall program the 'Extend_duration_value_bw...' 526 field 527 <enum 18 any_response_accepted>Any frame in the medium to 528 this or any other device, is acceptable as response. 529 RXPCU is just expecting any response. It is TXPCU who checks 530 that the right response was received 531 532 For TXPCU, UL MU or SU is both acceptable. 533 534 Can be used for complex OFDMA scenarios. PDG can not calculate 535 the uplink duration. Therefor SW shall program the 'Extend_duration_value_bw...' 536 field 537 <enum 19 frameless_phyrx_response_accepted>Any MU frameless 538 reception generated by the PHY is acceptable. 539 540 PHY indicates this type of reception explicitly in TLV PHYRX_RSSI_LEGACY, 541 field Reception_type == reception_is_frameless 542 543 RXPCU will report any frame received, irrespective of it 544 having been UL MU or SU. 545 546 This can be used for complex MU-MIMO or OFDMA scenarios, 547 like receiving MU-CTS. 548 549 PDG can not calculate the uplink duration. Therefor SW shall 550 program the 'Extend_duration_value_bw...' field 551 <enum 20 ranging_ndp_and_lmr_expected>SW sets this after 552 sending ranging NDPA followed by NDP as an ISTA and NDP 553 and LMR (Action No Ack) are expected as back-to-back reception 554 in SIFS. 555 556 As PDG has no idea on how long the reception is going to 557 be, the reception time of the response will have to be 558 programmed by SW in the 'Extend_duration_value_bw...' field 559 560 561 RXPCU is just expecting any response. It is TXPCU who checks 562 that the right response was received. 563 <enum 21 ba_512_expected>BA with 512 bitmap is expected. 564 565 566 PDG DOES NOT use the size info to calculated response duration. 567 The length of the response will have to be programmed by 568 SW in the per-BW 'Expected_ppdu_resp_length' field. 569 570 For TXPCU only the fact that it is a BA is important. Actual 571 received BA size is not important 572 573 RXPCU is just expecting any response. It is TXPCU who checks 574 that the right response was received. 575 <enum 22 ba_1024_expected>BA with 1024 bitmap is expected. 576 577 578 PDG DOES NOT use the size info to calculated response duration. 579 The length of the response will have to be programmed by 580 SW in the per-BW 'Expected_ppdu_resp_length' field. 581 582 For TXPCU only the fact that it is a BA is important. Actual 583 received BA size is not important 584 585 RXPCU is just expecting any response. It is TXPCU who checks 586 that the right response was received. 587 <enum 23 ul_mu_ranging_cts2s_expected>When selected, CTS2S 588 frames are expected to be received in MU reception (uplink 589 OFDMA) 590 591 RXPCU shall check each response for CTS2S and report to 592 TXPCU. 593 594 TXPCU can check in the TLV 'RECEIVED_RESPONSE_INFO,' fields 595 'MU_Response_bitmap' and 'TB_Ranging_Resp' if indeed CTS2S 596 frames were received. 597 <enum 24 ul_mu_ranging_ndp_expected>When selected, UL NDP 598 frames are expected to be received in MU reception (uplink 599 spatial multiplexing) 600 601 RXPCU shall check each response for NDP and report to TXPCU. 602 603 604 TXPCU can check in the TLV 'RECEIVED_RESPONSE_INFO,' fields 605 'MU_Response_bitmap' and 'TB_Ranging_Resp' if indeed NDP 606 frames were received. 607 <enum 25 ul_mu_ranging_lmr_expected>When selected, LMR frames 608 are expected to be received in MU reception (uplink OFDMA 609 or uplink MIMO) 610 611 RXPCU shall check each response for LMR and report to TXPCU. 612 613 614 TXPCU can check in the TLV 'RECEIVED_RESPONSE_INFO,' fields 615 'MU_Response_bitmap' and 'TB_Ranging_Resp' if indeed LMR 616 frames were received. 617 */ 618 619 #define TX_FES_STATUS_START_PPDU_RESPONSE_TYPE_OFFSET 0x0000000000000008 620 #define TX_FES_STATUS_START_PPDU_RESPONSE_TYPE_LSB 59 621 #define TX_FES_STATUS_START_PPDU_RESPONSE_TYPE_MSB 63 622 #define TX_FES_STATUS_START_PPDU_RESPONSE_TYPE_MASK 0xf800000000000000 623 624 625 626 #endif // TX_FES_STATUS_START_PPDU 627