xref: /wlan-driver/fw-api/hw/kiwi/v2/tx_fes_status_ack_or_ba.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1 
2 /*
3  * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
4  *
5  * Permission to use, copy, modify, and/or distribute this software for any
6  * purpose with or without fee is hereby granted, provided that the above
7  * copyright notice and this permission notice appear in all copies.
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16  */
17 
18 
19 
20 #ifndef _TX_FES_STATUS_ACK_OR_BA_H_
21 #define _TX_FES_STATUS_ACK_OR_BA_H_
22 #if !defined(__ASSEMBLER__)
23 #endif
24 
25 #define NUM_OF_DWORDS_TX_FES_STATUS_ACK_OR_BA 10
26 
27 #define NUM_OF_QWORDS_TX_FES_STATUS_ACK_OR_BA 5
28 
29 struct tx_fes_status_ack_or_ba {
30 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN
31              uint32_t ack_ba_status_type                                      :  1,
32                       ba_type                                                 :  1,
33                       ba_tid                                                  :  4,
34                       unexpected_ack_or_ba                                    :  1,
35                       response_timeout                                        :  1,
36                       ack_frame_rssi                                          :  8,
37                       ssn                                                     : 12,
38                       reserved_0b                                             :  4;
39              uint32_t sw_peer_id                                              : 16,
40                       reserved_1a                                             : 16;
41              uint32_t ba_bitmap_31_0                                          : 32;
42              uint32_t ba_bitmap_63_32                                         : 32;
43              uint32_t ba_bitmap_95_64                                         : 32;
44              uint32_t ba_bitmap_127_96                                        : 32;
45              uint32_t ba_bitmap_159_128                                       : 32;
46              uint32_t ba_bitmap_191_160                                       : 32;
47              uint32_t ba_bitmap_223_192                                       : 32;
48              uint32_t ba_bitmap_255_224                                       : 32;
49 #else
50              uint32_t reserved_0b                                             :  4,
51                       ssn                                                     : 12,
52                       ack_frame_rssi                                          :  8,
53                       response_timeout                                        :  1,
54                       unexpected_ack_or_ba                                    :  1,
55                       ba_tid                                                  :  4,
56                       ba_type                                                 :  1,
57                       ack_ba_status_type                                      :  1;
58              uint32_t reserved_1a                                             : 16,
59                       sw_peer_id                                              : 16;
60              uint32_t ba_bitmap_31_0                                          : 32;
61              uint32_t ba_bitmap_63_32                                         : 32;
62              uint32_t ba_bitmap_95_64                                         : 32;
63              uint32_t ba_bitmap_127_96                                        : 32;
64              uint32_t ba_bitmap_159_128                                       : 32;
65              uint32_t ba_bitmap_191_160                                       : 32;
66              uint32_t ba_bitmap_223_192                                       : 32;
67              uint32_t ba_bitmap_255_224                                       : 32;
68 #endif
69 };
70 
71 #define TX_FES_STATUS_ACK_OR_BA_ACK_BA_STATUS_TYPE_OFFSET                           0x0000000000000000
72 #define TX_FES_STATUS_ACK_OR_BA_ACK_BA_STATUS_TYPE_LSB                              0
73 #define TX_FES_STATUS_ACK_OR_BA_ACK_BA_STATUS_TYPE_MSB                              0
74 #define TX_FES_STATUS_ACK_OR_BA_ACK_BA_STATUS_TYPE_MASK                             0x0000000000000001
75 
76 #define TX_FES_STATUS_ACK_OR_BA_BA_TYPE_OFFSET                                      0x0000000000000000
77 #define TX_FES_STATUS_ACK_OR_BA_BA_TYPE_LSB                                         1
78 #define TX_FES_STATUS_ACK_OR_BA_BA_TYPE_MSB                                         1
79 #define TX_FES_STATUS_ACK_OR_BA_BA_TYPE_MASK                                        0x0000000000000002
80 
81 #define TX_FES_STATUS_ACK_OR_BA_BA_TID_OFFSET                                       0x0000000000000000
82 #define TX_FES_STATUS_ACK_OR_BA_BA_TID_LSB                                          2
83 #define TX_FES_STATUS_ACK_OR_BA_BA_TID_MSB                                          5
84 #define TX_FES_STATUS_ACK_OR_BA_BA_TID_MASK                                         0x000000000000003c
85 
86 #define TX_FES_STATUS_ACK_OR_BA_UNEXPECTED_ACK_OR_BA_OFFSET                         0x0000000000000000
87 #define TX_FES_STATUS_ACK_OR_BA_UNEXPECTED_ACK_OR_BA_LSB                            6
88 #define TX_FES_STATUS_ACK_OR_BA_UNEXPECTED_ACK_OR_BA_MSB                            6
89 #define TX_FES_STATUS_ACK_OR_BA_UNEXPECTED_ACK_OR_BA_MASK                           0x0000000000000040
90 
91 #define TX_FES_STATUS_ACK_OR_BA_RESPONSE_TIMEOUT_OFFSET                             0x0000000000000000
92 #define TX_FES_STATUS_ACK_OR_BA_RESPONSE_TIMEOUT_LSB                                7
93 #define TX_FES_STATUS_ACK_OR_BA_RESPONSE_TIMEOUT_MSB                                7
94 #define TX_FES_STATUS_ACK_OR_BA_RESPONSE_TIMEOUT_MASK                               0x0000000000000080
95 
96 #define TX_FES_STATUS_ACK_OR_BA_ACK_FRAME_RSSI_OFFSET                               0x0000000000000000
97 #define TX_FES_STATUS_ACK_OR_BA_ACK_FRAME_RSSI_LSB                                  8
98 #define TX_FES_STATUS_ACK_OR_BA_ACK_FRAME_RSSI_MSB                                  15
99 #define TX_FES_STATUS_ACK_OR_BA_ACK_FRAME_RSSI_MASK                                 0x000000000000ff00
100 
101 #define TX_FES_STATUS_ACK_OR_BA_SSN_OFFSET                                          0x0000000000000000
102 #define TX_FES_STATUS_ACK_OR_BA_SSN_LSB                                             16
103 #define TX_FES_STATUS_ACK_OR_BA_SSN_MSB                                             27
104 #define TX_FES_STATUS_ACK_OR_BA_SSN_MASK                                            0x000000000fff0000
105 
106 #define TX_FES_STATUS_ACK_OR_BA_RESERVED_0B_OFFSET                                  0x0000000000000000
107 #define TX_FES_STATUS_ACK_OR_BA_RESERVED_0B_LSB                                     28
108 #define TX_FES_STATUS_ACK_OR_BA_RESERVED_0B_MSB                                     31
109 #define TX_FES_STATUS_ACK_OR_BA_RESERVED_0B_MASK                                    0x00000000f0000000
110 
111 #define TX_FES_STATUS_ACK_OR_BA_SW_PEER_ID_OFFSET                                   0x0000000000000000
112 #define TX_FES_STATUS_ACK_OR_BA_SW_PEER_ID_LSB                                      32
113 #define TX_FES_STATUS_ACK_OR_BA_SW_PEER_ID_MSB                                      47
114 #define TX_FES_STATUS_ACK_OR_BA_SW_PEER_ID_MASK                                     0x0000ffff00000000
115 
116 #define TX_FES_STATUS_ACK_OR_BA_RESERVED_1A_OFFSET                                  0x0000000000000000
117 #define TX_FES_STATUS_ACK_OR_BA_RESERVED_1A_LSB                                     48
118 #define TX_FES_STATUS_ACK_OR_BA_RESERVED_1A_MSB                                     63
119 #define TX_FES_STATUS_ACK_OR_BA_RESERVED_1A_MASK                                    0xffff000000000000
120 
121 #define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_31_0_OFFSET                               0x0000000000000008
122 #define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_31_0_LSB                                  0
123 #define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_31_0_MSB                                  31
124 #define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_31_0_MASK                                 0x00000000ffffffff
125 
126 #define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_63_32_OFFSET                              0x0000000000000008
127 #define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_63_32_LSB                                 32
128 #define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_63_32_MSB                                 63
129 #define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_63_32_MASK                                0xffffffff00000000
130 
131 #define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_95_64_OFFSET                              0x0000000000000010
132 #define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_95_64_LSB                                 0
133 #define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_95_64_MSB                                 31
134 #define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_95_64_MASK                                0x00000000ffffffff
135 
136 #define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_127_96_OFFSET                             0x0000000000000010
137 #define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_127_96_LSB                                32
138 #define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_127_96_MSB                                63
139 #define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_127_96_MASK                               0xffffffff00000000
140 
141 #define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_159_128_OFFSET                            0x0000000000000018
142 #define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_159_128_LSB                               0
143 #define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_159_128_MSB                               31
144 #define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_159_128_MASK                              0x00000000ffffffff
145 
146 #define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_191_160_OFFSET                            0x0000000000000018
147 #define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_191_160_LSB                               32
148 #define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_191_160_MSB                               63
149 #define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_191_160_MASK                              0xffffffff00000000
150 
151 #define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_223_192_OFFSET                            0x0000000000000020
152 #define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_223_192_LSB                               0
153 #define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_223_192_MSB                               31
154 #define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_223_192_MASK                              0x00000000ffffffff
155 
156 #define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_255_224_OFFSET                            0x0000000000000020
157 #define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_255_224_LSB                               32
158 #define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_255_224_MSB                               63
159 #define TX_FES_STATUS_ACK_OR_BA_BA_BITMAP_255_224_MASK                              0xffffffff00000000
160 
161 #endif
162