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