1 
2 /*
3  * Copyright (c) 2024, Qualcomm Innovation Center, Inc. All rights reserved.
4  * SPDX-License-Identifier: ISC
5  */
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 #ifndef _MON_DESTINATION_RING_WITH_DROP_H_
20 #define _MON_DESTINATION_RING_WITH_DROP_H_
21 #if !defined(__ASSEMBLER__)
22 #endif
23 
24 #define NUM_OF_DWORDS_MON_DESTINATION_RING_WITH_DROP 4
25 
26 
27 struct mon_destination_ring_with_drop {
28 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN
29              uint32_t ppdu_drop_cnt                                           : 10,
30                       mpdu_drop_cnt                                           : 10,
31                       tlv_drop_cnt                                            : 10,
32                       end_of_ppdu_seen                                        :  1,
33                       reserved_0a                                             :  1;
34              uint32_t reserved_1a                                             : 32;
35              uint32_t ppdu_id                                                 : 32;
36              uint32_t reserved_3a                                             : 18,
37                       initiator                                               :  1,
38                       empty_descriptor                                        :  1,
39                       ring_id                                                 :  8,
40                       looping_count                                           :  4;
41 #else
42              uint32_t reserved_0a                                             :  1,
43                       end_of_ppdu_seen                                        :  1,
44                       tlv_drop_cnt                                            : 10,
45                       mpdu_drop_cnt                                           : 10,
46                       ppdu_drop_cnt                                           : 10;
47              uint32_t reserved_1a                                             : 32;
48              uint32_t ppdu_id                                                 : 32;
49              uint32_t looping_count                                           :  4,
50                       ring_id                                                 :  8,
51                       empty_descriptor                                        :  1,
52                       initiator                                               :  1,
53                       reserved_3a                                             : 18;
54 #endif
55 };
56 
57 
58 
59 
60 #define MON_DESTINATION_RING_WITH_DROP_PPDU_DROP_CNT_OFFSET                         0x00000000
61 #define MON_DESTINATION_RING_WITH_DROP_PPDU_DROP_CNT_LSB                            0
62 #define MON_DESTINATION_RING_WITH_DROP_PPDU_DROP_CNT_MSB                            9
63 #define MON_DESTINATION_RING_WITH_DROP_PPDU_DROP_CNT_MASK                           0x000003ff
64 
65 
66 
67 
68 #define MON_DESTINATION_RING_WITH_DROP_MPDU_DROP_CNT_OFFSET                         0x00000000
69 #define MON_DESTINATION_RING_WITH_DROP_MPDU_DROP_CNT_LSB                            10
70 #define MON_DESTINATION_RING_WITH_DROP_MPDU_DROP_CNT_MSB                            19
71 #define MON_DESTINATION_RING_WITH_DROP_MPDU_DROP_CNT_MASK                           0x000ffc00
72 
73 
74 
75 
76 #define MON_DESTINATION_RING_WITH_DROP_TLV_DROP_CNT_OFFSET                          0x00000000
77 #define MON_DESTINATION_RING_WITH_DROP_TLV_DROP_CNT_LSB                             20
78 #define MON_DESTINATION_RING_WITH_DROP_TLV_DROP_CNT_MSB                             29
79 #define MON_DESTINATION_RING_WITH_DROP_TLV_DROP_CNT_MASK                            0x3ff00000
80 
81 
82 
83 
84 #define MON_DESTINATION_RING_WITH_DROP_END_OF_PPDU_SEEN_OFFSET                      0x00000000
85 #define MON_DESTINATION_RING_WITH_DROP_END_OF_PPDU_SEEN_LSB                         30
86 #define MON_DESTINATION_RING_WITH_DROP_END_OF_PPDU_SEEN_MSB                         30
87 #define MON_DESTINATION_RING_WITH_DROP_END_OF_PPDU_SEEN_MASK                        0x40000000
88 
89 
90 
91 
92 #define MON_DESTINATION_RING_WITH_DROP_RESERVED_0A_OFFSET                           0x00000000
93 #define MON_DESTINATION_RING_WITH_DROP_RESERVED_0A_LSB                              31
94 #define MON_DESTINATION_RING_WITH_DROP_RESERVED_0A_MSB                              31
95 #define MON_DESTINATION_RING_WITH_DROP_RESERVED_0A_MASK                             0x80000000
96 
97 
98 
99 
100 #define MON_DESTINATION_RING_WITH_DROP_RESERVED_1A_OFFSET                           0x00000004
101 #define MON_DESTINATION_RING_WITH_DROP_RESERVED_1A_LSB                              0
102 #define MON_DESTINATION_RING_WITH_DROP_RESERVED_1A_MSB                              31
103 #define MON_DESTINATION_RING_WITH_DROP_RESERVED_1A_MASK                             0xffffffff
104 
105 
106 
107 
108 #define MON_DESTINATION_RING_WITH_DROP_PPDU_ID_OFFSET                               0x00000008
109 #define MON_DESTINATION_RING_WITH_DROP_PPDU_ID_LSB                                  0
110 #define MON_DESTINATION_RING_WITH_DROP_PPDU_ID_MSB                                  31
111 #define MON_DESTINATION_RING_WITH_DROP_PPDU_ID_MASK                                 0xffffffff
112 
113 
114 
115 
116 #define MON_DESTINATION_RING_WITH_DROP_RESERVED_3A_OFFSET                           0x0000000c
117 #define MON_DESTINATION_RING_WITH_DROP_RESERVED_3A_LSB                              0
118 #define MON_DESTINATION_RING_WITH_DROP_RESERVED_3A_MSB                              17
119 #define MON_DESTINATION_RING_WITH_DROP_RESERVED_3A_MASK                             0x0003ffff
120 
121 
122 
123 
124 #define MON_DESTINATION_RING_WITH_DROP_INITIATOR_OFFSET                             0x0000000c
125 #define MON_DESTINATION_RING_WITH_DROP_INITIATOR_LSB                                18
126 #define MON_DESTINATION_RING_WITH_DROP_INITIATOR_MSB                                18
127 #define MON_DESTINATION_RING_WITH_DROP_INITIATOR_MASK                               0x00040000
128 
129 
130 
131 
132 #define MON_DESTINATION_RING_WITH_DROP_EMPTY_DESCRIPTOR_OFFSET                      0x0000000c
133 #define MON_DESTINATION_RING_WITH_DROP_EMPTY_DESCRIPTOR_LSB                         19
134 #define MON_DESTINATION_RING_WITH_DROP_EMPTY_DESCRIPTOR_MSB                         19
135 #define MON_DESTINATION_RING_WITH_DROP_EMPTY_DESCRIPTOR_MASK                        0x00080000
136 
137 
138 
139 
140 #define MON_DESTINATION_RING_WITH_DROP_RING_ID_OFFSET                               0x0000000c
141 #define MON_DESTINATION_RING_WITH_DROP_RING_ID_LSB                                  20
142 #define MON_DESTINATION_RING_WITH_DROP_RING_ID_MSB                                  27
143 #define MON_DESTINATION_RING_WITH_DROP_RING_ID_MASK                                 0x0ff00000
144 
145 
146 
147 
148 #define MON_DESTINATION_RING_WITH_DROP_LOOPING_COUNT_OFFSET                         0x0000000c
149 #define MON_DESTINATION_RING_WITH_DROP_LOOPING_COUNT_LSB                            28
150 #define MON_DESTINATION_RING_WITH_DROP_LOOPING_COUNT_MSB                            31
151 #define MON_DESTINATION_RING_WITH_DROP_LOOPING_COUNT_MASK                           0xf0000000
152 
153 
154 
155 #endif
156