xref: /OK3568_Linux_fs/external/rkwifibt/drivers/bcmdhd/include/bcmwifi_rates.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 /*
2  * Indices for 802.11 a/b/g/n/ac 1-3 chain symmetric transmit rates
3  *
4  * Copyright (C) 2020, Broadcom.
5  *
6  *      Unless you and Broadcom execute a separate written software license
7  * agreement governing use of this software, this software is licensed to you
8  * under the terms of the GNU General Public License version 2 (the "GPL"),
9  * available at http://www.broadcom.com/licenses/GPLv2.php, with the
10  * following added to such license:
11  *
12  *      As a special exception, the copyright holders of this software give you
13  * permission to link this software with independent modules, and to copy and
14  * distribute the resulting executable under terms of your choice, provided that
15  * you also meet, for each linked independent module, the terms and conditions of
16  * the license of that module.  An independent module is a module which is not
17  * derived from this software.  The special exception does not apply to any
18  * modifications of the software.
19  *
20  *
21  * <<Broadcom-WL-IPTag/Dual:>>
22  */
23 
24 #ifndef _bcmwifi_rates_h_
25 #define _bcmwifi_rates_h_
26 
27 #include <typedefs.h>
28 
29 #ifdef __cplusplus
30 extern "C" {
31 #endif /* __cplusplus */
32 
33 #define WL_RATESET_SZ_DSSS		4
34 #define WL_RATESET_SZ_OFDM		8
35 #if defined(WLPROPRIETARY_11N_RATES)
36 #define WL_RATESET_SZ_HT_MCS		10
37 #else
38 #define WL_RATESET_SZ_HT_MCS		8
39 #endif
40 #define WL_RATESET_SZ_VHT_MCS		10
41 #define WL_RATESET_SZ_VHT_MCS_P		12	/* 10 VHT rates + 2 proprietary rates */
42 #define WL_RATESET_SZ_HE_MCS		12	/* 12 HE rates (mcs 0-11) */
43 #define WL_RATESET_SZ_EHT_MCS		14u	/* 14 EHT rates (mcs 0-13) */
44 
45 #define WL_RATESET_SZ_HT_IOCTL		8	/* MAC histogram, compatibility with wl utility */
46 
47 #define WL_TX_CHAINS_MAX		4
48 
49 #define WL_RATE_DISABLED		(-128) /* Power value corresponding to unsupported rate */
50 
51 /* Transmit channel bandwidths */
52 typedef enum wl_tx_bw {
53 	WL_TX_BW_20,
54 	WL_TX_BW_40,
55 	WL_TX_BW_80,
56 	WL_TX_BW_20IN40,
57 	WL_TX_BW_20IN80,
58 	WL_TX_BW_40IN80,
59 	WL_TX_BW_160,
60 	WL_TX_BW_20IN160,
61 	WL_TX_BW_40IN160,
62 	WL_TX_BW_80IN160,
63 	WL_TX_BW_240,
64 	WL_TX_BW_20IN240,
65 	WL_TX_BW_40IN240,
66 	WL_TX_BW_80IN240,
67 	WL_TX_BW_160IN240,
68 	WL_TX_BW_320,
69 	WL_TX_BW_20IN320,
70 	WL_TX_BW_40IN320,
71 	WL_TX_BW_80IN320,
72 	WL_TX_BW_160IN320,
73 	WL_TX_BW_ALL
74 } wl_tx_bw_t;
75 
76 /*
77  * Transmit modes.
78  * Not all modes are listed here, only those required for disambiguation. e.g. SPEXP is not listed
79  */
80 typedef enum wl_tx_mode {
81 	WL_TX_MODE_NONE,
82 	WL_TX_MODE_STBC,
83 	WL_TX_MODE_CDD,
84 	WL_TX_MODE_TXBF,
85 	WL_NUM_TX_MODES
86 } wl_tx_mode_t;
87 
88 /* Number of transmit chains */
89 typedef enum wl_tx_chains {
90 	WL_TX_CHAINS_1 = 1,
91 	WL_TX_CHAINS_2,
92 	WL_TX_CHAINS_3,
93 	WL_TX_CHAINS_4
94 } wl_tx_chains_t;
95 
96 /* Number of transmit streams */
97 typedef enum wl_tx_nss {
98 	WL_TX_NSS_1 = 1,
99 	WL_TX_NSS_2,
100 	WL_TX_NSS_3,
101 	WL_TX_NSS_4
102 } wl_tx_nss_t;
103 
104 /* 802.11ax rate types */
105 typedef enum wl_he_rate_type {
106 	WL_HE_RT_SU = 0,
107 	WL_HE_RT_RU26 = 1,
108 	WL_HE_RT_RU52 = 2,
109 	WL_HE_RT_RU106 = 3,
110 	WL_HE_RT_UB = 4,
111 	WL_HE_RT_LUB = 5,
112 	WL_HE_RT_RU242 = 6,
113 	WL_HE_RT_RU484 = 7,
114 	WL_HE_RT_RU996 = 8
115 } wl_he_rate_type_t;
116 
117 #define WL_NUM_HE_RT 9u
118 
119 /* This enum maps each rate to a CLM index
120  * 802.11ax OFDMA (RU) rates are in separate enum
121  */
122 
123 typedef enum clm_rates {
124 	/************
125 	* 1 chain  *
126 	************
127 	*/
128 
129 	/* 1 Stream */
130 	WL_RATE_1X1_DSSS_1            = 0,
131 	WL_RATE_1X1_DSSS_2            = 1,
132 	WL_RATE_1X1_DSSS_5_5          = 2,
133 	WL_RATE_1X1_DSSS_11           = 3,
134 
135 	WL_RATE_1X1_OFDM_6            = 4,
136 	WL_RATE_1X1_OFDM_9            = 5,
137 	WL_RATE_1X1_OFDM_12           = 6,
138 	WL_RATE_1X1_OFDM_18           = 7,
139 	WL_RATE_1X1_OFDM_24           = 8,
140 	WL_RATE_1X1_OFDM_36           = 9,
141 	WL_RATE_1X1_OFDM_48           = 10,
142 	WL_RATE_1X1_OFDM_54           = 11,
143 
144 	WL_RATE_1X1_MCS0              = 12,
145 	WL_RATE_1X1_MCS1              = 13,
146 	WL_RATE_1X1_MCS2              = 14,
147 	WL_RATE_1X1_MCS3              = 15,
148 	WL_RATE_1X1_MCS4              = 16,
149 	WL_RATE_1X1_MCS5              = 17,
150 	WL_RATE_1X1_MCS6              = 18,
151 	WL_RATE_1X1_MCS7              = 19,
152 	WL_RATE_P_1X1_MCS87           = 20,
153 	WL_RATE_P_1X1_MCS88           = 21,
154 
155 	WL_RATE_1X1_VHT0SS1           = 12,
156 	WL_RATE_1X1_VHT1SS1           = 13,
157 	WL_RATE_1X1_VHT2SS1           = 14,
158 	WL_RATE_1X1_VHT3SS1           = 15,
159 	WL_RATE_1X1_VHT4SS1           = 16,
160 	WL_RATE_1X1_VHT5SS1           = 17,
161 	WL_RATE_1X1_VHT6SS1           = 18,
162 	WL_RATE_1X1_VHT7SS1           = 19,
163 	WL_RATE_1X1_VHT8SS1           = 20,
164 	WL_RATE_1X1_VHT9SS1           = 21,
165 	WL_RATE_P_1X1_VHT10SS1        = 22,
166 	WL_RATE_P_1X1_VHT11SS1        = 23,
167 
168 	WL_RATE_1X1_HE0SS1            = 24,
169 	WL_RATE_1X1_HE1SS1            = 25,
170 	WL_RATE_1X1_HE2SS1            = 26,
171 	WL_RATE_1X1_HE3SS1            = 27,
172 	WL_RATE_1X1_HE4SS1            = 28,
173 	WL_RATE_1X1_HE5SS1            = 29,
174 	WL_RATE_1X1_HE6SS1            = 30,
175 	WL_RATE_1X1_HE7SS1            = 31,
176 	WL_RATE_1X1_HE8SS1            = 32,
177 	WL_RATE_1X1_HE9SS1            = 33,
178 	WL_RATE_1X1_HE10SS1           = 34,
179 	WL_RATE_1X1_HE11SS1           = 35,
180 
181 	/************
182 	* 2 chains *
183 	************
184 	*/
185 
186 	/* 1 Stream expanded + 1 */
187 	WL_RATE_1X2_DSSS_1            = 36,
188 	WL_RATE_1X2_DSSS_2            = 37,
189 	WL_RATE_1X2_DSSS_5_5          = 38,
190 	WL_RATE_1X2_DSSS_11           = 39,
191 
192 	WL_RATE_1X2_CDD_OFDM_6        = 40,
193 	WL_RATE_1X2_CDD_OFDM_9        = 41,
194 	WL_RATE_1X2_CDD_OFDM_12       = 42,
195 	WL_RATE_1X2_CDD_OFDM_18       = 43,
196 	WL_RATE_1X2_CDD_OFDM_24       = 44,
197 	WL_RATE_1X2_CDD_OFDM_36       = 45,
198 	WL_RATE_1X2_CDD_OFDM_48       = 46,
199 	WL_RATE_1X2_CDD_OFDM_54       = 47,
200 
201 	WL_RATE_1X2_CDD_MCS0          = 48,
202 	WL_RATE_1X2_CDD_MCS1          = 49,
203 	WL_RATE_1X2_CDD_MCS2          = 50,
204 	WL_RATE_1X2_CDD_MCS3          = 51,
205 	WL_RATE_1X2_CDD_MCS4          = 52,
206 	WL_RATE_1X2_CDD_MCS5          = 53,
207 	WL_RATE_1X2_CDD_MCS6          = 54,
208 	WL_RATE_1X2_CDD_MCS7          = 55,
209 	WL_RATE_P_1X2_CDD_MCS87       = 56,
210 	WL_RATE_P_1X2_CDD_MCS88       = 57,
211 
212 	WL_RATE_1X2_VHT0SS1           = 48,
213 	WL_RATE_1X2_VHT1SS1           = 49,
214 	WL_RATE_1X2_VHT2SS1           = 50,
215 	WL_RATE_1X2_VHT3SS1           = 51,
216 	WL_RATE_1X2_VHT4SS1           = 52,
217 	WL_RATE_1X2_VHT5SS1           = 53,
218 	WL_RATE_1X2_VHT6SS1           = 54,
219 	WL_RATE_1X2_VHT7SS1           = 55,
220 	WL_RATE_1X2_VHT8SS1           = 56,
221 	WL_RATE_1X2_VHT9SS1           = 57,
222 	WL_RATE_P_1X2_VHT10SS1        = 58,
223 	WL_RATE_P_1X2_VHT11SS1        = 59,
224 
225 	WL_RATE_1X2_HE0SS1            = 60,
226 	WL_RATE_1X2_HE1SS1            = 61,
227 	WL_RATE_1X2_HE2SS1            = 62,
228 	WL_RATE_1X2_HE3SS1            = 63,
229 	WL_RATE_1X2_HE4SS1            = 64,
230 	WL_RATE_1X2_HE5SS1            = 65,
231 	WL_RATE_1X2_HE6SS1            = 66,
232 	WL_RATE_1X2_HE7SS1            = 67,
233 	WL_RATE_1X2_HE8SS1            = 68,
234 	WL_RATE_1X2_HE9SS1            = 69,
235 	WL_RATE_1X2_HE10SS1           = 70,
236 	WL_RATE_1X2_HE11SS1           = 71,
237 
238 	/* 2 Streams */
239 	WL_RATE_2X2_STBC_MCS0         = 72,
240 	WL_RATE_2X2_STBC_MCS1         = 73,
241 	WL_RATE_2X2_STBC_MCS2         = 74,
242 	WL_RATE_2X2_STBC_MCS3         = 75,
243 	WL_RATE_2X2_STBC_MCS4         = 76,
244 	WL_RATE_2X2_STBC_MCS5         = 77,
245 	WL_RATE_2X2_STBC_MCS6         = 78,
246 	WL_RATE_2X2_STBC_MCS7         = 79,
247 	WL_RATE_P_2X2_STBC_MCS87      = 80,
248 	WL_RATE_P_2X2_STBC_MCS88      = 81,
249 
250 	WL_RATE_2X2_STBC_VHT0SS1      = 72,
251 	WL_RATE_2X2_STBC_VHT1SS1      = 73,
252 	WL_RATE_2X2_STBC_VHT2SS1      = 74,
253 	WL_RATE_2X2_STBC_VHT3SS1      = 75,
254 	WL_RATE_2X2_STBC_VHT4SS1      = 76,
255 	WL_RATE_2X2_STBC_VHT5SS1      = 77,
256 	WL_RATE_2X2_STBC_VHT6SS1      = 78,
257 	WL_RATE_2X2_STBC_VHT7SS1      = 79,
258 	WL_RATE_2X2_STBC_VHT8SS1      = 80,
259 	WL_RATE_2X2_STBC_VHT9SS1      = 81,
260 	WL_RATE_P_2X2_STBC_VHT10SS1   = 82,
261 	WL_RATE_P_2X2_STBC_VHT11SS1   = 83,
262 
263 	WL_RATE_2X2_SDM_MCS8          = 84,
264 	WL_RATE_2X2_SDM_MCS9          = 85,
265 	WL_RATE_2X2_SDM_MCS10         = 86,
266 	WL_RATE_2X2_SDM_MCS11         = 87,
267 	WL_RATE_2X2_SDM_MCS12         = 88,
268 	WL_RATE_2X2_SDM_MCS13         = 89,
269 	WL_RATE_2X2_SDM_MCS14         = 90,
270 	WL_RATE_2X2_SDM_MCS15         = 91,
271 	WL_RATE_P_2X2_SDM_MCS99       = 92,
272 	WL_RATE_P_2X2_SDM_MCS100      = 93,
273 
274 	WL_RATE_2X2_VHT0SS2           = 84,
275 	WL_RATE_2X2_VHT1SS2           = 85,
276 	WL_RATE_2X2_VHT2SS2           = 86,
277 	WL_RATE_2X2_VHT3SS2           = 87,
278 	WL_RATE_2X2_VHT4SS2           = 88,
279 	WL_RATE_2X2_VHT5SS2           = 89,
280 	WL_RATE_2X2_VHT6SS2           = 90,
281 	WL_RATE_2X2_VHT7SS2           = 91,
282 	WL_RATE_2X2_VHT8SS2           = 92,
283 	WL_RATE_2X2_VHT9SS2           = 93,
284 	WL_RATE_P_2X2_VHT10SS2        = 94,
285 	WL_RATE_P_2X2_VHT11SS2        = 95,
286 
287 	WL_RATE_2X2_HE0SS2            = 96,
288 	WL_RATE_2X2_HE1SS2            = 97,
289 	WL_RATE_2X2_HE2SS2            = 98,
290 	WL_RATE_2X2_HE3SS2            = 99,
291 	WL_RATE_2X2_HE4SS2            = 100,
292 	WL_RATE_2X2_HE5SS2            = 101,
293 	WL_RATE_2X2_HE6SS2            = 102,
294 	WL_RATE_2X2_HE7SS2            = 103,
295 	WL_RATE_2X2_HE8SS2            = 104,
296 	WL_RATE_2X2_HE9SS2            = 105,
297 	WL_RATE_2X2_HE10SS2           = 106,
298 	WL_RATE_2X2_HE11SS2           = 107,
299 
300 	/****************************
301 	 * TX Beamforming, 2 chains *
302 	 ****************************
303 	 */
304 
305 	/* 1 Stream expanded + 1 */
306 	WL_RATE_1X2_TXBF_OFDM_6       = 108,
307 	WL_RATE_1X2_TXBF_OFDM_9       = 109,
308 	WL_RATE_1X2_TXBF_OFDM_12      = 110,
309 	WL_RATE_1X2_TXBF_OFDM_18      = 111,
310 	WL_RATE_1X2_TXBF_OFDM_24      = 112,
311 	WL_RATE_1X2_TXBF_OFDM_36      = 113,
312 	WL_RATE_1X2_TXBF_OFDM_48      = 114,
313 	WL_RATE_1X2_TXBF_OFDM_54      = 115,
314 
315 	WL_RATE_1X2_TXBF_MCS0         = 116,
316 	WL_RATE_1X2_TXBF_MCS1         = 117,
317 	WL_RATE_1X2_TXBF_MCS2         = 118,
318 	WL_RATE_1X2_TXBF_MCS3         = 119,
319 	WL_RATE_1X2_TXBF_MCS4         = 120,
320 	WL_RATE_1X2_TXBF_MCS5         = 121,
321 	WL_RATE_1X2_TXBF_MCS6         = 122,
322 	WL_RATE_1X2_TXBF_MCS7         = 123,
323 	WL_RATE_P_1X2_TXBF_MCS87      = 124,
324 	WL_RATE_P_1X2_TXBF_MCS88      = 125,
325 
326 	WL_RATE_1X2_TXBF_VHT0SS1      = 116,
327 	WL_RATE_1X2_TXBF_VHT1SS1      = 117,
328 	WL_RATE_1X2_TXBF_VHT2SS1      = 118,
329 	WL_RATE_1X2_TXBF_VHT3SS1      = 119,
330 	WL_RATE_1X2_TXBF_VHT4SS1      = 120,
331 	WL_RATE_1X2_TXBF_VHT5SS1      = 121,
332 	WL_RATE_1X2_TXBF_VHT6SS1      = 122,
333 	WL_RATE_1X2_TXBF_VHT7SS1      = 123,
334 	WL_RATE_1X2_TXBF_VHT8SS1      = 124,
335 	WL_RATE_1X2_TXBF_VHT9SS1      = 125,
336 	WL_RATE_P_1X2_TXBF_VHT10SS1   = 126,
337 	WL_RATE_P_1X2_TXBF_VHT11SS1   = 127,
338 
339 	WL_RATE_1X2_TXBF_HE0SS1       = 128,
340 	WL_RATE_1X2_TXBF_HE1SS1       = 129,
341 	WL_RATE_1X2_TXBF_HE2SS1       = 130,
342 	WL_RATE_1X2_TXBF_HE3SS1       = 131,
343 	WL_RATE_1X2_TXBF_HE4SS1       = 132,
344 	WL_RATE_1X2_TXBF_HE5SS1       = 133,
345 	WL_RATE_1X2_TXBF_HE6SS1       = 134,
346 	WL_RATE_1X2_TXBF_HE7SS1       = 135,
347 	WL_RATE_1X2_TXBF_HE8SS1       = 136,
348 	WL_RATE_1X2_TXBF_HE9SS1       = 137,
349 	WL_RATE_1X2_TXBF_HE10SS1      = 138,
350 	WL_RATE_1X2_TXBF_HE11SS1      = 139,
351 
352 	/* 2 Streams */
353 	WL_RATE_2X2_TXBF_SDM_MCS8     = 140,
354 	WL_RATE_2X2_TXBF_SDM_MCS9     = 141,
355 	WL_RATE_2X2_TXBF_SDM_MCS10    = 142,
356 	WL_RATE_2X2_TXBF_SDM_MCS11    = 143,
357 	WL_RATE_2X2_TXBF_SDM_MCS12    = 144,
358 	WL_RATE_2X2_TXBF_SDM_MCS13    = 145,
359 	WL_RATE_2X2_TXBF_SDM_MCS14    = 146,
360 	WL_RATE_2X2_TXBF_SDM_MCS15    = 147,
361 	WL_RATE_P_2X2_TXBF_SDM_MCS99  = 148,
362 	WL_RATE_P_2X2_TXBF_SDM_MCS100 = 149,
363 
364 	WL_RATE_2X2_TXBF_VHT0SS2      = 140,
365 	WL_RATE_2X2_TXBF_VHT1SS2      = 141,
366 	WL_RATE_2X2_TXBF_VHT2SS2      = 142,
367 	WL_RATE_2X2_TXBF_VHT3SS2      = 143,
368 	WL_RATE_2X2_TXBF_VHT4SS2      = 144,
369 	WL_RATE_2X2_TXBF_VHT5SS2      = 145,
370 	WL_RATE_2X2_TXBF_VHT6SS2      = 146,
371 	WL_RATE_2X2_TXBF_VHT7SS2      = 147,
372 	WL_RATE_2X2_TXBF_VHT8SS2      = 148,
373 	WL_RATE_2X2_TXBF_VHT9SS2      = 149,
374 	WL_RATE_P_2X2_TXBF_VHT10SS2   = 150,
375 	WL_RATE_P_2X2_TXBF_VHT11SS2   = 151,
376 
377 	WL_RATE_2X2_TXBF_HE0SS2       = 152,
378 	WL_RATE_2X2_TXBF_HE1SS2       = 153,
379 	WL_RATE_2X2_TXBF_HE2SS2       = 154,
380 	WL_RATE_2X2_TXBF_HE3SS2       = 155,
381 	WL_RATE_2X2_TXBF_HE4SS2       = 156,
382 	WL_RATE_2X2_TXBF_HE5SS2       = 157,
383 	WL_RATE_2X2_TXBF_HE6SS2       = 158,
384 	WL_RATE_2X2_TXBF_HE7SS2       = 159,
385 	WL_RATE_2X2_TXBF_HE8SS2       = 160,
386 	WL_RATE_2X2_TXBF_HE9SS2       = 161,
387 	WL_RATE_2X2_TXBF_HE10SS2      = 162,
388 	WL_RATE_2X2_TXBF_HE11SS2      = 163,
389 
390 	/************
391 	* 3 chains *
392 	************
393 	*/
394 
395 	/* 1 Stream expanded + 2 */
396 	WL_RATE_1X3_DSSS_1            = 164,
397 	WL_RATE_1X3_DSSS_2            = 165,
398 	WL_RATE_1X3_DSSS_5_5          = 166,
399 	WL_RATE_1X3_DSSS_11           = 167,
400 
401 	WL_RATE_1X3_CDD_OFDM_6        = 168,
402 	WL_RATE_1X3_CDD_OFDM_9        = 169,
403 	WL_RATE_1X3_CDD_OFDM_12       = 170,
404 	WL_RATE_1X3_CDD_OFDM_18       = 171,
405 	WL_RATE_1X3_CDD_OFDM_24       = 172,
406 	WL_RATE_1X3_CDD_OFDM_36       = 173,
407 	WL_RATE_1X3_CDD_OFDM_48       = 174,
408 	WL_RATE_1X3_CDD_OFDM_54       = 175,
409 
410 	WL_RATE_1X3_CDD_MCS0          = 176,
411 	WL_RATE_1X3_CDD_MCS1          = 177,
412 	WL_RATE_1X3_CDD_MCS2          = 178,
413 	WL_RATE_1X3_CDD_MCS3          = 179,
414 	WL_RATE_1X3_CDD_MCS4          = 180,
415 	WL_RATE_1X3_CDD_MCS5          = 181,
416 	WL_RATE_1X3_CDD_MCS6          = 182,
417 	WL_RATE_1X3_CDD_MCS7          = 183,
418 	WL_RATE_P_1X3_CDD_MCS87       = 184,
419 	WL_RATE_P_1X3_CDD_MCS88       = 185,
420 
421 	WL_RATE_1X3_VHT0SS1           = 176,
422 	WL_RATE_1X3_VHT1SS1           = 177,
423 	WL_RATE_1X3_VHT2SS1           = 178,
424 	WL_RATE_1X3_VHT3SS1           = 179,
425 	WL_RATE_1X3_VHT4SS1           = 180,
426 	WL_RATE_1X3_VHT5SS1           = 181,
427 	WL_RATE_1X3_VHT6SS1           = 182,
428 	WL_RATE_1X3_VHT7SS1           = 183,
429 	WL_RATE_1X3_VHT8SS1           = 184,
430 	WL_RATE_1X3_VHT9SS1           = 185,
431 	WL_RATE_P_1X3_VHT10SS1        = 186,
432 	WL_RATE_P_1X3_VHT11SS1        = 187,
433 
434 	WL_RATE_1X3_HE0SS1            = 188,
435 	WL_RATE_1X3_HE1SS1            = 189,
436 	WL_RATE_1X3_HE2SS1            = 190,
437 	WL_RATE_1X3_HE3SS1            = 191,
438 	WL_RATE_1X3_HE4SS1            = 192,
439 	WL_RATE_1X3_HE5SS1            = 193,
440 	WL_RATE_1X3_HE6SS1            = 194,
441 	WL_RATE_1X3_HE7SS1            = 195,
442 	WL_RATE_1X3_HE8SS1            = 196,
443 	WL_RATE_1X3_HE9SS1            = 197,
444 	WL_RATE_1X3_HE10SS1           = 198,
445 	WL_RATE_1X3_HE11SS1           = 199,
446 
447 	/* 2 Streams expanded + 1 */
448 	WL_RATE_2X3_STBC_MCS0         = 200,
449 	WL_RATE_2X3_STBC_MCS1         = 201,
450 	WL_RATE_2X3_STBC_MCS2         = 202,
451 	WL_RATE_2X3_STBC_MCS3         = 203,
452 	WL_RATE_2X3_STBC_MCS4         = 204,
453 	WL_RATE_2X3_STBC_MCS5         = 205,
454 	WL_RATE_2X3_STBC_MCS6         = 206,
455 	WL_RATE_2X3_STBC_MCS7         = 207,
456 	WL_RATE_P_2X3_STBC_MCS87      = 208,
457 	WL_RATE_P_2X3_STBC_MCS88      = 209,
458 
459 	WL_RATE_2X3_STBC_VHT0SS1      = 200,
460 	WL_RATE_2X3_STBC_VHT1SS1      = 201,
461 	WL_RATE_2X3_STBC_VHT2SS1      = 202,
462 	WL_RATE_2X3_STBC_VHT3SS1      = 203,
463 	WL_RATE_2X3_STBC_VHT4SS1      = 204,
464 	WL_RATE_2X3_STBC_VHT5SS1      = 205,
465 	WL_RATE_2X3_STBC_VHT6SS1      = 206,
466 	WL_RATE_2X3_STBC_VHT7SS1      = 207,
467 	WL_RATE_2X3_STBC_VHT8SS1      = 208,
468 	WL_RATE_2X3_STBC_VHT9SS1      = 209,
469 	WL_RATE_P_2X3_STBC_VHT10SS1   = 210,
470 	WL_RATE_P_2X3_STBC_VHT11SS1   = 211,
471 
472 	WL_RATE_2X3_SDM_MCS8          = 212,
473 	WL_RATE_2X3_SDM_MCS9          = 213,
474 	WL_RATE_2X3_SDM_MCS10         = 214,
475 	WL_RATE_2X3_SDM_MCS11         = 215,
476 	WL_RATE_2X3_SDM_MCS12         = 216,
477 	WL_RATE_2X3_SDM_MCS13         = 217,
478 	WL_RATE_2X3_SDM_MCS14         = 218,
479 	WL_RATE_2X3_SDM_MCS15         = 219,
480 	WL_RATE_P_2X3_SDM_MCS99       = 220,
481 	WL_RATE_P_2X3_SDM_MCS100      = 221,
482 
483 	WL_RATE_2X3_VHT0SS2           = 212,
484 	WL_RATE_2X3_VHT1SS2           = 213,
485 	WL_RATE_2X3_VHT2SS2           = 214,
486 	WL_RATE_2X3_VHT3SS2           = 215,
487 	WL_RATE_2X3_VHT4SS2           = 216,
488 	WL_RATE_2X3_VHT5SS2           = 217,
489 	WL_RATE_2X3_VHT6SS2           = 218,
490 	WL_RATE_2X3_VHT7SS2           = 219,
491 	WL_RATE_2X3_VHT8SS2           = 220,
492 	WL_RATE_2X3_VHT9SS2           = 221,
493 	WL_RATE_P_2X3_VHT10SS2        = 222,
494 	WL_RATE_P_2X3_VHT11SS2        = 223,
495 
496 	WL_RATE_2X3_HE0SS2            = 224,
497 	WL_RATE_2X3_HE1SS2            = 225,
498 	WL_RATE_2X3_HE2SS2            = 226,
499 	WL_RATE_2X3_HE3SS2            = 227,
500 	WL_RATE_2X3_HE4SS2            = 228,
501 	WL_RATE_2X3_HE5SS2            = 229,
502 	WL_RATE_2X3_HE6SS2            = 230,
503 	WL_RATE_2X3_HE7SS2            = 231,
504 	WL_RATE_2X3_HE8SS2            = 232,
505 	WL_RATE_2X3_HE9SS2            = 233,
506 	WL_RATE_2X3_HE10SS2           = 234,
507 	WL_RATE_2X3_HE11SS2           = 235,
508 
509 	/* 3 Streams */
510 	WL_RATE_3X3_SDM_MCS16         = 236,
511 	WL_RATE_3X3_SDM_MCS17         = 237,
512 	WL_RATE_3X3_SDM_MCS18         = 238,
513 	WL_RATE_3X3_SDM_MCS19         = 239,
514 	WL_RATE_3X3_SDM_MCS20         = 240,
515 	WL_RATE_3X3_SDM_MCS21         = 241,
516 	WL_RATE_3X3_SDM_MCS22         = 242,
517 	WL_RATE_3X3_SDM_MCS23         = 243,
518 	WL_RATE_P_3X3_SDM_MCS101      = 244,
519 	WL_RATE_P_3X3_SDM_MCS102      = 245,
520 
521 	WL_RATE_3X3_VHT0SS3           = 236,
522 	WL_RATE_3X3_VHT1SS3           = 237,
523 	WL_RATE_3X3_VHT2SS3           = 238,
524 	WL_RATE_3X3_VHT3SS3           = 239,
525 	WL_RATE_3X3_VHT4SS3           = 240,
526 	WL_RATE_3X3_VHT5SS3           = 241,
527 	WL_RATE_3X3_VHT6SS3           = 242,
528 	WL_RATE_3X3_VHT7SS3           = 243,
529 	WL_RATE_3X3_VHT8SS3           = 244,
530 	WL_RATE_3X3_VHT9SS3           = 245,
531 	WL_RATE_P_3X3_VHT10SS3        = 246,
532 	WL_RATE_P_3X3_VHT11SS3        = 247,
533 
534 	WL_RATE_3X3_HE0SS3            = 248,
535 	WL_RATE_3X3_HE1SS3            = 249,
536 	WL_RATE_3X3_HE2SS3            = 250,
537 	WL_RATE_3X3_HE3SS3            = 251,
538 	WL_RATE_3X3_HE4SS3            = 252,
539 	WL_RATE_3X3_HE5SS3            = 253,
540 	WL_RATE_3X3_HE6SS3            = 254,
541 	WL_RATE_3X3_HE7SS3            = 255,
542 	WL_RATE_3X3_HE8SS3            = 256,
543 	WL_RATE_3X3_HE9SS3            = 257,
544 	WL_RATE_3X3_HE10SS3           = 258,
545 	WL_RATE_3X3_HE11SS3           = 259,
546 
547 	/****************************
548 	 * TX Beamforming, 3 chains *
549 	 ****************************
550 	 */
551 
552 	/* 1 Stream expanded + 2 */
553 	WL_RATE_1X3_TXBF_OFDM_6       = 260,
554 	WL_RATE_1X3_TXBF_OFDM_9       = 261,
555 	WL_RATE_1X3_TXBF_OFDM_12      = 262,
556 	WL_RATE_1X3_TXBF_OFDM_18      = 263,
557 	WL_RATE_1X3_TXBF_OFDM_24      = 264,
558 	WL_RATE_1X3_TXBF_OFDM_36      = 265,
559 	WL_RATE_1X3_TXBF_OFDM_48      = 266,
560 	WL_RATE_1X3_TXBF_OFDM_54      = 267,
561 
562 	WL_RATE_1X3_TXBF_MCS0         = 268,
563 	WL_RATE_1X3_TXBF_MCS1         = 269,
564 	WL_RATE_1X3_TXBF_MCS2         = 270,
565 	WL_RATE_1X3_TXBF_MCS3         = 271,
566 	WL_RATE_1X3_TXBF_MCS4         = 272,
567 	WL_RATE_1X3_TXBF_MCS5         = 273,
568 	WL_RATE_1X3_TXBF_MCS6         = 274,
569 	WL_RATE_1X3_TXBF_MCS7         = 275,
570 	WL_RATE_P_1X3_TXBF_MCS87      = 276,
571 	WL_RATE_P_1X3_TXBF_MCS88      = 277,
572 
573 	WL_RATE_1X3_TXBF_VHT0SS1      = 268,
574 	WL_RATE_1X3_TXBF_VHT1SS1      = 269,
575 	WL_RATE_1X3_TXBF_VHT2SS1      = 270,
576 	WL_RATE_1X3_TXBF_VHT3SS1      = 271,
577 	WL_RATE_1X3_TXBF_VHT4SS1      = 272,
578 	WL_RATE_1X3_TXBF_VHT5SS1      = 273,
579 	WL_RATE_1X3_TXBF_VHT6SS1      = 274,
580 	WL_RATE_1X3_TXBF_VHT7SS1      = 275,
581 	WL_RATE_1X3_TXBF_VHT8SS1      = 276,
582 	WL_RATE_1X3_TXBF_VHT9SS1      = 277,
583 	WL_RATE_P_1X3_TXBF_VHT10SS1   = 278,
584 	WL_RATE_P_1X3_TXBF_VHT11SS1   = 279,
585 
586 	WL_RATE_1X3_TXBF_HE0SS1       = 280,
587 	WL_RATE_1X3_TXBF_HE1SS1       = 281,
588 	WL_RATE_1X3_TXBF_HE2SS1       = 282,
589 	WL_RATE_1X3_TXBF_HE3SS1       = 283,
590 	WL_RATE_1X3_TXBF_HE4SS1       = 284,
591 	WL_RATE_1X3_TXBF_HE5SS1       = 285,
592 	WL_RATE_1X3_TXBF_HE6SS1       = 286,
593 	WL_RATE_1X3_TXBF_HE7SS1       = 287,
594 	WL_RATE_1X3_TXBF_HE8SS1       = 288,
595 	WL_RATE_1X3_TXBF_HE9SS1       = 289,
596 	WL_RATE_1X3_TXBF_HE10SS1      = 290,
597 	WL_RATE_1X3_TXBF_HE11SS1      = 291,
598 
599 	/* 2 Streams expanded + 1 */
600 	WL_RATE_2X3_TXBF_SDM_MCS8     = 292,
601 	WL_RATE_2X3_TXBF_SDM_MCS9     = 293,
602 	WL_RATE_2X3_TXBF_SDM_MCS10    = 294,
603 	WL_RATE_2X3_TXBF_SDM_MCS11    = 295,
604 	WL_RATE_2X3_TXBF_SDM_MCS12    = 296,
605 	WL_RATE_2X3_TXBF_SDM_MCS13    = 297,
606 	WL_RATE_2X3_TXBF_SDM_MCS14    = 298,
607 	WL_RATE_2X3_TXBF_SDM_MCS15    = 299,
608 	WL_RATE_P_2X3_TXBF_SDM_MCS99  = 300,
609 	WL_RATE_P_2X3_TXBF_SDM_MCS100 = 301,
610 
611 	WL_RATE_2X3_TXBF_VHT0SS2      = 292,
612 	WL_RATE_2X3_TXBF_VHT1SS2      = 293,
613 	WL_RATE_2X3_TXBF_VHT2SS2      = 294,
614 	WL_RATE_2X3_TXBF_VHT3SS2      = 295,
615 	WL_RATE_2X3_TXBF_VHT4SS2      = 296,
616 	WL_RATE_2X3_TXBF_VHT5SS2      = 297,
617 	WL_RATE_2X3_TXBF_VHT6SS2      = 298,
618 	WL_RATE_2X3_TXBF_VHT7SS2      = 299,
619 	WL_RATE_2X3_TXBF_VHT8SS2      = 300,
620 	WL_RATE_2X3_TXBF_VHT9SS2      = 301,
621 	WL_RATE_P_2X3_TXBF_VHT10SS2   = 302,
622 	WL_RATE_P_2X3_TXBF_VHT11SS2   = 303,
623 
624 	WL_RATE_2X3_TXBF_HE0SS2       = 304,
625 	WL_RATE_2X3_TXBF_HE1SS2       = 305,
626 	WL_RATE_2X3_TXBF_HE2SS2       = 306,
627 	WL_RATE_2X3_TXBF_HE3SS2       = 307,
628 	WL_RATE_2X3_TXBF_HE4SS2       = 308,
629 	WL_RATE_2X3_TXBF_HE5SS2       = 309,
630 	WL_RATE_2X3_TXBF_HE6SS2       = 310,
631 	WL_RATE_2X3_TXBF_HE7SS2       = 311,
632 	WL_RATE_2X3_TXBF_HE8SS2       = 312,
633 	WL_RATE_2X3_TXBF_HE9SS2       = 313,
634 	WL_RATE_2X3_TXBF_HE10SS2      = 314,
635 	WL_RATE_2X3_TXBF_HE11SS2      = 315,
636 
637 	/* 3 Streams */
638 	WL_RATE_3X3_TXBF_SDM_MCS16    = 316,
639 	WL_RATE_3X3_TXBF_SDM_MCS17    = 317,
640 	WL_RATE_3X3_TXBF_SDM_MCS18    = 318,
641 	WL_RATE_3X3_TXBF_SDM_MCS19    = 319,
642 	WL_RATE_3X3_TXBF_SDM_MCS20    = 320,
643 	WL_RATE_3X3_TXBF_SDM_MCS21    = 321,
644 	WL_RATE_3X3_TXBF_SDM_MCS22    = 322,
645 	WL_RATE_3X3_TXBF_SDM_MCS23    = 323,
646 	WL_RATE_P_3X3_TXBF_SDM_MCS101 = 324,
647 	WL_RATE_P_3X3_TXBF_SDM_MCS102 = 325,
648 
649 	WL_RATE_3X3_TXBF_VHT0SS3      = 316,
650 	WL_RATE_3X3_TXBF_VHT1SS3      = 317,
651 	WL_RATE_3X3_TXBF_VHT2SS3      = 318,
652 	WL_RATE_3X3_TXBF_VHT3SS3      = 319,
653 	WL_RATE_3X3_TXBF_VHT4SS3      = 320,
654 	WL_RATE_3X3_TXBF_VHT5SS3      = 321,
655 	WL_RATE_3X3_TXBF_VHT6SS3      = 322,
656 	WL_RATE_3X3_TXBF_VHT7SS3      = 323,
657 	WL_RATE_3X3_TXBF_VHT8SS3      = 324,
658 	WL_RATE_3X3_TXBF_VHT9SS3      = 325,
659 	WL_RATE_P_3X3_TXBF_VHT10SS3   = 326,
660 	WL_RATE_P_3X3_TXBF_VHT11SS3   = 327,
661 
662 	WL_RATE_3X3_TXBF_HE0SS3       = 328,
663 	WL_RATE_3X3_TXBF_HE1SS3       = 329,
664 	WL_RATE_3X3_TXBF_HE2SS3       = 330,
665 	WL_RATE_3X3_TXBF_HE3SS3       = 331,
666 	WL_RATE_3X3_TXBF_HE4SS3       = 332,
667 	WL_RATE_3X3_TXBF_HE5SS3       = 333,
668 	WL_RATE_3X3_TXBF_HE6SS3       = 334,
669 	WL_RATE_3X3_TXBF_HE7SS3       = 335,
670 	WL_RATE_3X3_TXBF_HE8SS3       = 336,
671 	WL_RATE_3X3_TXBF_HE9SS3       = 337,
672 	WL_RATE_3X3_TXBF_HE10SS3      = 338,
673 	WL_RATE_3X3_TXBF_HE11SS3      = 339,
674 
675 	/************
676 	* 4 chains *
677 	************
678 	*/
679 
680 	/* 1 Stream expanded + 3 */
681 	WL_RATE_1X4_DSSS_1            = 340,
682 	WL_RATE_1X4_DSSS_2            = 341,
683 	WL_RATE_1X4_DSSS_5_5          = 342,
684 	WL_RATE_1X4_DSSS_11           = 343,
685 
686 	WL_RATE_1X4_CDD_OFDM_6        = 344,
687 	WL_RATE_1X4_CDD_OFDM_9        = 345,
688 	WL_RATE_1X4_CDD_OFDM_12       = 346,
689 	WL_RATE_1X4_CDD_OFDM_18       = 347,
690 	WL_RATE_1X4_CDD_OFDM_24       = 348,
691 	WL_RATE_1X4_CDD_OFDM_36       = 349,
692 	WL_RATE_1X4_CDD_OFDM_48       = 350,
693 	WL_RATE_1X4_CDD_OFDM_54       = 351,
694 
695 	WL_RATE_1X4_CDD_MCS0          = 352,
696 	WL_RATE_1X4_CDD_MCS1          = 353,
697 	WL_RATE_1X4_CDD_MCS2          = 354,
698 	WL_RATE_1X4_CDD_MCS3          = 355,
699 	WL_RATE_1X4_CDD_MCS4          = 356,
700 	WL_RATE_1X4_CDD_MCS5          = 357,
701 	WL_RATE_1X4_CDD_MCS6          = 358,
702 	WL_RATE_1X4_CDD_MCS7          = 359,
703 	WL_RATE_P_1X4_CDD_MCS87       = 360,
704 	WL_RATE_P_1X4_CDD_MCS88       = 361,
705 
706 	WL_RATE_1X4_VHT0SS1           = 352,
707 	WL_RATE_1X4_VHT1SS1           = 353,
708 	WL_RATE_1X4_VHT2SS1           = 354,
709 	WL_RATE_1X4_VHT3SS1           = 355,
710 	WL_RATE_1X4_VHT4SS1           = 356,
711 	WL_RATE_1X4_VHT5SS1           = 357,
712 	WL_RATE_1X4_VHT6SS1           = 358,
713 	WL_RATE_1X4_VHT7SS1           = 359,
714 	WL_RATE_1X4_VHT8SS1           = 360,
715 	WL_RATE_1X4_VHT9SS1           = 361,
716 	WL_RATE_P_1X4_VHT10SS1        = 362,
717 	WL_RATE_P_1X4_VHT11SS1        = 363,
718 
719 	WL_RATE_1X4_HE0SS1            = 364,
720 	WL_RATE_1X4_HE1SS1            = 365,
721 	WL_RATE_1X4_HE2SS1            = 366,
722 	WL_RATE_1X4_HE3SS1            = 367,
723 	WL_RATE_1X4_HE4SS1            = 368,
724 	WL_RATE_1X4_HE5SS1            = 369,
725 	WL_RATE_1X4_HE6SS1            = 370,
726 	WL_RATE_1X4_HE7SS1            = 371,
727 	WL_RATE_1X4_HE8SS1            = 372,
728 	WL_RATE_1X4_HE9SS1            = 373,
729 	WL_RATE_1X4_HE10SS1           = 374,
730 	WL_RATE_1X4_HE11SS1           = 375,
731 
732 	/* 2 Streams expanded + 2 */
733 	WL_RATE_2X4_STBC_MCS0         = 376,
734 	WL_RATE_2X4_STBC_MCS1         = 377,
735 	WL_RATE_2X4_STBC_MCS2         = 378,
736 	WL_RATE_2X4_STBC_MCS3         = 379,
737 	WL_RATE_2X4_STBC_MCS4         = 380,
738 	WL_RATE_2X4_STBC_MCS5         = 381,
739 	WL_RATE_2X4_STBC_MCS6         = 382,
740 	WL_RATE_2X4_STBC_MCS7         = 383,
741 	WL_RATE_P_2X4_STBC_MCS87      = 384,
742 	WL_RATE_P_2X4_STBC_MCS88      = 385,
743 
744 	WL_RATE_2X4_STBC_VHT0SS1      = 376,
745 	WL_RATE_2X4_STBC_VHT1SS1      = 377,
746 	WL_RATE_2X4_STBC_VHT2SS1      = 378,
747 	WL_RATE_2X4_STBC_VHT3SS1      = 379,
748 	WL_RATE_2X4_STBC_VHT4SS1      = 380,
749 	WL_RATE_2X4_STBC_VHT5SS1      = 381,
750 	WL_RATE_2X4_STBC_VHT6SS1      = 382,
751 	WL_RATE_2X4_STBC_VHT7SS1      = 383,
752 	WL_RATE_2X4_STBC_VHT8SS1      = 384,
753 	WL_RATE_2X4_STBC_VHT9SS1      = 385,
754 	WL_RATE_P_2X4_STBC_VHT10SS1   = 386,
755 	WL_RATE_P_2X4_STBC_VHT11SS1   = 387,
756 
757 	WL_RATE_2X4_SDM_MCS8          = 388,
758 	WL_RATE_2X4_SDM_MCS9          = 389,
759 	WL_RATE_2X4_SDM_MCS10         = 390,
760 	WL_RATE_2X4_SDM_MCS11         = 391,
761 	WL_RATE_2X4_SDM_MCS12         = 392,
762 	WL_RATE_2X4_SDM_MCS13         = 393,
763 	WL_RATE_2X4_SDM_MCS14         = 394,
764 	WL_RATE_2X4_SDM_MCS15         = 395,
765 	WL_RATE_P_2X4_SDM_MCS99       = 396,
766 	WL_RATE_P_2X4_SDM_MCS100      = 397,
767 
768 	WL_RATE_2X4_VHT0SS2           = 388,
769 	WL_RATE_2X4_VHT1SS2           = 389,
770 	WL_RATE_2X4_VHT2SS2           = 390,
771 	WL_RATE_2X4_VHT3SS2           = 391,
772 	WL_RATE_2X4_VHT4SS2           = 392,
773 	WL_RATE_2X4_VHT5SS2           = 393,
774 	WL_RATE_2X4_VHT6SS2           = 394,
775 	WL_RATE_2X4_VHT7SS2           = 395,
776 	WL_RATE_2X4_VHT8SS2           = 396,
777 	WL_RATE_2X4_VHT9SS2           = 397,
778 	WL_RATE_P_2X4_VHT10SS2        = 398,
779 	WL_RATE_P_2X4_VHT11SS2        = 399,
780 
781 	WL_RATE_2X4_HE0SS2            = 400,
782 	WL_RATE_2X4_HE1SS2            = 401,
783 	WL_RATE_2X4_HE2SS2            = 402,
784 	WL_RATE_2X4_HE3SS2            = 403,
785 	WL_RATE_2X4_HE4SS2            = 404,
786 	WL_RATE_2X4_HE5SS2            = 405,
787 	WL_RATE_2X4_HE6SS2            = 406,
788 	WL_RATE_2X4_HE7SS2            = 407,
789 	WL_RATE_2X4_HE8SS2            = 408,
790 	WL_RATE_2X4_HE9SS2            = 409,
791 	WL_RATE_2X4_HE10SS2           = 410,
792 	WL_RATE_2X4_HE11SS2           = 411,
793 
794 	/* 3 Streams expanded + 1 */
795 	WL_RATE_3X4_SDM_MCS16         = 412,
796 	WL_RATE_3X4_SDM_MCS17         = 413,
797 	WL_RATE_3X4_SDM_MCS18         = 414,
798 	WL_RATE_3X4_SDM_MCS19         = 415,
799 	WL_RATE_3X4_SDM_MCS20         = 416,
800 	WL_RATE_3X4_SDM_MCS21         = 417,
801 	WL_RATE_3X4_SDM_MCS22         = 418,
802 	WL_RATE_3X4_SDM_MCS23         = 419,
803 	WL_RATE_P_3X4_SDM_MCS101      = 420,
804 	WL_RATE_P_3X4_SDM_MCS102      = 421,
805 
806 	WL_RATE_3X4_VHT0SS3           = 412,
807 	WL_RATE_3X4_VHT1SS3           = 413,
808 	WL_RATE_3X4_VHT2SS3           = 414,
809 	WL_RATE_3X4_VHT3SS3           = 415,
810 	WL_RATE_3X4_VHT4SS3           = 416,
811 	WL_RATE_3X4_VHT5SS3           = 417,
812 	WL_RATE_3X4_VHT6SS3           = 418,
813 	WL_RATE_3X4_VHT7SS3           = 419,
814 	WL_RATE_3X4_VHT8SS3           = 420,
815 	WL_RATE_3X4_VHT9SS3           = 421,
816 	WL_RATE_P_3X4_VHT10SS3        = 422,
817 	WL_RATE_P_3X4_VHT11SS3        = 423,
818 
819 	WL_RATE_3X4_HE0SS3            = 424,
820 	WL_RATE_3X4_HE1SS3            = 425,
821 	WL_RATE_3X4_HE2SS3            = 426,
822 	WL_RATE_3X4_HE3SS3            = 427,
823 	WL_RATE_3X4_HE4SS3            = 428,
824 	WL_RATE_3X4_HE5SS3            = 429,
825 	WL_RATE_3X4_HE6SS3            = 430,
826 	WL_RATE_3X4_HE7SS3            = 431,
827 	WL_RATE_3X4_HE8SS3            = 432,
828 	WL_RATE_3X4_HE9SS3            = 433,
829 	WL_RATE_3X4_HE10SS3           = 434,
830 	WL_RATE_3X4_HE11SS3           = 435,
831 
832 	/* 4 Streams */
833 	WL_RATE_4X4_SDM_MCS24         = 436,
834 	WL_RATE_4X4_SDM_MCS25         = 437,
835 	WL_RATE_4X4_SDM_MCS26         = 438,
836 	WL_RATE_4X4_SDM_MCS27         = 439,
837 	WL_RATE_4X4_SDM_MCS28         = 440,
838 	WL_RATE_4X4_SDM_MCS29         = 441,
839 	WL_RATE_4X4_SDM_MCS30         = 442,
840 	WL_RATE_4X4_SDM_MCS31         = 443,
841 	WL_RATE_P_4X4_SDM_MCS103      = 444,
842 	WL_RATE_P_4X4_SDM_MCS104      = 445,
843 
844 	WL_RATE_4X4_VHT0SS4           = 436,
845 	WL_RATE_4X4_VHT1SS4           = 437,
846 	WL_RATE_4X4_VHT2SS4           = 438,
847 	WL_RATE_4X4_VHT3SS4           = 439,
848 	WL_RATE_4X4_VHT4SS4           = 440,
849 	WL_RATE_4X4_VHT5SS4           = 441,
850 	WL_RATE_4X4_VHT6SS4           = 442,
851 	WL_RATE_4X4_VHT7SS4           = 443,
852 	WL_RATE_4X4_VHT8SS4           = 444,
853 	WL_RATE_4X4_VHT9SS4           = 445,
854 	WL_RATE_P_4X4_VHT10SS4        = 446,
855 	WL_RATE_P_4X4_VHT11SS4        = 447,
856 
857 	WL_RATE_4X4_HE0SS4            = 448,
858 	WL_RATE_4X4_HE1SS4            = 449,
859 	WL_RATE_4X4_HE2SS4            = 450,
860 	WL_RATE_4X4_HE3SS4            = 451,
861 	WL_RATE_4X4_HE4SS4            = 452,
862 	WL_RATE_4X4_HE5SS4            = 453,
863 	WL_RATE_4X4_HE6SS4            = 454,
864 	WL_RATE_4X4_HE7SS4            = 455,
865 	WL_RATE_4X4_HE8SS4            = 456,
866 	WL_RATE_4X4_HE9SS4            = 457,
867 	WL_RATE_4X4_HE10SS4           = 458,
868 	WL_RATE_4X4_HE11SS4           = 459,
869 
870 	/****************************
871 	 * TX Beamforming, 4 chains *
872 	 ****************************
873 	 */
874 
875 	/* 1 Stream expanded + 3 */
876 	WL_RATE_1X4_TXBF_OFDM_6       = 460,
877 	WL_RATE_1X4_TXBF_OFDM_9       = 461,
878 	WL_RATE_1X4_TXBF_OFDM_12      = 462,
879 	WL_RATE_1X4_TXBF_OFDM_18      = 463,
880 	WL_RATE_1X4_TXBF_OFDM_24      = 464,
881 	WL_RATE_1X4_TXBF_OFDM_36      = 465,
882 	WL_RATE_1X4_TXBF_OFDM_48      = 466,
883 	WL_RATE_1X4_TXBF_OFDM_54      = 467,
884 
885 	WL_RATE_1X4_TXBF_MCS0         = 468,
886 	WL_RATE_1X4_TXBF_MCS1         = 469,
887 	WL_RATE_1X4_TXBF_MCS2         = 470,
888 	WL_RATE_1X4_TXBF_MCS3         = 471,
889 	WL_RATE_1X4_TXBF_MCS4         = 472,
890 	WL_RATE_1X4_TXBF_MCS5         = 473,
891 	WL_RATE_1X4_TXBF_MCS6         = 474,
892 	WL_RATE_1X4_TXBF_MCS7         = 475,
893 	WL_RATE_P_1X4_TXBF_MCS87      = 476,
894 	WL_RATE_P_1X4_TXBF_MCS88      = 477,
895 
896 	WL_RATE_1X4_TXBF_VHT0SS1      = 468,
897 	WL_RATE_1X4_TXBF_VHT1SS1      = 469,
898 	WL_RATE_1X4_TXBF_VHT2SS1      = 470,
899 	WL_RATE_1X4_TXBF_VHT3SS1      = 471,
900 	WL_RATE_1X4_TXBF_VHT4SS1      = 472,
901 	WL_RATE_1X4_TXBF_VHT5SS1      = 473,
902 	WL_RATE_1X4_TXBF_VHT6SS1      = 474,
903 	WL_RATE_1X4_TXBF_VHT7SS1      = 475,
904 	WL_RATE_1X4_TXBF_VHT8SS1      = 476,
905 	WL_RATE_1X4_TXBF_VHT9SS1      = 477,
906 	WL_RATE_P_1X4_TXBF_VHT10SS1   = 478,
907 	WL_RATE_P_1X4_TXBF_VHT11SS1   = 479,
908 
909 	WL_RATE_1X4_TXBF_HE0SS1       = 480,
910 	WL_RATE_1X4_TXBF_HE1SS1       = 481,
911 	WL_RATE_1X4_TXBF_HE2SS1       = 482,
912 	WL_RATE_1X4_TXBF_HE3SS1       = 483,
913 	WL_RATE_1X4_TXBF_HE4SS1       = 484,
914 	WL_RATE_1X4_TXBF_HE5SS1       = 485,
915 	WL_RATE_1X4_TXBF_HE6SS1       = 486,
916 	WL_RATE_1X4_TXBF_HE7SS1       = 487,
917 	WL_RATE_1X4_TXBF_HE8SS1       = 488,
918 	WL_RATE_1X4_TXBF_HE9SS1       = 489,
919 	WL_RATE_1X4_TXBF_HE10SS1      = 490,
920 	WL_RATE_1X4_TXBF_HE11SS1      = 491,
921 
922 	/* 2 Streams expanded + 2 */
923 	WL_RATE_2X4_TXBF_SDM_MCS8     = 492,
924 	WL_RATE_2X4_TXBF_SDM_MCS9     = 493,
925 	WL_RATE_2X4_TXBF_SDM_MCS10    = 494,
926 	WL_RATE_2X4_TXBF_SDM_MCS11    = 495,
927 	WL_RATE_2X4_TXBF_SDM_MCS12    = 496,
928 	WL_RATE_2X4_TXBF_SDM_MCS13    = 497,
929 	WL_RATE_2X4_TXBF_SDM_MCS14    = 498,
930 	WL_RATE_2X4_TXBF_SDM_MCS15    = 499,
931 	WL_RATE_P_2X4_TXBF_SDM_MCS99  = 500,
932 	WL_RATE_P_2X4_TXBF_SDM_MCS100 = 501,
933 
934 	WL_RATE_2X4_TXBF_VHT0SS2      = 492,
935 	WL_RATE_2X4_TXBF_VHT1SS2      = 493,
936 	WL_RATE_2X4_TXBF_VHT2SS2      = 494,
937 	WL_RATE_2X4_TXBF_VHT3SS2      = 495,
938 	WL_RATE_2X4_TXBF_VHT4SS2      = 496,
939 	WL_RATE_2X4_TXBF_VHT5SS2      = 497,
940 	WL_RATE_2X4_TXBF_VHT6SS2      = 498,
941 	WL_RATE_2X4_TXBF_VHT7SS2      = 499,
942 	WL_RATE_2X4_TXBF_VHT8SS2      = 500,
943 	WL_RATE_2X4_TXBF_VHT9SS2      = 501,
944 	WL_RATE_P_2X4_TXBF_VHT10SS2   = 502,
945 	WL_RATE_P_2X4_TXBF_VHT11SS2   = 503,
946 
947 	WL_RATE_2X4_TXBF_HE0SS2       = 504,
948 	WL_RATE_2X4_TXBF_HE1SS2       = 505,
949 	WL_RATE_2X4_TXBF_HE2SS2       = 506,
950 	WL_RATE_2X4_TXBF_HE3SS2       = 507,
951 	WL_RATE_2X4_TXBF_HE4SS2       = 508,
952 	WL_RATE_2X4_TXBF_HE5SS2       = 509,
953 	WL_RATE_2X4_TXBF_HE6SS2       = 510,
954 	WL_RATE_2X4_TXBF_HE7SS2       = 511,
955 	WL_RATE_2X4_TXBF_HE8SS2       = 512,
956 	WL_RATE_2X4_TXBF_HE9SS2       = 513,
957 	WL_RATE_2X4_TXBF_HE10SS2      = 514,
958 	WL_RATE_2X4_TXBF_HE11SS2      = 515,
959 
960 	/* 3 Streams expanded + 1 */
961 	WL_RATE_3X4_TXBF_SDM_MCS16    = 516,
962 	WL_RATE_3X4_TXBF_SDM_MCS17    = 517,
963 	WL_RATE_3X4_TXBF_SDM_MCS18    = 518,
964 	WL_RATE_3X4_TXBF_SDM_MCS19    = 519,
965 	WL_RATE_3X4_TXBF_SDM_MCS20    = 520,
966 	WL_RATE_3X4_TXBF_SDM_MCS21    = 521,
967 	WL_RATE_3X4_TXBF_SDM_MCS22    = 522,
968 	WL_RATE_3X4_TXBF_SDM_MCS23    = 523,
969 	WL_RATE_P_3X4_TXBF_SDM_MCS101 = 524,
970 	WL_RATE_P_3X4_TXBF_SDM_MCS102 = 525,
971 
972 	WL_RATE_3X4_TXBF_VHT0SS3      = 516,
973 	WL_RATE_3X4_TXBF_VHT1SS3      = 517,
974 	WL_RATE_3X4_TXBF_VHT2SS3      = 518,
975 	WL_RATE_3X4_TXBF_VHT3SS3      = 519,
976 	WL_RATE_3X4_TXBF_VHT4SS3      = 520,
977 	WL_RATE_3X4_TXBF_VHT5SS3      = 521,
978 	WL_RATE_3X4_TXBF_VHT6SS3      = 522,
979 	WL_RATE_3X4_TXBF_VHT7SS3      = 523,
980 	WL_RATE_P_3X4_TXBF_VHT8SS3    = 524,
981 	WL_RATE_P_3X4_TXBF_VHT9SS3    = 525,
982 	WL_RATE_P_3X4_TXBF_VHT10SS3   = 526,
983 	WL_RATE_P_3X4_TXBF_VHT11SS3   = 527,
984 
985 	WL_RATE_3X4_TXBF_HE0SS3       = 528,
986 	WL_RATE_3X4_TXBF_HE1SS3       = 529,
987 	WL_RATE_3X4_TXBF_HE2SS3       = 530,
988 	WL_RATE_3X4_TXBF_HE3SS3       = 531,
989 	WL_RATE_3X4_TXBF_HE4SS3       = 532,
990 	WL_RATE_3X4_TXBF_HE5SS3       = 533,
991 	WL_RATE_3X4_TXBF_HE6SS3       = 534,
992 	WL_RATE_3X4_TXBF_HE7SS3       = 535,
993 	WL_RATE_3X4_TXBF_HE8SS3       = 536,
994 	WL_RATE_3X4_TXBF_HE9SS3       = 537,
995 	WL_RATE_3X4_TXBF_HE10SS3      = 538,
996 	WL_RATE_3X4_TXBF_HE11SS3      = 539,
997 
998 	/* 4 Streams */
999 	WL_RATE_4X4_TXBF_SDM_MCS24    = 540,
1000 	WL_RATE_4X4_TXBF_SDM_MCS25    = 541,
1001 	WL_RATE_4X4_TXBF_SDM_MCS26    = 542,
1002 	WL_RATE_4X4_TXBF_SDM_MCS27    = 543,
1003 	WL_RATE_4X4_TXBF_SDM_MCS28    = 544,
1004 	WL_RATE_4X4_TXBF_SDM_MCS29    = 545,
1005 	WL_RATE_4X4_TXBF_SDM_MCS30    = 546,
1006 	WL_RATE_4X4_TXBF_SDM_MCS31    = 547,
1007 	WL_RATE_P_4X4_TXBF_SDM_MCS103 = 548,
1008 	WL_RATE_P_4X4_TXBF_SDM_MCS104 = 549,
1009 
1010 	WL_RATE_4X4_TXBF_VHT0SS4      = 540,
1011 	WL_RATE_4X4_TXBF_VHT1SS4      = 541,
1012 	WL_RATE_4X4_TXBF_VHT2SS4      = 542,
1013 	WL_RATE_4X4_TXBF_VHT3SS4      = 543,
1014 	WL_RATE_4X4_TXBF_VHT4SS4      = 544,
1015 	WL_RATE_4X4_TXBF_VHT5SS4      = 545,
1016 	WL_RATE_4X4_TXBF_VHT6SS4      = 546,
1017 	WL_RATE_4X4_TXBF_VHT7SS4      = 547,
1018 	WL_RATE_P_4X4_TXBF_VHT8SS4    = 548,
1019 	WL_RATE_P_4X4_TXBF_VHT9SS4    = 549,
1020 	WL_RATE_P_4X4_TXBF_VHT10SS4   = 550,
1021 	WL_RATE_P_4X4_TXBF_VHT11SS4   = 551,
1022 
1023 	WL_RATE_4X4_TXBF_HE0SS4       = 552,
1024 	WL_RATE_4X4_TXBF_HE1SS4       = 553,
1025 	WL_RATE_4X4_TXBF_HE2SS4       = 554,
1026 	WL_RATE_4X4_TXBF_HE3SS4       = 555,
1027 	WL_RATE_4X4_TXBF_HE4SS4       = 556,
1028 	WL_RATE_4X4_TXBF_HE5SS4       = 557,
1029 	WL_RATE_4X4_TXBF_HE6SS4       = 558,
1030 	WL_RATE_4X4_TXBF_HE7SS4       = 559,
1031 	WL_RATE_4X4_TXBF_HE8SS4       = 560,
1032 	WL_RATE_4X4_TXBF_HE9SS4       = 561,
1033 	WL_RATE_4X4_TXBF_HE10SS4      = 562,
1034 	WL_RATE_4X4_TXBF_HE11SS4      = 563
1035 } clm_rates_t;
1036 
1037 /* Number of rate codes */
1038 #define WL_NUMRATES 564
1039 
1040 /* This enum maps 802.11ax OFDMA (RU) 'rates' to a CLM index */
1041 
1042 typedef enum clm_ru_rates {
1043 	/* RU26 OFDMA UL rates */
1044 	WL_RU_RATE_1X1_26SS1             = 0,
1045 	WL_RU_RATE_1X2_26SS1             = 1,
1046 	WL_RU_RATE_2X2_26SS2             = 2,
1047 	WL_RU_RATE_1X2_TXBF_26SS1        = 3,
1048 	WL_RU_RATE_2X2_TXBF_26SS2        = 4,
1049 	WL_RU_RATE_1X3_26SS1             = 5,
1050 	WL_RU_RATE_2X3_26SS2             = 6,
1051 	WL_RU_RATE_3X3_26SS3             = 7,
1052 	WL_RU_RATE_1X3_TXBF_26SS1        = 8,
1053 	WL_RU_RATE_2X3_TXBF_26SS2        = 9,
1054 	WL_RU_RATE_3X3_TXBF_26SS3        = 10,
1055 	WL_RU_RATE_1X4_26SS1             = 11,
1056 	WL_RU_RATE_2X4_26SS2             = 12,
1057 	WL_RU_RATE_3X4_26SS3             = 13,
1058 	WL_RU_RATE_4X4_26SS4             = 14,
1059 	WL_RU_RATE_1X4_TXBF_26SS1        = 15,
1060 	WL_RU_RATE_2X4_TXBF_26SS2        = 16,
1061 	WL_RU_RATE_3X4_TXBF_26SS3        = 17,
1062 	WL_RU_RATE_4X4_TXBF_26SS4        = 18,
1063 
1064 	/* RU52 OFDMA UL rates */
1065 	WL_RU_RATE_1X1_52SS1             = 19,
1066 	WL_RU_RATE_1X2_52SS1             = 20,
1067 	WL_RU_RATE_2X2_52SS2             = 21,
1068 	WL_RU_RATE_1X2_TXBF_52SS1        = 22,
1069 	WL_RU_RATE_2X2_TXBF_52SS2        = 23,
1070 	WL_RU_RATE_1X3_52SS1             = 24,
1071 	WL_RU_RATE_2X3_52SS2             = 25,
1072 	WL_RU_RATE_3X3_52SS3             = 26,
1073 	WL_RU_RATE_1X3_TXBF_52SS1        = 27,
1074 	WL_RU_RATE_2X3_TXBF_52SS2        = 28,
1075 	WL_RU_RATE_3X3_TXBF_52SS3        = 29,
1076 	WL_RU_RATE_1X4_52SS1             = 30,
1077 	WL_RU_RATE_2X4_52SS2             = 31,
1078 	WL_RU_RATE_3X4_52SS3             = 32,
1079 	WL_RU_RATE_4X4_52SS4             = 33,
1080 	WL_RU_RATE_1X4_TXBF_52SS1        = 34,
1081 	WL_RU_RATE_2X4_TXBF_52SS2        = 35,
1082 	WL_RU_RATE_3X4_TXBF_52SS3        = 36,
1083 	WL_RU_RATE_4X4_TXBF_52SS4        = 37,
1084 
1085 	/* RU106 OFDMA UL rates */
1086 	WL_RU_RATE_1X1_106SS1            = 38,
1087 	WL_RU_RATE_1X2_106SS1            = 39,
1088 	WL_RU_RATE_2X2_106SS2            = 40,
1089 	WL_RU_RATE_1X2_TXBF_106SS1       = 41,
1090 	WL_RU_RATE_2X2_TXBF_106SS2       = 42,
1091 	WL_RU_RATE_1X3_106SS1            = 43,
1092 	WL_RU_RATE_2X3_106SS2            = 44,
1093 	WL_RU_RATE_3X3_106SS3            = 45,
1094 	WL_RU_RATE_1X3_TXBF_106SS1       = 46,
1095 	WL_RU_RATE_2X3_TXBF_106SS2       = 47,
1096 	WL_RU_RATE_3X3_TXBF_106SS3       = 48,
1097 	WL_RU_RATE_1X4_106SS1            = 49,
1098 	WL_RU_RATE_2X4_106SS2            = 50,
1099 	WL_RU_RATE_3X4_106SS3            = 51,
1100 	WL_RU_RATE_4X4_106SS4            = 52,
1101 	WL_RU_RATE_1X4_TXBF_106SS1       = 53,
1102 	WL_RU_RATE_2X4_TXBF_106SS2       = 54,
1103 	WL_RU_RATE_3X4_TXBF_106SS3       = 55,
1104 	WL_RU_RATE_4X4_TXBF_106SS4       = 56,
1105 
1106 	/* Upper Bound OFDMA DL 'rates' */
1107 	WL_RU_RATE_1X1_UBSS1             = 57,
1108 	WL_RU_RATE_1X2_UBSS1             = 58,
1109 	WL_RU_RATE_2X2_UBSS2             = 59,
1110 	WL_RU_RATE_1X2_TXBF_UBSS1        = 60,
1111 	WL_RU_RATE_2X2_TXBF_UBSS2        = 61,
1112 	WL_RU_RATE_1X3_UBSS1             = 62,
1113 	WL_RU_RATE_2X3_UBSS2             = 63,
1114 	WL_RU_RATE_3X3_UBSS3             = 64,
1115 	WL_RU_RATE_1X3_TXBF_UBSS1        = 65,
1116 	WL_RU_RATE_2X3_TXBF_UBSS2        = 66,
1117 	WL_RU_RATE_3X3_TXBF_UBSS3        = 67,
1118 	WL_RU_RATE_1X4_UBSS1             = 68,
1119 	WL_RU_RATE_2X4_UBSS2             = 69,
1120 	WL_RU_RATE_3X4_UBSS3             = 70,
1121 	WL_RU_RATE_4X4_UBSS4             = 71,
1122 	WL_RU_RATE_1X4_TXBF_UBSS1        = 72,
1123 	WL_RU_RATE_2X4_TXBF_UBSS2        = 73,
1124 	WL_RU_RATE_3X4_TXBF_UBSS3        = 74,
1125 	WL_RU_RATE_4X4_TXBF_UBSS4        = 75,
1126 
1127 	/* Less Upper Bound OFDMA DL 'rates' */
1128 	WL_RU_RATE_1X1_LUBSS1            = 76,
1129 	WL_RU_RATE_1X2_LUBSS1            = 77,
1130 	WL_RU_RATE_2X2_LUBSS2            = 78,
1131 	WL_RU_RATE_1X2_TXBF_LUBSS1       = 79,
1132 	WL_RU_RATE_2X2_TXBF_LUBSS2       = 80,
1133 	WL_RU_RATE_1X3_LUBSS1            = 81,
1134 	WL_RU_RATE_2X3_LUBSS2            = 82,
1135 	WL_RU_RATE_3X3_LUBSS3            = 83,
1136 	WL_RU_RATE_1X3_TXBF_LUBSS1       = 84,
1137 	WL_RU_RATE_2X3_TXBF_LUBSS2       = 85,
1138 	WL_RU_RATE_3X3_TXBF_LUBSS3       = 86,
1139 	WL_RU_RATE_1X4_LUBSS1            = 87,
1140 	WL_RU_RATE_2X4_LUBSS2            = 88,
1141 	WL_RU_RATE_3X4_LUBSS3            = 89,
1142 	WL_RU_RATE_4X4_LUBSS4            = 90,
1143 	WL_RU_RATE_1X4_TXBF_LUBSS1       = 91,
1144 	WL_RU_RATE_2X4_TXBF_LUBSS2       = 92,
1145 	WL_RU_RATE_3X4_TXBF_LUBSS3       = 93,
1146 	WL_RU_RATE_4X4_TXBF_LUBSS4       = 94,
1147 
1148 	/* RU242 OFDMA UL rates */
1149 	WL_RU_RATE_1X1_242SS1            = 95,
1150 	WL_RU_RATE_1X2_242SS1            = 96,
1151 	WL_RU_RATE_2X2_242SS2            = 97,
1152 	WL_RU_RATE_1X2_TXBF_242SS1       = 98,
1153 	WL_RU_RATE_2X2_TXBF_242SS2       = 99,
1154 	WL_RU_RATE_1X3_242SS1            = 100,
1155 	WL_RU_RATE_2X3_242SS2            = 101,
1156 	WL_RU_RATE_3X3_242SS3            = 102,
1157 	WL_RU_RATE_1X3_TXBF_242SS1       = 103,
1158 	WL_RU_RATE_2X3_TXBF_242SS2       = 104,
1159 	WL_RU_RATE_3X3_TXBF_242SS3       = 105,
1160 	WL_RU_RATE_1X4_242SS1            = 106,
1161 	WL_RU_RATE_2X4_242SS2            = 107,
1162 	WL_RU_RATE_3X4_242SS3            = 108,
1163 	WL_RU_RATE_4X4_242SS4            = 109,
1164 	WL_RU_RATE_1X4_TXBF_242SS1       = 110,
1165 	WL_RU_RATE_2X4_TXBF_242SS2       = 111,
1166 	WL_RU_RATE_3X4_TXBF_242SS3       = 112,
1167 	WL_RU_RATE_4X4_TXBF_242SS4       = 113,
1168 
1169 	/* RU484 OFDMA UL rates */
1170 	WL_RU_RATE_1X1_484SS1            = 114,
1171 	WL_RU_RATE_1X2_484SS1            = 115,
1172 	WL_RU_RATE_2X2_484SS2            = 116,
1173 	WL_RU_RATE_1X2_TXBF_484SS1       = 117,
1174 	WL_RU_RATE_2X2_TXBF_484SS2       = 118,
1175 	WL_RU_RATE_1X3_484SS1            = 119,
1176 	WL_RU_RATE_2X3_484SS2            = 120,
1177 	WL_RU_RATE_3X3_484SS3            = 121,
1178 	WL_RU_RATE_1X3_TXBF_484SS1       = 122,
1179 	WL_RU_RATE_2X3_TXBF_484SS2       = 123,
1180 	WL_RU_RATE_3X3_TXBF_484SS3       = 124,
1181 	WL_RU_RATE_1X4_484SS1            = 125,
1182 	WL_RU_RATE_2X4_484SS2            = 126,
1183 	WL_RU_RATE_3X4_484SS3            = 127,
1184 	WL_RU_RATE_4X4_484SS4            = 128,
1185 	WL_RU_RATE_1X4_TXBF_484SS1       = 129,
1186 	WL_RU_RATE_2X4_TXBF_484SS2       = 130,
1187 	WL_RU_RATE_3X4_TXBF_484SS3       = 131,
1188 	WL_RU_RATE_4X4_TXBF_484SS4       = 132,
1189 
1190 	/* RU996 OFDMA UL rates */
1191 	WL_RU_RATE_1X1_996SS1            = 133,
1192 	WL_RU_RATE_1X2_996SS1            = 134,
1193 	WL_RU_RATE_2X2_996SS2            = 135,
1194 	WL_RU_RATE_1X2_TXBF_996SS1       = 136,
1195 	WL_RU_RATE_2X2_TXBF_996SS2       = 137,
1196 	WL_RU_RATE_1X3_996SS1            = 138,
1197 	WL_RU_RATE_2X3_996SS2            = 139,
1198 	WL_RU_RATE_3X3_996SS3            = 140,
1199 	WL_RU_RATE_1X3_TXBF_996SS1       = 141,
1200 	WL_RU_RATE_2X3_TXBF_996SS2       = 142,
1201 	WL_RU_RATE_3X3_TXBF_996SS3       = 143,
1202 	WL_RU_RATE_1X4_996SS1            = 144,
1203 	WL_RU_RATE_2X4_996SS2            = 145,
1204 	WL_RU_RATE_3X4_996SS3            = 146,
1205 	WL_RU_RATE_4X4_996SS4            = 147,
1206 	WL_RU_RATE_1X4_TXBF_996SS1       = 148,
1207 	WL_RU_RATE_2X4_TXBF_996SS2       = 149,
1208 	WL_RU_RATE_3X4_TXBF_996SS3       = 150,
1209 	WL_RU_RATE_4X4_TXBF_996SS4       = 151
1210 } clm_ru_rates_t;
1211 
1212 /* Number of OFDMA rate codes */
1213 #define WL_RU_NUMRATES 152
1214 
1215 /* MCS rates */
1216 #define WLC_MAX_VHT_MCS	11	/**< Std VHT MCS 0-9 plus prop VHT MCS 10-11 */
1217 #define WLC_MAX_HE_MCS	11	/**< Std HE MCS 0-11 */
1218 #define WLC_MAX_EHT_MCS	13	/**< Std EHT MCS 0-13 */
1219 
1220 /* Convert encoded rate value in plcp header to numerical rates in 500 KHz increments */
1221 #define OFDM_PHY2MAC_RATE(rlpt)         plcp_ofdm_rate_tbl[(rlpt) & 0x7]
1222 #define CCK_PHY2MAC_RATE(signal)	((signal)/5)
1223 
1224 /* 'proprietary' string should not exist in open source(OEM_ANDROID) */
1225 /* given a proprietary MCS, get number of spatial streams */
1226 #define GET_PROPRIETARY_11N_MCS_NSS(mcs) (1 + ((mcs) - 85) / 8)
1227 
1228 #define GET_11N_MCS_NSS(mcs) ((mcs) < 32 ? (1 + ((mcs) / 8)) : \
1229 			      ((mcs) == 32 ? 1 : GET_PROPRIETARY_11N_MCS_NSS(mcs)))
1230 
1231 #if defined(WLPROPRIETARY_11N_RATES) /* Broadcom proprietary rate support for 11n */
1232 #define IS_PROPRIETARY_11N_MCS(mcs) \
1233 	((mcs) == 87 || (mcs) == 88 || (mcs) == 99 || (mcs) == 100 || (mcs) == 101 || (mcs) == 102)
1234 #define IS_PROPRIETARY_11N_SS_MCS(mcs) \
1235 	((mcs) == 87 || (mcs) == 88)
1236 #else
1237 #define IS_PROPRIETARY_11N_MCS(mcs)	FALSE
1238 #define IS_PROPRIETARY_11N_SS_MCS(mcs)	FALSE /**< is proprietary HT single stream MCS */
1239 #endif	/* WLPROPRIETARY_11N_RATES */
1240 
1241 extern const uint8 plcp_ofdm_rate_tbl[];
1242 
1243 uint8 wf_get_single_stream_mcs(uint mcs);
1244 
1245 /* extract NSS:MCS portions of the rspec */
1246 #define WF_NON_HT_MCS 0x80
1247 uint8 wf_vht_plcp_to_rate(uint8 *plcp);
1248 uint8 wf_he_plcp_to_rate(uint8 *plcp, bool is_mu);
1249 uint8 wf_eht_plcp_to_rate(uint8 *plcp, bool is_mu);
1250 
1251 /* convert rate from mcs to Kbps */
1252 uint wf_mcs_to_rate(uint mcs, uint nss, uint bw, int sgi);
1253 uint wf_he_mcs_to_rate(uint mcs, uint nss, uint bw, uint gi, bool dcm);
1254 
1255 uint wf_mcs_to_Ndbps(uint mcs, uint nss, uint bw);
1256 uint wf_he_mcs_to_Ndbps(uint mcs, uint nss, uint bw, bool dcm);
1257 uint32 wf_he_mcs_ru_to_ndbps(uint8 mcs, uint8 nss, bool dcm, uint8 ru_index);
1258 
1259 #ifdef __cplusplus
1260 }
1261 #endif /* __cplusplus */
1262 #endif /* _bcmwifi_rates_h_ */
1263