tx_fes_status_user_response.h 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  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. #ifndef _TX_FES_STATUS_USER_RESPONSE_H_
  17. #define _TX_FES_STATUS_USER_RESPONSE_H_
  18. #if !defined(__ASSEMBLER__)
  19. #endif
  20. #include "phytx_abort_request_info.h"
  21. #define NUM_OF_DWORDS_TX_FES_STATUS_USER_RESPONSE 2
  22. #define NUM_OF_QWORDS_TX_FES_STATUS_USER_RESPONSE 1
  23. struct tx_fes_status_user_response {
  24. #ifndef WIFI_BIT_ORDER_BIG_ENDIAN
  25. uint32_t fes_transmit_result : 4, // [3:0]
  26. reserved_0 : 28; // [31:4]
  27. struct phytx_abort_request_info phytx_abort_request_info_details;
  28. uint16_t reserved_after_struct16 : 16; // [31:16]
  29. #else
  30. uint32_t reserved_0 : 28, // [31:4]
  31. fes_transmit_result : 4; // [3:0]
  32. uint32_t reserved_after_struct16 : 16; // [31:16]
  33. struct phytx_abort_request_info phytx_abort_request_info_details;
  34. #endif
  35. };
  36. /* Description FES_TRANSMIT_RESULT
  37. Transmit result:
  38. <enum 0 tx_ok> Successful transmission of entire Frame exchange
  39. sequence
  40. <enum 1 prot_resp_rx_timeout>
  41. No Protection response frame received so timeout is triggered.
  42. <enum 2 ppdu_resp_rx_timeout> No PPDU response frame received
  43. so timeout is triggered.
  44. <enum 3 resp_frame_crc_err> Response frame was received
  45. with an invalid FCS.
  46. <enum 4 SU_Response_type_mismatch> Response frame is received
  47. without CRC error but it's not matched with expected SU_Response_type.
  48. <enum 5 cbf_mimo_ctrl_mismatch> Set if CBF is received without
  49. any error but the Nr, Nc, BW, type or token in VHT MIMO
  50. control field is not matched with expected values which
  51. are specified by TX_FES_SETUP.cbf_* fields.
  52. <enum 7 MU_Response_type_mismatch> Response frame is received
  53. without CRC error but it's not matched with expected SU_Response_type.
  54. <enum 8 MU_Response_mpdu_not_valid> For this user, no MPDU
  55. was received at all, or all received MPDUs had an FCS error.
  56. <enum 9 MU_UL_not_enough_user_response> An MU UL response
  57. reception was expected. That response came but the threshold
  58. for number of successful user receptions was not met.
  59. NOTE: This e-num will only be used in the TX_FES_STATUS_END
  60. TLV...
  61. <enum 10 Transmit_data_null_ratio_not_met> transmission
  62. was successful and proper responses have been received.
  63. But the required ratio between useful MPDU data and null
  64. delimiters was not met as specified by field : Fes_continuation_ratio_threshold.
  65. The FES (and potentially the SIFS burst) shall be terminated
  66. by the SCHeduler
  67. NOTE: This e-num will only be used in the TX_FES_STATUS_END
  68. TLV...
  69. <enum 6 TB_ranging_resp_timeout> A TB ranging response was
  70. expected for a sounding TF, but the response did not arrive
  71. and timeout is triggered.
  72. NOTE: This e-num will only be used in the TX_FES_STATUS_END
  73. TLV...
  74. <enum 11 tb_ranging_resp_mismatch> A TB ranging response
  75. was expected for a sounding TF, but the reception did not
  76. match the expected response.
  77. NOTE: This e-num will only be used in the TX_FES_STATUS_END
  78. TLV...
  79. <legal 0-11>
  80. */
  81. #define TX_FES_STATUS_USER_RESPONSE_FES_TRANSMIT_RESULT_OFFSET 0x0000000000000000
  82. #define TX_FES_STATUS_USER_RESPONSE_FES_TRANSMIT_RESULT_LSB 0
  83. #define TX_FES_STATUS_USER_RESPONSE_FES_TRANSMIT_RESULT_MSB 3
  84. #define TX_FES_STATUS_USER_RESPONSE_FES_TRANSMIT_RESULT_MASK 0x000000000000000f
  85. /* Description RESERVED_0
  86. Bits [15:4]: BAR_start_sequence_number:
  87. Starting sequence number to be overwritten by TXPCU for
  88. BAR or MU-BAR Trigger, to be copied from 'MPDU_QUEUE_OVERVIEW'
  89. by TXPCU
  90. Bit [16]: BAR_SSN_overwrite_enable:
  91. Enable for TXPCU overwrite of the starting sequence number
  92. for BAR or MU-BAR Trigger, to be copied from 'TX_QUEUE_EXTENSION'
  93. by TXPCU
  94. <legal 0-8191>
  95. */
  96. #define TX_FES_STATUS_USER_RESPONSE_RESERVED_0_OFFSET 0x0000000000000000
  97. #define TX_FES_STATUS_USER_RESPONSE_RESERVED_0_LSB 4
  98. #define TX_FES_STATUS_USER_RESPONSE_RESERVED_0_MSB 31
  99. #define TX_FES_STATUS_USER_RESPONSE_RESERVED_0_MASK 0x00000000fffffff0
  100. /* Description PHYTX_ABORT_REQUEST_INFO_DETAILS
  101. The reason why PHYTX is requesting an abort
  102. */
  103. /* Description PHYTX_ABORT_REASON
  104. Reason for early termination of TX packet by the PHY
  105. <enum_type PHYTX_ABORT_ENUM>
  106. */
  107. #define TX_FES_STATUS_USER_RESPONSE_PHYTX_ABORT_REQUEST_INFO_DETAILS_PHYTX_ABORT_REASON_OFFSET 0x0000000000000000
  108. #define TX_FES_STATUS_USER_RESPONSE_PHYTX_ABORT_REQUEST_INFO_DETAILS_PHYTX_ABORT_REASON_LSB 32
  109. #define TX_FES_STATUS_USER_RESPONSE_PHYTX_ABORT_REQUEST_INFO_DETAILS_PHYTX_ABORT_REASON_MSB 39
  110. #define TX_FES_STATUS_USER_RESPONSE_PHYTX_ABORT_REQUEST_INFO_DETAILS_PHYTX_ABORT_REASON_MASK 0x000000ff00000000
  111. /* Description USER_NUMBER
  112. For some errors, the user for which this error was detected
  113. can be indicated in this field.
  114. <legal 0-36>
  115. */
  116. #define TX_FES_STATUS_USER_RESPONSE_PHYTX_ABORT_REQUEST_INFO_DETAILS_USER_NUMBER_OFFSET 0x0000000000000000
  117. #define TX_FES_STATUS_USER_RESPONSE_PHYTX_ABORT_REQUEST_INFO_DETAILS_USER_NUMBER_LSB 40
  118. #define TX_FES_STATUS_USER_RESPONSE_PHYTX_ABORT_REQUEST_INFO_DETAILS_USER_NUMBER_MSB 45
  119. #define TX_FES_STATUS_USER_RESPONSE_PHYTX_ABORT_REQUEST_INFO_DETAILS_USER_NUMBER_MASK 0x00003f0000000000
  120. /* Description RESERVED
  121. <legal 0>
  122. */
  123. #define TX_FES_STATUS_USER_RESPONSE_PHYTX_ABORT_REQUEST_INFO_DETAILS_RESERVED_OFFSET 0x0000000000000000
  124. #define TX_FES_STATUS_USER_RESPONSE_PHYTX_ABORT_REQUEST_INFO_DETAILS_RESERVED_LSB 46
  125. #define TX_FES_STATUS_USER_RESPONSE_PHYTX_ABORT_REQUEST_INFO_DETAILS_RESERVED_MSB 47
  126. #define TX_FES_STATUS_USER_RESPONSE_PHYTX_ABORT_REQUEST_INFO_DETAILS_RESERVED_MASK 0x0000c00000000000
  127. /* Description RESERVED_AFTER_STRUCT16
  128. <legal 0>
  129. */
  130. #define TX_FES_STATUS_USER_RESPONSE_RESERVED_AFTER_STRUCT16_OFFSET 0x0000000000000000
  131. #define TX_FES_STATUS_USER_RESPONSE_RESERVED_AFTER_STRUCT16_LSB 48
  132. #define TX_FES_STATUS_USER_RESPONSE_RESERVED_AFTER_STRUCT16_MSB 63
  133. #define TX_FES_STATUS_USER_RESPONSE_RESERVED_AFTER_STRUCT16_MASK 0xffff000000000000
  134. #endif // TX_FES_STATUS_USER_RESPONSE