xref: /wlan-driver/fw-api/hw/qca5018/rx_ppdu_end_user_stats_ext.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1 /*
2  * Copyright (c) 2020, The Linux Foundation. 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 _RX_PPDU_END_USER_STATS_EXT_H_
18 #define _RX_PPDU_END_USER_STATS_EXT_H_
19 #if !defined(__ASSEMBLER__)
20 #endif
21 
22 #include "rx_rxpcu_classification_overview.h"
23 
24 // ################ START SUMMARY #################
25 //
26 //	Dword	Fields
27 //	0	struct rx_rxpcu_classification_overview rxpcu_classification_details;
28 //	1	fcs_ok_bitmap_95_64[31:0]
29 //	2	fcs_ok_bitmap_127_96[31:0]
30 //	3	fcs_ok_bitmap_159_128[31:0]
31 //	4	fcs_ok_bitmap_191_160[31:0]
32 //	5	fcs_ok_bitmap_223_192[31:0]
33 //	6	fcs_ok_bitmap_255_224[31:0]
34 //
35 // ################ END SUMMARY #################
36 
37 #define NUM_OF_DWORDS_RX_PPDU_END_USER_STATS_EXT 7
38 
39 struct rx_ppdu_end_user_stats_ext {
40     struct            rx_rxpcu_classification_overview                       rxpcu_classification_details;
41              uint32_t fcs_ok_bitmap_95_64             : 32; //[31:0]
42              uint32_t fcs_ok_bitmap_127_96            : 32; //[31:0]
43              uint32_t fcs_ok_bitmap_159_128           : 32; //[31:0]
44              uint32_t fcs_ok_bitmap_191_160           : 32; //[31:0]
45              uint32_t fcs_ok_bitmap_223_192           : 32; //[31:0]
46              uint32_t fcs_ok_bitmap_255_224           : 32; //[31:0]
47 };
48 
49 /*
50 
51 struct rx_rxpcu_classification_overview rxpcu_classification_details
52 
53 			Details related to what RXPCU classification types of
54 			MPDUs have been received
55 
56 fcs_ok_bitmap_95_64
57 
58 			Bitmap indicates in order of received MPDUs, which MPDUs
59 			had an passing FCS or had an error.
60 
61 			1: FCS OK
62 
63 			0: FCS error
64 
65 			<legal all>
66 
67 fcs_ok_bitmap_127_96
68 
69 			Bitmap indicates in order of received MPDUs, which MPDUs
70 			had an passing FCS or had an error.
71 
72 			1: FCS OK
73 
74 			0: FCS error
75 
76 			<legal all>
77 
78 fcs_ok_bitmap_159_128
79 
80 			Bitmap indicates in order of received MPDUs, which MPDUs
81 			had an passing FCS or had an error.
82 
83 			1: FCS OK
84 
85 			0: FCS error
86 
87 			<legal all>
88 
89 fcs_ok_bitmap_191_160
90 
91 			Bitmap indicates in order of received MPDUs, which MPDUs
92 			had an passing FCS or had an error.
93 
94 			1: FCS OK
95 
96 			0: FCS error
97 
98 			<legal all>
99 
100 fcs_ok_bitmap_223_192
101 
102 			Bitmap indicates in order of received MPDUs, which MPDUs
103 			had an passing FCS or had an error.
104 
105 			1: FCS OK
106 
107 			0: FCS error
108 
109 			<legal all>
110 
111 fcs_ok_bitmap_255_224
112 
113 			Bitmap indicates in order of received MPDUs, which MPDUs
114 			had an passing FCS or had an error.
115 
116 			1: FCS OK
117 
118 			0: FCS error
119 
120 			<legal all>
121 */
122 
123 
124  /* EXTERNAL REFERENCE : struct rx_rxpcu_classification_overview rxpcu_classification_details */
125 
126 
127 /* Description		RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS
128 
129 			When set, at least one Filter Pass MPDU has been
130 			received. FCS might or might not have been passing.
131 
132 
133 
134 			For MU UL, in  TLVs RX_PPDU_END and
135 			RX_PPDU_END_STATUS_DONE, this field is the OR of all the
136 			users.
137 
138 			<legal all>
139 */
140 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_OFFSET 0x00000000
141 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_LSB 0
142 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_MASK 0x00000001
143 
144 /* Description		RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_FCS_OK
145 
146 			When set, at least one Filter Pass MPDU has been
147 			received that has a correct FCS.
148 
149 
150 
151 			For MU UL, in  TLVs RX_PPDU_END and
152 			RX_PPDU_END_STATUS_DONE, this field is the OR of all the
153 			users.
154 
155 
156 
157 			<legal all>
158 */
159 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_FCS_OK_OFFSET 0x00000000
160 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_FCS_OK_LSB 1
161 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_FCS_OK_MASK 0x00000002
162 
163 /* Description		RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS
164 
165 			When set, at least one Monitor Direct MPDU has been
166 			received. FCS might or might not have been passing
167 
168 
169 
170 			For MU UL, in  TLVs RX_PPDU_END and
171 			RX_PPDU_END_STATUS_DONE, this field is the OR of all the
172 			users.
173 
174 			<legal all>
175 */
176 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_OFFSET 0x00000000
177 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_LSB 2
178 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_MASK 0x00000004
179 
180 /* Description		RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_FCS_OK
181 
182 			When set, at least one Monitor Direct MPDU has been
183 			received that has a correct FCS.
184 
185 
186 
187 			For MU UL, in  TLVs RX_PPDU_END and
188 			RX_PPDU_END_STATUS_DONE, this field is the OR of all the
189 			users.
190 
191 
192 
193 			<legal all>
194 */
195 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_FCS_OK_OFFSET 0x00000000
196 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_FCS_OK_LSB 3
197 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_FCS_OK_MASK 0x00000008
198 
199 /* Description		RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS
200 
201 			When set, at least one Monitor Direct MPDU has been
202 			received. FCS might or might not have been passing.
203 
204 
205 
206 			For MU UL, in  TLVs RX_PPDU_END and
207 			RX_PPDU_END_STATUS_DONE, this field is the OR of all the
208 			users.
209 
210 			<legal all>
211 */
212 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_OFFSET 0x00000000
213 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_LSB 4
214 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_MASK 0x00000010
215 
216 /* Description		RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_FCS_OK
217 
218 			When set, at least one Monitor Direct MPDU has been
219 			received that has a correct FCS.
220 
221 
222 
223 			For MU UL, in  TLVs RX_PPDU_END and
224 			RX_PPDU_END_STATUS_DONE, this field is the OR of all the
225 			users.
226 
227 			<legal all>
228 */
229 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_FCS_OK_OFFSET 0x00000000
230 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_FCS_OK_LSB 5
231 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_FCS_OK_MASK 0x00000020
232 
233 /* Description		RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_PHYRX_ABORT_RECEIVED
234 
235 			When set, PPDU reception was aborted by the PHY
236 
237 			<legal all>
238 */
239 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_PHYRX_ABORT_RECEIVED_OFFSET 0x00000000
240 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_PHYRX_ABORT_RECEIVED_LSB 6
241 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_PHYRX_ABORT_RECEIVED_MASK 0x00000040
242 
243 /* Description		RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_RESERVED_0
244 
245 			<legal 0>
246 */
247 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_RESERVED_0_OFFSET 0x00000000
248 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_RESERVED_0_LSB 7
249 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_RESERVED_0_MASK 0x0000ff80
250 
251 /* Description		RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_PHY_PPDU_ID
252 
253 			A ppdu counter value that PHY increments for every PPDU
254 			received. The counter value wraps around
255 
256 			<legal all>
257 */
258 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_PHY_PPDU_ID_OFFSET 0x00000000
259 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_PHY_PPDU_ID_LSB 16
260 #define RX_PPDU_END_USER_STATS_EXT_0_RXPCU_CLASSIFICATION_DETAILS_PHY_PPDU_ID_MASK 0xffff0000
261 
262 /* Description		RX_PPDU_END_USER_STATS_EXT_1_FCS_OK_BITMAP_95_64
263 
264 			Bitmap indicates in order of received MPDUs, which MPDUs
265 			had an passing FCS or had an error.
266 
267 			1: FCS OK
268 
269 			0: FCS error
270 
271 			<legal all>
272 */
273 #define RX_PPDU_END_USER_STATS_EXT_1_FCS_OK_BITMAP_95_64_OFFSET      0x00000004
274 #define RX_PPDU_END_USER_STATS_EXT_1_FCS_OK_BITMAP_95_64_LSB         0
275 #define RX_PPDU_END_USER_STATS_EXT_1_FCS_OK_BITMAP_95_64_MASK        0xffffffff
276 
277 /* Description		RX_PPDU_END_USER_STATS_EXT_2_FCS_OK_BITMAP_127_96
278 
279 			Bitmap indicates in order of received MPDUs, which MPDUs
280 			had an passing FCS or had an error.
281 
282 			1: FCS OK
283 
284 			0: FCS error
285 
286 			<legal all>
287 */
288 #define RX_PPDU_END_USER_STATS_EXT_2_FCS_OK_BITMAP_127_96_OFFSET     0x00000008
289 #define RX_PPDU_END_USER_STATS_EXT_2_FCS_OK_BITMAP_127_96_LSB        0
290 #define RX_PPDU_END_USER_STATS_EXT_2_FCS_OK_BITMAP_127_96_MASK       0xffffffff
291 
292 /* Description		RX_PPDU_END_USER_STATS_EXT_3_FCS_OK_BITMAP_159_128
293 
294 			Bitmap indicates in order of received MPDUs, which MPDUs
295 			had an passing FCS or had an error.
296 
297 			1: FCS OK
298 
299 			0: FCS error
300 
301 			<legal all>
302 */
303 #define RX_PPDU_END_USER_STATS_EXT_3_FCS_OK_BITMAP_159_128_OFFSET    0x0000000c
304 #define RX_PPDU_END_USER_STATS_EXT_3_FCS_OK_BITMAP_159_128_LSB       0
305 #define RX_PPDU_END_USER_STATS_EXT_3_FCS_OK_BITMAP_159_128_MASK      0xffffffff
306 
307 /* Description		RX_PPDU_END_USER_STATS_EXT_4_FCS_OK_BITMAP_191_160
308 
309 			Bitmap indicates in order of received MPDUs, which MPDUs
310 			had an passing FCS or had an error.
311 
312 			1: FCS OK
313 
314 			0: FCS error
315 
316 			<legal all>
317 */
318 #define RX_PPDU_END_USER_STATS_EXT_4_FCS_OK_BITMAP_191_160_OFFSET    0x00000010
319 #define RX_PPDU_END_USER_STATS_EXT_4_FCS_OK_BITMAP_191_160_LSB       0
320 #define RX_PPDU_END_USER_STATS_EXT_4_FCS_OK_BITMAP_191_160_MASK      0xffffffff
321 
322 /* Description		RX_PPDU_END_USER_STATS_EXT_5_FCS_OK_BITMAP_223_192
323 
324 			Bitmap indicates in order of received MPDUs, which MPDUs
325 			had an passing FCS or had an error.
326 
327 			1: FCS OK
328 
329 			0: FCS error
330 
331 			<legal all>
332 */
333 #define RX_PPDU_END_USER_STATS_EXT_5_FCS_OK_BITMAP_223_192_OFFSET    0x00000014
334 #define RX_PPDU_END_USER_STATS_EXT_5_FCS_OK_BITMAP_223_192_LSB       0
335 #define RX_PPDU_END_USER_STATS_EXT_5_FCS_OK_BITMAP_223_192_MASK      0xffffffff
336 
337 /* Description		RX_PPDU_END_USER_STATS_EXT_6_FCS_OK_BITMAP_255_224
338 
339 			Bitmap indicates in order of received MPDUs, which MPDUs
340 			had an passing FCS or had an error.
341 
342 			1: FCS OK
343 
344 			0: FCS error
345 
346 			<legal all>
347 */
348 #define RX_PPDU_END_USER_STATS_EXT_6_FCS_OK_BITMAP_255_224_OFFSET    0x00000018
349 #define RX_PPDU_END_USER_STATS_EXT_6_FCS_OK_BITMAP_255_224_LSB       0
350 #define RX_PPDU_END_USER_STATS_EXT_6_FCS_OK_BITMAP_255_224_MASK      0xffffffff
351 
352 
353 #endif // _RX_PPDU_END_USER_STATS_EXT_H_
354