xref: /wlan-driver/fw-api/hw/qca5332/received_trigger_info.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1 
2 /* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
3  *
4  * Permission to use, copy, modify, and/or distribute this software for any
5  * purpose with or without fee is hereby granted, provided that the above
6  * copyright notice and this permission notice appear in all copies.
7  *
8  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15  */
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 #ifndef _RECEIVED_TRIGGER_INFO_H_
27 #define _RECEIVED_TRIGGER_INFO_H_
28 #if !defined(__ASSEMBLER__)
29 #endif
30 
31 #include "received_trigger_info_details.h"
32 #define NUM_OF_DWORDS_RECEIVED_TRIGGER_INFO 6
33 
34 #define NUM_OF_QWORDS_RECEIVED_TRIGGER_INFO 3
35 
36 
37 struct received_trigger_info {
38 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN
39              struct   received_trigger_info_details                             received_trigger_details;
40              uint32_t tlv64_padding                                           : 32; // [31:0]
41 #else
42              struct   received_trigger_info_details                             received_trigger_details;
43              uint32_t tlv64_padding                                           : 32; // [31:0]
44 #endif
45 };
46 
47 
48 /* Description		RECEIVED_TRIGGER_DETAILS
49 
50 			Info related to the type of trigger (that potentially requires
51 			 SIFS response) that was received
52 */
53 
54 
55 /* Description		TRIGGER_TYPE
56 
57 			This field indicates for what type of trigger has been received
58 
59 
60 			<enum 0 SCH_Qboost_trigger>
61 			<enum 1 SCH_PSPOLL_trigger>
62 			<enum 2 SCH_UAPSD_trigger>
63 			<enum 3 SCH_11ax_trigger>
64 			Field "AX_trigger_type" indicates the ID of the received
65 			 trigger
66 			<enum 7 SCH_EHT_trigger>
67 			Field "AX_trigger_type" indicates the ID of the received
68 			 trigger
69 			<enum 4 SCH_11ax_wildcard_trigger>
70 			Field "AX_trigger_type" indicates the ID of the received
71 			 trigger
72 			<enum 5 SCH_11ax_unassoc_wildcard_trigger>
73 			Field "AX_trigger_type" indicates the ID of the received
74 			 trigger
75 			<enum 6 SCH_11az_ranging_trigger> Field "AX_trigger_type"
76 			indicates the subtype of the received trigger
77 
78 			<legal 0-7>
79 */
80 
81 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_TRIGGER_TYPE_OFFSET          0x0000000000000000
82 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_TRIGGER_TYPE_LSB             0
83 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_TRIGGER_TYPE_MSB             3
84 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_TRIGGER_TYPE_MASK            0x000000000000000f
85 
86 
87 /* Description		AX_TRIGGER_SOURCE
88 
89 			Field Only valid when Trigger_type  is an 11ax related trigger
90 
91 
92 			<enum 0 11ax_trigger_frame>
93 			<enum 1 he_control_based_trigger>
94 
95 			<legal all>
96 */
97 
98 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_AX_TRIGGER_SOURCE_OFFSET     0x0000000000000000
99 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_AX_TRIGGER_SOURCE_LSB        4
100 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_AX_TRIGGER_SOURCE_MSB        4
101 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_AX_TRIGGER_SOURCE_MASK       0x0000000000000010
102 
103 
104 /* Description		AX_TRIGGER_TYPE
105 
106 			Field Only valid when Trigger_type  is an 11ax related trigger
107 
108 
109 			The 11AX trigger type/ trigger number:
110 			It identifies which trigger was received.
111 			<enum 0 ax_trigger_basic>
112 			<enum 1 ax_trigger_brpoll>
113 			<enum 2 ax_trigger_mu_bar>
114 			<enum 3 ax_trigger_mu_rts>
115 			<enum 4 ax_trigger_buffer_size>
116 			<enum 5 ax_trigger_gcr_mu_bar>
117 			<enum 6 ax_trigger_BQRP>
118 			<enum 7 ax_trigger_NDP_fb_report_poll>
119 			<enum 8 ax_tb_ranging_trigger> Indicates the reception of
120 			 Ranging Trigger Frame of subvariant indicated by Ranging_Trigger_Subtype
121 
122 			<enum 9 ax_trigger_reserved_9>
123 			<enum 10 ax_trigger_reserved_10>
124 			<enum 11 ax_trigger_reserved_11>
125 			<enum 12 ax_trigger_reserved_12>
126 			<enum 13 ax_trigger_reserved_13>
127 			<enum 14 ax_trigger_reserved_14>
128 			<enum 15 ax_trigger_reserved_15>
129 
130 			<legal all>
131 */
132 
133 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_AX_TRIGGER_TYPE_OFFSET       0x0000000000000000
134 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_AX_TRIGGER_TYPE_LSB          5
135 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_AX_TRIGGER_TYPE_MSB          8
136 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_AX_TRIGGER_TYPE_MASK         0x00000000000001e0
137 
138 
139 /* Description		TRIGGER_SOURCE_STA_FULL_AID
140 
141 			The sta_full_aid of the sta/ap that generated the trigger.
142 
143 			Comes from the address_search_entry
144 
145 			<legal all>
146 */
147 
148 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_TRIGGER_SOURCE_STA_FULL_AID_OFFSET 0x0000000000000000
149 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_TRIGGER_SOURCE_STA_FULL_AID_LSB 9
150 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_TRIGGER_SOURCE_STA_FULL_AID_MSB 21
151 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_TRIGGER_SOURCE_STA_FULL_AID_MASK 0x00000000003ffe00
152 
153 
154 /* Description		FRAME_CONTROL_VALID
155 
156 			When set, the 'frame_control' field contains valid info
157 			<legal all>
158 */
159 
160 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_FRAME_CONTROL_VALID_OFFSET   0x0000000000000000
161 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_FRAME_CONTROL_VALID_LSB      22
162 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_FRAME_CONTROL_VALID_MSB      22
163 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_FRAME_CONTROL_VALID_MASK     0x0000000000400000
164 
165 
166 /* Description		QOS_CONTROL_VALID
167 
168 			When set, the 'QoS_control' field contains valid info
169 			<legal all>
170 */
171 
172 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_QOS_CONTROL_VALID_OFFSET     0x0000000000000000
173 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_QOS_CONTROL_VALID_LSB        23
174 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_QOS_CONTROL_VALID_MSB        23
175 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_QOS_CONTROL_VALID_MASK       0x0000000000800000
176 
177 
178 /* Description		HE_CONTROL_INFO_VALID
179 
180 			When set, the 'HE control' field contains valid info
181 			<legal all>
182 */
183 
184 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_HE_CONTROL_INFO_VALID_OFFSET 0x0000000000000000
185 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_HE_CONTROL_INFO_VALID_LSB    24
186 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_HE_CONTROL_INFO_VALID_MSB    24
187 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_HE_CONTROL_INFO_VALID_MASK   0x0000000001000000
188 
189 
190 /* Description		RANGING_TRIGGER_SUBTYPE
191 
192 			Field only valid if  AX_Trigger_type = ax_tb_ranging_trigger
193 
194 
195 			Indicates the Trigger subtype for the current ranging TF
196 
197 
198 			<enum 0 TF_Poll>
199 			<enum 1 TF_Sound>
200 			<enum 2 TF_Secure_Sound>
201 			<enum 3 TF_Report>
202 
203 			<legal 0-3>
204 */
205 
206 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RANGING_TRIGGER_SUBTYPE_OFFSET 0x0000000000000000
207 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RANGING_TRIGGER_SUBTYPE_LSB  25
208 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RANGING_TRIGGER_SUBTYPE_MSB  28
209 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RANGING_TRIGGER_SUBTYPE_MASK 0x000000001e000000
210 
211 
212 /* Description		RESERVED_0B
213 
214 			<legal 0>
215 */
216 
217 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RESERVED_0B_OFFSET           0x0000000000000000
218 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RESERVED_0B_LSB              29
219 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RESERVED_0B_MSB              31
220 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RESERVED_0B_MASK             0x00000000e0000000
221 
222 
223 /* Description		PHY_PPDU_ID
224 
225 			A ppdu counter value that PHY increments for every PPDU
226 			received. The counter value wraps around
227 			<legal all>
228 */
229 
230 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_PHY_PPDU_ID_OFFSET           0x0000000000000000
231 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_PHY_PPDU_ID_LSB              32
232 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_PHY_PPDU_ID_MSB              47
233 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_PHY_PPDU_ID_MASK             0x0000ffff00000000
234 
235 
236 /* Description		LSIG_RESPONSE_LENGTH
237 
238 			Field only valid in case of OFDMA trigger
239 
240 			Indicates the value of the L-SIG Length field of the HE
241 			trigger-based PPDU that is the response to the Trigger frame
242 
243 
244 			<legal all>
245 */
246 
247 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_LSIG_RESPONSE_LENGTH_OFFSET  0x0000000000000000
248 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_LSIG_RESPONSE_LENGTH_LSB     48
249 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_LSIG_RESPONSE_LENGTH_MSB     59
250 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_LSIG_RESPONSE_LENGTH_MASK    0x0fff000000000000
251 
252 
253 /* Description		RESERVED_1A
254 
255 			<legal 0>
256 */
257 
258 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RESERVED_1A_OFFSET           0x0000000000000000
259 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RESERVED_1A_LSB              60
260 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RESERVED_1A_MSB              63
261 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RESERVED_1A_MASK             0xf000000000000000
262 
263 
264 /* Description		FRAME_CONTROL
265 
266 			frame control field of the received frame
267 			<legal all>
268 */
269 
270 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_FRAME_CONTROL_OFFSET         0x0000000000000008
271 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_FRAME_CONTROL_LSB            0
272 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_FRAME_CONTROL_MSB            15
273 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_FRAME_CONTROL_MASK           0x000000000000ffff
274 
275 
276 /* Description		QOS_CONTROL
277 
278 			frame control field of the received frame (if present)
279 			<legal all>
280 */
281 
282 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_QOS_CONTROL_OFFSET           0x0000000000000008
283 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_QOS_CONTROL_LSB              16
284 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_QOS_CONTROL_MSB              31
285 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_QOS_CONTROL_MASK             0x00000000ffff0000
286 
287 
288 /* Description		SW_PEER_ID
289 
290 			A unique identifier for this STA. Extracted from the Address_Search_Entry
291 
292 
293 			Used by the SCH to find linkage between this trigger and
294 			 potentially pre-programmed responses.
295 			<legal all>
296 */
297 
298 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_SW_PEER_ID_OFFSET            0x0000000000000008
299 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_SW_PEER_ID_LSB               32
300 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_SW_PEER_ID_MSB               47
301 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_SW_PEER_ID_MASK              0x0000ffff00000000
302 
303 
304 /* Description		RESERVED_3A
305 
306 			<legal 0>
307 */
308 
309 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RESERVED_3A_OFFSET           0x0000000000000008
310 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RESERVED_3A_LSB              48
311 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RESERVED_3A_MSB              63
312 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_RESERVED_3A_MASK             0xffff000000000000
313 
314 
315 /* Description		HE_CONTROL
316 
317 			Field only valid when HE_control_info_valid is set
318 
319 			This is the 'RAW HE_CONTROL field' that was present in the
320 			 frame.
321 			<legal all>
322 */
323 
324 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_HE_CONTROL_OFFSET            0x0000000000000010
325 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_HE_CONTROL_LSB               0
326 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_HE_CONTROL_MSB               31
327 #define RECEIVED_TRIGGER_INFO_RECEIVED_TRIGGER_DETAILS_HE_CONTROL_MASK              0x00000000ffffffff
328 
329 
330 /* Description		TLV64_PADDING
331 
332 			Automatic DWORD padding inserted while converting TLV32
333 			to TLV64 for 64 bit ARCH
334 			<legal 0>
335 */
336 
337 #define RECEIVED_TRIGGER_INFO_TLV64_PADDING_OFFSET                                  0x0000000000000010
338 #define RECEIVED_TRIGGER_INFO_TLV64_PADDING_LSB                                     32
339 #define RECEIVED_TRIGGER_INFO_TLV64_PADDING_MSB                                     63
340 #define RECEIVED_TRIGGER_INFO_TLV64_PADDING_MASK                                    0xffffffff00000000
341 
342 
343 
344 #endif   // RECEIVED_TRIGGER_INFO
345