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