tx_fes_status_user_response.h 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. /* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
  2. *
  3. * Permission to use, copy, modify, and/or distribute this software for any
  4. * purpose with or without fee is hereby granted, provided that the above
  5. * copyright notice and this permission notice appear in all copies.
  6. *
  7. * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
  8. * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
  9. * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
  10. * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  11. * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
  12. * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  13. * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  14. */
  15. #ifndef _TX_FES_STATUS_USER_RESPONSE_H_
  16. #define _TX_FES_STATUS_USER_RESPONSE_H_
  17. #if !defined(__ASSEMBLER__)
  18. #endif
  19. #include "phytx_abort_request_info.h"
  20. #define NUM_OF_DWORDS_TX_FES_STATUS_USER_RESPONSE 2
  21. #define NUM_OF_QWORDS_TX_FES_STATUS_USER_RESPONSE 1
  22. struct tx_fes_status_user_response {
  23. #ifndef WIFI_BIT_ORDER_BIG_ENDIAN
  24. uint32_t fes_transmit_result : 4, // [3:0]
  25. reserved_0 : 28; // [31:4]
  26. struct phytx_abort_request_info phytx_abort_request_info_details;
  27. uint16_t reserved_after_struct16 : 16; // [31:16]
  28. #else
  29. uint32_t reserved_0 : 28, // [31:4]
  30. fes_transmit_result : 4; // [3:0]
  31. uint32_t reserved_after_struct16 : 16; // [31:16]
  32. struct phytx_abort_request_info phytx_abort_request_info_details;
  33. #endif
  34. };
  35. /* Description FES_TRANSMIT_RESULT
  36. Transmit result:
  37. <enum 0 tx_ok> Successful transmission of entire Frame exchange
  38. sequence
  39. <enum 1 prot_resp_rx_timeout>
  40. No Protection response frame received so timeout is triggered.
  41. <enum 2 ppdu_resp_rx_timeout> No PPDU response frame received
  42. so timeout is triggered.
  43. <enum 3 resp_frame_crc_err> Response frame was received
  44. with an invalid FCS.
  45. <enum 4 SU_Response_type_mismatch> Response frame is received
  46. without CRC error but it's not matched with expected SU_Response_type.
  47. <enum 5 cbf_mimo_ctrl_mismatch> Set if CBF is received without
  48. any error but the Nr, Nc, BW, type or token in VHT MIMO
  49. control field is not matched with expected values which
  50. are specified by TX_FES_SETUP.cbf_* fields.
  51. <enum 7 MU_Response_type_mismatch> Response frame is received
  52. without CRC error but it's not matched with expected SU_Response_type.
  53. <enum 8 MU_Response_mpdu_not_valid> For this user, no MPDU
  54. was received at all, or all received MPDUs had an FCS error.
  55. <enum 9 MU_UL_not_enough_user_response> An MU UL response
  56. reception was expected. That response came but the threshold
  57. for number of successful user receptions was not met.
  58. NOTE: This e-num will only be used in the TX_FES_STATUS_END
  59. TLV...
  60. <enum 10 Transmit_data_null_ratio_not_met> transmission
  61. was successful and proper responses have been received.
  62. But the required ratio between useful MPDU data and null
  63. delimiters was not met as specified by field : Fes_continuation_ratio_threshold.
  64. The FES (and potentially the SIFS burst) shall be terminated
  65. by the SCHeduler
  66. NOTE: This e-num will only be used in the TX_FES_STATUS_END
  67. TLV...
  68. <enum 6 TB_ranging_resp_timeout> A TB ranging response was
  69. expected for a sounding TF, but the response did not arrive
  70. and timeout is triggered.
  71. NOTE: This e-num will only be used in the TX_FES_STATUS_END
  72. TLV...
  73. <enum 11 tb_ranging_resp_mismatch> A TB ranging response
  74. was expected for a sounding TF, but the reception did not
  75. match the expected response.
  76. NOTE: This e-num will only be used in the TX_FES_STATUS_END
  77. TLV...
  78. <legal 0-11>
  79. */
  80. #define TX_FES_STATUS_USER_RESPONSE_FES_TRANSMIT_RESULT_OFFSET 0x0000000000000000
  81. #define TX_FES_STATUS_USER_RESPONSE_FES_TRANSMIT_RESULT_LSB 0
  82. #define TX_FES_STATUS_USER_RESPONSE_FES_TRANSMIT_RESULT_MSB 3
  83. #define TX_FES_STATUS_USER_RESPONSE_FES_TRANSMIT_RESULT_MASK 0x000000000000000f
  84. /* Description RESERVED_0
  85. Bits [15:4]: BAR_start_sequence_number:
  86. Starting sequence number to be overwritten by TXPCU for
  87. BAR or MU-BAR Trigger, to be copied from 'MPDU_QUEUE_OVERVIEW'
  88. by TXPCU
  89. Bit [16]: BAR_SSN_overwrite_enable:
  90. Enable for TXPCU overwrite of the starting sequence number
  91. for BAR or MU-BAR Trigger, to be copied from 'TX_QUEUE_EXTENSION'
  92. by TXPCU
  93. Not supported in Hamilton v1
  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