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