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