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