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_DROP_H_
20 #define _MON_DROP_H_
21 #if !defined(__ASSEMBLER__)
22 #endif
23 
24 #define NUM_OF_DWORDS_MON_DROP 2
25 
26 #define NUM_OF_QWORDS_MON_DROP 1
27 
28 
29 struct mon_drop {
30 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN
31              uint32_t ppdu_id                                                 : 32;
32              uint32_t ppdu_drop_cnt                                           : 10,
33                       mpdu_drop_cnt                                           : 10,
34                       tlv_drop_cnt                                            : 10,
35                       end_of_ppdu_seen                                        :  1,
36                       reserved_1a                                             :  1;
37 #else
38              uint32_t ppdu_id                                                 : 32;
39              uint32_t reserved_1a                                             :  1,
40                       end_of_ppdu_seen                                        :  1,
41                       tlv_drop_cnt                                            : 10,
42                       mpdu_drop_cnt                                           : 10,
43                       ppdu_drop_cnt                                           : 10;
44 #endif
45 };
46 
47 
48 
49 
50 #define MON_DROP_PPDU_ID_OFFSET                                                     0x0000000000000000
51 #define MON_DROP_PPDU_ID_LSB                                                        0
52 #define MON_DROP_PPDU_ID_MSB                                                        31
53 #define MON_DROP_PPDU_ID_MASK                                                       0x00000000ffffffff
54 
55 
56 
57 
58 #define MON_DROP_PPDU_DROP_CNT_OFFSET                                               0x0000000000000000
59 #define MON_DROP_PPDU_DROP_CNT_LSB                                                  32
60 #define MON_DROP_PPDU_DROP_CNT_MSB                                                  41
61 #define MON_DROP_PPDU_DROP_CNT_MASK                                                 0x000003ff00000000
62 
63 
64 
65 
66 #define MON_DROP_MPDU_DROP_CNT_OFFSET                                               0x0000000000000000
67 #define MON_DROP_MPDU_DROP_CNT_LSB                                                  42
68 #define MON_DROP_MPDU_DROP_CNT_MSB                                                  51
69 #define MON_DROP_MPDU_DROP_CNT_MASK                                                 0x000ffc0000000000
70 
71 
72 
73 
74 #define MON_DROP_TLV_DROP_CNT_OFFSET                                                0x0000000000000000
75 #define MON_DROP_TLV_DROP_CNT_LSB                                                   52
76 #define MON_DROP_TLV_DROP_CNT_MSB                                                   61
77 #define MON_DROP_TLV_DROP_CNT_MASK                                                  0x3ff0000000000000
78 
79 
80 
81 
82 #define MON_DROP_END_OF_PPDU_SEEN_OFFSET                                            0x0000000000000000
83 #define MON_DROP_END_OF_PPDU_SEEN_LSB                                               62
84 #define MON_DROP_END_OF_PPDU_SEEN_MSB                                               62
85 #define MON_DROP_END_OF_PPDU_SEEN_MASK                                              0x4000000000000000
86 
87 
88 
89 
90 #define MON_DROP_RESERVED_1A_OFFSET                                                 0x0000000000000000
91 #define MON_DROP_RESERVED_1A_LSB                                                    63
92 #define MON_DROP_RESERVED_1A_MSB                                                    63
93 #define MON_DROP_RESERVED_1A_MASK                                                   0x8000000000000000
94 
95 
96 
97 #endif
98