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