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
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  * DOC: This file contains centralized definitions of converged configuration.
21  */
22 
23 #ifndef __CFG_MLME_EHT_CAPS_H
24 #define __CFG_MLME_EHT_CAPS_H
25 
26 /*
27  * <ini>
28  * eht_su_beamformer - Enable SU beamformer
29  * @Min: 0
30  * @Max: 1
31  * @Default: 0
32  *
33  * This ini is used to enable or disable SU beamformer
34  *
35  * Related: None
36  *
37  * Supported Feature: 11be
38  *
39  * Usage: Internal
40  *
41  * </ini>
42  */
43 #define CFG_EHT_SU_BEAMFORMER CFG_BOOL( \
44 				"eht_su_beamformer", \
45 				0, \
46 				"EHT Su Beamformer")
47 
48 /*
49  * <ini>
50  * eht_su_beamformee - Enable SU beamformee
51  * @Min: 0
52  * @Max: 1
53  * @Default: 0
54  *
55  * This ini is used to enable or disable SU beamformee
56  *
57  * Related: None
58  *
59  * Supported Feature: 11be
60  *
61  * Usage: Internal
62  *
63  * </ini>
64  */
65 #define CFG_EHT_SU_BEAMFORMEE CFG_BOOL( \
66 				"eht_su_beamformee", \
67 				0, \
68 				"EHT Su Beamformee")
69 
70 /*
71  * <ini>
72  * mu_bformer_le_80mhz - Enable MU beamformer for BW <= 80
73  * @Min: 0
74  * @Max: 1
75  * @Default: 0
76  *
77  * This ini is used to enable or disable MU beamformer for BW <= 80
78  *
79  * Related: None
80  *
81  * Supported Feature: 11be
82  *
83  * Usage: Internal
84  *
85  * </ini>
86  */
87 #define CFG_EHT_MU_BFORMER_LE_80MHZ CFG_BOOL( \
88 				"mu_bformer_le_80mhz", \
89 				0, \
90 				"EHT MU Beamformer BW <= 80 MHz")
91 
92 /*
93  * <ini>
94  * mu_bformer_160mhz - Enable MU beamformer for BW == 160
95  * @Min: 0
96  * @Max: 1
97  * @Default: 0
98  *
99  * This ini is used to enable or disable MU beamformer for BW == 160
100  *
101  * Related: None
102  *
103  * Supported Feature: 11be
104  *
105  * Usage: Internal
106  *
107  * </ini>
108  */
109 #define CFG_EHT_MU_BFORMER_160MHZ CFG_BOOL( \
110 				"mu_bformer_160mhz", \
111 				0, \
112 				"EHT MU Beamformer BW = 160 MHz")
113 
114 /*
115  * <ini>
116  * mu_bformer_320mhz - Enable MU beamformer for BW == 320
117  * @Min: 0
118  * @Max: 1
119  * @Default: 0
120  *
121  * This ini is used to enable or disable MU beamformer for BW == 320
122  *
123  * Related: None
124  *
125  * Supported Feature: 11be
126  *
127  * Usage: Internal
128  *
129  * </ini>
130  */
131 #define CFG_EHT_MU_BFORMER_320MHZ CFG_BOOL( \
132 				"mu_bformer_320mhz", \
133 				0, \
134 				"EHT MU Beamformer BW = 320 MHz")
135 
136 /*
137  * <ini>
138  * eht_bfee_ss_le_80mhz - For a PPDU bandwidth less than or equal to 80 MHz,
139  *                        indicates the maximum number of spatial streams that
140  *                        the STA can receive in an EHT sounding NDP.
141  * @Min: 0
142  * @Max: 7
143  * @Default: 0
144  *
145  * If the SU Beamformee subfield is 1, set to the maximum number of spatial
146  * streams that the STA is capable of receiving in an EHT sounding NDP minus 1.
147  * The minimum value of this field is 3.
148  * Reserved if the SU Beamformee field is 0.
149  *
150  * Related: NA
151  *
152  * Supported Feature: 11be
153  *
154  * Usage: Internal
155  *
156  * </ini>
157  */
158 #define CFG_EHT_BFEE_SS_LE_80MHZ CFG_UINT( \
159 				"eht_bfee_ss_le_80mhz", \
160 				3, \
161 				7, \
162 				3, \
163 				CFG_VALUE_OR_DEFAULT, \
164 				"EHT Beamformee SS <= 80 MHz")
165 
166 /*
167  * <ini>
168  * eht_bfee_ss_160mhz - For a PPDU bandwidth of 160 MHz, indicates the
169  *                      maximum number of spatial streams that the STA
170  *                      can receive in an EHT sounding NDP.
171  * @Min: 0
172  * @Max: 7
173  * @Default: 0
174  *
175  * If the SU Beamformee subfield is 1, set to the maximum number of spatial
176  * streams that the STA is capable of receiving in an EHT sounding NDP minus 1.
177  * The minimum value of this field is 3.
178  * Reserved if the SU Beamformee field is 0.
179  *
180  * Related: NA
181  *
182  * Supported Feature: 11be
183  *
184  * Usage: Internal
185  *
186  * </ini>
187  */
188 #define CFG_EHT_BFEE_SS_160MHZ CFG_UINT( \
189 				"eht_bfee_ss_160mhz", \
190 				3, \
191 				7, \
192 				3, \
193 				CFG_VALUE_OR_DEFAULT, \
194 				"EHT Beamformee SS = 160 MHz")
195 
196 /*
197  * <ini>
198  * eht_bfee_ss_320mhz - For a PPDU bandwidth of 320 MHz, indicates the
199  *                      maximum number of spatial streams that the STA
200  *                      can receive in an EHT sounding NDP.
201  * @Min: 0
202  * @Max: 7
203  * @Default: 0
204  *
205  * If the SU Beamformee subfield is 1, set to the maximum number of spatial
206  * streams that the STA is capable of receiving in an EHT sounding NDP minus 1.
207  * The minimum value of this field is 3.
208  * Reserved if the SU Beamformee field is 0.
209  *
210  * Related: NA
211  *
212  * Supported Feature: 11be
213  *
214  * Usage: Internal
215  *
216  * </ini>
217  */
218 #define CFG_EHT_BFEE_SS_320MHZ CFG_UINT( \
219 				"eht_bfee_ss_320mhz", \
220 				3, \
221 				7, \
222 				3, \
223 				CFG_VALUE_OR_DEFAULT, \
224 				"EHT Beamformee SS = 320 MHz")
225 
226 /*
227  * <ini>
228  * eht_num_sounding_dim_le_80mhz - For bandwidth less than or equal to 80 MHz,
229  *                                 indicates the beamformer's capability
230  *                                 indicating the maximum value of the TXVECTOR
231  *                                 parameter NUM_STS for an EHT sounding NDP
232  * @Min: 0
233  * @Max: 7
234  * @Default: 0
235  *
236  * If the SU Beamformer subfield is 1, set to the supported maximum
237  * TXVECTOR parameter NUM_STS value minus 1.
238  * Reserved if the SU Beamformer subfield is 0.
239  *
240  * Related: NA
241  *
242  * Supported Feature: 11be
243  *
244  * Usage: Internal
245  *
246  * </ini>
247  */
248 #define CFG_EHT_NUM_SOUNDING_DIM_LE_80MHZ CFG_UINT( \
249 				"eht_num_sounding_dim_le_80mhz", \
250 				0, \
251 				7, \
252 				0, \
253 				CFG_VALUE_OR_DEFAULT, \
254 				"EHT Number Of Sounding Dimensions <= 80 MHz")
255 
256 /*
257  * <ini>
258  * eht_num_sounding_dim_160mhz - For bandwidth of 160 MHz, indicates the
259  *                               beamformer's capability indicating the
260  *                               maximum value of the TXVECTOR parameter
261  *                               NUM_STS for an EHT sounding NDP
262  * @Min: 0
263  * @Max: 7
264  * @Default: 0
265  *
266  * If the SU Beamformer subfield is 1, set to the supported maximum
267  * TXVECTOR parameter NUM_STS value minus 1.
268  * Reserved if the SU Beamformer subfield is 0 or the Supported Channel
269  * Width Set field does not indicate support for bandwidth of 160 MHz.
270  *
271  * Related: NA
272  *
273  * Supported Feature: 11be
274  *
275  * Usage: Internal
276  *
277  * </ini>
278  */
279 #define CFG_EHT_NUM_SOUNDING_DIM_160MHZ CFG_UINT( \
280 				"eht_num_sounding_dim_160mhz", \
281 				0, \
282 				7, \
283 				0, \
284 				CFG_VALUE_OR_DEFAULT, \
285 				"EHT Number Of Sounding Dimensions = 160 MHz")
286 
287 /*
288  * <ini>
289  * eht_num_sounding_dim_320mhz - For bandwidth of 320 MHz, indicates the
290  *                               beamformer's capability indicating the
291  *                               maximum value of the TXVECTOR parameter
292  *                               NUM_STS for an EHT sounding NDP
293  * @Min: 0
294  * @Max: 7
295  * @Default: 0
296  *
297  * If the SU Beamformer subfield is 1, set to the supported maximum
298  * TXVECTOR parameter NUM_STS value minus 1.
299  * Reserved if the SU Beamformer subfield is 0 or the Supported Channel
300  * Width Set field does not indicate support for bandwidth of 320 MHz.
301  *
302  * Related: NA
303  *
304  * Supported Feature: 11be
305  *
306  * Usage: Internal
307  *
308  * </ini>
309  */
310 #define CFG_EHT_NUM_SOUNDING_DIM_320MHZ CFG_UINT( \
311 				"eht_num_sounding_dim_320mhz", \
312 				0, \
313 				7, \
314 				0, \
315 				CFG_VALUE_OR_DEFAULT, \
316 				"EHT Number Of Sounding Dimensions = 320 MHz")
317 
318 #define CFG_EHT_CAPS_ALL \
319 	CFG(CFG_EHT_SU_BEAMFORMER) \
320 	CFG(CFG_EHT_SU_BEAMFORMEE) \
321 	CFG(CFG_EHT_MU_BFORMER_LE_80MHZ) \
322 	CFG(CFG_EHT_MU_BFORMER_160MHZ) \
323 	CFG(CFG_EHT_MU_BFORMER_320MHZ) \
324 	CFG(CFG_EHT_BFEE_SS_LE_80MHZ) \
325 	CFG(CFG_EHT_BFEE_SS_160MHZ) \
326 	CFG(CFG_EHT_BFEE_SS_320MHZ) \
327 	CFG(CFG_EHT_NUM_SOUNDING_DIM_LE_80MHZ) \
328 	CFG(CFG_EHT_NUM_SOUNDING_DIM_160MHZ) \
329 	CFG(CFG_EHT_NUM_SOUNDING_DIM_320MHZ)
330 
331 #endif /* __CFG_MLME_EHT_CAPS_H */
332 
333