xref: /wlan-driver/fw-api/hw/qca6290/11ax/v2/he_sig_a_mu_ul_info.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1 /*
2  * Copyright (c) 2018 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 #ifndef _HE_SIG_A_MU_UL_INFO_H_
20 #define _HE_SIG_A_MU_UL_INFO_H_
21 #if !defined(__ASSEMBLER__)
22 #endif
23 
24 
25 // ################ START SUMMARY #################
26 //
27 //	Dword	Fields
28 //	0	format_indication[0], bss_color_id[6:1], spatial_reuse[22:7], reserved_0a[23], transmit_bw[25:24], reserved_0b[31:26]
29 //	1	txop_duration[6:0], reserved_1a[15:7], crc[19:16], tail[25:20], reserved_1b[31:26]
30 //
31 // ################ END SUMMARY #################
32 
33 #define NUM_OF_DWORDS_HE_SIG_A_MU_UL_INFO 2
34 
35 struct he_sig_a_mu_ul_info {
36              uint32_t format_indication               :  1, //[0]
37                       bss_color_id                    :  6, //[6:1]
38                       spatial_reuse                   : 16, //[22:7]
39                       reserved_0a                     :  1, //[23]
40                       transmit_bw                     :  2, //[25:24]
41                       reserved_0b                     :  6; //[31:26]
42              uint32_t txop_duration                   :  7, //[6:0]
43                       reserved_1a                     :  9, //[15:7]
44                       crc                             :  4, //[19:16]
45                       tail                            :  6, //[25:20]
46                       reserved_1b                     :  6; //[31:26]
47 };
48 
49 /*
50 
51 format_indication
52 
53 			Indicates whether the transmission is SU PPDU or a
54 			trigger based UL MU PDDU
55 
56 			<enum 0 HE_SIGA_FORMAT_HE_TRIG>
57 
58 			<enum 1 HE_SIGA_FORMAT_SU_OR_EXT_SU>
59 
60 			<legal all>
61 
62 bss_color_id
63 
64 			BSS color ID
65 
66 			<legal all>
67 
68 spatial_reuse
69 
70 			Spatial reuse
71 
72 
73 
74 			<legal all>
75 
76 reserved_0a
77 
78 			Note: spec indicates this shall be set to 1
79 
80 			<legal 1>
81 
82 transmit_bw
83 
84 			Bandwidth of the PPDU.
85 
86 
87 
88 			<enum 0 HE_SIG_A_MU_UL_BW20> 20 Mhz
89 
90 			<enum 1 HE_SIG_A_MU_UL_BW40> 40 Mhz
91 
92 			<enum 2 HE_SIG_A_MU_UL_BW80> 80 Mhz
93 
94 			<enum 3 HE_SIG_A_MU_UL_BW160> 160 MHz or 80+80 MHz
95 
96 
97 
98 			On RX side, Field Used by MAC HW
99 
100 			<legal 0-3>
101 
102 reserved_0b
103 
104 			<legal 0>
105 
106 txop_duration
107 
108 			Indicates the remaining time in the current TXOP <legal
109 			all>
110 
111 reserved_1a
112 
113 			Set to value indicated in the trigger frame
114 
115 			<legal 255>
116 
117 crc
118 
119 			CRC for HE-SIG-A contents.
120 
121 			This CRC may also cover some fields of L-SIG (TBD)
122 
123 			<legal all>
124 
125 tail
126 
127 			BCC encoding (similar to VHT-SIG-A) with 6 tail bits is
128 			used
129 
130 			<legal 0>
131 
132 reserved_1b
133 
134 			<legal 0>
135 */
136 
137 
138 /* Description		HE_SIG_A_MU_UL_INFO_0_FORMAT_INDICATION
139 
140 			Indicates whether the transmission is SU PPDU or a
141 			trigger based UL MU PDDU
142 
143 			<enum 0 HE_SIGA_FORMAT_HE_TRIG>
144 
145 			<enum 1 HE_SIGA_FORMAT_SU_OR_EXT_SU>
146 
147 			<legal all>
148 */
149 #define HE_SIG_A_MU_UL_INFO_0_FORMAT_INDICATION_OFFSET               0x00000000
150 #define HE_SIG_A_MU_UL_INFO_0_FORMAT_INDICATION_LSB                  0
151 #define HE_SIG_A_MU_UL_INFO_0_FORMAT_INDICATION_MASK                 0x00000001
152 
153 /* Description		HE_SIG_A_MU_UL_INFO_0_BSS_COLOR_ID
154 
155 			BSS color ID
156 
157 			<legal all>
158 */
159 #define HE_SIG_A_MU_UL_INFO_0_BSS_COLOR_ID_OFFSET                    0x00000000
160 #define HE_SIG_A_MU_UL_INFO_0_BSS_COLOR_ID_LSB                       1
161 #define HE_SIG_A_MU_UL_INFO_0_BSS_COLOR_ID_MASK                      0x0000007e
162 
163 /* Description		HE_SIG_A_MU_UL_INFO_0_SPATIAL_REUSE
164 
165 			Spatial reuse
166 
167 
168 
169 			<legal all>
170 */
171 #define HE_SIG_A_MU_UL_INFO_0_SPATIAL_REUSE_OFFSET                   0x00000000
172 #define HE_SIG_A_MU_UL_INFO_0_SPATIAL_REUSE_LSB                      7
173 #define HE_SIG_A_MU_UL_INFO_0_SPATIAL_REUSE_MASK                     0x007fff80
174 
175 /* Description		HE_SIG_A_MU_UL_INFO_0_RESERVED_0A
176 
177 			Note: spec indicates this shall be set to 1
178 
179 			<legal 1>
180 */
181 #define HE_SIG_A_MU_UL_INFO_0_RESERVED_0A_OFFSET                     0x00000000
182 #define HE_SIG_A_MU_UL_INFO_0_RESERVED_0A_LSB                        23
183 #define HE_SIG_A_MU_UL_INFO_0_RESERVED_0A_MASK                       0x00800000
184 
185 /* Description		HE_SIG_A_MU_UL_INFO_0_TRANSMIT_BW
186 
187 			Bandwidth of the PPDU.
188 
189 
190 
191 			<enum 0 HE_SIG_A_MU_UL_BW20> 20 Mhz
192 
193 			<enum 1 HE_SIG_A_MU_UL_BW40> 40 Mhz
194 
195 			<enum 2 HE_SIG_A_MU_UL_BW80> 80 Mhz
196 
197 			<enum 3 HE_SIG_A_MU_UL_BW160> 160 MHz or 80+80 MHz
198 
199 
200 
201 			On RX side, Field Used by MAC HW
202 
203 			<legal 0-3>
204 */
205 #define HE_SIG_A_MU_UL_INFO_0_TRANSMIT_BW_OFFSET                     0x00000000
206 #define HE_SIG_A_MU_UL_INFO_0_TRANSMIT_BW_LSB                        24
207 #define HE_SIG_A_MU_UL_INFO_0_TRANSMIT_BW_MASK                       0x03000000
208 
209 /* Description		HE_SIG_A_MU_UL_INFO_0_RESERVED_0B
210 
211 			<legal 0>
212 */
213 #define HE_SIG_A_MU_UL_INFO_0_RESERVED_0B_OFFSET                     0x00000000
214 #define HE_SIG_A_MU_UL_INFO_0_RESERVED_0B_LSB                        26
215 #define HE_SIG_A_MU_UL_INFO_0_RESERVED_0B_MASK                       0xfc000000
216 
217 /* Description		HE_SIG_A_MU_UL_INFO_1_TXOP_DURATION
218 
219 			Indicates the remaining time in the current TXOP <legal
220 			all>
221 */
222 #define HE_SIG_A_MU_UL_INFO_1_TXOP_DURATION_OFFSET                   0x00000004
223 #define HE_SIG_A_MU_UL_INFO_1_TXOP_DURATION_LSB                      0
224 #define HE_SIG_A_MU_UL_INFO_1_TXOP_DURATION_MASK                     0x0000007f
225 
226 /* Description		HE_SIG_A_MU_UL_INFO_1_RESERVED_1A
227 
228 			Set to value indicated in the trigger frame
229 
230 			<legal 255>
231 */
232 #define HE_SIG_A_MU_UL_INFO_1_RESERVED_1A_OFFSET                     0x00000004
233 #define HE_SIG_A_MU_UL_INFO_1_RESERVED_1A_LSB                        7
234 #define HE_SIG_A_MU_UL_INFO_1_RESERVED_1A_MASK                       0x0000ff80
235 
236 /* Description		HE_SIG_A_MU_UL_INFO_1_CRC
237 
238 			CRC for HE-SIG-A contents.
239 
240 			This CRC may also cover some fields of L-SIG (TBD)
241 
242 			<legal all>
243 */
244 #define HE_SIG_A_MU_UL_INFO_1_CRC_OFFSET                             0x00000004
245 #define HE_SIG_A_MU_UL_INFO_1_CRC_LSB                                16
246 #define HE_SIG_A_MU_UL_INFO_1_CRC_MASK                               0x000f0000
247 
248 /* Description		HE_SIG_A_MU_UL_INFO_1_TAIL
249 
250 			BCC encoding (similar to VHT-SIG-A) with 6 tail bits is
251 			used
252 
253 			<legal 0>
254 */
255 #define HE_SIG_A_MU_UL_INFO_1_TAIL_OFFSET                            0x00000004
256 #define HE_SIG_A_MU_UL_INFO_1_TAIL_LSB                               20
257 #define HE_SIG_A_MU_UL_INFO_1_TAIL_MASK                              0x03f00000
258 
259 /* Description		HE_SIG_A_MU_UL_INFO_1_RESERVED_1B
260 
261 			<legal 0>
262 */
263 #define HE_SIG_A_MU_UL_INFO_1_RESERVED_1B_OFFSET                     0x00000004
264 #define HE_SIG_A_MU_UL_INFO_1_RESERVED_1B_LSB                        26
265 #define HE_SIG_A_MU_UL_INFO_1_RESERVED_1B_MASK                       0xfc000000
266 
267 
268 #endif // _HE_SIG_A_MU_UL_INFO_H_
269