xref: /wlan-driver/fw-api/hw/qca5332/reo_get_queue_stats_status.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 _REO_GET_QUEUE_STATS_STATUS_H_
27*5113495bSYour Name #define _REO_GET_QUEUE_STATS_STATUS_H_
28*5113495bSYour Name #if !defined(__ASSEMBLER__)
29*5113495bSYour Name #endif
30*5113495bSYour Name 
31*5113495bSYour Name #include "uniform_reo_status_header.h"
32*5113495bSYour Name #define NUM_OF_DWORDS_REO_GET_QUEUE_STATS_STATUS 26
33*5113495bSYour Name 
34*5113495bSYour Name #define NUM_OF_QWORDS_REO_GET_QUEUE_STATS_STATUS 13
35*5113495bSYour Name 
36*5113495bSYour Name 
37*5113495bSYour Name struct reo_get_queue_stats_status {
38*5113495bSYour Name #ifndef WIFI_BIT_ORDER_BIG_ENDIAN
39*5113495bSYour Name              struct   uniform_reo_status_header                                 status_header;
40*5113495bSYour Name              uint32_t ssn                                                     : 12, // [11:0]
41*5113495bSYour Name                       current_index                                           : 10, // [21:12]
42*5113495bSYour Name                       reserved_2                                              : 10; // [31:22]
43*5113495bSYour Name              uint32_t pn_31_0                                                 : 32; // [31:0]
44*5113495bSYour Name              uint32_t pn_63_32                                                : 32; // [31:0]
45*5113495bSYour Name              uint32_t pn_95_64                                                : 32; // [31:0]
46*5113495bSYour Name              uint32_t pn_127_96                                               : 32; // [31:0]
47*5113495bSYour Name              uint32_t last_rx_enqueue_timestamp                               : 32; // [31:0]
48*5113495bSYour Name              uint32_t last_rx_dequeue_timestamp                               : 32; // [31:0]
49*5113495bSYour Name              uint32_t rx_bitmap_31_0                                          : 32; // [31:0]
50*5113495bSYour Name              uint32_t rx_bitmap_63_32                                         : 32; // [31:0]
51*5113495bSYour Name              uint32_t rx_bitmap_95_64                                         : 32; // [31:0]
52*5113495bSYour Name              uint32_t rx_bitmap_127_96                                        : 32; // [31:0]
53*5113495bSYour Name              uint32_t rx_bitmap_159_128                                       : 32; // [31:0]
54*5113495bSYour Name              uint32_t rx_bitmap_191_160                                       : 32; // [31:0]
55*5113495bSYour Name              uint32_t rx_bitmap_223_192                                       : 32; // [31:0]
56*5113495bSYour Name              uint32_t rx_bitmap_255_224                                       : 32; // [31:0]
57*5113495bSYour Name              uint32_t rx_bitmap_287_256                                       : 32; // [31:0]
58*5113495bSYour Name              uint32_t current_mpdu_count                                      :  7, // [6:0]
59*5113495bSYour Name                       current_msdu_count                                      : 25; // [31:7]
60*5113495bSYour Name              uint32_t window_jump_2k                                          :  4, // [3:0]
61*5113495bSYour Name                       timeout_count                                           :  6, // [9:4]
62*5113495bSYour Name                       forward_due_to_bar_count                                :  6, // [15:10]
63*5113495bSYour Name                       duplicate_count                                         : 16; // [31:16]
64*5113495bSYour Name              uint32_t frames_in_order_count                                   : 24, // [23:0]
65*5113495bSYour Name                       bar_received_count                                      :  8; // [31:24]
66*5113495bSYour Name              uint32_t mpdu_frames_processed_count                             : 32; // [31:0]
67*5113495bSYour Name              uint32_t msdu_frames_processed_count                             : 32; // [31:0]
68*5113495bSYour Name              uint32_t total_processed_byte_count                              : 32; // [31:0]
69*5113495bSYour Name              uint32_t late_receive_mpdu_count                                 : 12, // [11:0]
70*5113495bSYour Name                       hole_count                                              : 16, // [27:12]
71*5113495bSYour Name                       get_queue_1k_stats_status_to_follow                     :  1, // [28:28]
72*5113495bSYour Name                       reserved_24a                                            :  3; // [31:29]
73*5113495bSYour Name              uint32_t aging_drop_mpdu_count                                   : 16, // [15:0]
74*5113495bSYour Name                       aging_drop_interval                                     :  8, // [23:16]
75*5113495bSYour Name                       reserved_25a                                            :  4, // [27:24]
76*5113495bSYour Name                       looping_count                                           :  4; // [31:28]
77*5113495bSYour Name #else
78*5113495bSYour Name              struct   uniform_reo_status_header                                 status_header;
79*5113495bSYour Name              uint32_t reserved_2                                              : 10, // [31:22]
80*5113495bSYour Name                       current_index                                           : 10, // [21:12]
81*5113495bSYour Name                       ssn                                                     : 12; // [11:0]
82*5113495bSYour Name              uint32_t pn_31_0                                                 : 32; // [31:0]
83*5113495bSYour Name              uint32_t pn_63_32                                                : 32; // [31:0]
84*5113495bSYour Name              uint32_t pn_95_64                                                : 32; // [31:0]
85*5113495bSYour Name              uint32_t pn_127_96                                               : 32; // [31:0]
86*5113495bSYour Name              uint32_t last_rx_enqueue_timestamp                               : 32; // [31:0]
87*5113495bSYour Name              uint32_t last_rx_dequeue_timestamp                               : 32; // [31:0]
88*5113495bSYour Name              uint32_t rx_bitmap_31_0                                          : 32; // [31:0]
89*5113495bSYour Name              uint32_t rx_bitmap_63_32                                         : 32; // [31:0]
90*5113495bSYour Name              uint32_t rx_bitmap_95_64                                         : 32; // [31:0]
91*5113495bSYour Name              uint32_t rx_bitmap_127_96                                        : 32; // [31:0]
92*5113495bSYour Name              uint32_t rx_bitmap_159_128                                       : 32; // [31:0]
93*5113495bSYour Name              uint32_t rx_bitmap_191_160                                       : 32; // [31:0]
94*5113495bSYour Name              uint32_t rx_bitmap_223_192                                       : 32; // [31:0]
95*5113495bSYour Name              uint32_t rx_bitmap_255_224                                       : 32; // [31:0]
96*5113495bSYour Name              uint32_t rx_bitmap_287_256                                       : 32; // [31:0]
97*5113495bSYour Name              uint32_t current_msdu_count                                      : 25, // [31:7]
98*5113495bSYour Name                       current_mpdu_count                                      :  7; // [6:0]
99*5113495bSYour Name              uint32_t duplicate_count                                         : 16, // [31:16]
100*5113495bSYour Name                       forward_due_to_bar_count                                :  6, // [15:10]
101*5113495bSYour Name                       timeout_count                                           :  6, // [9:4]
102*5113495bSYour Name                       window_jump_2k                                          :  4; // [3:0]
103*5113495bSYour Name              uint32_t bar_received_count                                      :  8, // [31:24]
104*5113495bSYour Name                       frames_in_order_count                                   : 24; // [23:0]
105*5113495bSYour Name              uint32_t mpdu_frames_processed_count                             : 32; // [31:0]
106*5113495bSYour Name              uint32_t msdu_frames_processed_count                             : 32; // [31:0]
107*5113495bSYour Name              uint32_t total_processed_byte_count                              : 32; // [31:0]
108*5113495bSYour Name              uint32_t reserved_24a                                            :  3, // [31:29]
109*5113495bSYour Name                       get_queue_1k_stats_status_to_follow                     :  1, // [28:28]
110*5113495bSYour Name                       hole_count                                              : 16, // [27:12]
111*5113495bSYour Name                       late_receive_mpdu_count                                 : 12; // [11:0]
112*5113495bSYour Name              uint32_t looping_count                                           :  4, // [31:28]
113*5113495bSYour Name                       reserved_25a                                            :  4, // [27:24]
114*5113495bSYour Name                       aging_drop_interval                                     :  8, // [23:16]
115*5113495bSYour Name                       aging_drop_mpdu_count                                   : 16; // [15:0]
116*5113495bSYour Name #endif
117*5113495bSYour Name };
118*5113495bSYour Name 
119*5113495bSYour Name 
120*5113495bSYour Name /* Description		STATUS_HEADER
121*5113495bSYour Name 
122*5113495bSYour Name 			Consumer: SW
123*5113495bSYour Name 			Producer: REO
124*5113495bSYour Name 
125*5113495bSYour Name 			Details that can link this status with the original command.
126*5113495bSYour Name 			It also contains info on how long REO took to execute this
127*5113495bSYour Name 			 command.
128*5113495bSYour Name */
129*5113495bSYour Name 
130*5113495bSYour Name 
131*5113495bSYour Name /* Description		REO_STATUS_NUMBER
132*5113495bSYour Name 
133*5113495bSYour Name 			Consumer: SW , DEBUG
134*5113495bSYour Name 			Producer: REO
135*5113495bSYour Name 
136*5113495bSYour Name 			The value in this field is equal to value of the 'REO_CMD_Number'
137*5113495bSYour Name 			field the REO command
138*5113495bSYour Name 
139*5113495bSYour Name 			This field helps to correlate the statuses with the REO
140*5113495bSYour Name 			commands.
141*5113495bSYour Name 
142*5113495bSYour Name 			<legal all>
143*5113495bSYour Name */
144*5113495bSYour Name 
145*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_OFFSET           0x0000000000000000
146*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_LSB              0
147*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_MSB              15
148*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_REO_STATUS_NUMBER_MASK             0x000000000000ffff
149*5113495bSYour Name 
150*5113495bSYour Name 
151*5113495bSYour Name /* Description		CMD_EXECUTION_TIME
152*5113495bSYour Name 
153*5113495bSYour Name 			Consumer: DEBUG
154*5113495bSYour Name 			Producer: REO
155*5113495bSYour Name 
156*5113495bSYour Name 			The amount of time REO took to excecute the command. Note
157*5113495bSYour Name 			 that this time does not include the duration of the command
158*5113495bSYour Name 			 waiting in the command ring, before the execution started.
159*5113495bSYour Name 
160*5113495bSYour Name 
161*5113495bSYour Name 			In us.
162*5113495bSYour Name 
163*5113495bSYour Name 			<legal all>
164*5113495bSYour Name */
165*5113495bSYour Name 
166*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_OFFSET          0x0000000000000000
167*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_LSB             16
168*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_MSB             25
169*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_CMD_EXECUTION_TIME_MASK            0x0000000003ff0000
170*5113495bSYour Name 
171*5113495bSYour Name 
172*5113495bSYour Name /* Description		REO_CMD_EXECUTION_STATUS
173*5113495bSYour Name 
174*5113495bSYour Name 			Consumer: DEBUG
175*5113495bSYour Name 			Producer: REO
176*5113495bSYour Name 
177*5113495bSYour Name 			Execution status of the command.
178*5113495bSYour Name 
179*5113495bSYour Name 			<enum 0 reo_successful_execution> Command has successfully
180*5113495bSYour Name 			 be executed
181*5113495bSYour Name 			<enum 1 reo_blocked_execution> Command could not be executed
182*5113495bSYour Name 			 as the queue or cache was blocked
183*5113495bSYour Name 			<enum 2 reo_failed_execution> Command has encountered problems
184*5113495bSYour Name 			 when executing, like the queue descriptor not being valid.
185*5113495bSYour Name 			None of the status fields in the entire STATUS TLV are valid.
186*5113495bSYour Name 
187*5113495bSYour Name 			<enum 3 reo_resource_blocked> Command is NOT  executed because
188*5113495bSYour Name 			 one or more descriptors were blocked. This is SW programming
189*5113495bSYour Name 			 mistake.
190*5113495bSYour Name 			None of the status fields in the entire STATUS TLV are valid.
191*5113495bSYour Name 
192*5113495bSYour Name 
193*5113495bSYour Name 			<legal  0-3>
194*5113495bSYour Name */
195*5113495bSYour Name 
196*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_OFFSET    0x0000000000000000
197*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_LSB       26
198*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_MSB       27
199*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_MASK      0x000000000c000000
200*5113495bSYour Name 
201*5113495bSYour Name 
202*5113495bSYour Name /* Description		RESERVED_0A
203*5113495bSYour Name 
204*5113495bSYour Name 			<legal 0>
205*5113495bSYour Name */
206*5113495bSYour Name 
207*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_RESERVED_0A_OFFSET                 0x0000000000000000
208*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_RESERVED_0A_LSB                    28
209*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_RESERVED_0A_MSB                    31
210*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_RESERVED_0A_MASK                   0x00000000f0000000
211*5113495bSYour Name 
212*5113495bSYour Name 
213*5113495bSYour Name /* Description		TIMESTAMP
214*5113495bSYour Name 
215*5113495bSYour Name 			Timestamp at the moment that this status report is written.
216*5113495bSYour Name 
217*5113495bSYour Name 
218*5113495bSYour Name 			<legal all>
219*5113495bSYour Name */
220*5113495bSYour Name 
221*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_TIMESTAMP_OFFSET                   0x0000000000000000
222*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_TIMESTAMP_LSB                      32
223*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_TIMESTAMP_MSB                      63
224*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_STATUS_HEADER_TIMESTAMP_MASK                     0xffffffff00000000
225*5113495bSYour Name 
226*5113495bSYour Name 
227*5113495bSYour Name /* Description		SSN
228*5113495bSYour Name 
229*5113495bSYour Name 			Starting Sequence number of the session, this changes whenever
230*5113495bSYour Name 			 window moves. (can be filled by SW then maintained by REO)
231*5113495bSYour Name 
232*5113495bSYour Name 			<legal all>
233*5113495bSYour Name */
234*5113495bSYour Name 
235*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_SSN_OFFSET                                       0x0000000000000008
236*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_SSN_LSB                                          0
237*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_SSN_MSB                                          11
238*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_SSN_MASK                                         0x0000000000000fff
239*5113495bSYour Name 
240*5113495bSYour Name 
241*5113495bSYour Name /* Description		CURRENT_INDEX
242*5113495bSYour Name 
243*5113495bSYour Name 			Points to last forwarded packet
244*5113495bSYour Name 			<legal all>
245*5113495bSYour Name */
246*5113495bSYour Name 
247*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_CURRENT_INDEX_OFFSET                             0x0000000000000008
248*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_CURRENT_INDEX_LSB                                12
249*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_CURRENT_INDEX_MSB                                21
250*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_CURRENT_INDEX_MASK                               0x00000000003ff000
251*5113495bSYour Name 
252*5113495bSYour Name 
253*5113495bSYour Name /* Description		RESERVED_2
254*5113495bSYour Name 
255*5113495bSYour Name 			<legal 0>
256*5113495bSYour Name */
257*5113495bSYour Name 
258*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_RESERVED_2_OFFSET                                0x0000000000000008
259*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_RESERVED_2_LSB                                   22
260*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_RESERVED_2_MSB                                   31
261*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_RESERVED_2_MASK                                  0x00000000ffc00000
262*5113495bSYour Name 
263*5113495bSYour Name 
264*5113495bSYour Name /* Description		PN_31_0
265*5113495bSYour Name 
266*5113495bSYour Name 			Bits [31:0] of the PN number extracted from the IV field
267*5113495bSYour Name 
268*5113495bSYour Name 			<legal all>
269*5113495bSYour Name */
270*5113495bSYour Name 
271*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_PN_31_0_OFFSET                                   0x0000000000000008
272*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_PN_31_0_LSB                                      32
273*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_PN_31_0_MSB                                      63
274*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_PN_31_0_MASK                                     0xffffffff00000000
275*5113495bSYour Name 
276*5113495bSYour Name 
277*5113495bSYour Name /* Description		PN_63_32
278*5113495bSYour Name 
279*5113495bSYour Name 			Bits [63:32] of the PN number.
280*5113495bSYour Name 			<legal all>
281*5113495bSYour Name */
282*5113495bSYour Name 
283*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_PN_63_32_OFFSET                                  0x0000000000000010
284*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_PN_63_32_LSB                                     0
285*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_PN_63_32_MSB                                     31
286*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_PN_63_32_MASK                                    0x00000000ffffffff
287*5113495bSYour Name 
288*5113495bSYour Name 
289*5113495bSYour Name /* Description		PN_95_64
290*5113495bSYour Name 
291*5113495bSYour Name 			Bits [95:64] of the PN number.
292*5113495bSYour Name 			<legal all>
293*5113495bSYour Name */
294*5113495bSYour Name 
295*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_PN_95_64_OFFSET                                  0x0000000000000010
296*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_PN_95_64_LSB                                     32
297*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_PN_95_64_MSB                                     63
298*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_PN_95_64_MASK                                    0xffffffff00000000
299*5113495bSYour Name 
300*5113495bSYour Name 
301*5113495bSYour Name /* Description		PN_127_96
302*5113495bSYour Name 
303*5113495bSYour Name 			Bits [127:96] of the PN number.
304*5113495bSYour Name 			<legal all>
305*5113495bSYour Name */
306*5113495bSYour Name 
307*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_PN_127_96_OFFSET                                 0x0000000000000018
308*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_PN_127_96_LSB                                    0
309*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_PN_127_96_MSB                                    31
310*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_PN_127_96_MASK                                   0x00000000ffffffff
311*5113495bSYour Name 
312*5113495bSYour Name 
313*5113495bSYour Name /* Description		LAST_RX_ENQUEUE_TIMESTAMP
314*5113495bSYour Name 
315*5113495bSYour Name 			Timestamp of arrival of the last MPDU for this queue
316*5113495bSYour Name 			<legal all>
317*5113495bSYour Name */
318*5113495bSYour Name 
319*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_LAST_RX_ENQUEUE_TIMESTAMP_OFFSET                 0x0000000000000018
320*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_LAST_RX_ENQUEUE_TIMESTAMP_LSB                    32
321*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_LAST_RX_ENQUEUE_TIMESTAMP_MSB                    63
322*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_LAST_RX_ENQUEUE_TIMESTAMP_MASK                   0xffffffff00000000
323*5113495bSYour Name 
324*5113495bSYour Name 
325*5113495bSYour Name /* Description		LAST_RX_DEQUEUE_TIMESTAMP
326*5113495bSYour Name 
327*5113495bSYour Name 			Timestamp of forwarding an MPDU
328*5113495bSYour Name 
329*5113495bSYour Name 			If the queue is empty when a frame gets received, this time
330*5113495bSYour Name 			 shall be initialized to the 'enqueue' timestamp
331*5113495bSYour Name 
332*5113495bSYour Name 			Used for aging
333*5113495bSYour Name 			<legal all>
334*5113495bSYour Name */
335*5113495bSYour Name 
336*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_LAST_RX_DEQUEUE_TIMESTAMP_OFFSET                 0x0000000000000020
337*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_LAST_RX_DEQUEUE_TIMESTAMP_LSB                    0
338*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_LAST_RX_DEQUEUE_TIMESTAMP_MSB                    31
339*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_LAST_RX_DEQUEUE_TIMESTAMP_MASK                   0x00000000ffffffff
340*5113495bSYour Name 
341*5113495bSYour Name 
342*5113495bSYour Name /* Description		RX_BITMAP_31_0
343*5113495bSYour Name 
344*5113495bSYour Name 			When a bit is set, the corresponding frame is currently
345*5113495bSYour Name 			held in the re-order queue.
346*5113495bSYour Name 			The bitmap  is Fully managed by HW.
347*5113495bSYour Name 			SW shall init this to 0, and then never ever change it
348*5113495bSYour Name 			<legal all>
349*5113495bSYour Name */
350*5113495bSYour Name 
351*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_31_0_OFFSET                            0x0000000000000020
352*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_31_0_LSB                               32
353*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_31_0_MSB                               63
354*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_31_0_MASK                              0xffffffff00000000
355*5113495bSYour Name 
356*5113495bSYour Name 
357*5113495bSYour Name /* Description		RX_BITMAP_63_32
358*5113495bSYour Name 
359*5113495bSYour Name 			See Rx_bitmap_31_0 description
360*5113495bSYour Name 			<legal all>
361*5113495bSYour Name */
362*5113495bSYour Name 
363*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_63_32_OFFSET                           0x0000000000000028
364*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_63_32_LSB                              0
365*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_63_32_MSB                              31
366*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_63_32_MASK                             0x00000000ffffffff
367*5113495bSYour Name 
368*5113495bSYour Name 
369*5113495bSYour Name /* Description		RX_BITMAP_95_64
370*5113495bSYour Name 
371*5113495bSYour Name 			See Rx_bitmap_31_0 description
372*5113495bSYour Name 			<legal all>
373*5113495bSYour Name */
374*5113495bSYour Name 
375*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_95_64_OFFSET                           0x0000000000000028
376*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_95_64_LSB                              32
377*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_95_64_MSB                              63
378*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_95_64_MASK                             0xffffffff00000000
379*5113495bSYour Name 
380*5113495bSYour Name 
381*5113495bSYour Name /* Description		RX_BITMAP_127_96
382*5113495bSYour Name 
383*5113495bSYour Name 			See Rx_bitmap_31_0 description
384*5113495bSYour Name 			<legal all>
385*5113495bSYour Name */
386*5113495bSYour Name 
387*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_127_96_OFFSET                          0x0000000000000030
388*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_127_96_LSB                             0
389*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_127_96_MSB                             31
390*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_127_96_MASK                            0x00000000ffffffff
391*5113495bSYour Name 
392*5113495bSYour Name 
393*5113495bSYour Name /* Description		RX_BITMAP_159_128
394*5113495bSYour Name 
395*5113495bSYour Name 			See Rx_bitmap_31_0 description
396*5113495bSYour Name 			<legal all>
397*5113495bSYour Name */
398*5113495bSYour Name 
399*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_159_128_OFFSET                         0x0000000000000030
400*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_159_128_LSB                            32
401*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_159_128_MSB                            63
402*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_159_128_MASK                           0xffffffff00000000
403*5113495bSYour Name 
404*5113495bSYour Name 
405*5113495bSYour Name /* Description		RX_BITMAP_191_160
406*5113495bSYour Name 
407*5113495bSYour Name 			See Rx_bitmap_31_0 description
408*5113495bSYour Name 			<legal all>
409*5113495bSYour Name */
410*5113495bSYour Name 
411*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_191_160_OFFSET                         0x0000000000000038
412*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_191_160_LSB                            0
413*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_191_160_MSB                            31
414*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_191_160_MASK                           0x00000000ffffffff
415*5113495bSYour Name 
416*5113495bSYour Name 
417*5113495bSYour Name /* Description		RX_BITMAP_223_192
418*5113495bSYour Name 
419*5113495bSYour Name 			See Rx_bitmap_31_0 description
420*5113495bSYour Name 			<legal all>
421*5113495bSYour Name */
422*5113495bSYour Name 
423*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_223_192_OFFSET                         0x0000000000000038
424*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_223_192_LSB                            32
425*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_223_192_MSB                            63
426*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_223_192_MASK                           0xffffffff00000000
427*5113495bSYour Name 
428*5113495bSYour Name 
429*5113495bSYour Name /* Description		RX_BITMAP_255_224
430*5113495bSYour Name 
431*5113495bSYour Name 			See Rx_bitmap_31_0 description
432*5113495bSYour Name 			<legal all>
433*5113495bSYour Name */
434*5113495bSYour Name 
435*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_255_224_OFFSET                         0x0000000000000040
436*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_255_224_LSB                            0
437*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_255_224_MSB                            31
438*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_255_224_MASK                           0x00000000ffffffff
439*5113495bSYour Name 
440*5113495bSYour Name 
441*5113495bSYour Name /* Description		RX_BITMAP_287_256
442*5113495bSYour Name 
443*5113495bSYour Name 			See Rx_bitmap_31_0 description
444*5113495bSYour Name 			<legal all>
445*5113495bSYour Name */
446*5113495bSYour Name 
447*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_287_256_OFFSET                         0x0000000000000040
448*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_287_256_LSB                            32
449*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_287_256_MSB                            63
450*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_RX_BITMAP_287_256_MASK                           0xffffffff00000000
451*5113495bSYour Name 
452*5113495bSYour Name 
453*5113495bSYour Name /* Description		CURRENT_MPDU_COUNT
454*5113495bSYour Name 
455*5113495bSYour Name 			The number of MPDUs in the queue.
456*5113495bSYour Name 
457*5113495bSYour Name 			<legal all>
458*5113495bSYour Name */
459*5113495bSYour Name 
460*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_CURRENT_MPDU_COUNT_OFFSET                        0x0000000000000048
461*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_CURRENT_MPDU_COUNT_LSB                           0
462*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_CURRENT_MPDU_COUNT_MSB                           6
463*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_CURRENT_MPDU_COUNT_MASK                          0x000000000000007f
464*5113495bSYour Name 
465*5113495bSYour Name 
466*5113495bSYour Name /* Description		CURRENT_MSDU_COUNT
467*5113495bSYour Name 
468*5113495bSYour Name 			The number of MSDUs in the queue.
469*5113495bSYour Name 			<legal all>
470*5113495bSYour Name */
471*5113495bSYour Name 
472*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_CURRENT_MSDU_COUNT_OFFSET                        0x0000000000000048
473*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_CURRENT_MSDU_COUNT_LSB                           7
474*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_CURRENT_MSDU_COUNT_MSB                           31
475*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_CURRENT_MSDU_COUNT_MASK                          0x00000000ffffff80
476*5113495bSYour Name 
477*5113495bSYour Name 
478*5113495bSYour Name /* Description		WINDOW_JUMP_2K
479*5113495bSYour Name 
480*5113495bSYour Name 			The number of times the window moved more then 2K
481*5113495bSYour Name 
482*5113495bSYour Name 			The counter saturates and freezes at 0xF
483*5113495bSYour Name 
484*5113495bSYour Name 			(Note: field name can not start with number: previous 2k_window_jump)
485*5113495bSYour Name 
486*5113495bSYour Name 
487*5113495bSYour Name 			<legal all>
488*5113495bSYour Name */
489*5113495bSYour Name 
490*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_WINDOW_JUMP_2K_OFFSET                            0x0000000000000048
491*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_WINDOW_JUMP_2K_LSB                               32
492*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_WINDOW_JUMP_2K_MSB                               35
493*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_WINDOW_JUMP_2K_MASK                              0x0000000f00000000
494*5113495bSYour Name 
495*5113495bSYour Name 
496*5113495bSYour Name /* Description		TIMEOUT_COUNT
497*5113495bSYour Name 
498*5113495bSYour Name 			The number of times that REO started forwarding frames even
499*5113495bSYour Name 			 though there is a hole in the bitmap. Forwarding reason
500*5113495bSYour Name 			 is Timeout
501*5113495bSYour Name 
502*5113495bSYour Name 			The counter saturates and freezes at 0x3F
503*5113495bSYour Name 
504*5113495bSYour Name 			<legal all>
505*5113495bSYour Name */
506*5113495bSYour Name 
507*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_TIMEOUT_COUNT_OFFSET                             0x0000000000000048
508*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_TIMEOUT_COUNT_LSB                                36
509*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_TIMEOUT_COUNT_MSB                                41
510*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_TIMEOUT_COUNT_MASK                               0x000003f000000000
511*5113495bSYour Name 
512*5113495bSYour Name 
513*5113495bSYour Name /* Description		FORWARD_DUE_TO_BAR_COUNT
514*5113495bSYour Name 
515*5113495bSYour Name 			The number of times that REO started forwarding frames even
516*5113495bSYour Name 			 though there is a hole in the bitmap. Forwarding reason
517*5113495bSYour Name 			 is reception of BAR frame.
518*5113495bSYour Name 
519*5113495bSYour Name 			The counter saturates and freezes at 0x3F
520*5113495bSYour Name 
521*5113495bSYour Name 			<legal all>
522*5113495bSYour Name */
523*5113495bSYour Name 
524*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_FORWARD_DUE_TO_BAR_COUNT_OFFSET                  0x0000000000000048
525*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_FORWARD_DUE_TO_BAR_COUNT_LSB                     42
526*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_FORWARD_DUE_TO_BAR_COUNT_MSB                     47
527*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_FORWARD_DUE_TO_BAR_COUNT_MASK                    0x0000fc0000000000
528*5113495bSYour Name 
529*5113495bSYour Name 
530*5113495bSYour Name /* Description		DUPLICATE_COUNT
531*5113495bSYour Name 
532*5113495bSYour Name 			The number of duplicate frames that have been detected
533*5113495bSYour Name 			<legal all>
534*5113495bSYour Name */
535*5113495bSYour Name 
536*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_DUPLICATE_COUNT_OFFSET                           0x0000000000000048
537*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_DUPLICATE_COUNT_LSB                              48
538*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_DUPLICATE_COUNT_MSB                              63
539*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_DUPLICATE_COUNT_MASK                             0xffff000000000000
540*5113495bSYour Name 
541*5113495bSYour Name 
542*5113495bSYour Name /* Description		FRAMES_IN_ORDER_COUNT
543*5113495bSYour Name 
544*5113495bSYour Name 			The number of frames that have been received in order (without
545*5113495bSYour Name 			 a hole that prevented them from being forwarded immediately)
546*5113495bSYour Name 
547*5113495bSYour Name 
548*5113495bSYour Name 			This corresponds to the Reorder opcodes:
549*5113495bSYour Name 			'FWDCUR' and 'FWD BUF'
550*5113495bSYour Name 
551*5113495bSYour Name 			<legal all>
552*5113495bSYour Name */
553*5113495bSYour Name 
554*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_FRAMES_IN_ORDER_COUNT_OFFSET                     0x0000000000000050
555*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_FRAMES_IN_ORDER_COUNT_LSB                        0
556*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_FRAMES_IN_ORDER_COUNT_MSB                        23
557*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_FRAMES_IN_ORDER_COUNT_MASK                       0x0000000000ffffff
558*5113495bSYour Name 
559*5113495bSYour Name 
560*5113495bSYour Name /* Description		BAR_RECEIVED_COUNT
561*5113495bSYour Name 
562*5113495bSYour Name 			The number of times a BAR frame is received.
563*5113495bSYour Name 
564*5113495bSYour Name 			This corresponds to the Reorder opcodes with 'DROP'
565*5113495bSYour Name 
566*5113495bSYour Name 			The counter saturates and freezes at 0xFF
567*5113495bSYour Name 			<legal all>
568*5113495bSYour Name */
569*5113495bSYour Name 
570*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_BAR_RECEIVED_COUNT_OFFSET                        0x0000000000000050
571*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_BAR_RECEIVED_COUNT_LSB                           24
572*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_BAR_RECEIVED_COUNT_MSB                           31
573*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_BAR_RECEIVED_COUNT_MASK                          0x00000000ff000000
574*5113495bSYour Name 
575*5113495bSYour Name 
576*5113495bSYour Name /* Description		MPDU_FRAMES_PROCESSED_COUNT
577*5113495bSYour Name 
578*5113495bSYour Name 			The total number of MPDU frames that have been processed
579*5113495bSYour Name 			 by REO. This includes the duplicates.
580*5113495bSYour Name 
581*5113495bSYour Name 			<legal all>
582*5113495bSYour Name */
583*5113495bSYour Name 
584*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_MPDU_FRAMES_PROCESSED_COUNT_OFFSET               0x0000000000000050
585*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_MPDU_FRAMES_PROCESSED_COUNT_LSB                  32
586*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_MPDU_FRAMES_PROCESSED_COUNT_MSB                  63
587*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_MPDU_FRAMES_PROCESSED_COUNT_MASK                 0xffffffff00000000
588*5113495bSYour Name 
589*5113495bSYour Name 
590*5113495bSYour Name /* Description		MSDU_FRAMES_PROCESSED_COUNT
591*5113495bSYour Name 
592*5113495bSYour Name 			The total number of MSDU frames that have been processed
593*5113495bSYour Name 			 by REO. This includes the duplicates.
594*5113495bSYour Name 
595*5113495bSYour Name 			<legal all>
596*5113495bSYour Name */
597*5113495bSYour Name 
598*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_MSDU_FRAMES_PROCESSED_COUNT_OFFSET               0x0000000000000058
599*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_MSDU_FRAMES_PROCESSED_COUNT_LSB                  0
600*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_MSDU_FRAMES_PROCESSED_COUNT_MSB                  31
601*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_MSDU_FRAMES_PROCESSED_COUNT_MASK                 0x00000000ffffffff
602*5113495bSYour Name 
603*5113495bSYour Name 
604*5113495bSYour Name /* Description		TOTAL_PROCESSED_BYTE_COUNT
605*5113495bSYour Name 
606*5113495bSYour Name 			An approximation of the number of bytes received for this
607*5113495bSYour Name 			 queue.
608*5113495bSYour Name 
609*5113495bSYour Name 			In 64 byte units
610*5113495bSYour Name 			<legal all>
611*5113495bSYour Name */
612*5113495bSYour Name 
613*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_TOTAL_PROCESSED_BYTE_COUNT_OFFSET                0x0000000000000058
614*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_TOTAL_PROCESSED_BYTE_COUNT_LSB                   32
615*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_TOTAL_PROCESSED_BYTE_COUNT_MSB                   63
616*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_TOTAL_PROCESSED_BYTE_COUNT_MASK                  0xffffffff00000000
617*5113495bSYour Name 
618*5113495bSYour Name 
619*5113495bSYour Name /* Description		LATE_RECEIVE_MPDU_COUNT
620*5113495bSYour Name 
621*5113495bSYour Name 			The number of MPDUs received after the window had already
622*5113495bSYour Name 			 moved on. The 'late' sequence window is defined as (Window
623*5113495bSYour Name 			 SSN - 256) - (Window SSN - 1)
624*5113495bSYour Name 
625*5113495bSYour Name 			This corresponds with Out of order detection in duplicate
626*5113495bSYour Name 			 detect FSM
627*5113495bSYour Name 
628*5113495bSYour Name 			The counter saturates and freezes at 0xFFF
629*5113495bSYour Name 
630*5113495bSYour Name 			<legal all>
631*5113495bSYour Name */
632*5113495bSYour Name 
633*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_LATE_RECEIVE_MPDU_COUNT_OFFSET                   0x0000000000000060
634*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_LATE_RECEIVE_MPDU_COUNT_LSB                      0
635*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_LATE_RECEIVE_MPDU_COUNT_MSB                      11
636*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_LATE_RECEIVE_MPDU_COUNT_MASK                     0x0000000000000fff
637*5113495bSYour Name 
638*5113495bSYour Name 
639*5113495bSYour Name /* Description		HOLE_COUNT
640*5113495bSYour Name 
641*5113495bSYour Name 			The number of times a hole was created in the receive bitmap.
642*5113495bSYour Name 
643*5113495bSYour Name 
644*5113495bSYour Name 			This corresponds to the Reorder opcodes with 'QCUR'
645*5113495bSYour Name 
646*5113495bSYour Name 			<legal all>
647*5113495bSYour Name */
648*5113495bSYour Name 
649*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_HOLE_COUNT_OFFSET                                0x0000000000000060
650*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_HOLE_COUNT_LSB                                   12
651*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_HOLE_COUNT_MSB                                   27
652*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_HOLE_COUNT_MASK                                  0x000000000ffff000
653*5113495bSYour Name 
654*5113495bSYour Name 
655*5113495bSYour Name /* Description		GET_QUEUE_1K_STATS_STATUS_TO_FOLLOW
656*5113495bSYour Name 
657*5113495bSYour Name 			Indicates that the queue supports a BA window size above
658*5113495bSYour Name 			 256, so a 'REO_GET_QUEUE_STATS_1K_STATUS' status TLV will
659*5113495bSYour Name 			 immediately follow.
660*5113495bSYour Name 
661*5113495bSYour Name 			<legal all>
662*5113495bSYour Name */
663*5113495bSYour Name 
664*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_GET_QUEUE_1K_STATS_STATUS_TO_FOLLOW_OFFSET       0x0000000000000060
665*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_GET_QUEUE_1K_STATS_STATUS_TO_FOLLOW_LSB          28
666*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_GET_QUEUE_1K_STATS_STATUS_TO_FOLLOW_MSB          28
667*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_GET_QUEUE_1K_STATS_STATUS_TO_FOLLOW_MASK         0x0000000010000000
668*5113495bSYour Name 
669*5113495bSYour Name 
670*5113495bSYour Name /* Description		RESERVED_24A
671*5113495bSYour Name 
672*5113495bSYour Name 			<legal 0>
673*5113495bSYour Name */
674*5113495bSYour Name 
675*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_RESERVED_24A_OFFSET                              0x0000000000000060
676*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_RESERVED_24A_LSB                                 29
677*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_RESERVED_24A_MSB                                 31
678*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_RESERVED_24A_MASK                                0x00000000e0000000
679*5113495bSYour Name 
680*5113495bSYour Name 
681*5113495bSYour Name /* Description		AGING_DROP_MPDU_COUNT
682*5113495bSYour Name 
683*5113495bSYour Name 			The number of holes in the bitmap that moved due to aging
684*5113495bSYour Name 			 counter expiry
685*5113495bSYour Name 			<legal all>
686*5113495bSYour Name */
687*5113495bSYour Name 
688*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_AGING_DROP_MPDU_COUNT_OFFSET                     0x0000000000000060
689*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_AGING_DROP_MPDU_COUNT_LSB                        32
690*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_AGING_DROP_MPDU_COUNT_MSB                        47
691*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_AGING_DROP_MPDU_COUNT_MASK                       0x0000ffff00000000
692*5113495bSYour Name 
693*5113495bSYour Name 
694*5113495bSYour Name /* Description		AGING_DROP_INTERVAL
695*5113495bSYour Name 
696*5113495bSYour Name 			The number of times holes got removed from the bitmap due
697*5113495bSYour Name 			 to aging counter expiry
698*5113495bSYour Name 			<legal all>
699*5113495bSYour Name */
700*5113495bSYour Name 
701*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_AGING_DROP_INTERVAL_OFFSET                       0x0000000000000060
702*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_AGING_DROP_INTERVAL_LSB                          48
703*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_AGING_DROP_INTERVAL_MSB                          55
704*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_AGING_DROP_INTERVAL_MASK                         0x00ff000000000000
705*5113495bSYour Name 
706*5113495bSYour Name 
707*5113495bSYour Name /* Description		RESERVED_25A
708*5113495bSYour Name 
709*5113495bSYour Name 			<legal 0>
710*5113495bSYour Name */
711*5113495bSYour Name 
712*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_RESERVED_25A_OFFSET                              0x0000000000000060
713*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_RESERVED_25A_LSB                                 56
714*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_RESERVED_25A_MSB                                 59
715*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_RESERVED_25A_MASK                                0x0f00000000000000
716*5113495bSYour Name 
717*5113495bSYour Name 
718*5113495bSYour Name /* Description		LOOPING_COUNT
719*5113495bSYour Name 
720*5113495bSYour Name 			A count value that indicates the number of times the producer
721*5113495bSYour Name 			 of entries into this Ring has looped around the ring.
722*5113495bSYour Name 			At initialization time, this value is set to 0. On the first
723*5113495bSYour Name 			 loop, this value is set to 1. After the max value is reached
724*5113495bSYour Name 			 allowed by the number of bits for this field, the count
725*5113495bSYour Name 			 value continues with 0 again.
726*5113495bSYour Name 
727*5113495bSYour Name 			In case SW is the consumer of the ring entries, it can use
728*5113495bSYour Name 			 this field to figure out up to where the producer of entries
729*5113495bSYour Name 			 has created new entries. This eliminates the need to check
730*5113495bSYour Name 			 where the "head pointer' of the ring is located once the
731*5113495bSYour Name 			 SW starts processing an interrupt indicating that new entries
732*5113495bSYour Name 			 have been put into this ring...
733*5113495bSYour Name 
734*5113495bSYour Name 			Also note that SW if it wants only needs to look at the
735*5113495bSYour Name 			LSB bit of this count value.
736*5113495bSYour Name 			<legal all>
737*5113495bSYour Name */
738*5113495bSYour Name 
739*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_LOOPING_COUNT_OFFSET                             0x0000000000000060
740*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_LOOPING_COUNT_LSB                                60
741*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_LOOPING_COUNT_MSB                                63
742*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_LOOPING_COUNT_MASK                               0xf000000000000000
743*5113495bSYour Name 
744*5113495bSYour Name 
745*5113495bSYour Name 
746*5113495bSYour Name #endif   // REO_GET_QUEUE_STATS_STATUS
747