xref: /wlan-driver/fw-api/hw/qca6750/v1/tx_rate_stats_info.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
5  * any purpose with or without fee is hereby granted, provided that the
6  * above copyright notice and this permission notice appear in all
7  * copies.
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
10  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
11  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
12  * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
13  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
14  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
15  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
16  * PERFORMANCE OF THIS SOFTWARE.
17  */
18 
19 //
20 // DO NOT EDIT!  This file is automatically generated
21 //               These definitions are tied to a particular hardware layout
22 
23 
24 #ifndef _TX_RATE_STATS_INFO_H_
25 #define _TX_RATE_STATS_INFO_H_
26 #if !defined(__ASSEMBLER__)
27 #endif
28 
29 
30 // ################ START SUMMARY #################
31 //
32 //	Dword	Fields
33 //	0	tx_rate_stats_info_valid[0], transmit_bw[2:1], transmit_pkt_type[6:3], transmit_stbc[7], transmit_ldpc[8], transmit_sgi[10:9], transmit_mcs[14:11], ofdma_transmission[15], tones_in_ru[27:16], reserved_0a[31:28]
34 //	1	ppdu_transmission_tsf[31:0]
35 //
36 // ################ END SUMMARY #################
37 
38 #define NUM_OF_DWORDS_TX_RATE_STATS_INFO 2
39 
40 struct tx_rate_stats_info {
41              uint32_t tx_rate_stats_info_valid        :  1, //[0]
42                       transmit_bw                     :  2, //[2:1]
43                       transmit_pkt_type               :  4, //[6:3]
44                       transmit_stbc                   :  1, //[7]
45                       transmit_ldpc                   :  1, //[8]
46                       transmit_sgi                    :  2, //[10:9]
47                       transmit_mcs                    :  4, //[14:11]
48                       ofdma_transmission              :  1, //[15]
49                       tones_in_ru                     : 12, //[27:16]
50                       reserved_0a                     :  4; //[31:28]
51              uint32_t ppdu_transmission_tsf           : 32; //[31:0]
52 };
53 
54 /*
55 
56 tx_rate_stats_info_valid
57 
58 			When set all other fields in this STRUCT contain valid
59 			info.
60 
61 
62 
63 
64 			<legal all>
65 
66 transmit_bw
67 
68 			Field only valid when Tx_rate_stats_info_valid is set
69 
70 
71 
72 			Indicates the BW of the upcoming transmission that shall
73 			likely start in about 3 -4 us on the medium
74 
75 
76 
77 			<enum 0 transmit_bw_20_MHz>
78 
79 			<enum 1 transmit_bw_40_MHz>
80 
81 			<enum 2 transmit_bw_80_MHz>
82 
83 			<enum 3 transmit_bw_160_MHz>
84 
85 
86 
87 			<legal all>
88 
89 transmit_pkt_type
90 
91 			Field only valid when Tx_rate_stats_info_valid is set
92 
93 
94 
95 			Field filled in by PDG.
96 
97 			Not valid when in SW transmit mode
98 
99 
100 
101 			The packet type
102 
103 			<enum 0 dot11a>802.11a PPDU type
104 
105 			<enum 1 dot11b>802.11b PPDU type
106 
107 			<enum 2 dot11n_mm>802.11n Mixed Mode PPDU type
108 
109 			<enum 3 dot11ac>802.11ac PPDU type
110 
111 			<enum 4 dot11ax>802.11ax PPDU type
112 
113 			<enum 5 dot11ba>802.11ba (WUR) PPDU type
114 
115 transmit_stbc
116 
117 			Field only valid when Tx_rate_stats_info_valid is set
118 
119 
120 
121 			Field filled in by PDG.
122 
123 			Not valid when in SW transmit mode
124 
125 
126 
127 			When set, STBC transmission rate was used.
128 
129 transmit_ldpc
130 
131 			Field only valid when Tx_rate_stats_info_valid is set
132 
133 
134 
135 			Field filled in by PDG.
136 
137 			Not valid when in SW transmit mode
138 
139 
140 
141 			When set, use LDPC transmission rates
142 
143 transmit_sgi
144 
145 			Field only valid when Tx_rate_stats_info_valid is set
146 
147 
148 
149 			Field filled in by PDG.
150 
151 			Not valid when in SW transmit mode
152 
153 
154 
155 			<enum 0     0_8_us_sgi > Legacy normal GI. Can also be
156 			used for HE
157 
158 			<enum 1     0_4_us_sgi > Legacy short GI. Can also be
159 			used for HE
160 
161 			<enum 2     1_6_us_sgi > HE related GI
162 
163 			<enum 3     3_2_us_sgi > HE related GI
164 
165 			<legal 0 - 3>
166 
167 transmit_mcs
168 
169 			Field only valid when Tx_rate_stats_info_valid is set
170 
171 
172 
173 			Field filled in by PDG.
174 
175 			Not valid when in SW transmit mode
176 
177 
178 
179 			For details, refer to  MCS_TYPE description
180 
181 			<legal all>
182 
183 ofdma_transmission
184 
185 			Field only valid when Tx_rate_stats_info_valid is set
186 
187 
188 
189 			Field filled in by PDG.
190 
191 
192 
193 			Set when the transmission was an OFDMA transmission (DL
194 			or UL).
195 
196 			<legal all>
197 
198 tones_in_ru
199 
200 			Field only valid when Tx_rate_stats_info_valid is set
201 
202 
203 
204 			Field filled in by PDG.
205 
206 			Not valid when in SW transmit mode
207 
208 
209 
210 			The number of tones in the RU used.
211 
212 			<legal all>
213 
214 reserved_0a
215 
216 			<legal 0>
217 
218 ppdu_transmission_tsf
219 
220 			Field only valid when Tx_rate_stats_info_valid is set
221 
222 
223 
224 			Based on a HWSCH configuration register setting, this
225 			field either contains:
226 
227 
228 
229 			Lower 32 bits of the TSF, snapshot of this value when
230 			transmission of the PPDU containing the frame finished.
231 
232 			OR
233 
234 			Lower 32 bits of the TSF, snapshot of this value when
235 			transmission of the PPDU containing the frame started
236 
237 
238 
239 			<legal all>
240 */
241 
242 
243 /* Description		TX_RATE_STATS_INFO_0_TX_RATE_STATS_INFO_VALID
244 
245 			When set all other fields in this STRUCT contain valid
246 			info.
247 
248 
249 
250 
251 			<legal all>
252 */
253 #define TX_RATE_STATS_INFO_0_TX_RATE_STATS_INFO_VALID_OFFSET         0x00000000
254 #define TX_RATE_STATS_INFO_0_TX_RATE_STATS_INFO_VALID_LSB            0
255 #define TX_RATE_STATS_INFO_0_TX_RATE_STATS_INFO_VALID_MASK           0x00000001
256 
257 /* Description		TX_RATE_STATS_INFO_0_TRANSMIT_BW
258 
259 			Field only valid when Tx_rate_stats_info_valid is set
260 
261 
262 
263 			Indicates the BW of the upcoming transmission that shall
264 			likely start in about 3 -4 us on the medium
265 
266 
267 
268 			<enum 0 transmit_bw_20_MHz>
269 
270 			<enum 1 transmit_bw_40_MHz>
271 
272 			<enum 2 transmit_bw_80_MHz>
273 
274 			<enum 3 transmit_bw_160_MHz>
275 
276 
277 
278 			<legal all>
279 */
280 #define TX_RATE_STATS_INFO_0_TRANSMIT_BW_OFFSET                      0x00000000
281 #define TX_RATE_STATS_INFO_0_TRANSMIT_BW_LSB                         1
282 #define TX_RATE_STATS_INFO_0_TRANSMIT_BW_MASK                        0x00000006
283 
284 /* Description		TX_RATE_STATS_INFO_0_TRANSMIT_PKT_TYPE
285 
286 			Field only valid when Tx_rate_stats_info_valid is set
287 
288 
289 
290 			Field filled in by PDG.
291 
292 			Not valid when in SW transmit mode
293 
294 
295 
296 			The packet type
297 
298 			<enum 0 dot11a>802.11a PPDU type
299 
300 			<enum 1 dot11b>802.11b PPDU type
301 
302 			<enum 2 dot11n_mm>802.11n Mixed Mode PPDU type
303 
304 			<enum 3 dot11ac>802.11ac PPDU type
305 
306 			<enum 4 dot11ax>802.11ax PPDU type
307 
308 			<enum 5 dot11ba>802.11ba (WUR) PPDU type
309 */
310 #define TX_RATE_STATS_INFO_0_TRANSMIT_PKT_TYPE_OFFSET                0x00000000
311 #define TX_RATE_STATS_INFO_0_TRANSMIT_PKT_TYPE_LSB                   3
312 #define TX_RATE_STATS_INFO_0_TRANSMIT_PKT_TYPE_MASK                  0x00000078
313 
314 /* Description		TX_RATE_STATS_INFO_0_TRANSMIT_STBC
315 
316 			Field only valid when Tx_rate_stats_info_valid is set
317 
318 
319 
320 			Field filled in by PDG.
321 
322 			Not valid when in SW transmit mode
323 
324 
325 
326 			When set, STBC transmission rate was used.
327 */
328 #define TX_RATE_STATS_INFO_0_TRANSMIT_STBC_OFFSET                    0x00000000
329 #define TX_RATE_STATS_INFO_0_TRANSMIT_STBC_LSB                       7
330 #define TX_RATE_STATS_INFO_0_TRANSMIT_STBC_MASK                      0x00000080
331 
332 /* Description		TX_RATE_STATS_INFO_0_TRANSMIT_LDPC
333 
334 			Field only valid when Tx_rate_stats_info_valid is set
335 
336 
337 
338 			Field filled in by PDG.
339 
340 			Not valid when in SW transmit mode
341 
342 
343 
344 			When set, use LDPC transmission rates
345 */
346 #define TX_RATE_STATS_INFO_0_TRANSMIT_LDPC_OFFSET                    0x00000000
347 #define TX_RATE_STATS_INFO_0_TRANSMIT_LDPC_LSB                       8
348 #define TX_RATE_STATS_INFO_0_TRANSMIT_LDPC_MASK                      0x00000100
349 
350 /* Description		TX_RATE_STATS_INFO_0_TRANSMIT_SGI
351 
352 			Field only valid when Tx_rate_stats_info_valid is set
353 
354 
355 
356 			Field filled in by PDG.
357 
358 			Not valid when in SW transmit mode
359 
360 
361 
362 			<enum 0     0_8_us_sgi > Legacy normal GI. Can also be
363 			used for HE
364 
365 			<enum 1     0_4_us_sgi > Legacy short GI. Can also be
366 			used for HE
367 
368 			<enum 2     1_6_us_sgi > HE related GI
369 
370 			<enum 3     3_2_us_sgi > HE related GI
371 
372 			<legal 0 - 3>
373 */
374 #define TX_RATE_STATS_INFO_0_TRANSMIT_SGI_OFFSET                     0x00000000
375 #define TX_RATE_STATS_INFO_0_TRANSMIT_SGI_LSB                        9
376 #define TX_RATE_STATS_INFO_0_TRANSMIT_SGI_MASK                       0x00000600
377 
378 /* Description		TX_RATE_STATS_INFO_0_TRANSMIT_MCS
379 
380 			Field only valid when Tx_rate_stats_info_valid is set
381 
382 
383 
384 			Field filled in by PDG.
385 
386 			Not valid when in SW transmit mode
387 
388 
389 
390 			For details, refer to  MCS_TYPE description
391 
392 			<legal all>
393 */
394 #define TX_RATE_STATS_INFO_0_TRANSMIT_MCS_OFFSET                     0x00000000
395 #define TX_RATE_STATS_INFO_0_TRANSMIT_MCS_LSB                        11
396 #define TX_RATE_STATS_INFO_0_TRANSMIT_MCS_MASK                       0x00007800
397 
398 /* Description		TX_RATE_STATS_INFO_0_OFDMA_TRANSMISSION
399 
400 			Field only valid when Tx_rate_stats_info_valid is set
401 
402 
403 
404 			Field filled in by PDG.
405 
406 
407 
408 			Set when the transmission was an OFDMA transmission (DL
409 			or UL).
410 
411 			<legal all>
412 */
413 #define TX_RATE_STATS_INFO_0_OFDMA_TRANSMISSION_OFFSET               0x00000000
414 #define TX_RATE_STATS_INFO_0_OFDMA_TRANSMISSION_LSB                  15
415 #define TX_RATE_STATS_INFO_0_OFDMA_TRANSMISSION_MASK                 0x00008000
416 
417 /* Description		TX_RATE_STATS_INFO_0_TONES_IN_RU
418 
419 			Field only valid when Tx_rate_stats_info_valid is set
420 
421 
422 
423 			Field filled in by PDG.
424 
425 			Not valid when in SW transmit mode
426 
427 
428 
429 			The number of tones in the RU used.
430 
431 			<legal all>
432 */
433 #define TX_RATE_STATS_INFO_0_TONES_IN_RU_OFFSET                      0x00000000
434 #define TX_RATE_STATS_INFO_0_TONES_IN_RU_LSB                         16
435 #define TX_RATE_STATS_INFO_0_TONES_IN_RU_MASK                        0x0fff0000
436 
437 /* Description		TX_RATE_STATS_INFO_0_RESERVED_0A
438 
439 			<legal 0>
440 */
441 #define TX_RATE_STATS_INFO_0_RESERVED_0A_OFFSET                      0x00000000
442 #define TX_RATE_STATS_INFO_0_RESERVED_0A_LSB                         28
443 #define TX_RATE_STATS_INFO_0_RESERVED_0A_MASK                        0xf0000000
444 
445 /* Description		TX_RATE_STATS_INFO_1_PPDU_TRANSMISSION_TSF
446 
447 			Field only valid when Tx_rate_stats_info_valid is set
448 
449 
450 
451 			Based on a HWSCH configuration register setting, this
452 			field either contains:
453 
454 
455 
456 			Lower 32 bits of the TSF, snapshot of this value when
457 			transmission of the PPDU containing the frame finished.
458 
459 			OR
460 
461 			Lower 32 bits of the TSF, snapshot of this value when
462 			transmission of the PPDU containing the frame started
463 
464 
465 
466 			<legal all>
467 */
468 #define TX_RATE_STATS_INFO_1_PPDU_TRANSMISSION_TSF_OFFSET            0x00000004
469 #define TX_RATE_STATS_INFO_1_PPDU_TRANSMISSION_TSF_LSB               0
470 #define TX_RATE_STATS_INFO_1_PPDU_TRANSMISSION_TSF_MASK              0xffffffff
471 
472 
473 #endif // _TX_RATE_STATS_INFO_H_
474