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