xref: /wlan-driver/fw-api/hw/wcn6450/v1/reo_get_queue_stats_status.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1*5113495bSYour Name 
2*5113495bSYour Name /*
3*5113495bSYour Name  * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
4*5113495bSYour Name  *
5*5113495bSYour Name  * Permission to use, copy, modify, and/or distribute this software for
6*5113495bSYour Name  * any purpose with or without fee is hereby granted, provided that the
7*5113495bSYour Name  * above copyright notice and this permission notice appear in all
8*5113495bSYour Name  * copies.
9*5113495bSYour Name  *
10*5113495bSYour Name  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
11*5113495bSYour Name  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
12*5113495bSYour Name  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
13*5113495bSYour Name  * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
14*5113495bSYour Name  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
15*5113495bSYour Name  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
16*5113495bSYour Name  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17*5113495bSYour Name  * PERFORMANCE OF THIS SOFTWARE.
18*5113495bSYour Name  */
19*5113495bSYour Name 
20*5113495bSYour Name 
21*5113495bSYour Name 
22*5113495bSYour Name #ifndef _REO_GET_QUEUE_STATS_STATUS_H_
23*5113495bSYour Name #define _REO_GET_QUEUE_STATS_STATUS_H_
24*5113495bSYour Name #if !defined(__ASSEMBLER__)
25*5113495bSYour Name #endif
26*5113495bSYour Name 
27*5113495bSYour Name #include "uniform_reo_status_header.h"
28*5113495bSYour Name 
29*5113495bSYour Name #define NUM_OF_DWORDS_REO_GET_QUEUE_STATS_STATUS 25
30*5113495bSYour Name 
31*5113495bSYour Name struct reo_get_queue_stats_status {
32*5113495bSYour Name     struct            uniform_reo_status_header                       status_header;
33*5113495bSYour Name              uint32_t ssn                             : 12,
34*5113495bSYour Name                       current_index                   :  8,
35*5113495bSYour Name                       reserved_2                      : 12;
36*5113495bSYour Name              uint32_t pn_31_0                         : 32;
37*5113495bSYour Name              uint32_t pn_63_32                        : 32;
38*5113495bSYour Name              uint32_t pn_95_64                        : 32;
39*5113495bSYour Name              uint32_t pn_127_96                       : 32;
40*5113495bSYour Name              uint32_t last_rx_enqueue_timestamp       : 32;
41*5113495bSYour Name              uint32_t last_rx_dequeue_timestamp       : 32;
42*5113495bSYour Name              uint32_t rx_bitmap_31_0                  : 32;
43*5113495bSYour Name              uint32_t rx_bitmap_63_32                 : 32;
44*5113495bSYour Name              uint32_t rx_bitmap_95_64                 : 32;
45*5113495bSYour Name              uint32_t rx_bitmap_127_96                : 32;
46*5113495bSYour Name              uint32_t rx_bitmap_159_128               : 32;
47*5113495bSYour Name              uint32_t rx_bitmap_191_160               : 32;
48*5113495bSYour Name              uint32_t rx_bitmap_223_192               : 32;
49*5113495bSYour Name              uint32_t rx_bitmap_255_224               : 32;
50*5113495bSYour Name              uint32_t current_mpdu_count              :  7,
51*5113495bSYour Name                       current_msdu_count              : 25;
52*5113495bSYour Name              uint32_t reserved_18                     :  4,
53*5113495bSYour Name                       timeout_count                   :  6,
54*5113495bSYour Name                       forward_due_to_bar_count        :  6,
55*5113495bSYour Name                       duplicate_count                 : 16;
56*5113495bSYour Name              uint32_t frames_in_order_count           : 24,
57*5113495bSYour Name                       bar_received_count              :  8;
58*5113495bSYour Name              uint32_t mpdu_frames_processed_count     : 32;
59*5113495bSYour Name              uint32_t msdu_frames_processed_count     : 32;
60*5113495bSYour Name              uint32_t total_processed_byte_count      : 32;
61*5113495bSYour Name              uint32_t late_receive_mpdu_count         : 12,
62*5113495bSYour Name                       window_jump_2k                  :  4,
63*5113495bSYour Name                       hole_count                      : 16;
64*5113495bSYour Name              uint32_t reserved_24a                    : 28,
65*5113495bSYour Name                       looping_count                   :  4;
66*5113495bSYour Name };
67*5113495bSYour Name 
68*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_REO_STATUS_NUMBER_OFFSET 0x00000000
69*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_REO_STATUS_NUMBER_LSB 0
70*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_REO_STATUS_NUMBER_MASK 0x0000ffff
71*5113495bSYour Name 
72*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_CMD_EXECUTION_TIME_OFFSET 0x00000000
73*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_CMD_EXECUTION_TIME_LSB 16
74*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_CMD_EXECUTION_TIME_MASK 0x03ff0000
75*5113495bSYour Name 
76*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_OFFSET 0x00000000
77*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_LSB 26
78*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_REO_CMD_EXECUTION_STATUS_MASK 0x0c000000
79*5113495bSYour Name 
80*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_RESERVED_0A_OFFSET 0x00000000
81*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_RESERVED_0A_LSB   28
82*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_0_STATUS_HEADER_RESERVED_0A_MASK  0xf0000000
83*5113495bSYour Name 
84*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_1_STATUS_HEADER_TIMESTAMP_OFFSET  0x00000004
85*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_1_STATUS_HEADER_TIMESTAMP_LSB     0
86*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_1_STATUS_HEADER_TIMESTAMP_MASK    0xffffffff
87*5113495bSYour Name 
88*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_2_SSN_OFFSET                      0x00000008
89*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_2_SSN_LSB                         0
90*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_2_SSN_MASK                        0x00000fff
91*5113495bSYour Name 
92*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_2_CURRENT_INDEX_OFFSET            0x00000008
93*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_2_CURRENT_INDEX_LSB               12
94*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_2_CURRENT_INDEX_MASK              0x000ff000
95*5113495bSYour Name 
96*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_2_RESERVED_2_OFFSET               0x00000008
97*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_2_RESERVED_2_LSB                  20
98*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_2_RESERVED_2_MASK                 0xfff00000
99*5113495bSYour Name 
100*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_3_PN_31_0_OFFSET                  0x0000000c
101*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_3_PN_31_0_LSB                     0
102*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_3_PN_31_0_MASK                    0xffffffff
103*5113495bSYour Name 
104*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_4_PN_63_32_OFFSET                 0x00000010
105*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_4_PN_63_32_LSB                    0
106*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_4_PN_63_32_MASK                   0xffffffff
107*5113495bSYour Name 
108*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_5_PN_95_64_OFFSET                 0x00000014
109*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_5_PN_95_64_LSB                    0
110*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_5_PN_95_64_MASK                   0xffffffff
111*5113495bSYour Name 
112*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_6_PN_127_96_OFFSET                0x00000018
113*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_6_PN_127_96_LSB                   0
114*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_6_PN_127_96_MASK                  0xffffffff
115*5113495bSYour Name 
116*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_7_LAST_RX_ENQUEUE_TIMESTAMP_OFFSET 0x0000001c
117*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_7_LAST_RX_ENQUEUE_TIMESTAMP_LSB   0
118*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_7_LAST_RX_ENQUEUE_TIMESTAMP_MASK  0xffffffff
119*5113495bSYour Name 
120*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_8_LAST_RX_DEQUEUE_TIMESTAMP_OFFSET 0x00000020
121*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_8_LAST_RX_DEQUEUE_TIMESTAMP_LSB   0
122*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_8_LAST_RX_DEQUEUE_TIMESTAMP_MASK  0xffffffff
123*5113495bSYour Name 
124*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_9_RX_BITMAP_31_0_OFFSET           0x00000024
125*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_9_RX_BITMAP_31_0_LSB              0
126*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_9_RX_BITMAP_31_0_MASK             0xffffffff
127*5113495bSYour Name 
128*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_10_RX_BITMAP_63_32_OFFSET         0x00000028
129*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_10_RX_BITMAP_63_32_LSB            0
130*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_10_RX_BITMAP_63_32_MASK           0xffffffff
131*5113495bSYour Name 
132*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_11_RX_BITMAP_95_64_OFFSET         0x0000002c
133*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_11_RX_BITMAP_95_64_LSB            0
134*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_11_RX_BITMAP_95_64_MASK           0xffffffff
135*5113495bSYour Name 
136*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_12_RX_BITMAP_127_96_OFFSET        0x00000030
137*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_12_RX_BITMAP_127_96_LSB           0
138*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_12_RX_BITMAP_127_96_MASK          0xffffffff
139*5113495bSYour Name 
140*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_13_RX_BITMAP_159_128_OFFSET       0x00000034
141*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_13_RX_BITMAP_159_128_LSB          0
142*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_13_RX_BITMAP_159_128_MASK         0xffffffff
143*5113495bSYour Name 
144*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_14_RX_BITMAP_191_160_OFFSET       0x00000038
145*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_14_RX_BITMAP_191_160_LSB          0
146*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_14_RX_BITMAP_191_160_MASK         0xffffffff
147*5113495bSYour Name 
148*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_15_RX_BITMAP_223_192_OFFSET       0x0000003c
149*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_15_RX_BITMAP_223_192_LSB          0
150*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_15_RX_BITMAP_223_192_MASK         0xffffffff
151*5113495bSYour Name 
152*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_16_RX_BITMAP_255_224_OFFSET       0x00000040
153*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_16_RX_BITMAP_255_224_LSB          0
154*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_16_RX_BITMAP_255_224_MASK         0xffffffff
155*5113495bSYour Name 
156*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_17_CURRENT_MPDU_COUNT_OFFSET      0x00000044
157*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_17_CURRENT_MPDU_COUNT_LSB         0
158*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_17_CURRENT_MPDU_COUNT_MASK        0x0000007f
159*5113495bSYour Name 
160*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_17_CURRENT_MSDU_COUNT_OFFSET      0x00000044
161*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_17_CURRENT_MSDU_COUNT_LSB         7
162*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_17_CURRENT_MSDU_COUNT_MASK        0xffffff80
163*5113495bSYour Name 
164*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_18_RESERVED_18_OFFSET             0x00000048
165*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_18_RESERVED_18_LSB                0
166*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_18_RESERVED_18_MASK               0x0000000f
167*5113495bSYour Name 
168*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_18_TIMEOUT_COUNT_OFFSET           0x00000048
169*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_18_TIMEOUT_COUNT_LSB              4
170*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_18_TIMEOUT_COUNT_MASK             0x000003f0
171*5113495bSYour Name 
172*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_18_FORWARD_DUE_TO_BAR_COUNT_OFFSET 0x00000048
173*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_18_FORWARD_DUE_TO_BAR_COUNT_LSB   10
174*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_18_FORWARD_DUE_TO_BAR_COUNT_MASK  0x0000fc00
175*5113495bSYour Name 
176*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_18_DUPLICATE_COUNT_OFFSET         0x00000048
177*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_18_DUPLICATE_COUNT_LSB            16
178*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_18_DUPLICATE_COUNT_MASK           0xffff0000
179*5113495bSYour Name 
180*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_19_FRAMES_IN_ORDER_COUNT_OFFSET   0x0000004c
181*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_19_FRAMES_IN_ORDER_COUNT_LSB      0
182*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_19_FRAMES_IN_ORDER_COUNT_MASK     0x00ffffff
183*5113495bSYour Name 
184*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_19_BAR_RECEIVED_COUNT_OFFSET      0x0000004c
185*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_19_BAR_RECEIVED_COUNT_LSB         24
186*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_19_BAR_RECEIVED_COUNT_MASK        0xff000000
187*5113495bSYour Name 
188*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_20_MPDU_FRAMES_PROCESSED_COUNT_OFFSET 0x00000050
189*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_20_MPDU_FRAMES_PROCESSED_COUNT_LSB 0
190*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_20_MPDU_FRAMES_PROCESSED_COUNT_MASK 0xffffffff
191*5113495bSYour Name 
192*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_21_MSDU_FRAMES_PROCESSED_COUNT_OFFSET 0x00000054
193*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_21_MSDU_FRAMES_PROCESSED_COUNT_LSB 0
194*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_21_MSDU_FRAMES_PROCESSED_COUNT_MASK 0xffffffff
195*5113495bSYour Name 
196*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_22_TOTAL_PROCESSED_BYTE_COUNT_OFFSET 0x00000058
197*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_22_TOTAL_PROCESSED_BYTE_COUNT_LSB 0
198*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_22_TOTAL_PROCESSED_BYTE_COUNT_MASK 0xffffffff
199*5113495bSYour Name 
200*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_23_LATE_RECEIVE_MPDU_COUNT_OFFSET 0x0000005c
201*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_23_LATE_RECEIVE_MPDU_COUNT_LSB    0
202*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_23_LATE_RECEIVE_MPDU_COUNT_MASK   0x00000fff
203*5113495bSYour Name 
204*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_23_WINDOW_JUMP_2K_OFFSET          0x0000005c
205*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_23_WINDOW_JUMP_2K_LSB             12
206*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_23_WINDOW_JUMP_2K_MASK            0x0000f000
207*5113495bSYour Name 
208*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_23_HOLE_COUNT_OFFSET              0x0000005c
209*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_23_HOLE_COUNT_LSB                 16
210*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_23_HOLE_COUNT_MASK                0xffff0000
211*5113495bSYour Name 
212*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_24_RESERVED_24A_OFFSET            0x00000060
213*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_24_RESERVED_24A_LSB               0
214*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_24_RESERVED_24A_MASK              0x0fffffff
215*5113495bSYour Name 
216*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_24_LOOPING_COUNT_OFFSET           0x00000060
217*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_24_LOOPING_COUNT_LSB              28
218*5113495bSYour Name #define REO_GET_QUEUE_STATS_STATUS_24_LOOPING_COUNT_MASK             0xf0000000
219*5113495bSYour Name 
220*5113495bSYour Name #endif
221