xref: /wlan-driver/fw-api/hw/qcn6432/mactx_he_sig_a_su.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1*5113495bSYour Name /*
2*5113495bSYour Name  * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
3*5113495bSYour Name  *
4*5113495bSYour Name  * Permission to use, copy, modify, and/or distribute this software for any
5*5113495bSYour Name  * purpose with or without fee is hereby granted, provided that the above
6*5113495bSYour Name  * copyright notice and this permission notice appear in all copies.
7*5113495bSYour Name  *
8*5113495bSYour Name  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9*5113495bSYour Name  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10*5113495bSYour Name  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11*5113495bSYour Name  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12*5113495bSYour Name  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13*5113495bSYour Name  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14*5113495bSYour Name  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15*5113495bSYour Name  */
16*5113495bSYour Name 
17*5113495bSYour Name #ifndef _MACTX_HE_SIG_A_SU_H_
18*5113495bSYour Name #define _MACTX_HE_SIG_A_SU_H_
19*5113495bSYour Name #if !defined(__ASSEMBLER__)
20*5113495bSYour Name #endif
21*5113495bSYour Name 
22*5113495bSYour Name #include "he_sig_a_su_info.h"
23*5113495bSYour Name #define NUM_OF_DWORDS_MACTX_HE_SIG_A_SU 2
24*5113495bSYour Name 
25*5113495bSYour Name #define NUM_OF_QWORDS_MACTX_HE_SIG_A_SU 1
26*5113495bSYour Name 
27*5113495bSYour Name 
28*5113495bSYour Name struct mactx_he_sig_a_su {
29*5113495bSYour Name #ifndef WIFI_BIT_ORDER_BIG_ENDIAN
30*5113495bSYour Name              struct   he_sig_a_su_info                                          mactx_he_sig_a_su_info_details;
31*5113495bSYour Name #else
32*5113495bSYour Name              struct   he_sig_a_su_info                                          mactx_he_sig_a_su_info_details;
33*5113495bSYour Name #endif
34*5113495bSYour Name };
35*5113495bSYour Name 
36*5113495bSYour Name 
37*5113495bSYour Name /* Description		MACTX_HE_SIG_A_SU_INFO_DETAILS
38*5113495bSYour Name 
39*5113495bSYour Name 			See detailed description of the STRUCT
40*5113495bSYour Name */
41*5113495bSYour Name 
42*5113495bSYour Name 
43*5113495bSYour Name /* Description		FORMAT_INDICATION
44*5113495bSYour Name 
45*5113495bSYour Name 			<enum 0 HE_SIGA_FORMAT_HE_TRIG>
46*5113495bSYour Name 			<enum 1 HE_SIGA_FORMAT_SU_OR_EXT_SU>
47*5113495bSYour Name 			<legal all>
48*5113495bSYour Name */
49*5113495bSYour Name 
50*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_FORMAT_INDICATION_OFFSET   0x0000000000000000
51*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_FORMAT_INDICATION_LSB      0
52*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_FORMAT_INDICATION_MSB      0
53*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_FORMAT_INDICATION_MASK     0x0000000000000001
54*5113495bSYour Name 
55*5113495bSYour Name 
56*5113495bSYour Name /* Description		BEAM_CHANGE
57*5113495bSYour Name 
58*5113495bSYour Name 			Indicates whether spatial mapping is changed between legacy
59*5113495bSYour Name 			 and HE portion of preamble. If not, channel estimation
60*5113495bSYour Name 			can include legacy preamble to improve accuracy
61*5113495bSYour Name 			<legal all>
62*5113495bSYour Name */
63*5113495bSYour Name 
64*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_BEAM_CHANGE_OFFSET         0x0000000000000000
65*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_BEAM_CHANGE_LSB            1
66*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_BEAM_CHANGE_MSB            1
67*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_BEAM_CHANGE_MASK           0x0000000000000002
68*5113495bSYour Name 
69*5113495bSYour Name 
70*5113495bSYour Name /* Description		DL_UL_FLAG
71*5113495bSYour Name 
72*5113495bSYour Name 			Differentiates between DL and UL transmission
73*5113495bSYour Name 
74*5113495bSYour Name 			<enum 0 DL_UL_FLAG_IS_DL_OR_TDLS>
75*5113495bSYour Name 			<enum 1 DL_UL_FLAG_IS_UL>
76*5113495bSYour Name 			<legal all>
77*5113495bSYour Name */
78*5113495bSYour Name 
79*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DL_UL_FLAG_OFFSET          0x0000000000000000
80*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DL_UL_FLAG_LSB             2
81*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DL_UL_FLAG_MSB             2
82*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DL_UL_FLAG_MASK            0x0000000000000004
83*5113495bSYour Name 
84*5113495bSYour Name 
85*5113495bSYour Name /* Description		TRANSMIT_MCS
86*5113495bSYour Name 
87*5113495bSYour Name 			Indicates the data MCS
88*5113495bSYour Name 
89*5113495bSYour Name 			Field Used by MAC HW
90*5113495bSYour Name 			<legal all>
91*5113495bSYour Name */
92*5113495bSYour Name 
93*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_MCS_OFFSET        0x0000000000000000
94*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_MCS_LSB           3
95*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_MCS_MSB           6
96*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_MCS_MASK          0x0000000000000078
97*5113495bSYour Name 
98*5113495bSYour Name 
99*5113495bSYour Name /* Description		DCM
100*5113495bSYour Name 
101*5113495bSYour Name 			Indicates whether dual sub-carrier modulation is applied
102*5113495bSYour Name 
103*5113495bSYour Name 			0: No DCM
104*5113495bSYour Name 			1:DCM
105*5113495bSYour Name 			<legal all>
106*5113495bSYour Name */
107*5113495bSYour Name 
108*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DCM_OFFSET                 0x0000000000000000
109*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DCM_LSB                    7
110*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DCM_MSB                    7
111*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DCM_MASK                   0x0000000000000080
112*5113495bSYour Name 
113*5113495bSYour Name 
114*5113495bSYour Name /* Description		BSS_COLOR_ID
115*5113495bSYour Name 
116*5113495bSYour Name 			BSS color ID
117*5113495bSYour Name 
118*5113495bSYour Name 			Field Used by MAC HW
119*5113495bSYour Name 			<legal all>
120*5113495bSYour Name */
121*5113495bSYour Name 
122*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_BSS_COLOR_ID_OFFSET        0x0000000000000000
123*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_BSS_COLOR_ID_LSB           8
124*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_BSS_COLOR_ID_MSB           13
125*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_BSS_COLOR_ID_MASK          0x0000000000003f00
126*5113495bSYour Name 
127*5113495bSYour Name 
128*5113495bSYour Name /* Description		RESERVED_0A
129*5113495bSYour Name 
130*5113495bSYour Name 			Note: spec indicates this shall be set to 1
131*5113495bSYour Name 			<legal 1>
132*5113495bSYour Name */
133*5113495bSYour Name 
134*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0A_OFFSET         0x0000000000000000
135*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0A_LSB            14
136*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0A_MSB            14
137*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0A_MASK           0x0000000000004000
138*5113495bSYour Name 
139*5113495bSYour Name 
140*5113495bSYour Name /* Description		SPATIAL_REUSE
141*5113495bSYour Name 
142*5113495bSYour Name 			Spatial reuse
143*5113495bSYour Name 
144*5113495bSYour Name 			For 20MHz one SR field corresponding to entire 20MHz (other
145*5113495bSYour Name 			 3 fields indicate identical values)
146*5113495bSYour Name 			For 40MHz two SR fields for each 20MHz (other 2 fields indicate
147*5113495bSYour Name 			 identical values)
148*5113495bSYour Name 			For 80MHz four SR fields for each 20MHz
149*5113495bSYour Name 			For 160MHz four SR fields for each 40MHz
150*5113495bSYour Name 			<legal all>
151*5113495bSYour Name */
152*5113495bSYour Name 
153*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_SPATIAL_REUSE_OFFSET       0x0000000000000000
154*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_SPATIAL_REUSE_LSB          15
155*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_SPATIAL_REUSE_MSB          18
156*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_SPATIAL_REUSE_MASK         0x0000000000078000
157*5113495bSYour Name 
158*5113495bSYour Name 
159*5113495bSYour Name /* Description		TRANSMIT_BW
160*5113495bSYour Name 
161*5113495bSYour Name 			Bandwidth of the PPDU.
162*5113495bSYour Name 
163*5113495bSYour Name 			For HE SU PPDU
164*5113495bSYour Name 
165*5113495bSYour Name 
166*5113495bSYour Name 
167*5113495bSYour Name 			<enum 0 HE_SIG_A_BW20> 20 Mhz
168*5113495bSYour Name 			<enum 1 HE_SIG_A_BW40> 40 Mhz
169*5113495bSYour Name 			<enum 2 HE_SIG_A_BW80> 80 Mhz
170*5113495bSYour Name 			<enum 3 HE_SIG_A_BW160> 160 MHz or 80+80 MHz
171*5113495bSYour Name 
172*5113495bSYour Name 			For HE Extended Range SU PPDU
173*5113495bSYour Name 			Set to 0 for 242-tone RU
174*5113495bSYour Name 
175*5113495bSYour Name 			                  Set to 1 for right 106-tone RU within
176*5113495bSYour Name 			the primary 20 MHz
177*5113495bSYour Name 
178*5113495bSYour Name 			On RX side, Field Used by MAC HW
179*5113495bSYour Name 			<legal all>
180*5113495bSYour Name */
181*5113495bSYour Name 
182*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_BW_OFFSET         0x0000000000000000
183*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_BW_LSB            19
184*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_BW_MSB            20
185*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TRANSMIT_BW_MASK           0x0000000000180000
186*5113495bSYour Name 
187*5113495bSYour Name 
188*5113495bSYour Name /* Description		CP_LTF_SIZE
189*5113495bSYour Name 
190*5113495bSYour Name 			Indicates the CP and HE-LTF type
191*5113495bSYour Name 
192*5113495bSYour Name 			<enum 0 OneX_LTF_0_8CP> 1xLTF + 0.8 us CP
193*5113495bSYour Name 			<enum 1 TwoX_LTF_0_8CP> 2x LTF + 0.8 µs CP
194*5113495bSYour Name 			<enum 2 TwoX_LTF_1_6CP> 2x LTF + 1.6 µs CP
195*5113495bSYour Name 
196*5113495bSYour Name 			<enum 3 FourX_LTF_0_8CP_3_2CP>
197*5113495bSYour Name 			When DCM == 0 OR STBC == 0: 4x LTF + 3.2 µs CP
198*5113495bSYour Name 			When DCM == 1 AND STBC == 1: 4x LTF + 0.8 µs CP. Note:
199*5113495bSYour Name 			In this scenario, Neither DCM nor STBC is applied to HE
200*5113495bSYour Name 			data field.
201*5113495bSYour Name 
202*5113495bSYour Name 			NOTE:
203*5113495bSYour Name 			If ( DCM == 1 ) and ( MCS > 0 ) and (STBC == 0)
204*5113495bSYour Name 			0      = 1xLTF + 0.4 usec
205*5113495bSYour Name 			1      = 2xLTF + 0.4 usec
206*5113495bSYour Name 			2~3 = Reserved
207*5113495bSYour Name 
208*5113495bSYour Name 			<legal all>
209*5113495bSYour Name */
210*5113495bSYour Name 
211*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_CP_LTF_SIZE_OFFSET         0x0000000000000000
212*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_CP_LTF_SIZE_LSB            21
213*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_CP_LTF_SIZE_MSB            22
214*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_CP_LTF_SIZE_MASK           0x0000000000600000
215*5113495bSYour Name 
216*5113495bSYour Name 
217*5113495bSYour Name /* Description		NSTS
218*5113495bSYour Name 
219*5113495bSYour Name 			Indicates number of streams used for the SU transmission
220*5113495bSYour Name 
221*5113495bSYour Name 
222*5113495bSYour Name 			For HE SU PPDU
223*5113495bSYour Name 
224*5113495bSYour Name 
225*5113495bSYour Name 			                      Set to n for n+1 space time stream,
226*5113495bSYour Name 			where n = 0, 1, 2,.....,7.
227*5113495bSYour Name 
228*5113495bSYour Name 
229*5113495bSYour Name 
230*5113495bSYour Name 
231*5113495bSYour Name 			For HE Extended Range PPDU
232*5113495bSYour Name 
233*5113495bSYour Name 
234*5113495bSYour Name 			                            Set to 0 for 1 space time stream.
235*5113495bSYour Name 			 Value 1 is TBD
236*5113495bSYour Name 
237*5113495bSYour Name 
238*5113495bSYour Name 
239*5113495bSYour Name 			   Values 2 - 7 are reserved
240*5113495bSYour Name 			<legal all>
241*5113495bSYour Name */
242*5113495bSYour Name 
243*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_NSTS_OFFSET                0x0000000000000000
244*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_NSTS_LSB                   23
245*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_NSTS_MSB                   25
246*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_NSTS_MASK                  0x0000000003800000
247*5113495bSYour Name 
248*5113495bSYour Name 
249*5113495bSYour Name /* Description		RESERVED_0B
250*5113495bSYour Name 
251*5113495bSYour Name 			<legal 0>
252*5113495bSYour Name */
253*5113495bSYour Name 
254*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0B_OFFSET         0x0000000000000000
255*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0B_LSB            26
256*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0B_MSB            31
257*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_0B_MASK           0x00000000fc000000
258*5113495bSYour Name 
259*5113495bSYour Name 
260*5113495bSYour Name /* Description		TXOP_DURATION
261*5113495bSYour Name 
262*5113495bSYour Name 			Indicates the remaining time in the current TXOP
263*5113495bSYour Name 
264*5113495bSYour Name 			Field Used by MAC HW
265*5113495bSYour Name 			 <legal all>
266*5113495bSYour Name */
267*5113495bSYour Name 
268*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TXOP_DURATION_OFFSET       0x0000000000000000
269*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TXOP_DURATION_LSB          32
270*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TXOP_DURATION_MSB          38
271*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TXOP_DURATION_MASK         0x0000007f00000000
272*5113495bSYour Name 
273*5113495bSYour Name 
274*5113495bSYour Name /* Description		CODING
275*5113495bSYour Name 
276*5113495bSYour Name 			Distinguishes between BCC and LDPC coding.
277*5113495bSYour Name 
278*5113495bSYour Name 			0: BCC
279*5113495bSYour Name 			1: LDPC
280*5113495bSYour Name 			<legal all>
281*5113495bSYour Name */
282*5113495bSYour Name 
283*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_CODING_OFFSET              0x0000000000000000
284*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_CODING_LSB                 39
285*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_CODING_MSB                 39
286*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_CODING_MASK                0x0000008000000000
287*5113495bSYour Name 
288*5113495bSYour Name 
289*5113495bSYour Name /* Description		LDPC_EXTRA_SYMBOL
290*5113495bSYour Name 
291*5113495bSYour Name 			If LDPC,
292*5113495bSYour Name 			  0: LDPC extra symbol not present
293*5113495bSYour Name 			  1: LDPC extra symbol present
294*5113495bSYour Name 			Else
295*5113495bSYour Name 			  Set to 1
296*5113495bSYour Name 			<legal all>
297*5113495bSYour Name */
298*5113495bSYour Name 
299*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_LDPC_EXTRA_SYMBOL_OFFSET   0x0000000000000000
300*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_LDPC_EXTRA_SYMBOL_LSB      40
301*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_LDPC_EXTRA_SYMBOL_MSB      40
302*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_LDPC_EXTRA_SYMBOL_MASK     0x0000010000000000
303*5113495bSYour Name 
304*5113495bSYour Name 
305*5113495bSYour Name /* Description		STBC
306*5113495bSYour Name 
307*5113495bSYour Name 			Indicates whether STBC is applied
308*5113495bSYour Name 			0: No STBC
309*5113495bSYour Name 			1: STBC
310*5113495bSYour Name 			<legal all>
311*5113495bSYour Name */
312*5113495bSYour Name 
313*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_STBC_OFFSET                0x0000000000000000
314*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_STBC_LSB                   41
315*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_STBC_MSB                   41
316*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_STBC_MASK                  0x0000020000000000
317*5113495bSYour Name 
318*5113495bSYour Name 
319*5113495bSYour Name /* Description		TXBF
320*5113495bSYour Name 
321*5113495bSYour Name 			Indicates whether beamforming is applied
322*5113495bSYour Name 			0: No beamforming
323*5113495bSYour Name 			1: beamforming
324*5113495bSYour Name 			<legal all>
325*5113495bSYour Name */
326*5113495bSYour Name 
327*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TXBF_OFFSET                0x0000000000000000
328*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TXBF_LSB                   42
329*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TXBF_MSB                   42
330*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TXBF_MASK                  0x0000040000000000
331*5113495bSYour Name 
332*5113495bSYour Name 
333*5113495bSYour Name /* Description		PACKET_EXTENSION_A_FACTOR
334*5113495bSYour Name 
335*5113495bSYour Name 			Common trigger info
336*5113495bSYour Name 
337*5113495bSYour Name 			the packet extension duration of the trigger-based PPDU
338*5113495bSYour Name 			response with these two bits indicating the "a-factor"
339*5113495bSYour Name 
340*5113495bSYour Name 			<enum 0 a_factor_4>
341*5113495bSYour Name 			<enum 1 a_factor_1>
342*5113495bSYour Name 			<enum 2 a_factor_2>
343*5113495bSYour Name 			<enum 3 a_factor_3>
344*5113495bSYour Name 
345*5113495bSYour Name 			<legal all>
346*5113495bSYour Name */
347*5113495bSYour Name 
348*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_A_FACTOR_OFFSET 0x0000000000000000
349*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_A_FACTOR_LSB 43
350*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_A_FACTOR_MSB 44
351*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_A_FACTOR_MASK 0x0000180000000000
352*5113495bSYour Name 
353*5113495bSYour Name 
354*5113495bSYour Name /* Description		PACKET_EXTENSION_PE_DISAMBIGUITY
355*5113495bSYour Name 
356*5113495bSYour Name 			Common trigger info
357*5113495bSYour Name 
358*5113495bSYour Name 			the packet extension duration of the trigger-based PPDU
359*5113495bSYour Name 			response with this bit indicating the PE-Disambiguity
360*5113495bSYour Name 			<legal all>
361*5113495bSYour Name */
362*5113495bSYour Name 
363*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_OFFSET 0x0000000000000000
364*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_LSB 45
365*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_MSB 45
366*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_PACKET_EXTENSION_PE_DISAMBIGUITY_MASK 0x0000200000000000
367*5113495bSYour Name 
368*5113495bSYour Name 
369*5113495bSYour Name /* Description		RESERVED_1A
370*5113495bSYour Name 
371*5113495bSYour Name 			Note: per standard, set to 1
372*5113495bSYour Name 			<legal 1>
373*5113495bSYour Name */
374*5113495bSYour Name 
375*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_1A_OFFSET         0x0000000000000000
376*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_1A_LSB            46
377*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_1A_MSB            46
378*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RESERVED_1A_MASK           0x0000400000000000
379*5113495bSYour Name 
380*5113495bSYour Name 
381*5113495bSYour Name /* Description		DOPPLER_INDICATION
382*5113495bSYour Name 
383*5113495bSYour Name 			0: No Doppler support
384*5113495bSYour Name 			1: Doppler support
385*5113495bSYour Name 			<legal all>
386*5113495bSYour Name */
387*5113495bSYour Name 
388*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DOPPLER_INDICATION_OFFSET  0x0000000000000000
389*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DOPPLER_INDICATION_LSB     47
390*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DOPPLER_INDICATION_MSB     47
391*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DOPPLER_INDICATION_MASK    0x0000800000000000
392*5113495bSYour Name 
393*5113495bSYour Name 
394*5113495bSYour Name /* Description		CRC
395*5113495bSYour Name 
396*5113495bSYour Name 			CRC for HE-SIG-A contents.
397*5113495bSYour Name 			<legal all>
398*5113495bSYour Name */
399*5113495bSYour Name 
400*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_CRC_OFFSET                 0x0000000000000000
401*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_CRC_LSB                    48
402*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_CRC_MSB                    51
403*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_CRC_MASK                   0x000f000000000000
404*5113495bSYour Name 
405*5113495bSYour Name 
406*5113495bSYour Name /* Description		TAIL
407*5113495bSYour Name 
408*5113495bSYour Name 			<legal 0>
409*5113495bSYour Name */
410*5113495bSYour Name 
411*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TAIL_OFFSET                0x0000000000000000
412*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TAIL_LSB                   52
413*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TAIL_MSB                   57
414*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_TAIL_MASK                  0x03f0000000000000
415*5113495bSYour Name 
416*5113495bSYour Name 
417*5113495bSYour Name /* Description		DOT11AX_SU_EXTENDED
418*5113495bSYour Name 
419*5113495bSYour Name 			TX side:
420*5113495bSYour Name 			Set to 0
421*5113495bSYour Name 
422*5113495bSYour Name 			RX side:
423*5113495bSYour Name 			On RX side, evaluated by MAC HW. This is the only way for
424*5113495bSYour Name 			 MAC RX to know that this was an HE_SIG_A_SU received in
425*5113495bSYour Name 			 'extended' format
426*5113495bSYour Name 
427*5113495bSYour Name 			When set, the 11ax frame is of the extended range format
428*5113495bSYour Name 
429*5113495bSYour Name 			<legal all>
430*5113495bSYour Name */
431*5113495bSYour Name 
432*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_SU_EXTENDED_OFFSET 0x0000000000000000
433*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_SU_EXTENDED_LSB    58
434*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_SU_EXTENDED_MSB    58
435*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_SU_EXTENDED_MASK   0x0400000000000000
436*5113495bSYour Name 
437*5113495bSYour Name 
438*5113495bSYour Name /* Description		DOT11AX_EXT_RU_SIZE
439*5113495bSYour Name 
440*5113495bSYour Name 			TX side:
441*5113495bSYour Name 			Set to 0
442*5113495bSYour Name 
443*5113495bSYour Name 			RX side:
444*5113495bSYour Name 			Field only contains valid info when dot11ax_su_extended
445*5113495bSYour Name 			is set.
446*5113495bSYour Name 
447*5113495bSYour Name 			On RX side, evaluated by MAC HW. This is the only way for
448*5113495bSYour Name 			 MAC RX to know what the number of based RUs was in this
449*5113495bSYour Name 			 extended range reception. It is used by the MAC to determine
450*5113495bSYour Name 			 the RU size for the response...
451*5113495bSYour Name 
452*5113495bSYour Name 			<enum 0 EXT_RU_26>
453*5113495bSYour Name 			<enum 1 EXT_RU_52>
454*5113495bSYour Name 			<enum 2 EXT_RU_106>
455*5113495bSYour Name 			<enum 3 EXT_RU_242><legal 0-3>
456*5113495bSYour Name */
457*5113495bSYour Name 
458*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_EXT_RU_SIZE_OFFSET 0x0000000000000000
459*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_EXT_RU_SIZE_LSB    59
460*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_EXT_RU_SIZE_MSB    61
461*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_DOT11AX_EXT_RU_SIZE_MASK   0x3800000000000000
462*5113495bSYour Name 
463*5113495bSYour Name 
464*5113495bSYour Name /* Description		RX_NDP
465*5113495bSYour Name 
466*5113495bSYour Name 			TX side:
467*5113495bSYour Name 			Set to 0
468*5113495bSYour Name 
469*5113495bSYour Name 			RX side:Valid on RX side only, and looked at by MAC HW
470*5113495bSYour Name 
471*5113495bSYour Name 			When set, PHY has received (expected) NDP frame
472*5113495bSYour Name 			<legal all>
473*5113495bSYour Name */
474*5113495bSYour Name 
475*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RX_NDP_OFFSET              0x0000000000000000
476*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RX_NDP_LSB                 62
477*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RX_NDP_MSB                 62
478*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RX_NDP_MASK                0x4000000000000000
479*5113495bSYour Name 
480*5113495bSYour Name 
481*5113495bSYour Name /* Description		RX_INTEGRITY_CHECK_PASSED
482*5113495bSYour Name 
483*5113495bSYour Name 			TX side: Set to 0
484*5113495bSYour Name 			RX side: Set to 1 if PHY determines the HE-SIG-A CRC check
485*5113495bSYour Name 			 has passed, else set to 0
486*5113495bSYour Name 
487*5113495bSYour Name 			<legal all>
488*5113495bSYour Name */
489*5113495bSYour Name 
490*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x0000000000000000
491*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_LSB 63
492*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MSB 63
493*5113495bSYour Name #define MACTX_HE_SIG_A_SU_MACTX_HE_SIG_A_SU_INFO_DETAILS_RX_INTEGRITY_CHECK_PASSED_MASK 0x8000000000000000
494*5113495bSYour Name 
495*5113495bSYour Name 
496*5113495bSYour Name 
497*5113495bSYour Name #endif   // MACTX_HE_SIG_A_SU
498