xref: /wlan-driver/fw-api/hw/qca8074/v1/he_sig_a_mu_dl_info.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1 /*
2  * Copyright (c) 2018 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 _HE_SIG_A_MU_DL_INFO_H_
26 #define _HE_SIG_A_MU_DL_INFO_H_
27 #if !defined(__ASSEMBLER__)
28 #endif
29 
30 
31 // ################ START SUMMARY #################
32 //
33 //	Dword	Fields
34 //	0	dl_ul_flag[0], mcs_of_sig_b[3:1], dcm_of_sig_b[4], bss_color_id[10:5], spatial_reuse[14:11], transmit_bw[17:15], num_sig_b_symbols[21:18], comp_mode_sig_b[22], cp_ltf_size[24:23], doppler_indication[25], reserved_0a[31:26]
35 //	1	txop_duration[6:0], reserved_1a[7], num_ltf_symbols[10:8], ldpc_extra_symbol[11], stbc[12], packet_extension_a_factor[14:13], packet_extension_pe_disambiguity[15], crc[19:16], tail[25:20], reserved_1b[31:26]
36 //
37 // ################ END SUMMARY #################
38 
39 #define NUM_OF_DWORDS_HE_SIG_A_MU_DL_INFO 2
40 
41 struct he_sig_a_mu_dl_info {
42              uint32_t dl_ul_flag                      :  1, //[0]
43                       mcs_of_sig_b                    :  3, //[3:1]
44                       dcm_of_sig_b                    :  1, //[4]
45                       bss_color_id                    :  6, //[10:5]
46                       spatial_reuse                   :  4, //[14:11]
47                       transmit_bw                     :  3, //[17:15]
48                       num_sig_b_symbols               :  4, //[21:18]
49                       comp_mode_sig_b                 :  1, //[22]
50                       cp_ltf_size                     :  2, //[24:23]
51                       doppler_indication              :  1, //[25]
52                       reserved_0a                     :  6; //[31:26]
53              uint32_t txop_duration                   :  7, //[6:0]
54                       reserved_1a                     :  1, //[7]
55                       num_ltf_symbols                 :  3, //[10:8]
56                       ldpc_extra_symbol               :  1, //[11]
57                       stbc                            :  1, //[12]
58                       packet_extension_a_factor       :  2, //[14:13]
59                       packet_extension_pe_disambiguity:  1, //[15]
60                       crc                             :  4, //[19:16]
61                       tail                            :  6, //[25:20]
62                       reserved_1b                     :  6; //[31:26]
63 };
64 
65 /*
66 
67 dl_ul_flag
68 
69 			Differentiates between DL and UL transmission
70 
71 
72 
73 			<enum 0 DL_UL_FLAG_IS_DL_OR_TDLS>
74 
75 			<enum 1 DL_UL_FLAG_IS_UL>
76 
77 
78 
79 			<legal all>
80 
81 mcs_of_sig_b
82 
83 			Indicates the MCS of HE-SIG-B
84 
85 			<legal 0-5>
86 
87 dcm_of_sig_b
88 
89 			Indicates whether dual sub-carrier modulation is applied
90 			to HE-SIG-B
91 
92 
93 
94 			0: No DCM for HE_SIG_B
95 
96 			1: DCM for HE_SIG_B
97 
98 			<legal all>
99 
100 bss_color_id
101 
102 			BSS color ID
103 
104 
105 
106 			Field Used by MAC HW
107 
108 			<legal all>
109 
110 spatial_reuse
111 
112 			Spatial reuse
113 
114 
115 
116 			For 20MHz one SR field corresponding to entire 20MHz
117 			(other 3 fields indicate identical values)
118 
119 			For 40MHz two SR fields for each 20MHz (other 2 fields
120 			indicate identical values)
121 
122 			For 80MHz four SR fields for each 20MHz
123 
124 			For 160MHz four SR fields for each 40MHz
125 
126 			<legal all>
127 
128 transmit_bw
129 
130 			Bandwidth of the PPDU.
131 
132 
133 
134 			<enum 0 HE_SIG_A_MU_DL_BW20> 20 Mhz
135 
136 			<enum 1 HE_SIG_A_MU_DL_BW40> 40 Mhz
137 
138 			<enum 2 HE_SIG_A_MU_DL_BW80> 80 Mhz
139 
140 			<enum 3 HE_SIG_A_MU_DL_BW160> 160 MHz or 80+80 MHz
141 
142 
143 
144 			NOTE: Other e-nums might be added for channel bonding
145 
146 
147 
148 			On RX side, Field Used by MAC HW
149 
150 			<legal 0-3>
151 
152 num_sig_b_symbols
153 
154 			Number of symbols
155 
156 
157 
158 			For OFDMA, the actual number of symbols is 1 larger then
159 			indicated in this field.
160 
161 
162 
163 			For MU-MIMO this is equal to the number of users - 1:
164 			the following encoding is used:
165 
166 			1 => 2 users
167 
168 			2=> 3 users
169 
170 			Etc.
171 
172 
173 
174 			<legal all>
175 
176 comp_mode_sig_b
177 
178 			Indicates the compression mode of HE-SIG-B
179 
180 
181 
182 			0: Regular [uncomp mode]
183 
184 			1: compressed mode (full-BW MU-MIMO only)
185 
186 			<legal all>
187 
188 cp_ltf_size
189 
190 			Indicates the CP and HE-LTF type
191 
192 
193 
194 			<enum 0 OneX_LTF_0_8CP> 1xLTF + 0.8 us CP
195 
196 			<enum 1 TwoX_LTF_0_8CP> 2x LTF + 0.8 µs CP
197 
198 			<enum 2 TwoX_LTF_1_6CP> 2x LTF + 1.6 µs CP
199 
200 			<enum 3 FourX_LTF_3_2CP> 4x LTF + 3.2 µs CP
201 
202 
203 
204 			NOTE: for MU no proprietary modes (for now)
205 
206 
207 
208 			<legal all>
209 
210 doppler_indication
211 
212 			0: No Doppler support
213 
214 			1: Doppler support
215 
216 			<legal all>
217 
218 reserved_0a
219 
220 			<legal 0>
221 
222 txop_duration
223 
224 			Indicates the remaining time in the current TXOP
225 
226 
227 
228 			Field Used by MAC HW
229 
230 			 <legal all>
231 
232 reserved_1a
233 
234 			Note: spec indicates this shall be set to 1
235 
236 			<legal 1>
237 
238 num_ltf_symbols
239 
240 			Indicates the number of HE-LTF symbols
241 
242 
243 
244 			0: 1 symbol
245 
246 			1: 2 symbols
247 
248 			Etc.
249 
250 			<legal all>
251 
252 ldpc_extra_symbol
253 
254 			If LDPC,
255 
256 			  0: LDPC extra symbol not present
257 
258 			  1: LDPC extra symbol present
259 
260 			Else
261 
262 			  Set to 1
263 
264 			<legal all>
265 
266 stbc
267 
268 			Indicates whether STBC is applied
269 
270 			0: No STBC
271 
272 			1: STBC
273 
274 			<legal all>
275 
276 packet_extension_a_factor
277 
278 			the packet extension duration of the trigger-based PPDU
279 			response with these two bits indicating the a-factor
280 
281 
282 
283 			<enum 0 a_factor_4>
284 
285 			<enum 1 a_factor_1>
286 
287 			<enum 2 a_factor_2>
288 
289 			<enum 3 a_factor_3>
290 
291 
292 
293 			<legal all>
294 
295 packet_extension_pe_disambiguity
296 
297 			the packet extension duration of the trigger-based PPDU
298 			response with this bit indicating the PE-Disambiguity
299 
300 			<legal all>
301 
302 crc
303 
304 			CRC for HE-SIG-A contents.
305 
306 			<legal all>
307 
308 tail
309 
310 			<legal 0>
311 
312 reserved_1b
313 
314 			<legal 0>
315 */
316 
317 
318 /* Description		HE_SIG_A_MU_DL_INFO_0_DL_UL_FLAG
319 
320 			Differentiates between DL and UL transmission
321 
322 
323 
324 			<enum 0 DL_UL_FLAG_IS_DL_OR_TDLS>
325 
326 			<enum 1 DL_UL_FLAG_IS_UL>
327 
328 
329 
330 			<legal all>
331 */
332 #define HE_SIG_A_MU_DL_INFO_0_DL_UL_FLAG_OFFSET                      0x00000000
333 #define HE_SIG_A_MU_DL_INFO_0_DL_UL_FLAG_LSB                         0
334 #define HE_SIG_A_MU_DL_INFO_0_DL_UL_FLAG_MASK                        0x00000001
335 
336 /* Description		HE_SIG_A_MU_DL_INFO_0_MCS_OF_SIG_B
337 
338 			Indicates the MCS of HE-SIG-B
339 
340 			<legal 0-5>
341 */
342 #define HE_SIG_A_MU_DL_INFO_0_MCS_OF_SIG_B_OFFSET                    0x00000000
343 #define HE_SIG_A_MU_DL_INFO_0_MCS_OF_SIG_B_LSB                       1
344 #define HE_SIG_A_MU_DL_INFO_0_MCS_OF_SIG_B_MASK                      0x0000000e
345 
346 /* Description		HE_SIG_A_MU_DL_INFO_0_DCM_OF_SIG_B
347 
348 			Indicates whether dual sub-carrier modulation is applied
349 			to HE-SIG-B
350 
351 
352 
353 			0: No DCM for HE_SIG_B
354 
355 			1: DCM for HE_SIG_B
356 
357 			<legal all>
358 */
359 #define HE_SIG_A_MU_DL_INFO_0_DCM_OF_SIG_B_OFFSET                    0x00000000
360 #define HE_SIG_A_MU_DL_INFO_0_DCM_OF_SIG_B_LSB                       4
361 #define HE_SIG_A_MU_DL_INFO_0_DCM_OF_SIG_B_MASK                      0x00000010
362 
363 /* Description		HE_SIG_A_MU_DL_INFO_0_BSS_COLOR_ID
364 
365 			BSS color ID
366 
367 
368 
369 			Field Used by MAC HW
370 
371 			<legal all>
372 */
373 #define HE_SIG_A_MU_DL_INFO_0_BSS_COLOR_ID_OFFSET                    0x00000000
374 #define HE_SIG_A_MU_DL_INFO_0_BSS_COLOR_ID_LSB                       5
375 #define HE_SIG_A_MU_DL_INFO_0_BSS_COLOR_ID_MASK                      0x000007e0
376 
377 /* Description		HE_SIG_A_MU_DL_INFO_0_SPATIAL_REUSE
378 
379 			Spatial reuse
380 
381 
382 
383 			For 20MHz one SR field corresponding to entire 20MHz
384 			(other 3 fields indicate identical values)
385 
386 			For 40MHz two SR fields for each 20MHz (other 2 fields
387 			indicate identical values)
388 
389 			For 80MHz four SR fields for each 20MHz
390 
391 			For 160MHz four SR fields for each 40MHz
392 
393 			<legal all>
394 */
395 #define HE_SIG_A_MU_DL_INFO_0_SPATIAL_REUSE_OFFSET                   0x00000000
396 #define HE_SIG_A_MU_DL_INFO_0_SPATIAL_REUSE_LSB                      11
397 #define HE_SIG_A_MU_DL_INFO_0_SPATIAL_REUSE_MASK                     0x00007800
398 
399 /* Description		HE_SIG_A_MU_DL_INFO_0_TRANSMIT_BW
400 
401 			Bandwidth of the PPDU.
402 
403 
404 
405 			<enum 0 HE_SIG_A_MU_DL_BW20> 20 Mhz
406 
407 			<enum 1 HE_SIG_A_MU_DL_BW40> 40 Mhz
408 
409 			<enum 2 HE_SIG_A_MU_DL_BW80> 80 Mhz
410 
411 			<enum 3 HE_SIG_A_MU_DL_BW160> 160 MHz or 80+80 MHz
412 
413 
414 
415 			NOTE: Other e-nums might be added for channel bonding
416 
417 
418 
419 			On RX side, Field Used by MAC HW
420 
421 			<legal 0-3>
422 */
423 #define HE_SIG_A_MU_DL_INFO_0_TRANSMIT_BW_OFFSET                     0x00000000
424 #define HE_SIG_A_MU_DL_INFO_0_TRANSMIT_BW_LSB                        15
425 #define HE_SIG_A_MU_DL_INFO_0_TRANSMIT_BW_MASK                       0x00038000
426 
427 /* Description		HE_SIG_A_MU_DL_INFO_0_NUM_SIG_B_SYMBOLS
428 
429 			Number of symbols
430 
431 
432 
433 			For OFDMA, the actual number of symbols is 1 larger then
434 			indicated in this field.
435 
436 
437 
438 			For MU-MIMO this is equal to the number of users - 1:
439 			the following encoding is used:
440 
441 			1 => 2 users
442 
443 			2=> 3 users
444 
445 			Etc.
446 
447 
448 
449 			<legal all>
450 */
451 #define HE_SIG_A_MU_DL_INFO_0_NUM_SIG_B_SYMBOLS_OFFSET               0x00000000
452 #define HE_SIG_A_MU_DL_INFO_0_NUM_SIG_B_SYMBOLS_LSB                  18
453 #define HE_SIG_A_MU_DL_INFO_0_NUM_SIG_B_SYMBOLS_MASK                 0x003c0000
454 
455 /* Description		HE_SIG_A_MU_DL_INFO_0_COMP_MODE_SIG_B
456 
457 			Indicates the compression mode of HE-SIG-B
458 
459 
460 
461 			0: Regular [uncomp mode]
462 
463 			1: compressed mode (full-BW MU-MIMO only)
464 
465 			<legal all>
466 */
467 #define HE_SIG_A_MU_DL_INFO_0_COMP_MODE_SIG_B_OFFSET                 0x00000000
468 #define HE_SIG_A_MU_DL_INFO_0_COMP_MODE_SIG_B_LSB                    22
469 #define HE_SIG_A_MU_DL_INFO_0_COMP_MODE_SIG_B_MASK                   0x00400000
470 
471 /* Description		HE_SIG_A_MU_DL_INFO_0_CP_LTF_SIZE
472 
473 			Indicates the CP and HE-LTF type
474 
475 
476 
477 			<enum 0 OneX_LTF_0_8CP> 1xLTF + 0.8 us CP
478 
479 			<enum 1 TwoX_LTF_0_8CP> 2x LTF + 0.8 µs CP
480 
481 			<enum 2 TwoX_LTF_1_6CP> 2x LTF + 1.6 µs CP
482 
483 			<enum 3 FourX_LTF_3_2CP> 4x LTF + 3.2 µs CP
484 
485 
486 
487 			NOTE: for MU no proprietary modes (for now)
488 
489 
490 
491 			<legal all>
492 */
493 #define HE_SIG_A_MU_DL_INFO_0_CP_LTF_SIZE_OFFSET                     0x00000000
494 #define HE_SIG_A_MU_DL_INFO_0_CP_LTF_SIZE_LSB                        23
495 #define HE_SIG_A_MU_DL_INFO_0_CP_LTF_SIZE_MASK                       0x01800000
496 
497 /* Description		HE_SIG_A_MU_DL_INFO_0_DOPPLER_INDICATION
498 
499 			0: No Doppler support
500 
501 			1: Doppler support
502 
503 			<legal all>
504 */
505 #define HE_SIG_A_MU_DL_INFO_0_DOPPLER_INDICATION_OFFSET              0x00000000
506 #define HE_SIG_A_MU_DL_INFO_0_DOPPLER_INDICATION_LSB                 25
507 #define HE_SIG_A_MU_DL_INFO_0_DOPPLER_INDICATION_MASK                0x02000000
508 
509 /* Description		HE_SIG_A_MU_DL_INFO_0_RESERVED_0A
510 
511 			<legal 0>
512 */
513 #define HE_SIG_A_MU_DL_INFO_0_RESERVED_0A_OFFSET                     0x00000000
514 #define HE_SIG_A_MU_DL_INFO_0_RESERVED_0A_LSB                        26
515 #define HE_SIG_A_MU_DL_INFO_0_RESERVED_0A_MASK                       0xfc000000
516 
517 /* Description		HE_SIG_A_MU_DL_INFO_1_TXOP_DURATION
518 
519 			Indicates the remaining time in the current TXOP
520 
521 
522 
523 			Field Used by MAC HW
524 
525 			 <legal all>
526 */
527 #define HE_SIG_A_MU_DL_INFO_1_TXOP_DURATION_OFFSET                   0x00000004
528 #define HE_SIG_A_MU_DL_INFO_1_TXOP_DURATION_LSB                      0
529 #define HE_SIG_A_MU_DL_INFO_1_TXOP_DURATION_MASK                     0x0000007f
530 
531 /* Description		HE_SIG_A_MU_DL_INFO_1_RESERVED_1A
532 
533 			Note: spec indicates this shall be set to 1
534 
535 			<legal 1>
536 */
537 #define HE_SIG_A_MU_DL_INFO_1_RESERVED_1A_OFFSET                     0x00000004
538 #define HE_SIG_A_MU_DL_INFO_1_RESERVED_1A_LSB                        7
539 #define HE_SIG_A_MU_DL_INFO_1_RESERVED_1A_MASK                       0x00000080
540 
541 /* Description		HE_SIG_A_MU_DL_INFO_1_NUM_LTF_SYMBOLS
542 
543 			Indicates the number of HE-LTF symbols
544 
545 
546 
547 			0: 1 symbol
548 
549 			1: 2 symbols
550 
551 			Etc.
552 
553 			<legal all>
554 */
555 #define HE_SIG_A_MU_DL_INFO_1_NUM_LTF_SYMBOLS_OFFSET                 0x00000004
556 #define HE_SIG_A_MU_DL_INFO_1_NUM_LTF_SYMBOLS_LSB                    8
557 #define HE_SIG_A_MU_DL_INFO_1_NUM_LTF_SYMBOLS_MASK                   0x00000700
558 
559 /* Description		HE_SIG_A_MU_DL_INFO_1_LDPC_EXTRA_SYMBOL
560 
561 			If LDPC,
562 
563 			  0: LDPC extra symbol not present
564 
565 			  1: LDPC extra symbol present
566 
567 			Else
568 
569 			  Set to 1
570 
571 			<legal all>
572 */
573 #define HE_SIG_A_MU_DL_INFO_1_LDPC_EXTRA_SYMBOL_OFFSET               0x00000004
574 #define HE_SIG_A_MU_DL_INFO_1_LDPC_EXTRA_SYMBOL_LSB                  11
575 #define HE_SIG_A_MU_DL_INFO_1_LDPC_EXTRA_SYMBOL_MASK                 0x00000800
576 
577 /* Description		HE_SIG_A_MU_DL_INFO_1_STBC
578 
579 			Indicates whether STBC is applied
580 
581 			0: No STBC
582 
583 			1: STBC
584 
585 			<legal all>
586 */
587 #define HE_SIG_A_MU_DL_INFO_1_STBC_OFFSET                            0x00000004
588 #define HE_SIG_A_MU_DL_INFO_1_STBC_LSB                               12
589 #define HE_SIG_A_MU_DL_INFO_1_STBC_MASK                              0x00001000
590 
591 /* Description		HE_SIG_A_MU_DL_INFO_1_PACKET_EXTENSION_A_FACTOR
592 
593 			the packet extension duration of the trigger-based PPDU
594 			response with these two bits indicating the a-factor
595 
596 
597 
598 			<enum 0 a_factor_4>
599 
600 			<enum 1 a_factor_1>
601 
602 			<enum 2 a_factor_2>
603 
604 			<enum 3 a_factor_3>
605 
606 
607 
608 			<legal all>
609 */
610 #define HE_SIG_A_MU_DL_INFO_1_PACKET_EXTENSION_A_FACTOR_OFFSET       0x00000004
611 #define HE_SIG_A_MU_DL_INFO_1_PACKET_EXTENSION_A_FACTOR_LSB          13
612 #define HE_SIG_A_MU_DL_INFO_1_PACKET_EXTENSION_A_FACTOR_MASK         0x00006000
613 
614 /* Description		HE_SIG_A_MU_DL_INFO_1_PACKET_EXTENSION_PE_DISAMBIGUITY
615 
616 			the packet extension duration of the trigger-based PPDU
617 			response with this bit indicating the PE-Disambiguity
618 
619 			<legal all>
620 */
621 #define HE_SIG_A_MU_DL_INFO_1_PACKET_EXTENSION_PE_DISAMBIGUITY_OFFSET 0x00000004
622 #define HE_SIG_A_MU_DL_INFO_1_PACKET_EXTENSION_PE_DISAMBIGUITY_LSB   15
623 #define HE_SIG_A_MU_DL_INFO_1_PACKET_EXTENSION_PE_DISAMBIGUITY_MASK  0x00008000
624 
625 /* Description		HE_SIG_A_MU_DL_INFO_1_CRC
626 
627 			CRC for HE-SIG-A contents.
628 
629 			<legal all>
630 */
631 #define HE_SIG_A_MU_DL_INFO_1_CRC_OFFSET                             0x00000004
632 #define HE_SIG_A_MU_DL_INFO_1_CRC_LSB                                16
633 #define HE_SIG_A_MU_DL_INFO_1_CRC_MASK                               0x000f0000
634 
635 /* Description		HE_SIG_A_MU_DL_INFO_1_TAIL
636 
637 			<legal 0>
638 */
639 #define HE_SIG_A_MU_DL_INFO_1_TAIL_OFFSET                            0x00000004
640 #define HE_SIG_A_MU_DL_INFO_1_TAIL_LSB                               20
641 #define HE_SIG_A_MU_DL_INFO_1_TAIL_MASK                              0x03f00000
642 
643 /* Description		HE_SIG_A_MU_DL_INFO_1_RESERVED_1B
644 
645 			<legal 0>
646 */
647 #define HE_SIG_A_MU_DL_INFO_1_RESERVED_1B_OFFSET                     0x00000004
648 #define HE_SIG_A_MU_DL_INFO_1_RESERVED_1B_LSB                        26
649 #define HE_SIG_A_MU_DL_INFO_1_RESERVED_1B_MASK                       0xfc000000
650 
651 
652 #endif // _HE_SIG_A_MU_DL_INFO_H_
653