Merge tag 'lsk-v4.4-16.06-android'
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / rockchip_wlan / rkwifi / bcmdhd / bcmwifi_rates.h
1 /*
2  * Indices for 802.11 a/b/g/n/ac 1-3 chain symmetric transmit rates
3  *
4  * Copyright (C) 1999-2016, Broadcom Corporation
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  *      Notwithstanding the above, under no circumstances may you combine this
21  * software in any way with any other Broadcom software provided under a license
22  * other than the GPL, without Broadcom's express prior written consent.
23  *
24  *
25  * <<Broadcom-WL-IPTag/Open:>>
26  *
27  * $Id: bcmwifi_rates.h 591285 2015-10-07 11:56:29Z $
28  */
29
30 #ifndef _bcmwifi_rates_h_
31 #define _bcmwifi_rates_h_
32
33 #ifdef __cplusplus
34 extern "C" {
35 #endif /* __cplusplus */
36
37
38 #define WL_RATESET_SZ_DSSS              4
39 #define WL_RATESET_SZ_OFDM              8
40 #define WL_RATESET_SZ_VHT_MCS   10
41 #define WL_RATESET_SZ_VHT_MCS_P 12
42
43 #if defined(WLPROPRIETARY_11N_RATES)
44 #define WL_RATESET_SZ_HT_MCS    WL_RATESET_SZ_VHT_MCS
45 #else
46 #define WL_RATESET_SZ_HT_MCS    8
47 #endif
48
49 #define WL_RATESET_SZ_HT_IOCTL  8       /* MAC histogram, compatibility with wl utility */
50
51 #define WL_TX_CHAINS_MAX                4
52
53 #define WL_RATE_DISABLED                (-128) /* Power value corresponding to unsupported rate */
54
55 /* Transmit channel bandwidths */
56 typedef enum wl_tx_bw {
57         WL_TX_BW_20,
58         WL_TX_BW_40,
59         WL_TX_BW_80,
60         WL_TX_BW_20IN40,
61         WL_TX_BW_20IN80,
62         WL_TX_BW_40IN80,
63         WL_TX_BW_160,
64         WL_TX_BW_20IN160,
65         WL_TX_BW_40IN160,
66         WL_TX_BW_80IN160,
67         WL_TX_BW_ALL,
68         WL_TX_BW_8080,
69         WL_TX_BW_8080CHAN2,
70         WL_TX_BW_20IN8080,
71         WL_TX_BW_40IN8080,
72         WL_TX_BW_80IN8080,
73         WL_TX_BW_2P5,
74         WL_TX_BW_5,
75         WL_TX_BW_10
76 } wl_tx_bw_t;
77
78
79 /*
80  * Transmit modes.
81  * Not all modes are listed here, only those required for disambiguation. e.g. SPEXP is not listed
82  */
83 typedef enum wl_tx_mode {
84         WL_TX_MODE_NONE,
85         WL_TX_MODE_STBC,
86         WL_TX_MODE_CDD,
87         WL_TX_MODE_TXBF,
88         WL_NUM_TX_MODES
89 } wl_tx_mode_t;
90
91
92 /* Number of transmit chains */
93 typedef enum wl_tx_chains {
94         WL_TX_CHAINS_1 = 1,
95         WL_TX_CHAINS_2,
96         WL_TX_CHAINS_3,
97         WL_TX_CHAINS_4
98 } wl_tx_chains_t;
99
100
101 /* Number of transmit streams */
102 typedef enum wl_tx_nss {
103         WL_TX_NSS_1 = 1,
104         WL_TX_NSS_2,
105         WL_TX_NSS_3,
106         WL_TX_NSS_4
107 } wl_tx_nss_t;
108
109
110 /* This enum maps each rate to a CLM index */
111
112 typedef enum clm_rates {
113         /************
114         * 1 chain  *
115         ************
116         */
117
118         /* 1 Stream */
119         WL_RATE_1X1_DSSS_1            = 0,
120         WL_RATE_1X1_DSSS_2            = 1,
121         WL_RATE_1X1_DSSS_5_5          = 2,
122         WL_RATE_1X1_DSSS_11           = 3,
123
124         WL_RATE_1X1_OFDM_6            = 4,
125         WL_RATE_1X1_OFDM_9            = 5,
126         WL_RATE_1X1_OFDM_12           = 6,
127         WL_RATE_1X1_OFDM_18           = 7,
128         WL_RATE_1X1_OFDM_24           = 8,
129         WL_RATE_1X1_OFDM_36           = 9,
130         WL_RATE_1X1_OFDM_48           = 10,
131         WL_RATE_1X1_OFDM_54           = 11,
132
133         WL_RATE_1X1_MCS0              = 12,
134         WL_RATE_1X1_MCS1              = 13,
135         WL_RATE_1X1_MCS2              = 14,
136         WL_RATE_1X1_MCS3              = 15,
137         WL_RATE_1X1_MCS4              = 16,
138         WL_RATE_1X1_MCS5              = 17,
139         WL_RATE_1X1_MCS6              = 18,
140         WL_RATE_1X1_MCS7              = 19,
141         WL_RATE_P_1X1_MCS87           = 20,
142         WL_RATE_P_1X1_MCS88           = 21,
143
144         WL_RATE_1X1_VHT0SS1           = 12,
145         WL_RATE_1X1_VHT1SS1           = 13,
146         WL_RATE_1X1_VHT2SS1           = 14,
147         WL_RATE_1X1_VHT3SS1           = 15,
148         WL_RATE_1X1_VHT4SS1           = 16,
149         WL_RATE_1X1_VHT5SS1           = 17,
150         WL_RATE_1X1_VHT6SS1           = 18,
151         WL_RATE_1X1_VHT7SS1           = 19,
152         WL_RATE_1X1_VHT8SS1           = 20,
153         WL_RATE_1X1_VHT9SS1           = 21,
154         WL_RATE_P_1X1_VHT10SS1        = 22,
155         WL_RATE_P_1X1_VHT11SS1        = 23,
156
157
158         /************
159         * 2 chains *
160         ************
161         */
162
163         /* 1 Stream expanded + 1 */
164         WL_RATE_1X2_DSSS_1            = 24,
165         WL_RATE_1X2_DSSS_2            = 25,
166         WL_RATE_1X2_DSSS_5_5          = 26,
167         WL_RATE_1X2_DSSS_11           = 27,
168
169         WL_RATE_1X2_CDD_OFDM_6        = 28,
170         WL_RATE_1X2_CDD_OFDM_9        = 29,
171         WL_RATE_1X2_CDD_OFDM_12       = 30,
172         WL_RATE_1X2_CDD_OFDM_18       = 31,
173         WL_RATE_1X2_CDD_OFDM_24       = 32,
174         WL_RATE_1X2_CDD_OFDM_36       = 33,
175         WL_RATE_1X2_CDD_OFDM_48       = 34,
176         WL_RATE_1X2_CDD_OFDM_54       = 35,
177
178         WL_RATE_1X2_CDD_MCS0          = 36,
179         WL_RATE_1X2_CDD_MCS1          = 37,
180         WL_RATE_1X2_CDD_MCS2          = 38,
181         WL_RATE_1X2_CDD_MCS3          = 39,
182         WL_RATE_1X2_CDD_MCS4          = 40,
183         WL_RATE_1X2_CDD_MCS5          = 41,
184         WL_RATE_1X2_CDD_MCS6          = 42,
185         WL_RATE_1X2_CDD_MCS7          = 43,
186         WL_RATE_P_1X2_CDD_MCS87       = 44,
187         WL_RATE_P_1X2_CDD_MCS88       = 45,
188
189         WL_RATE_1X2_VHT0SS1           = 36,
190         WL_RATE_1X2_VHT1SS1           = 37,
191         WL_RATE_1X2_VHT2SS1           = 38,
192         WL_RATE_1X2_VHT3SS1           = 39,
193         WL_RATE_1X2_VHT4SS1           = 40,
194         WL_RATE_1X2_VHT5SS1           = 41,
195         WL_RATE_1X2_VHT6SS1           = 42,
196         WL_RATE_1X2_VHT7SS1           = 43,
197         WL_RATE_1X2_VHT8SS1           = 44,
198         WL_RATE_1X2_VHT9SS1           = 45,
199         WL_RATE_P_1X2_VHT10SS1        = 46,
200         WL_RATE_P_1X2_VHT11SS1        = 47,
201
202         /* 2 Streams */
203         WL_RATE_2X2_STBC_MCS0         = 48,
204         WL_RATE_2X2_STBC_MCS1         = 49,
205         WL_RATE_2X2_STBC_MCS2         = 50,
206         WL_RATE_2X2_STBC_MCS3         = 51,
207         WL_RATE_2X2_STBC_MCS4         = 52,
208         WL_RATE_2X2_STBC_MCS5         = 53,
209         WL_RATE_2X2_STBC_MCS6         = 54,
210         WL_RATE_2X2_STBC_MCS7         = 55,
211         WL_RATE_P_2X2_STBC_MCS87      = 56,
212         WL_RATE_P_2X2_STBC_MCS88      = 57,
213
214         WL_RATE_2X2_STBC_VHT0SS1      = 48,
215         WL_RATE_2X2_STBC_VHT1SS1      = 49,
216         WL_RATE_2X2_STBC_VHT2SS1      = 50,
217         WL_RATE_2X2_STBC_VHT3SS1      = 51,
218         WL_RATE_2X2_STBC_VHT4SS1      = 52,
219         WL_RATE_2X2_STBC_VHT5SS1      = 53,
220         WL_RATE_2X2_STBC_VHT6SS1      = 54,
221         WL_RATE_2X2_STBC_VHT7SS1      = 55,
222         WL_RATE_2X2_STBC_VHT8SS1      = 56,
223         WL_RATE_2X2_STBC_VHT9SS1      = 57,
224         WL_RATE_P_2X2_STBC_VHT10SS1   = 58,
225         WL_RATE_P_2X2_STBC_VHT11SS1   = 59,
226
227         WL_RATE_2X2_SDM_MCS8          = 60,
228         WL_RATE_2X2_SDM_MCS9          = 61,
229         WL_RATE_2X2_SDM_MCS10         = 62,
230         WL_RATE_2X2_SDM_MCS11         = 63,
231         WL_RATE_2X2_SDM_MCS12         = 64,
232         WL_RATE_2X2_SDM_MCS13         = 65,
233         WL_RATE_2X2_SDM_MCS14         = 66,
234         WL_RATE_2X2_SDM_MCS15         = 67,
235         WL_RATE_P_2X2_SDM_MCS99       = 68,
236         WL_RATE_P_2X2_SDM_MCS100      = 69,
237
238         WL_RATE_2X2_VHT0SS2           = 60,
239         WL_RATE_2X2_VHT1SS2           = 61,
240         WL_RATE_2X2_VHT2SS2           = 62,
241         WL_RATE_2X2_VHT3SS2           = 63,
242         WL_RATE_2X2_VHT4SS2           = 64,
243         WL_RATE_2X2_VHT5SS2           = 65,
244         WL_RATE_2X2_VHT6SS2           = 66,
245         WL_RATE_2X2_VHT7SS2           = 67,
246         WL_RATE_2X2_VHT8SS2           = 68,
247         WL_RATE_2X2_VHT9SS2           = 69,
248         WL_RATE_P_2X2_VHT10SS2        = 70,
249         WL_RATE_P_2X2_VHT11SS2        = 71,
250
251         /****************************
252          * TX Beamforming, 2 chains *
253          ****************************
254          */
255
256         /* 1 Stream expanded + 1 */
257         WL_RATE_1X2_TXBF_OFDM_6       = 72,
258         WL_RATE_1X2_TXBF_OFDM_9       = 73,
259         WL_RATE_1X2_TXBF_OFDM_12      = 74,
260         WL_RATE_1X2_TXBF_OFDM_18      = 75,
261         WL_RATE_1X2_TXBF_OFDM_24      = 76,
262         WL_RATE_1X2_TXBF_OFDM_36      = 77,
263         WL_RATE_1X2_TXBF_OFDM_48      = 78,
264         WL_RATE_1X2_TXBF_OFDM_54      = 79,
265
266         WL_RATE_1X2_TXBF_MCS0         = 80,
267         WL_RATE_1X2_TXBF_MCS1         = 81,
268         WL_RATE_1X2_TXBF_MCS2         = 82,
269         WL_RATE_1X2_TXBF_MCS3         = 83,
270         WL_RATE_1X2_TXBF_MCS4         = 84,
271         WL_RATE_1X2_TXBF_MCS5         = 85,
272         WL_RATE_1X2_TXBF_MCS6         = 86,
273         WL_RATE_1X2_TXBF_MCS7         = 87,
274         WL_RATE_P_1X2_TXBF_MCS87      = 88,
275         WL_RATE_P_1X2_TXBF_MCS88      = 89,
276
277         WL_RATE_1X2_TXBF_VHT0SS1      = 80,
278         WL_RATE_1X2_TXBF_VHT1SS1      = 81,
279         WL_RATE_1X2_TXBF_VHT2SS1      = 82,
280         WL_RATE_1X2_TXBF_VHT3SS1      = 83,
281         WL_RATE_1X2_TXBF_VHT4SS1      = 84,
282         WL_RATE_1X2_TXBF_VHT5SS1      = 85,
283         WL_RATE_1X2_TXBF_VHT6SS1      = 86,
284         WL_RATE_1X2_TXBF_VHT7SS1      = 87,
285         WL_RATE_1X2_TXBF_VHT8SS1      = 88,
286         WL_RATE_1X2_TXBF_VHT9SS1      = 89,
287         WL_RATE_P_1X2_TXBF_VHT10SS1   = 90,
288         WL_RATE_P_1X2_TXBF_VHT11SS1   = 91,
289
290         /* 2 Streams */
291         WL_RATE_2X2_TXBF_SDM_MCS8     = 92,
292         WL_RATE_2X2_TXBF_SDM_MCS9     = 93,
293         WL_RATE_2X2_TXBF_SDM_MCS10    = 94,
294         WL_RATE_2X2_TXBF_SDM_MCS11    = 95,
295         WL_RATE_2X2_TXBF_SDM_MCS12    = 96,
296         WL_RATE_2X2_TXBF_SDM_MCS13    = 97,
297         WL_RATE_2X2_TXBF_SDM_MCS14    = 98,
298         WL_RATE_2X2_TXBF_SDM_MCS15    = 99,
299         WL_RATE_P_2X2_TXBF_SDM_MCS99  = 100,
300         WL_RATE_P_2X2_TXBF_SDM_MCS100 = 101,
301
302         WL_RATE_2X2_TXBF_VHT0SS2      = 92,
303         WL_RATE_2X2_TXBF_VHT1SS2      = 93,
304         WL_RATE_2X2_TXBF_VHT2SS2      = 94,
305         WL_RATE_2X2_TXBF_VHT3SS2      = 95,
306         WL_RATE_2X2_TXBF_VHT4SS2      = 96,
307         WL_RATE_2X2_TXBF_VHT5SS2      = 97,
308         WL_RATE_2X2_TXBF_VHT6SS2      = 98,
309         WL_RATE_2X2_TXBF_VHT7SS2      = 99,
310         WL_RATE_2X2_TXBF_VHT8SS2      = 100,
311         WL_RATE_2X2_TXBF_VHT9SS2      = 101,
312         WL_RATE_P_2X2_TXBF_VHT10SS2   = 102,
313         WL_RATE_P_2X2_TXBF_VHT11SS2   = 103,
314
315
316         /************
317         * 3 chains *
318         ************
319         */
320
321         /* 1 Stream expanded + 2 */
322         WL_RATE_1X3_DSSS_1            = 104,
323         WL_RATE_1X3_DSSS_2            = 105,
324         WL_RATE_1X3_DSSS_5_5          = 106,
325         WL_RATE_1X3_DSSS_11           = 107,
326
327         WL_RATE_1X3_CDD_OFDM_6        = 108,
328         WL_RATE_1X3_CDD_OFDM_9        = 109,
329         WL_RATE_1X3_CDD_OFDM_12       = 110,
330         WL_RATE_1X3_CDD_OFDM_18       = 111,
331         WL_RATE_1X3_CDD_OFDM_24       = 112,
332         WL_RATE_1X3_CDD_OFDM_36       = 113,
333         WL_RATE_1X3_CDD_OFDM_48       = 114,
334         WL_RATE_1X3_CDD_OFDM_54       = 115,
335
336         WL_RATE_1X3_CDD_MCS0          = 116,
337         WL_RATE_1X3_CDD_MCS1          = 117,
338         WL_RATE_1X3_CDD_MCS2          = 118,
339         WL_RATE_1X3_CDD_MCS3          = 119,
340         WL_RATE_1X3_CDD_MCS4          = 120,
341         WL_RATE_1X3_CDD_MCS5          = 121,
342         WL_RATE_1X3_CDD_MCS6          = 122,
343         WL_RATE_1X3_CDD_MCS7          = 123,
344         WL_RATE_P_1X3_CDD_MCS87       = 124,
345         WL_RATE_P_1X3_CDD_MCS88       = 125,
346
347         WL_RATE_1X3_VHT0SS1           = 116,
348         WL_RATE_1X3_VHT1SS1           = 117,
349         WL_RATE_1X3_VHT2SS1           = 118,
350         WL_RATE_1X3_VHT3SS1           = 119,
351         WL_RATE_1X3_VHT4SS1           = 120,
352         WL_RATE_1X3_VHT5SS1           = 121,
353         WL_RATE_1X3_VHT6SS1           = 122,
354         WL_RATE_1X3_VHT7SS1           = 123,
355         WL_RATE_1X3_VHT8SS1           = 124,
356         WL_RATE_1X3_VHT9SS1           = 125,
357         WL_RATE_P_1X3_VHT10SS1        = 126,
358         WL_RATE_P_1X3_VHT11SS1        = 127,
359
360         /* 2 Streams expanded + 1 */
361         WL_RATE_2X3_STBC_MCS0         = 128,
362         WL_RATE_2X3_STBC_MCS1         = 129,
363         WL_RATE_2X3_STBC_MCS2         = 130,
364         WL_RATE_2X3_STBC_MCS3         = 131,
365         WL_RATE_2X3_STBC_MCS4         = 132,
366         WL_RATE_2X3_STBC_MCS5         = 133,
367         WL_RATE_2X3_STBC_MCS6         = 134,
368         WL_RATE_2X3_STBC_MCS7         = 135,
369         WL_RATE_P_2X3_STBC_MCS87      = 136,
370         WL_RATE_P_2X3_STBC_MCS88      = 137,
371
372         WL_RATE_2X3_STBC_VHT0SS1      = 128,
373         WL_RATE_2X3_STBC_VHT1SS1      = 129,
374         WL_RATE_2X3_STBC_VHT2SS1      = 130,
375         WL_RATE_2X3_STBC_VHT3SS1      = 131,
376         WL_RATE_2X3_STBC_VHT4SS1      = 132,
377         WL_RATE_2X3_STBC_VHT5SS1      = 133,
378         WL_RATE_2X3_STBC_VHT6SS1      = 134,
379         WL_RATE_2X3_STBC_VHT7SS1      = 135,
380         WL_RATE_2X3_STBC_VHT8SS1      = 136,
381         WL_RATE_2X3_STBC_VHT9SS1      = 137,
382         WL_RATE_P_2X3_STBC_VHT10SS1   = 138,
383         WL_RATE_P_2X3_STBC_VHT11SS1   = 139,
384
385         WL_RATE_2X3_SDM_MCS8          = 140,
386         WL_RATE_2X3_SDM_MCS9          = 141,
387         WL_RATE_2X3_SDM_MCS10         = 142,
388         WL_RATE_2X3_SDM_MCS11         = 143,
389         WL_RATE_2X3_SDM_MCS12         = 144,
390         WL_RATE_2X3_SDM_MCS13         = 145,
391         WL_RATE_2X3_SDM_MCS14         = 146,
392         WL_RATE_2X3_SDM_MCS15         = 147,
393         WL_RATE_P_2X3_SDM_MCS99       = 148,
394         WL_RATE_P_2X3_SDM_MCS100      = 149,
395
396         WL_RATE_2X3_VHT0SS2           = 140,
397         WL_RATE_2X3_VHT1SS2           = 141,
398         WL_RATE_2X3_VHT2SS2           = 142,
399         WL_RATE_2X3_VHT3SS2           = 143,
400         WL_RATE_2X3_VHT4SS2           = 144,
401         WL_RATE_2X3_VHT5SS2           = 145,
402         WL_RATE_2X3_VHT6SS2           = 146,
403         WL_RATE_2X3_VHT7SS2           = 147,
404         WL_RATE_2X3_VHT8SS2           = 148,
405         WL_RATE_2X3_VHT9SS2           = 149,
406         WL_RATE_P_2X3_VHT10SS2        = 150,
407         WL_RATE_P_2X3_VHT11SS2        = 151,
408
409         /* 3 Streams */
410         WL_RATE_3X3_SDM_MCS16         = 152,
411         WL_RATE_3X3_SDM_MCS17         = 153,
412         WL_RATE_3X3_SDM_MCS18         = 154,
413         WL_RATE_3X3_SDM_MCS19         = 155,
414         WL_RATE_3X3_SDM_MCS20         = 156,
415         WL_RATE_3X3_SDM_MCS21         = 157,
416         WL_RATE_3X3_SDM_MCS22         = 158,
417         WL_RATE_3X3_SDM_MCS23         = 159,
418         WL_RATE_P_3X3_SDM_MCS101      = 160,
419         WL_RATE_P_3X3_SDM_MCS102      = 161,
420
421         WL_RATE_3X3_VHT0SS3           = 152,
422         WL_RATE_3X3_VHT1SS3           = 153,
423         WL_RATE_3X3_VHT2SS3           = 154,
424         WL_RATE_3X3_VHT3SS3           = 155,
425         WL_RATE_3X3_VHT4SS3           = 156,
426         WL_RATE_3X3_VHT5SS3           = 157,
427         WL_RATE_3X3_VHT6SS3           = 158,
428         WL_RATE_3X3_VHT7SS3           = 159,
429         WL_RATE_3X3_VHT8SS3           = 160,
430         WL_RATE_3X3_VHT9SS3           = 161,
431         WL_RATE_P_3X3_VHT10SS3        = 162,
432         WL_RATE_P_3X3_VHT11SS3        = 163,
433
434
435         /****************************
436          * TX Beamforming, 3 chains *
437          ****************************
438          */
439
440         /* 1 Stream expanded + 2 */
441         WL_RATE_1X3_TXBF_OFDM_6       = 164,
442         WL_RATE_1X3_TXBF_OFDM_9       = 165,
443         WL_RATE_1X3_TXBF_OFDM_12      = 166,
444         WL_RATE_1X3_TXBF_OFDM_18      = 167,
445         WL_RATE_1X3_TXBF_OFDM_24      = 168,
446         WL_RATE_1X3_TXBF_OFDM_36      = 169,
447         WL_RATE_1X3_TXBF_OFDM_48      = 170,
448         WL_RATE_1X3_TXBF_OFDM_54      = 171,
449
450         WL_RATE_1X3_TXBF_MCS0         = 172,
451         WL_RATE_1X3_TXBF_MCS1         = 173,
452         WL_RATE_1X3_TXBF_MCS2         = 174,
453         WL_RATE_1X3_TXBF_MCS3         = 175,
454         WL_RATE_1X3_TXBF_MCS4         = 176,
455         WL_RATE_1X3_TXBF_MCS5         = 177,
456         WL_RATE_1X3_TXBF_MCS6         = 178,
457         WL_RATE_1X3_TXBF_MCS7         = 179,
458         WL_RATE_P_1X3_TXBF_MCS87      = 180,
459         WL_RATE_P_1X3_TXBF_MCS88      = 181,
460
461         WL_RATE_1X3_TXBF_VHT0SS1      = 172,
462         WL_RATE_1X3_TXBF_VHT1SS1      = 173,
463         WL_RATE_1X3_TXBF_VHT2SS1      = 174,
464         WL_RATE_1X3_TXBF_VHT3SS1      = 175,
465         WL_RATE_1X3_TXBF_VHT4SS1      = 176,
466         WL_RATE_1X3_TXBF_VHT5SS1      = 177,
467         WL_RATE_1X3_TXBF_VHT6SS1      = 178,
468         WL_RATE_1X3_TXBF_VHT7SS1      = 179,
469         WL_RATE_1X3_TXBF_VHT8SS1      = 180,
470         WL_RATE_1X3_TXBF_VHT9SS1      = 181,
471         WL_RATE_P_1X3_TXBF_VHT10SS1   = 182,
472         WL_RATE_P_1X3_TXBF_VHT11SS1   = 183,
473
474         /* 2 Streams expanded + 1 */
475         WL_RATE_2X3_TXBF_SDM_MCS8     = 184,
476         WL_RATE_2X3_TXBF_SDM_MCS9     = 185,
477         WL_RATE_2X3_TXBF_SDM_MCS10    = 186,
478         WL_RATE_2X3_TXBF_SDM_MCS11    = 187,
479         WL_RATE_2X3_TXBF_SDM_MCS12    = 188,
480         WL_RATE_2X3_TXBF_SDM_MCS13    = 189,
481         WL_RATE_2X3_TXBF_SDM_MCS14    = 190,
482         WL_RATE_2X3_TXBF_SDM_MCS15    = 191,
483         WL_RATE_P_2X3_TXBF_SDM_MCS99  = 192,
484         WL_RATE_P_2X3_TXBF_SDM_MCS100 = 193,
485
486         WL_RATE_2X3_TXBF_VHT0SS2      = 184,
487         WL_RATE_2X3_TXBF_VHT1SS2      = 185,
488         WL_RATE_2X3_TXBF_VHT2SS2      = 186,
489         WL_RATE_2X3_TXBF_VHT3SS2      = 187,
490         WL_RATE_2X3_TXBF_VHT4SS2      = 188,
491         WL_RATE_2X3_TXBF_VHT5SS2      = 189,
492         WL_RATE_2X3_TXBF_VHT6SS2      = 190,
493         WL_RATE_2X3_TXBF_VHT7SS2      = 191,
494         WL_RATE_2X3_TXBF_VHT8SS2      = 192,
495         WL_RATE_2X3_TXBF_VHT9SS2      = 193,
496         WL_RATE_P_2X3_TXBF_VHT10SS2   = 194,
497         WL_RATE_P_2X3_TXBF_VHT11SS2   = 195,
498
499         /* 3 Streams */
500         WL_RATE_3X3_TXBF_SDM_MCS16    = 196,
501         WL_RATE_3X3_TXBF_SDM_MCS17    = 197,
502         WL_RATE_3X3_TXBF_SDM_MCS18    = 198,
503         WL_RATE_3X3_TXBF_SDM_MCS19    = 199,
504         WL_RATE_3X3_TXBF_SDM_MCS20    = 200,
505         WL_RATE_3X3_TXBF_SDM_MCS21    = 201,
506         WL_RATE_3X3_TXBF_SDM_MCS22    = 202,
507         WL_RATE_3X3_TXBF_SDM_MCS23    = 203,
508         WL_RATE_P_3X3_TXBF_SDM_MCS101 = 204,
509         WL_RATE_P_3X3_TXBF_SDM_MCS102 = 205,
510
511         WL_RATE_3X3_TXBF_VHT0SS3      = 196,
512         WL_RATE_3X3_TXBF_VHT1SS3      = 197,
513         WL_RATE_3X3_TXBF_VHT2SS3      = 198,
514         WL_RATE_3X3_TXBF_VHT3SS3      = 199,
515         WL_RATE_3X3_TXBF_VHT4SS3      = 200,
516         WL_RATE_3X3_TXBF_VHT5SS3      = 201,
517         WL_RATE_3X3_TXBF_VHT6SS3      = 202,
518         WL_RATE_3X3_TXBF_VHT7SS3      = 203,
519         WL_RATE_3X3_TXBF_VHT8SS3      = 204,
520         WL_RATE_3X3_TXBF_VHT9SS3      = 205,
521         WL_RATE_P_3X3_TXBF_VHT10SS3   = 206,
522         WL_RATE_P_3X3_TXBF_VHT11SS3   = 207,
523
524
525         /************
526         * 4 chains *
527         ************
528         */
529
530         /* 1 Stream expanded + 3 */
531         WL_RATE_1X4_DSSS_1            = 208,
532         WL_RATE_1X4_DSSS_2            = 209,
533         WL_RATE_1X4_DSSS_5_5          = 210,
534         WL_RATE_1X4_DSSS_11           = 211,
535
536         WL_RATE_1X4_CDD_OFDM_6        = 212,
537         WL_RATE_1X4_CDD_OFDM_9        = 213,
538         WL_RATE_1X4_CDD_OFDM_12       = 214,
539         WL_RATE_1X4_CDD_OFDM_18       = 215,
540         WL_RATE_1X4_CDD_OFDM_24       = 216,
541         WL_RATE_1X4_CDD_OFDM_36       = 217,
542         WL_RATE_1X4_CDD_OFDM_48       = 218,
543         WL_RATE_1X4_CDD_OFDM_54       = 219,
544
545         WL_RATE_1X4_CDD_MCS0          = 220,
546         WL_RATE_1X4_CDD_MCS1          = 221,
547         WL_RATE_1X4_CDD_MCS2          = 222,
548         WL_RATE_1X4_CDD_MCS3          = 223,
549         WL_RATE_1X4_CDD_MCS4          = 224,
550         WL_RATE_1X4_CDD_MCS5          = 225,
551         WL_RATE_1X4_CDD_MCS6          = 226,
552         WL_RATE_1X4_CDD_MCS7          = 227,
553         WL_RATE_P_1X4_CDD_MCS87       = 228,
554         WL_RATE_P_1X4_CDD_MCS88       = 229,
555
556         WL_RATE_1X4_VHT0SS1           = 220,
557         WL_RATE_1X4_VHT1SS1           = 221,
558         WL_RATE_1X4_VHT2SS1           = 222,
559         WL_RATE_1X4_VHT3SS1           = 223,
560         WL_RATE_1X4_VHT4SS1           = 224,
561         WL_RATE_1X4_VHT5SS1           = 225,
562         WL_RATE_1X4_VHT6SS1           = 226,
563         WL_RATE_1X4_VHT7SS1           = 227,
564         WL_RATE_1X4_VHT8SS1           = 228,
565         WL_RATE_1X4_VHT9SS1           = 229,
566         WL_RATE_P_1X4_VHT10SS1        = 230,
567         WL_RATE_P_1X4_VHT11SS1        = 231,
568
569         /* 2 Streams expanded + 2 */
570         WL_RATE_2X4_STBC_MCS0         = 232,
571         WL_RATE_2X4_STBC_MCS1         = 233,
572         WL_RATE_2X4_STBC_MCS2         = 234,
573         WL_RATE_2X4_STBC_MCS3         = 235,
574         WL_RATE_2X4_STBC_MCS4         = 236,
575         WL_RATE_2X4_STBC_MCS5         = 237,
576         WL_RATE_2X4_STBC_MCS6         = 238,
577         WL_RATE_2X4_STBC_MCS7         = 239,
578         WL_RATE_P_2X4_STBC_MCS87      = 240,
579         WL_RATE_P_2X4_STBC_MCS88      = 241,
580
581         WL_RATE_2X4_STBC_VHT0SS1      = 232,
582         WL_RATE_2X4_STBC_VHT1SS1      = 233,
583         WL_RATE_2X4_STBC_VHT2SS1      = 234,
584         WL_RATE_2X4_STBC_VHT3SS1      = 235,
585         WL_RATE_2X4_STBC_VHT4SS1      = 236,
586         WL_RATE_2X4_STBC_VHT5SS1      = 237,
587         WL_RATE_2X4_STBC_VHT6SS1      = 238,
588         WL_RATE_2X4_STBC_VHT7SS1      = 239,
589         WL_RATE_2X4_STBC_VHT8SS1      = 240,
590         WL_RATE_2X4_STBC_VHT9SS1      = 241,
591         WL_RATE_P_2X4_STBC_VHT10SS1   = 242,
592         WL_RATE_P_2X4_STBC_VHT11SS1   = 243,
593
594         WL_RATE_2X4_SDM_MCS8          = 244,
595         WL_RATE_2X4_SDM_MCS9          = 245,
596         WL_RATE_2X4_SDM_MCS10         = 246,
597         WL_RATE_2X4_SDM_MCS11         = 247,
598         WL_RATE_2X4_SDM_MCS12         = 248,
599         WL_RATE_2X4_SDM_MCS13         = 249,
600         WL_RATE_2X4_SDM_MCS14         = 250,
601         WL_RATE_2X4_SDM_MCS15         = 251,
602         WL_RATE_P_2X4_SDM_MCS99       = 252,
603         WL_RATE_P_2X4_SDM_MCS100      = 253,
604
605         WL_RATE_2X4_VHT0SS2           = 244,
606         WL_RATE_2X4_VHT1SS2           = 245,
607         WL_RATE_2X4_VHT2SS2           = 246,
608         WL_RATE_2X4_VHT3SS2           = 247,
609         WL_RATE_2X4_VHT4SS2           = 248,
610         WL_RATE_2X4_VHT5SS2           = 249,
611         WL_RATE_2X4_VHT6SS2           = 250,
612         WL_RATE_2X4_VHT7SS2           = 251,
613         WL_RATE_2X4_VHT8SS2           = 252,
614         WL_RATE_2X4_VHT9SS2           = 253,
615         WL_RATE_P_2X4_VHT10SS2        = 254,
616         WL_RATE_P_2X4_VHT11SS2        = 255,
617
618         /* 3 Streams expanded + 1 */
619         WL_RATE_3X4_SDM_MCS16         = 256,
620         WL_RATE_3X4_SDM_MCS17         = 257,
621         WL_RATE_3X4_SDM_MCS18         = 258,
622         WL_RATE_3X4_SDM_MCS19         = 259,
623         WL_RATE_3X4_SDM_MCS20         = 260,
624         WL_RATE_3X4_SDM_MCS21         = 261,
625         WL_RATE_3X4_SDM_MCS22         = 262,
626         WL_RATE_3X4_SDM_MCS23         = 263,
627         WL_RATE_P_3X4_SDM_MCS101      = 264,
628         WL_RATE_P_3X4_SDM_MCS102      = 265,
629
630         WL_RATE_3X4_VHT0SS3           = 256,
631         WL_RATE_3X4_VHT1SS3           = 257,
632         WL_RATE_3X4_VHT2SS3           = 258,
633         WL_RATE_3X4_VHT3SS3           = 259,
634         WL_RATE_3X4_VHT4SS3           = 260,
635         WL_RATE_3X4_VHT5SS3           = 261,
636         WL_RATE_3X4_VHT6SS3           = 262,
637         WL_RATE_3X4_VHT7SS3           = 263,
638         WL_RATE_3X4_VHT8SS3           = 264,
639         WL_RATE_3X4_VHT9SS3           = 265,
640         WL_RATE_P_3X4_VHT10SS3        = 266,
641         WL_RATE_P_3X4_VHT11SS3        = 267,
642
643
644         /* 4 Streams */
645         WL_RATE_4X4_SDM_MCS24         = 268,
646         WL_RATE_4X4_SDM_MCS25         = 269,
647         WL_RATE_4X4_SDM_MCS26         = 270,
648         WL_RATE_4X4_SDM_MCS27         = 271,
649         WL_RATE_4X4_SDM_MCS28         = 272,
650         WL_RATE_4X4_SDM_MCS29         = 273,
651         WL_RATE_4X4_SDM_MCS30         = 274,
652         WL_RATE_4X4_SDM_MCS31         = 275,
653         WL_RATE_P_4X4_SDM_MCS103      = 276,
654         WL_RATE_P_4X4_SDM_MCS104      = 277,
655
656         WL_RATE_4X4_VHT0SS4           = 268,
657         WL_RATE_4X4_VHT1SS4           = 269,
658         WL_RATE_4X4_VHT2SS4           = 270,
659         WL_RATE_4X4_VHT3SS4           = 271,
660         WL_RATE_4X4_VHT4SS4           = 272,
661         WL_RATE_4X4_VHT5SS4           = 273,
662         WL_RATE_4X4_VHT6SS4           = 274,
663         WL_RATE_4X4_VHT7SS4           = 275,
664         WL_RATE_4X4_VHT8SS4           = 276,
665         WL_RATE_4X4_VHT9SS4           = 277,
666         WL_RATE_P_4X4_VHT10SS4        = 278,
667         WL_RATE_P_4X4_VHT11SS4        = 279,
668
669
670         /****************************
671          * TX Beamforming, 4 chains *
672          ****************************
673          */
674
675         /* 1 Stream expanded + 3 */
676         WL_RATE_1X4_TXBF_OFDM_6       = 280,
677         WL_RATE_1X4_TXBF_OFDM_9       = 281,
678         WL_RATE_1X4_TXBF_OFDM_12      = 282,
679         WL_RATE_1X4_TXBF_OFDM_18      = 283,
680         WL_RATE_1X4_TXBF_OFDM_24      = 284,
681         WL_RATE_1X4_TXBF_OFDM_36      = 285,
682         WL_RATE_1X4_TXBF_OFDM_48      = 286,
683         WL_RATE_1X4_TXBF_OFDM_54      = 287,
684
685         WL_RATE_1X4_TXBF_MCS0         = 288,
686         WL_RATE_1X4_TXBF_MCS1         = 289,
687         WL_RATE_1X4_TXBF_MCS2         = 290,
688         WL_RATE_1X4_TXBF_MCS3         = 291,
689         WL_RATE_1X4_TXBF_MCS4         = 292,
690         WL_RATE_1X4_TXBF_MCS5         = 293,
691         WL_RATE_1X4_TXBF_MCS6         = 294,
692         WL_RATE_1X4_TXBF_MCS7         = 295,
693         WL_RATE_P_1X4_TXBF_MCS87      = 296,
694         WL_RATE_P_1X4_TXBF_MCS88      = 297,
695
696         WL_RATE_1X4_TXBF_VHT0SS1      = 288,
697         WL_RATE_1X4_TXBF_VHT1SS1      = 289,
698         WL_RATE_1X4_TXBF_VHT2SS1      = 290,
699         WL_RATE_1X4_TXBF_VHT3SS1      = 291,
700         WL_RATE_1X4_TXBF_VHT4SS1      = 292,
701         WL_RATE_1X4_TXBF_VHT5SS1      = 293,
702         WL_RATE_1X4_TXBF_VHT6SS1      = 294,
703         WL_RATE_1X4_TXBF_VHT7SS1      = 295,
704         WL_RATE_1X4_TXBF_VHT8SS1      = 296,
705         WL_RATE_1X4_TXBF_VHT9SS1      = 297,
706         WL_RATE_P_1X4_TXBF_VHT10SS1   = 298,
707         WL_RATE_P_1X4_TXBF_VHT11SS1   = 299,
708
709         /* 2 Streams expanded + 2 */
710         WL_RATE_2X4_TXBF_SDM_MCS8     = 300,
711         WL_RATE_2X4_TXBF_SDM_MCS9     = 301,
712         WL_RATE_2X4_TXBF_SDM_MCS10    = 302,
713         WL_RATE_2X4_TXBF_SDM_MCS11    = 303,
714         WL_RATE_2X4_TXBF_SDM_MCS12    = 304,
715         WL_RATE_2X4_TXBF_SDM_MCS13    = 305,
716         WL_RATE_2X4_TXBF_SDM_MCS14    = 306,
717         WL_RATE_2X4_TXBF_SDM_MCS15    = 307,
718         WL_RATE_P_2X4_TXBF_SDM_MCS99  = 308,
719         WL_RATE_P_2X4_TXBF_SDM_MCS100 = 309,
720
721         WL_RATE_2X4_TXBF_VHT0SS2      = 300,
722         WL_RATE_2X4_TXBF_VHT1SS2      = 301,
723         WL_RATE_2X4_TXBF_VHT2SS2      = 302,
724         WL_RATE_2X4_TXBF_VHT3SS2      = 303,
725         WL_RATE_2X4_TXBF_VHT4SS2      = 304,
726         WL_RATE_2X4_TXBF_VHT5SS2      = 305,
727         WL_RATE_2X4_TXBF_VHT6SS2      = 306,
728         WL_RATE_2X4_TXBF_VHT7SS2      = 307,
729         WL_RATE_2X4_TXBF_VHT8SS2      = 308,
730         WL_RATE_2X4_TXBF_VHT9SS2      = 309,
731         WL_RATE_P_2X4_TXBF_VHT10SS2   = 310,
732         WL_RATE_P_2X4_TXBF_VHT11SS2   = 311,
733
734         /* 3 Streams expanded + 1 */
735         WL_RATE_3X4_TXBF_SDM_MCS16    = 312,
736         WL_RATE_3X4_TXBF_SDM_MCS17    = 313,
737         WL_RATE_3X4_TXBF_SDM_MCS18    = 314,
738         WL_RATE_3X4_TXBF_SDM_MCS19    = 315,
739         WL_RATE_3X4_TXBF_SDM_MCS20    = 316,
740         WL_RATE_3X4_TXBF_SDM_MCS21    = 317,
741         WL_RATE_3X4_TXBF_SDM_MCS22    = 318,
742         WL_RATE_3X4_TXBF_SDM_MCS23    = 319,
743         WL_RATE_P_3X4_TXBF_SDM_MCS101 = 320,
744         WL_RATE_P_3X4_TXBF_SDM_MCS102 = 321,
745
746         WL_RATE_3X4_TXBF_VHT0SS3      = 312,
747         WL_RATE_3X4_TXBF_VHT1SS3      = 313,
748         WL_RATE_3X4_TXBF_VHT2SS3      = 314,
749         WL_RATE_3X4_TXBF_VHT3SS3      = 315,
750         WL_RATE_3X4_TXBF_VHT4SS3      = 316,
751         WL_RATE_3X4_TXBF_VHT5SS3      = 317,
752         WL_RATE_3X4_TXBF_VHT6SS3      = 318,
753         WL_RATE_3X4_TXBF_VHT7SS3      = 319,
754         WL_RATE_P_3X4_TXBF_VHT8SS3    = 320,
755         WL_RATE_P_3X4_TXBF_VHT9SS3    = 321,
756         WL_RATE_P_3X4_TXBF_VHT10SS3   = 322,
757         WL_RATE_P_3X4_TXBF_VHT11SS3   = 323,
758
759         /* 4 Streams */
760         WL_RATE_4X4_TXBF_SDM_MCS24    = 324,
761         WL_RATE_4X4_TXBF_SDM_MCS25    = 325,
762         WL_RATE_4X4_TXBF_SDM_MCS26    = 326,
763         WL_RATE_4X4_TXBF_SDM_MCS27    = 327,
764         WL_RATE_4X4_TXBF_SDM_MCS28    = 328,
765         WL_RATE_4X4_TXBF_SDM_MCS29    = 329,
766         WL_RATE_4X4_TXBF_SDM_MCS30    = 330,
767         WL_RATE_4X4_TXBF_SDM_MCS31    = 331,
768         WL_RATE_P_4X4_TXBF_SDM_MCS103 = 332,
769         WL_RATE_P_4X4_TXBF_SDM_MCS104 = 333,
770
771         WL_RATE_4X4_TXBF_VHT0SS4      = 324,
772         WL_RATE_4X4_TXBF_VHT1SS4      = 325,
773         WL_RATE_4X4_TXBF_VHT2SS4      = 326,
774         WL_RATE_4X4_TXBF_VHT3SS4      = 327,
775         WL_RATE_4X4_TXBF_VHT4SS4      = 328,
776         WL_RATE_4X4_TXBF_VHT5SS4      = 329,
777         WL_RATE_4X4_TXBF_VHT6SS4      = 330,
778         WL_RATE_4X4_TXBF_VHT7SS4      = 331,
779         WL_RATE_P_4X4_TXBF_VHT8SS4    = 332,
780         WL_RATE_P_4X4_TXBF_VHT9SS4    = 333,
781         WL_RATE_P_4X4_TXBF_VHT10SS4   = 334,
782         WL_RATE_P_4X4_TXBF_VHT11SS4   = 335
783
784 } clm_rates_t;
785
786 /* Number of rate codes */
787 #define WL_NUMRATES 336
788
789 #ifdef __cplusplus
790 }
791 #endif /* __cplusplus */
792
793 #endif /* _bcmwifi_rates_h_ */