xref: /wlan-driver/fw-api/hw/qca5332/vht_sig_a_info.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1*5113495bSYour Name 
2*5113495bSYour Name /* Copyright (c) 2022, 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 
18*5113495bSYour Name 
19*5113495bSYour Name 
20*5113495bSYour Name 
21*5113495bSYour Name 
22*5113495bSYour Name 
23*5113495bSYour Name 
24*5113495bSYour Name 
25*5113495bSYour Name 
26*5113495bSYour Name #ifndef _VHT_SIG_A_INFO_H_
27*5113495bSYour Name #define _VHT_SIG_A_INFO_H_
28*5113495bSYour Name #if !defined(__ASSEMBLER__)
29*5113495bSYour Name #endif
30*5113495bSYour Name 
31*5113495bSYour Name #define NUM_OF_DWORDS_VHT_SIG_A_INFO 2
32*5113495bSYour Name 
33*5113495bSYour Name 
34*5113495bSYour Name struct vht_sig_a_info {
35*5113495bSYour Name #ifndef WIFI_BIT_ORDER_BIG_ENDIAN
36*5113495bSYour Name              uint32_t bandwidth                                               :  2, // [1:0]
37*5113495bSYour Name                       vhta_reserved_0                                         :  1, // [2:2]
38*5113495bSYour Name                       stbc                                                    :  1, // [3:3]
39*5113495bSYour Name                       group_id                                                :  6, // [9:4]
40*5113495bSYour Name                       n_sts                                                   : 12, // [21:10]
41*5113495bSYour Name                       txop_ps_not_allowed                                     :  1, // [22:22]
42*5113495bSYour Name                       vhta_reserved_0b                                        :  1, // [23:23]
43*5113495bSYour Name                       reserved_0                                              :  8; // [31:24]
44*5113495bSYour Name              uint32_t gi_setting                                              :  2, // [1:0]
45*5113495bSYour Name                       su_mu_coding                                            :  1, // [2:2]
46*5113495bSYour Name                       ldpc_extra_symbol                                       :  1, // [3:3]
47*5113495bSYour Name                       mcs                                                     :  4, // [7:4]
48*5113495bSYour Name                       beamformed                                              :  1, // [8:8]
49*5113495bSYour Name                       vhta_reserved_1                                         :  1, // [9:9]
50*5113495bSYour Name                       crc                                                     :  8, // [17:10]
51*5113495bSYour Name                       tail                                                    :  6, // [23:18]
52*5113495bSYour Name                       reserved_1                                              :  7, // [30:24]
53*5113495bSYour Name                       rx_integrity_check_passed                               :  1; // [31:31]
54*5113495bSYour Name #else
55*5113495bSYour Name              uint32_t reserved_0                                              :  8, // [31:24]
56*5113495bSYour Name                       vhta_reserved_0b                                        :  1, // [23:23]
57*5113495bSYour Name                       txop_ps_not_allowed                                     :  1, // [22:22]
58*5113495bSYour Name                       n_sts                                                   : 12, // [21:10]
59*5113495bSYour Name                       group_id                                                :  6, // [9:4]
60*5113495bSYour Name                       stbc                                                    :  1, // [3:3]
61*5113495bSYour Name                       vhta_reserved_0                                         :  1, // [2:2]
62*5113495bSYour Name                       bandwidth                                               :  2; // [1:0]
63*5113495bSYour Name              uint32_t rx_integrity_check_passed                               :  1, // [31:31]
64*5113495bSYour Name                       reserved_1                                              :  7, // [30:24]
65*5113495bSYour Name                       tail                                                    :  6, // [23:18]
66*5113495bSYour Name                       crc                                                     :  8, // [17:10]
67*5113495bSYour Name                       vhta_reserved_1                                         :  1, // [9:9]
68*5113495bSYour Name                       beamformed                                              :  1, // [8:8]
69*5113495bSYour Name                       mcs                                                     :  4, // [7:4]
70*5113495bSYour Name                       ldpc_extra_symbol                                       :  1, // [3:3]
71*5113495bSYour Name                       su_mu_coding                                            :  1, // [2:2]
72*5113495bSYour Name                       gi_setting                                              :  2; // [1:0]
73*5113495bSYour Name #endif
74*5113495bSYour Name };
75*5113495bSYour Name 
76*5113495bSYour Name 
77*5113495bSYour Name /* Description		BANDWIDTH
78*5113495bSYour Name 
79*5113495bSYour Name 			Packet bandwidth
80*5113495bSYour Name 
81*5113495bSYour Name 			<enum 0    20_MHZ_11AC>
82*5113495bSYour Name 			<enum 1    40_MHZ_11AC>
83*5113495bSYour Name 			<enum 2    80_MHZ_11AC>
84*5113495bSYour Name 			<enum 3    160_MHZ_11AC>
85*5113495bSYour Name 
86*5113495bSYour Name 			<legal 0-3>
87*5113495bSYour Name */
88*5113495bSYour Name 
89*5113495bSYour Name #define VHT_SIG_A_INFO_BANDWIDTH_OFFSET                                             0x00000000
90*5113495bSYour Name #define VHT_SIG_A_INFO_BANDWIDTH_LSB                                                0
91*5113495bSYour Name #define VHT_SIG_A_INFO_BANDWIDTH_MSB                                                1
92*5113495bSYour Name #define VHT_SIG_A_INFO_BANDWIDTH_MASK                                               0x00000003
93*5113495bSYour Name 
94*5113495bSYour Name 
95*5113495bSYour Name /* Description		VHTA_RESERVED_0
96*5113495bSYour Name 
97*5113495bSYour Name 			Reserved.  Set to 1 by MAC, PHY should ignore
98*5113495bSYour Name 			<legal 1>
99*5113495bSYour Name */
100*5113495bSYour Name 
101*5113495bSYour Name #define VHT_SIG_A_INFO_VHTA_RESERVED_0_OFFSET                                       0x00000000
102*5113495bSYour Name #define VHT_SIG_A_INFO_VHTA_RESERVED_0_LSB                                          2
103*5113495bSYour Name #define VHT_SIG_A_INFO_VHTA_RESERVED_0_MSB                                          2
104*5113495bSYour Name #define VHT_SIG_A_INFO_VHTA_RESERVED_0_MASK                                         0x00000004
105*5113495bSYour Name 
106*5113495bSYour Name 
107*5113495bSYour Name /* Description		STBC
108*5113495bSYour Name 
109*5113495bSYour Name 			Space time block coding:
110*5113495bSYour Name 			<enum 0     stbc_disabled>  Indicates STBC is disabled
111*5113495bSYour Name 			<enum 1     stbc_enabled>  Indicates STBC is enabled on
112*5113495bSYour Name 			all streams
113*5113495bSYour Name 			<legal 0-1>
114*5113495bSYour Name */
115*5113495bSYour Name 
116*5113495bSYour Name #define VHT_SIG_A_INFO_STBC_OFFSET                                                  0x00000000
117*5113495bSYour Name #define VHT_SIG_A_INFO_STBC_LSB                                                     3
118*5113495bSYour Name #define VHT_SIG_A_INFO_STBC_MSB                                                     3
119*5113495bSYour Name #define VHT_SIG_A_INFO_STBC_MASK                                                    0x00000008
120*5113495bSYour Name 
121*5113495bSYour Name 
122*5113495bSYour Name /* Description		GROUP_ID
123*5113495bSYour Name 
124*5113495bSYour Name 			In a SU VHT PPDU, if the PPDU carries MPDU(s) addressed
125*5113495bSYour Name 			to an AP or to a mesh STA, the Group ID field is set to
126*5113495bSYour Name 			0, otherwise it is set to 63.  In an NDP PPDU the Group
127*5113495bSYour Name 			ID is set according to IEEE 802.11ac_D1.0 Section 9.30.6
128*5113495bSYour Name 			 (Transmission of a VHT NDP). For a MU-MIMO PPDU the Group
129*5113495bSYour Name 			 ID is set as in 802.11ac_D1.0 Section 22.3.11.3 (Group
130*5113495bSYour Name 			ID).  <legal all>
131*5113495bSYour Name */
132*5113495bSYour Name 
133*5113495bSYour Name #define VHT_SIG_A_INFO_GROUP_ID_OFFSET                                              0x00000000
134*5113495bSYour Name #define VHT_SIG_A_INFO_GROUP_ID_LSB                                                 4
135*5113495bSYour Name #define VHT_SIG_A_INFO_GROUP_ID_MSB                                                 9
136*5113495bSYour Name #define VHT_SIG_A_INFO_GROUP_ID_MASK                                                0x000003f0
137*5113495bSYour Name 
138*5113495bSYour Name 
139*5113495bSYour Name /* Description		N_STS
140*5113495bSYour Name 
141*5113495bSYour Name 			For MU:
142*5113495bSYour Name 			3 bits/user with maximum of 4 users (user u uses
143*5113495bSYour Name 			vht_sig_a[0][10+3u] - vht_sig_a[0][12+3u]), u = 0, 1, 2,
144*5113495bSYour Name 			3)
145*5113495bSYour Name 			Set to 0 for 0 space time streams
146*5113495bSYour Name 			Set to 1 for 1 space time stream
147*5113495bSYour Name 			Set to 2 for 2 space time streams
148*5113495bSYour Name 			Set to 3 for 3 space time streams
149*5113495bSYour Name 			Set to 4 for 4 space time streams (not supported in Wifi
150*5113495bSYour Name 			 3.0)
151*5113495bSYour Name 			Values 5-7 are reserved
152*5113495bSYour Name 			In this field, references to user "u" should be interpreted
153*5113495bSYour Name 			 as MU user "u". As described in the previous chapter in
154*5113495bSYour Name 			 this document (see chapter on User number), the MU user
155*5113495bSYour Name 			 value for a given client is defined for each MU group that
156*5113495bSYour Name 			 the client participates in. The MU user number is not related
157*5113495bSYour Name 			 to the internal user number that is used within the BFer.
158*5113495bSYour Name 
159*5113495bSYour Name 
160*5113495bSYour Name 
161*5113495bSYour Name 			For SU:
162*5113495bSYour Name 			vht_sig_a[0][12:10]
163*5113495bSYour Name 			Set to 0 for 1 space time stream
164*5113495bSYour Name 			Set to 1 for 2 space time streams
165*5113495bSYour Name 			Set to 2 for 3 space time streams
166*5113495bSYour Name 			Set to 3 for 4 space time streams
167*5113495bSYour Name 			Set to 4 for 5 space time streams
168*5113495bSYour Name 			Set to 5 for 6 space time streams
169*5113495bSYour Name 			Set to 6 for 7 space time streams
170*5113495bSYour Name 			Set to 7 for 8 space time streams
171*5113495bSYour Name 
172*5113495bSYour Name 			vht_sig_a[0][21:13]
173*5113495bSYour Name 			Partial AID:
174*5113495bSYour Name 			Set to the value of the TXVECTOR parameter PARTIAL_AID.
175*5113495bSYour Name 			Partial AID provides an abbreviated indication of the intended
176*5113495bSYour Name 			 recipient(s) of the frame (see IEEE802.11ac_D1.0 Section
177*5113495bSYour Name 			 9.17a (Partial AID in VHT PPDUs)).
178*5113495bSYour Name 			<legal all>
179*5113495bSYour Name */
180*5113495bSYour Name 
181*5113495bSYour Name #define VHT_SIG_A_INFO_N_STS_OFFSET                                                 0x00000000
182*5113495bSYour Name #define VHT_SIG_A_INFO_N_STS_LSB                                                    10
183*5113495bSYour Name #define VHT_SIG_A_INFO_N_STS_MSB                                                    21
184*5113495bSYour Name #define VHT_SIG_A_INFO_N_STS_MASK                                                   0x003ffc00
185*5113495bSYour Name 
186*5113495bSYour Name 
187*5113495bSYour Name /* Description		TXOP_PS_NOT_ALLOWED
188*5113495bSYour Name 
189*5113495bSYour Name 			E_num 0     txop_ps_allowed  Not supported: If set to by
190*5113495bSYour Name 			 VHT AP if it allows non-AP VHT STAs in TXOP power save
191*5113495bSYour Name 			mode to enter Doze state during a TXOP
192*5113495bSYour Name 			<enum 1     no_txop_ps_allowed> Otherwise
193*5113495bSYour Name 			<legal 1>
194*5113495bSYour Name */
195*5113495bSYour Name 
196*5113495bSYour Name #define VHT_SIG_A_INFO_TXOP_PS_NOT_ALLOWED_OFFSET                                   0x00000000
197*5113495bSYour Name #define VHT_SIG_A_INFO_TXOP_PS_NOT_ALLOWED_LSB                                      22
198*5113495bSYour Name #define VHT_SIG_A_INFO_TXOP_PS_NOT_ALLOWED_MSB                                      22
199*5113495bSYour Name #define VHT_SIG_A_INFO_TXOP_PS_NOT_ALLOWED_MASK                                     0x00400000
200*5113495bSYour Name 
201*5113495bSYour Name 
202*5113495bSYour Name /* Description		VHTA_RESERVED_0B
203*5113495bSYour Name 
204*5113495bSYour Name 			Reserved: Should be set to 1 by the MAC and ignored by the
205*5113495bSYour Name 			 PHY  <legal 1>
206*5113495bSYour Name */
207*5113495bSYour Name 
208*5113495bSYour Name #define VHT_SIG_A_INFO_VHTA_RESERVED_0B_OFFSET                                      0x00000000
209*5113495bSYour Name #define VHT_SIG_A_INFO_VHTA_RESERVED_0B_LSB                                         23
210*5113495bSYour Name #define VHT_SIG_A_INFO_VHTA_RESERVED_0B_MSB                                         23
211*5113495bSYour Name #define VHT_SIG_A_INFO_VHTA_RESERVED_0B_MASK                                        0x00800000
212*5113495bSYour Name 
213*5113495bSYour Name 
214*5113495bSYour Name /* Description		RESERVED_0
215*5113495bSYour Name 
216*5113495bSYour Name 			This field is not part of HT-SIG:
217*5113495bSYour Name 			Reserved: Should be set to 0 by the MAC and ignored by the
218*5113495bSYour Name 			 PHY <legal 0>
219*5113495bSYour Name */
220*5113495bSYour Name 
221*5113495bSYour Name #define VHT_SIG_A_INFO_RESERVED_0_OFFSET                                            0x00000000
222*5113495bSYour Name #define VHT_SIG_A_INFO_RESERVED_0_LSB                                               24
223*5113495bSYour Name #define VHT_SIG_A_INFO_RESERVED_0_MSB                                               31
224*5113495bSYour Name #define VHT_SIG_A_INFO_RESERVED_0_MASK                                              0xff000000
225*5113495bSYour Name 
226*5113495bSYour Name 
227*5113495bSYour Name /* Description		GI_SETTING
228*5113495bSYour Name 
229*5113495bSYour Name 			<enum 0     normal_gi>  Indicates short guard interval is
230*5113495bSYour Name 			 not used in the data field
231*5113495bSYour Name 			<enum 1     short_gi>  Indicates short guard interval is
232*5113495bSYour Name 			 used in the data field
233*5113495bSYour Name 			<enum 3     short_gi_ambiguity>  Indicates short guard interval
234*5113495bSYour Name 			 is used in the data field and NSYM mod 10 = 9
235*5113495bSYour Name 			NSYM is defined in IEEE802.11ac_D1.0 Section 22.4.3 (TXTIME
236*5113495bSYour Name 			 and PSDU_LENGTH calculation).
237*5113495bSYour Name 			<legal 0,1,3>
238*5113495bSYour Name */
239*5113495bSYour Name 
240*5113495bSYour Name #define VHT_SIG_A_INFO_GI_SETTING_OFFSET                                            0x00000004
241*5113495bSYour Name #define VHT_SIG_A_INFO_GI_SETTING_LSB                                               0
242*5113495bSYour Name #define VHT_SIG_A_INFO_GI_SETTING_MSB                                               1
243*5113495bSYour Name #define VHT_SIG_A_INFO_GI_SETTING_MASK                                              0x00000003
244*5113495bSYour Name 
245*5113495bSYour Name 
246*5113495bSYour Name /* Description		SU_MU_CODING
247*5113495bSYour Name 
248*5113495bSYour Name 			For an SU PPDU, B2 is set to 0 for BCC, 1 for LDPC For an
249*5113495bSYour Name 			 MU PPDU, if the MU[0] NSTS field is nonzero(#6773), then
250*5113495bSYour Name 			 B2 indicates the coding used for user 0; set to 0 for BCC
251*5113495bSYour Name 			 and 1 for LDPC. If the MU[0] NSTS field is 0, then this
252*5113495bSYour Name 			 field is reserved and set to 1
253*5113495bSYour Name */
254*5113495bSYour Name 
255*5113495bSYour Name #define VHT_SIG_A_INFO_SU_MU_CODING_OFFSET                                          0x00000004
256*5113495bSYour Name #define VHT_SIG_A_INFO_SU_MU_CODING_LSB                                             2
257*5113495bSYour Name #define VHT_SIG_A_INFO_SU_MU_CODING_MSB                                             2
258*5113495bSYour Name #define VHT_SIG_A_INFO_SU_MU_CODING_MASK                                            0x00000004
259*5113495bSYour Name 
260*5113495bSYour Name 
261*5113495bSYour Name /* Description		LDPC_EXTRA_SYMBOL
262*5113495bSYour Name 
263*5113495bSYour Name 			Set to 1 if the LDPC PPDU encoding process (if an SU PPDU),
264*5113495bSYour Name 			or at least one LDPC user's PPDU encoding process (if an
265*5113495bSYour Name 			 MU PPDU), results in an extra OFDM symbol (or symbols)
266*5113495bSYour Name 			as described in 22.3.10.5.4 (LDPC coding) and 22.3.10.5.5
267*5113495bSYour Name 			 (Encoding process for MU PPDUs). Set to 0 otherwise.
268*5113495bSYour Name */
269*5113495bSYour Name 
270*5113495bSYour Name #define VHT_SIG_A_INFO_LDPC_EXTRA_SYMBOL_OFFSET                                     0x00000004
271*5113495bSYour Name #define VHT_SIG_A_INFO_LDPC_EXTRA_SYMBOL_LSB                                        3
272*5113495bSYour Name #define VHT_SIG_A_INFO_LDPC_EXTRA_SYMBOL_MSB                                        3
273*5113495bSYour Name #define VHT_SIG_A_INFO_LDPC_EXTRA_SYMBOL_MASK                                       0x00000008
274*5113495bSYour Name 
275*5113495bSYour Name 
276*5113495bSYour Name /* Description		MCS
277*5113495bSYour Name 
278*5113495bSYour Name 			For SU:
279*5113495bSYour Name 			Set to 0 for BPSK 1/2
280*5113495bSYour Name 			Set to 1 for QPSK 1/2
281*5113495bSYour Name 			Set to 2 for QPSK 3/4
282*5113495bSYour Name 			Set to 3 for 16-QAM 1/2
283*5113495bSYour Name 			Set to 4 for 16-QAM 3/4
284*5113495bSYour Name 			Set to 5 for 64-QAM 2/3
285*5113495bSYour Name 			Set to 6 for 64-QAM 3/4
286*5113495bSYour Name 			Set to 7 for 64-QAM 5/6
287*5113495bSYour Name 			Set to 8 for 256-QAM 3/4
288*5113495bSYour Name 			Set to 9 for 256-QAM 5/6
289*5113495bSYour Name 			For MU:
290*5113495bSYour Name 			If NSTS for user 1 is non-zero, then vht_sig_a[1][4] indicates
291*5113495bSYour Name 			 coding for user 1: set to 0 for BCC, 1 for LDPC.
292*5113495bSYour Name 			If NSTS for user 1 is set to 0, then vht_sig_a[1][4] is
293*5113495bSYour Name 			reserved and set to 1.
294*5113495bSYour Name 			If NSTS for user 2 is non-zero, then vht_sig_a[1][5] indicates
295*5113495bSYour Name 			 coding for user 2: set to 0 for BCC, 1 for LDPC.
296*5113495bSYour Name 			If NSTS for user 2 is set to 0, then vht_sig_a[1][5] is
297*5113495bSYour Name 			reserved and set to 1.
298*5113495bSYour Name 			If NSTS for user 3 is non-zero, then vht_sig_a[1][6] indicates
299*5113495bSYour Name 			 coding for user 3: set to 0 for BCC, 1 for LDPC.
300*5113495bSYour Name 			If NSTS for user 3 is set to 0, then vht_sig_a[1][6] is
301*5113495bSYour Name 			reserved and set to 1.
302*5113495bSYour Name 			vht_sig_a[1][7] is reserved and set to 1
303*5113495bSYour Name 			<legal 0-15>
304*5113495bSYour Name */
305*5113495bSYour Name 
306*5113495bSYour Name #define VHT_SIG_A_INFO_MCS_OFFSET                                                   0x00000004
307*5113495bSYour Name #define VHT_SIG_A_INFO_MCS_LSB                                                      4
308*5113495bSYour Name #define VHT_SIG_A_INFO_MCS_MSB                                                      7
309*5113495bSYour Name #define VHT_SIG_A_INFO_MCS_MASK                                                     0x000000f0
310*5113495bSYour Name 
311*5113495bSYour Name 
312*5113495bSYour Name /* Description		BEAMFORMED
313*5113495bSYour Name 
314*5113495bSYour Name 			For SU:
315*5113495bSYour Name 			Set to 1 if a Beamforming steering matrix is applied to
316*5113495bSYour Name 			the waveform in an SU transmission as described in IEEE802.11ac_D1.0
317*5113495bSYour Name 			 Section 19.3.11.11.2 (Spatial mapping), set to 0 otherwise.
318*5113495bSYour Name 
319*5113495bSYour Name 			For MU:
320*5113495bSYour Name 			Reserved and set to 1
321*5113495bSYour Name 			<legal 0-1>
322*5113495bSYour Name */
323*5113495bSYour Name 
324*5113495bSYour Name #define VHT_SIG_A_INFO_BEAMFORMED_OFFSET                                            0x00000004
325*5113495bSYour Name #define VHT_SIG_A_INFO_BEAMFORMED_LSB                                               8
326*5113495bSYour Name #define VHT_SIG_A_INFO_BEAMFORMED_MSB                                               8
327*5113495bSYour Name #define VHT_SIG_A_INFO_BEAMFORMED_MASK                                              0x00000100
328*5113495bSYour Name 
329*5113495bSYour Name 
330*5113495bSYour Name /* Description		VHTA_RESERVED_1
331*5113495bSYour Name 
332*5113495bSYour Name 			Reserved and set to 1.  <legal 1>
333*5113495bSYour Name */
334*5113495bSYour Name 
335*5113495bSYour Name #define VHT_SIG_A_INFO_VHTA_RESERVED_1_OFFSET                                       0x00000004
336*5113495bSYour Name #define VHT_SIG_A_INFO_VHTA_RESERVED_1_LSB                                          9
337*5113495bSYour Name #define VHT_SIG_A_INFO_VHTA_RESERVED_1_MSB                                          9
338*5113495bSYour Name #define VHT_SIG_A_INFO_VHTA_RESERVED_1_MASK                                         0x00000200
339*5113495bSYour Name 
340*5113495bSYour Name 
341*5113495bSYour Name /* Description		CRC
342*5113495bSYour Name 
343*5113495bSYour Name 			CRC calculated as in IEEE802.11ac_D1.0 Section 19.3.9.4.4
344*5113495bSYour Name 			 (CRC calculation for HTSIG) with C7 in vht_sig_a[1][10],
345*5113495bSYour Name 			etc.  <legal all>
346*5113495bSYour Name */
347*5113495bSYour Name 
348*5113495bSYour Name #define VHT_SIG_A_INFO_CRC_OFFSET                                                   0x00000004
349*5113495bSYour Name #define VHT_SIG_A_INFO_CRC_LSB                                                      10
350*5113495bSYour Name #define VHT_SIG_A_INFO_CRC_MSB                                                      17
351*5113495bSYour Name #define VHT_SIG_A_INFO_CRC_MASK                                                     0x0003fc00
352*5113495bSYour Name 
353*5113495bSYour Name 
354*5113495bSYour Name /* Description		TAIL
355*5113495bSYour Name 
356*5113495bSYour Name 			Used to terminate the trellis of the convolutional decoder.
357*5113495bSYour Name 			 Set to 0.  <legal 0>
358*5113495bSYour Name */
359*5113495bSYour Name 
360*5113495bSYour Name #define VHT_SIG_A_INFO_TAIL_OFFSET                                                  0x00000004
361*5113495bSYour Name #define VHT_SIG_A_INFO_TAIL_LSB                                                     18
362*5113495bSYour Name #define VHT_SIG_A_INFO_TAIL_MSB                                                     23
363*5113495bSYour Name #define VHT_SIG_A_INFO_TAIL_MASK                                                    0x00fc0000
364*5113495bSYour Name 
365*5113495bSYour Name 
366*5113495bSYour Name /* Description		RESERVED_1
367*5113495bSYour Name 
368*5113495bSYour Name 			This field is not part of HT-SIG:
369*5113495bSYour Name 			Reserved: Should be set to 0 by the MAC and ignored by the
370*5113495bSYour Name 			 PHY <legal 0>
371*5113495bSYour Name */
372*5113495bSYour Name 
373*5113495bSYour Name #define VHT_SIG_A_INFO_RESERVED_1_OFFSET                                            0x00000004
374*5113495bSYour Name #define VHT_SIG_A_INFO_RESERVED_1_LSB                                               24
375*5113495bSYour Name #define VHT_SIG_A_INFO_RESERVED_1_MSB                                               30
376*5113495bSYour Name #define VHT_SIG_A_INFO_RESERVED_1_MASK                                              0x7f000000
377*5113495bSYour Name 
378*5113495bSYour Name 
379*5113495bSYour Name /* Description		RX_INTEGRITY_CHECK_PASSED
380*5113495bSYour Name 
381*5113495bSYour Name 			TX side: Set to 0
382*5113495bSYour Name 			RX side: Set to 1 if PHY determines the VHT-SIG-A CRC check
383*5113495bSYour Name 			 has passed, else set to 0
384*5113495bSYour Name 
385*5113495bSYour Name 			<legal all>
386*5113495bSYour Name */
387*5113495bSYour Name 
388*5113495bSYour Name #define VHT_SIG_A_INFO_RX_INTEGRITY_CHECK_PASSED_OFFSET                             0x00000004
389*5113495bSYour Name #define VHT_SIG_A_INFO_RX_INTEGRITY_CHECK_PASSED_LSB                                31
390*5113495bSYour Name #define VHT_SIG_A_INFO_RX_INTEGRITY_CHECK_PASSED_MSB                                31
391*5113495bSYour Name #define VHT_SIG_A_INFO_RX_INTEGRITY_CHECK_PASSED_MASK                               0x80000000
392*5113495bSYour Name 
393*5113495bSYour Name 
394*5113495bSYour Name 
395*5113495bSYour Name #endif   // VHT_SIG_A_INFO
396