xref: /wlan-driver/fw-api/hw/qca5332/rx_ppdu_end_user_stats_ext.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 _RX_PPDU_END_USER_STATS_EXT_H_
27*5113495bSYour Name #define _RX_PPDU_END_USER_STATS_EXT_H_
28*5113495bSYour Name #if !defined(__ASSEMBLER__)
29*5113495bSYour Name #endif
30*5113495bSYour Name 
31*5113495bSYour Name #include "rx_rxpcu_classification_overview.h"
32*5113495bSYour Name #define NUM_OF_DWORDS_RX_PPDU_END_USER_STATS_EXT 8
33*5113495bSYour Name 
34*5113495bSYour Name #define NUM_OF_QWORDS_RX_PPDU_END_USER_STATS_EXT 4
35*5113495bSYour Name 
36*5113495bSYour Name 
37*5113495bSYour Name struct rx_ppdu_end_user_stats_ext {
38*5113495bSYour Name #ifndef WIFI_BIT_ORDER_BIG_ENDIAN
39*5113495bSYour Name              struct   rx_rxpcu_classification_overview                          rxpcu_classification_details;
40*5113495bSYour Name              uint32_t fcs_ok_bitmap_95_64                                     : 32; // [31:0]
41*5113495bSYour Name              uint32_t fcs_ok_bitmap_127_96                                    : 32; // [31:0]
42*5113495bSYour Name              uint32_t fcs_ok_bitmap_159_128                                   : 32; // [31:0]
43*5113495bSYour Name              uint32_t fcs_ok_bitmap_191_160                                   : 32; // [31:0]
44*5113495bSYour Name              uint32_t fcs_ok_bitmap_223_192                                   : 32; // [31:0]
45*5113495bSYour Name              uint32_t fcs_ok_bitmap_255_224                                   : 32; // [31:0]
46*5113495bSYour Name              uint32_t corrupted_due_to_fifo_delay                             :  1, // [0:0]
47*5113495bSYour Name                       reserved_7a                                             : 31; // [31:1]
48*5113495bSYour Name #else
49*5113495bSYour Name              struct   rx_rxpcu_classification_overview                          rxpcu_classification_details;
50*5113495bSYour Name              uint32_t fcs_ok_bitmap_95_64                                     : 32; // [31:0]
51*5113495bSYour Name              uint32_t fcs_ok_bitmap_127_96                                    : 32; // [31:0]
52*5113495bSYour Name              uint32_t fcs_ok_bitmap_159_128                                   : 32; // [31:0]
53*5113495bSYour Name              uint32_t fcs_ok_bitmap_191_160                                   : 32; // [31:0]
54*5113495bSYour Name              uint32_t fcs_ok_bitmap_223_192                                   : 32; // [31:0]
55*5113495bSYour Name              uint32_t fcs_ok_bitmap_255_224                                   : 32; // [31:0]
56*5113495bSYour Name              uint32_t reserved_7a                                             : 31, // [31:1]
57*5113495bSYour Name                       corrupted_due_to_fifo_delay                             :  1; // [0:0]
58*5113495bSYour Name #endif
59*5113495bSYour Name };
60*5113495bSYour Name 
61*5113495bSYour Name 
62*5113495bSYour Name /* Description		RXPCU_CLASSIFICATION_DETAILS
63*5113495bSYour Name 
64*5113495bSYour Name 			Details related to what RXPCU classification types of MPDUs
65*5113495bSYour Name 			 have been received
66*5113495bSYour Name */
67*5113495bSYour Name 
68*5113495bSYour Name 
69*5113495bSYour Name /* Description		FILTER_PASS_MPDUS
70*5113495bSYour Name 
71*5113495bSYour Name 			When set, at least one Filter Pass MPDU has been received.
72*5113495bSYour Name 			FCS might or might not have been passing.
73*5113495bSYour Name 
74*5113495bSYour Name 			For MU UL, in  TLVs RX_PPDU_END and RX_PPDU_END_STATUS_DONE,
75*5113495bSYour Name 			this field is the "OR of all the users.
76*5113495bSYour Name 			<legal all>
77*5113495bSYour Name */
78*5113495bSYour Name 
79*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_OFFSET 0x0000000000000000
80*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_LSB 0
81*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_MSB 0
82*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_MASK 0x0000000000000001
83*5113495bSYour Name 
84*5113495bSYour Name 
85*5113495bSYour Name /* Description		FILTER_PASS_MPDUS_FCS_OK
86*5113495bSYour Name 
87*5113495bSYour Name 			When set, at least one Filter Pass MPDU has been received
88*5113495bSYour Name 			 that has a correct FCS.
89*5113495bSYour Name 
90*5113495bSYour Name 			For MU UL, in  TLVs RX_PPDU_END and RX_PPDU_END_STATUS_DONE,
91*5113495bSYour Name 			this field is the "OR of all the users.
92*5113495bSYour Name 
93*5113495bSYour Name 			<legal all>
94*5113495bSYour Name */
95*5113495bSYour Name 
96*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_FCS_OK_OFFSET 0x0000000000000000
97*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_FCS_OK_LSB 1
98*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_FCS_OK_MSB 1
99*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_FCS_OK_MASK 0x0000000000000002
100*5113495bSYour Name 
101*5113495bSYour Name 
102*5113495bSYour Name /* Description		MONITOR_DIRECT_MPDUS
103*5113495bSYour Name 
104*5113495bSYour Name 			When set, at least one Monitor Direct MPDU has been received.
105*5113495bSYour Name 			FCS might or might not have been passing
106*5113495bSYour Name 
107*5113495bSYour Name 			For MU UL, in  TLVs RX_PPDU_END and RX_PPDU_END_STATUS_DONE,
108*5113495bSYour Name 			this field is the "OR of all the users.
109*5113495bSYour Name 			<legal all>
110*5113495bSYour Name */
111*5113495bSYour Name 
112*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_OFFSET 0x0000000000000000
113*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_LSB 2
114*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_MSB 2
115*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_MASK 0x0000000000000004
116*5113495bSYour Name 
117*5113495bSYour Name 
118*5113495bSYour Name /* Description		MONITOR_DIRECT_MPDUS_FCS_OK
119*5113495bSYour Name 
120*5113495bSYour Name 			When set, at least one Monitor Direct MPDU has been received
121*5113495bSYour Name 			 that has a correct FCS.
122*5113495bSYour Name 
123*5113495bSYour Name 			For MU UL, in  TLVs RX_PPDU_END and RX_PPDU_END_STATUS_DONE,
124*5113495bSYour Name 			this field is the "OR of all the users.
125*5113495bSYour Name 
126*5113495bSYour Name 			<legal all>
127*5113495bSYour Name */
128*5113495bSYour Name 
129*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_FCS_OK_OFFSET 0x0000000000000000
130*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_FCS_OK_LSB 3
131*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_FCS_OK_MSB 3
132*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_FCS_OK_MASK 0x0000000000000008
133*5113495bSYour Name 
134*5113495bSYour Name 
135*5113495bSYour Name /* Description		MONITOR_OTHER_MPDUS
136*5113495bSYour Name 
137*5113495bSYour Name 			When set, at least one Monitor Direct MPDU has been received.
138*5113495bSYour Name 			FCS might or might not have been passing.
139*5113495bSYour Name 
140*5113495bSYour Name 			For MU UL, in  TLVs RX_PPDU_END and RX_PPDU_END_STATUS_DONE,
141*5113495bSYour Name 			this field is the "OR of all the users.
142*5113495bSYour Name 			<legal all>
143*5113495bSYour Name */
144*5113495bSYour Name 
145*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_OFFSET 0x0000000000000000
146*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_LSB 4
147*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_MSB 4
148*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_MASK 0x0000000000000010
149*5113495bSYour Name 
150*5113495bSYour Name 
151*5113495bSYour Name /* Description		MONITOR_OTHER_MPDUS_FCS_OK
152*5113495bSYour Name 
153*5113495bSYour Name 			When set, at least one Monitor Direct MPDU has been received
154*5113495bSYour Name 			 that has a correct FCS.
155*5113495bSYour Name 
156*5113495bSYour Name 			For MU UL, in  TLVs RX_PPDU_END and RX_PPDU_END_STATUS_DONE,
157*5113495bSYour Name 			this field is the "OR of all the users.
158*5113495bSYour Name 			<legal all>
159*5113495bSYour Name */
160*5113495bSYour Name 
161*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_FCS_OK_OFFSET 0x0000000000000000
162*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_FCS_OK_LSB 5
163*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_FCS_OK_MSB 5
164*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_FCS_OK_MASK 0x0000000000000020
165*5113495bSYour Name 
166*5113495bSYour Name 
167*5113495bSYour Name /* Description		PHYRX_ABORT_RECEIVED
168*5113495bSYour Name 
169*5113495bSYour Name 			When set, PPDU reception was aborted by the PHY
170*5113495bSYour Name 			<legal all>
171*5113495bSYour Name */
172*5113495bSYour Name 
173*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_PHYRX_ABORT_RECEIVED_OFFSET 0x0000000000000000
174*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_PHYRX_ABORT_RECEIVED_LSB 6
175*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_PHYRX_ABORT_RECEIVED_MSB 6
176*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_PHYRX_ABORT_RECEIVED_MASK 0x0000000000000040
177*5113495bSYour Name 
178*5113495bSYour Name 
179*5113495bSYour Name /* Description		FILTER_PASS_MONITOR_OVRD_MPDUS
180*5113495bSYour Name 
181*5113495bSYour Name 			When set, at least one 'Filter Pass Monitor Override' MPDU
182*5113495bSYour Name 			 has been received. FCS might or might not have been passing.
183*5113495bSYour Name 
184*5113495bSYour Name 
185*5113495bSYour Name 			For MU UL, in  TLVs RX_PPDU_END and RX_PPDU_END_STATUS_DONE,
186*5113495bSYour Name 			this field is the "OR of all the users.
187*5113495bSYour Name 			<legal all>
188*5113495bSYour Name */
189*5113495bSYour Name 
190*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_OFFSET 0x0000000000000000
191*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_LSB 7
192*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_MSB 7
193*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_MASK 0x0000000000000080
194*5113495bSYour Name 
195*5113495bSYour Name 
196*5113495bSYour Name /* Description		FILTER_PASS_MONITOR_OVRD_MPDUS_FCS_OK
197*5113495bSYour Name 
198*5113495bSYour Name 			When set, at least one 'Filter Pass Monitor Override' MPDU
199*5113495bSYour Name 			 has been received that has a correct FCS.
200*5113495bSYour Name 
201*5113495bSYour Name 			For MU UL, in  TLVs RX_PPDU_END and RX_PPDU_END_STATUS_DONE,
202*5113495bSYour Name 			this field is the "OR of all the users.
203*5113495bSYour Name 
204*5113495bSYour Name 			<legal all>
205*5113495bSYour Name */
206*5113495bSYour Name 
207*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_FCS_OK_OFFSET 0x0000000000000000
208*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_FCS_OK_LSB 8
209*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_FCS_OK_MSB 8
210*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_FCS_OK_MASK 0x0000000000000100
211*5113495bSYour Name 
212*5113495bSYour Name 
213*5113495bSYour Name /* Description		RESERVED_0
214*5113495bSYour Name 
215*5113495bSYour Name 			<legal 0>
216*5113495bSYour Name */
217*5113495bSYour Name 
218*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_RESERVED_0_OFFSET   0x0000000000000000
219*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_RESERVED_0_LSB      9
220*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_RESERVED_0_MSB      15
221*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_RESERVED_0_MASK     0x000000000000fe00
222*5113495bSYour Name 
223*5113495bSYour Name 
224*5113495bSYour Name /* Description		PHY_PPDU_ID
225*5113495bSYour Name 
226*5113495bSYour Name 			A ppdu counter value that PHY increments for every PPDU
227*5113495bSYour Name 			received. The counter value wraps around
228*5113495bSYour Name 			<legal all>
229*5113495bSYour Name */
230*5113495bSYour Name 
231*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_PHY_PPDU_ID_OFFSET  0x0000000000000000
232*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_PHY_PPDU_ID_LSB     16
233*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_PHY_PPDU_ID_MSB     31
234*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_RXPCU_CLASSIFICATION_DETAILS_PHY_PPDU_ID_MASK    0x00000000ffff0000
235*5113495bSYour Name 
236*5113495bSYour Name 
237*5113495bSYour Name /* Description		FCS_OK_BITMAP_95_64
238*5113495bSYour Name 
239*5113495bSYour Name 			Bitmap indicates in order of received MPDUs, which MPDUs
240*5113495bSYour Name 			 had an passing FCS or had an error.
241*5113495bSYour Name 			1: FCS OK
242*5113495bSYour Name 			0: FCS error
243*5113495bSYour Name 			<legal all>
244*5113495bSYour Name */
245*5113495bSYour Name 
246*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_95_64_OFFSET                       0x0000000000000000
247*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_95_64_LSB                          32
248*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_95_64_MSB                          63
249*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_95_64_MASK                         0xffffffff00000000
250*5113495bSYour Name 
251*5113495bSYour Name 
252*5113495bSYour Name /* Description		FCS_OK_BITMAP_127_96
253*5113495bSYour Name 
254*5113495bSYour Name 			Bitmap indicates in order of received MPDUs, which MPDUs
255*5113495bSYour Name 			 had an passing FCS or had an error.
256*5113495bSYour Name 			1: FCS OK
257*5113495bSYour Name 			0: FCS error
258*5113495bSYour Name 			<legal all>
259*5113495bSYour Name */
260*5113495bSYour Name 
261*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_127_96_OFFSET                      0x0000000000000008
262*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_127_96_LSB                         0
263*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_127_96_MSB                         31
264*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_127_96_MASK                        0x00000000ffffffff
265*5113495bSYour Name 
266*5113495bSYour Name 
267*5113495bSYour Name /* Description		FCS_OK_BITMAP_159_128
268*5113495bSYour Name 
269*5113495bSYour Name 			Bitmap indicates in order of received MPDUs, which MPDUs
270*5113495bSYour Name 			 had an passing FCS or had an error.
271*5113495bSYour Name 			1: FCS OK
272*5113495bSYour Name 			0: FCS error
273*5113495bSYour Name 			<legal all>
274*5113495bSYour Name */
275*5113495bSYour Name 
276*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_159_128_OFFSET                     0x0000000000000008
277*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_159_128_LSB                        32
278*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_159_128_MSB                        63
279*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_159_128_MASK                       0xffffffff00000000
280*5113495bSYour Name 
281*5113495bSYour Name 
282*5113495bSYour Name /* Description		FCS_OK_BITMAP_191_160
283*5113495bSYour Name 
284*5113495bSYour Name 			Bitmap indicates in order of received MPDUs, which MPDUs
285*5113495bSYour Name 			 had an passing FCS or had an error.
286*5113495bSYour Name 			1: FCS OK
287*5113495bSYour Name 			0: FCS error
288*5113495bSYour Name 			<legal all>
289*5113495bSYour Name */
290*5113495bSYour Name 
291*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_191_160_OFFSET                     0x0000000000000010
292*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_191_160_LSB                        0
293*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_191_160_MSB                        31
294*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_191_160_MASK                       0x00000000ffffffff
295*5113495bSYour Name 
296*5113495bSYour Name 
297*5113495bSYour Name /* Description		FCS_OK_BITMAP_223_192
298*5113495bSYour Name 
299*5113495bSYour Name 			Bitmap indicates in order of received MPDUs, which MPDUs
300*5113495bSYour Name 			 had an passing FCS or had an error.
301*5113495bSYour Name 			1: FCS OK
302*5113495bSYour Name 			0: FCS error
303*5113495bSYour Name 			<legal all>
304*5113495bSYour Name */
305*5113495bSYour Name 
306*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_223_192_OFFSET                     0x0000000000000010
307*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_223_192_LSB                        32
308*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_223_192_MSB                        63
309*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_223_192_MASK                       0xffffffff00000000
310*5113495bSYour Name 
311*5113495bSYour Name 
312*5113495bSYour Name /* Description		FCS_OK_BITMAP_255_224
313*5113495bSYour Name 
314*5113495bSYour Name 			Bitmap indicates in order of received MPDUs, which MPDUs
315*5113495bSYour Name 			 had an passing FCS or had an error.
316*5113495bSYour Name 			1: FCS OK
317*5113495bSYour Name 			0: FCS error
318*5113495bSYour Name 			<legal all>
319*5113495bSYour Name */
320*5113495bSYour Name 
321*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_255_224_OFFSET                     0x0000000000000018
322*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_255_224_LSB                        0
323*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_255_224_MSB                        31
324*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_FCS_OK_BITMAP_255_224_MASK                       0x00000000ffffffff
325*5113495bSYour Name 
326*5113495bSYour Name 
327*5113495bSYour Name /* Description		CORRUPTED_DUE_TO_FIFO_DELAY
328*5113495bSYour Name 
329*5113495bSYour Name 			Set if Rx PCU avoided a hang due to SFM delays by writing
330*5113495bSYour Name 			 a corrupted 'RX_PPDU_END_USER_STATS*' and/or 'RX_PPDU_END.'
331*5113495bSYour Name 
332*5113495bSYour Name */
333*5113495bSYour Name 
334*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_CORRUPTED_DUE_TO_FIFO_DELAY_OFFSET               0x0000000000000018
335*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_CORRUPTED_DUE_TO_FIFO_DELAY_LSB                  32
336*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_CORRUPTED_DUE_TO_FIFO_DELAY_MSB                  32
337*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_CORRUPTED_DUE_TO_FIFO_DELAY_MASK                 0x0000000100000000
338*5113495bSYour Name 
339*5113495bSYour Name 
340*5113495bSYour Name /* Description		RESERVED_7A
341*5113495bSYour Name 
342*5113495bSYour Name 			<legal 0>
343*5113495bSYour Name */
344*5113495bSYour Name 
345*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_RESERVED_7A_OFFSET                               0x0000000000000018
346*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_RESERVED_7A_LSB                                  33
347*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_RESERVED_7A_MSB                                  63
348*5113495bSYour Name #define RX_PPDU_END_USER_STATS_EXT_RESERVED_7A_MASK                                 0xfffffffe00000000
349*5113495bSYour Name 
350*5113495bSYour Name 
351*5113495bSYour Name 
352*5113495bSYour Name #endif   // RX_PPDU_END_USER_STATS_EXT
353