xref: /wlan-driver/fw-api/hw/qca6490/v1/rx_ppdu_start_user_info.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1 /*
2  * Copyright (c) 2019 The Linux Foundation. All rights reserved.
3  *
4  * Permission to use, copy, modify, and/or distribute this software for
5  * any purpose with or without fee is hereby granted, provided that the
6  * above copyright notice and this permission notice appear in all
7  * copies.
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
10  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
11  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
12  * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
13  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
14  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
15  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
16  * PERFORMANCE OF THIS SOFTWARE.
17  */
18 
19 //
20 // DO NOT EDIT!  This file is automatically generated
21 //               These definitions are tied to a particular hardware layout
22 
23 
24 #ifndef _RX_PPDU_START_USER_INFO_H_
25 #define _RX_PPDU_START_USER_INFO_H_
26 #if !defined(__ASSEMBLER__)
27 #endif
28 
29 #include "receive_user_info.h"
30 
31 // ################ START SUMMARY #################
32 //
33 //	Dword	Fields
34 //	0-2	struct receive_user_info receive_user_info_details;
35 //
36 // ################ END SUMMARY #################
37 
38 #define NUM_OF_DWORDS_RX_PPDU_START_USER_INFO 3
39 
40 struct rx_ppdu_start_user_info {
41     struct            receive_user_info                       receive_user_info_details;
42 };
43 
44 /*
45 
46 struct receive_user_info receive_user_info_details
47 
48 			Overview of receive parameters that the MAC needs to
49 			prepend to every received MSDU/MPDU.
50 */
51 
52 
53  /* EXTERNAL REFERENCE : struct receive_user_info receive_user_info_details */
54 
55 
56 /* Description		RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_PHY_PPDU_ID
57 
58 			A ppdu counter value that PHY increments for every PPDU
59 			received. The counter value wraps around
60 
61 			<legal all>
62 */
63 #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_PHY_PPDU_ID_OFFSET 0x00000000
64 #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_PHY_PPDU_ID_LSB 0
65 #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_PHY_PPDU_ID_MASK 0x0000ffff
66 
67 /* Description		RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_USER_RSSI
68 
69 			RSSI for this user
70 
71 			Frequency domain RSSI measurement for this user. Based
72 			on the channel estimate.
73 
74 
75 
76 			<legal all>
77 */
78 #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_USER_RSSI_OFFSET 0x00000000
79 #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_USER_RSSI_LSB 16
80 #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_USER_RSSI_MASK 0x00ff0000
81 
82 /* Description		RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_PKT_TYPE
83 
84 			Packet type:
85 
86 
87 
88 			<enum 0 dot11a>802.11a PPDU type
89 
90 			<enum 1 dot11b>802.11b PPDU type
91 
92 			<enum 2 dot11n_mm>802.11n Mixed Mode PPDU type
93 
94 			<enum 3 dot11ac>802.11ac PPDU type
95 
96 			<enum 4 dot11ax>802.11ax PPDU type
97 
98 			<enum 5 dot11ba>802.11ba (WUR) PPDU type
99 */
100 #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_PKT_TYPE_OFFSET 0x00000000
101 #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_PKT_TYPE_LSB 24
102 #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_PKT_TYPE_MASK 0x0f000000
103 
104 /* Description		RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_STBC
105 
106 			When set, use STBC transmission rates
107 */
108 #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_STBC_OFFSET 0x00000000
109 #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_STBC_LSB 28
110 #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_STBC_MASK 0x10000000
111 
112 /* Description		RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_RECEPTION_TYPE
113 
114 			Indicates what type of reception this is.
115 
116 			<enum 0     reception_type_SU > Basic SU reception (not
117 			part of OFDMA or MU-MIMO)
118 
119 			<enum 1     reception_type_MU_MIMO > This is related to
120 			DL type of reception
121 
122 			<enum 2     reception_type_MU_OFDMA >  This is related
123 			to DL type of reception
124 
125 			<enum 3     reception_type_MU_OFDMA_MIMO >  This is
126 			related to DL type of reception
127 
128 			<enum 4     reception_type_UL_MU_MIMO > This is related
129 			to UL type of reception
130 
131 			<enum 5     reception_type_UL_MU_OFDMA >  This is
132 			related to UL type of reception
133 
134 			<enum 6     reception_type_UL_MU_OFDMA_MIMO >  This is
135 			related to UL type of reception
136 
137 
138 
139 			<legal 0-6>
140 */
141 #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_RECEPTION_TYPE_OFFSET 0x00000000
142 #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_RECEPTION_TYPE_LSB 29
143 #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_RECEPTION_TYPE_MASK 0xe0000000
144 
145 /* Description		RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_RATE_MCS
146 
147 			For details, refer to  MCS_TYPE description
148 
149 			<legal all>
150 */
151 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_RATE_MCS_OFFSET 0x00000004
152 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_RATE_MCS_LSB 0
153 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_RATE_MCS_MASK 0x0000000f
154 
155 /* Description		RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_SGI
156 
157 			Field only valid when pkt type is HT, VHT or HE.
158 
159 
160 
161 			<enum 0     gi_0_8_us > Legacy normal GI.  Can also be
162 			used for HE
163 
164 			<enum 1     gi_0_4_us > Legacy short GI.  Can also be
165 			used for HE
166 
167 			<enum 2     gi_1_6_us > HE related GI
168 
169 			<enum 3     gi_3_2_us > HE related GI
170 
171 			<legal 0 - 3>
172 */
173 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_SGI_OFFSET 0x00000004
174 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_SGI_LSB  4
175 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_SGI_MASK 0x00000030
176 
177 /* Description		RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_RECEIVE_BANDWIDTH
178 
179 			Full receive Bandwidth
180 
181 
182 
183 			<enum 0     full_rx_bw_20_mhz>
184 
185 			<enum 1      full_rx_bw_40_mhz>
186 
187 			<enum 2      full_rx_bw_80_mhz>
188 
189 			<enum 3      full_rx_bw_160_mhz>
190 
191 
192 
193 			<legal 0-3>
194 */
195 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_RECEIVE_BANDWIDTH_OFFSET 0x00000004
196 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_RECEIVE_BANDWIDTH_LSB 6
197 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_RECEIVE_BANDWIDTH_MASK 0x000000c0
198 
199 /* Description		RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_MIMO_SS_BITMAP
200 
201 			Bitmap, with each bit indicating if the related spatial
202 			stream is used for this STA
203 
204 			LSB related to SS 0
205 
206 
207 
208 			0: spatial stream not used for this reception
209 
210 			1: spatial stream used for this reception
211 
212 
213 
214 			<legal all>
215 */
216 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_MIMO_SS_BITMAP_OFFSET 0x00000004
217 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_MIMO_SS_BITMAP_LSB 8
218 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_MIMO_SS_BITMAP_MASK 0x0000ff00
219 
220 /* Description		RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_RU_ALLOCATION
221 
222 			Field only valid in case of OFDMA type receptions (DL
223 			and UL)
224 
225 
226 
227 			Indicates the RU number associated with this user.
228 
229 
230 
231 			In case of reception where the transmission was DL MU
232 			OFDMA, this field provides the RU pattern. Note that fields
233 			ofdma_user_index and ofdma_content_channel are needed to
234 			determine which RU (within a 40 MHz channel) was actually
235 			assigned to this user, but this does not give info on which
236 			40 MHz channel was assigned to this user. Please refer
237 			DL_ofdma_ru_* in PHYRX_PKT_END_INFO for complete RU info for
238 			this user.
239 
240 
241 
242 			In case of reception where the transmission was UL MU
243 			OFDMA, PHY is recommended to insert the RU start index in
244 			this field. Note that PHY may insert the RU width in
245 			Reserved_2a[6:0].
246 
247 			<legal all>
248 */
249 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_RU_ALLOCATION_OFFSET 0x00000004
250 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_RU_ALLOCATION_LSB 16
251 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_RU_ALLOCATION_MASK 0x00ff0000
252 
253 /* Description		RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_USER_INDEX
254 
255 			Field only valid in the of DL MU OFDMA reception
256 
257 
258 
259 			The user number within the RU_allocation.
260 
261 
262 
263 			This is needed for SW to determine the exact RU position
264 			within the reception.
265 
266 			<legal all>
267 */
268 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_USER_INDEX_OFFSET 0x00000004
269 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_USER_INDEX_LSB 24
270 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_USER_INDEX_MASK 0x7f000000
271 
272 /* Description		RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_CONTENT_CHANNEL
273 
274 			Field only valid in the of DL MU OFDMA/MIMO reception
275 
276 
277 
278 			In case of DL MU reception, this field indicates the
279 			content channel number where PHY found the RU information
280 			for this user
281 
282 
283 
284 			This is needed for SW to determine the exact RU position
285 			within the reception.
286 
287 
288 
289 			<enum 0      content_channel_1>
290 
291 			<enum 1      content_channel_2>
292 
293 
294 
295 			<legal all>
296 */
297 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_CONTENT_CHANNEL_OFFSET 0x00000004
298 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_CONTENT_CHANNEL_LSB 31
299 #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_CONTENT_CHANNEL_MASK 0x80000000
300 
301 /* Description		RX_PPDU_START_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_LDPC
302 
303 			When set, use LDPC transmission rates were used.
304 
305 			<legal all>
306 */
307 #define RX_PPDU_START_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_LDPC_OFFSET 0x00000008
308 #define RX_PPDU_START_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_LDPC_LSB 0
309 #define RX_PPDU_START_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_LDPC_MASK 0x00000001
310 
311 /* Description		RX_PPDU_START_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_RU_WIDTH
312 
313 			In case of UL OFDMA reception, PHY is recommended to
314 			insert the RU width
315 
316 			In Hastings80: was using Reserved_2a[6:0].
317 
318 			<legal 1 - 74>
319 */
320 #define RX_PPDU_START_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_RU_WIDTH_OFFSET 0x00000008
321 #define RX_PPDU_START_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_RU_WIDTH_LSB 1
322 #define RX_PPDU_START_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_RU_WIDTH_MASK 0x000000fe
323 
324 /* Description		RX_PPDU_START_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_RESERVED_2A
325 
326 			<legal 0>
327 */
328 #define RX_PPDU_START_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_RESERVED_2A_OFFSET 0x00000008
329 #define RX_PPDU_START_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_RESERVED_2A_LSB 8
330 #define RX_PPDU_START_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_RESERVED_2A_MASK 0xffffff00
331 
332 
333 #endif // _RX_PPDU_START_USER_INFO_H_
334