xref: /wlan-dirver/qca-wifi-host-cmn/dp/cmn_dp_api/dp_ratetable.c (revision 8ddef7dd9a290d4a9b1efd5d3efacf51d78a1a0d)
1 /*
2  * Copyright (c) 2016-2019 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 #include "dp_ratetable.h"
20 #include "qdf_module.h"
21 #include "cdp_txrx_mon_struct.h"
22 
23 enum {
24 	MODE_11A        = 0,   /* 11a Mode */
25 	MODE_11G        = 1,   /* 11b/g Mode */
26 	MODE_11B        = 2,   /* 11b Mode */
27 	MODE_11GONLY    = 3,   /* 11g only Mode */
28 	MODE_11NA_HT20   = 4,  /* 11a HT20 mode */
29 	MODE_11NG_HT20   = 5,  /* 11g HT20 mode */
30 	MODE_11NA_HT40   = 6,  /* 11a HT40 mode */
31 	MODE_11NG_HT40   = 7,  /* 11g HT40 mode */
32 	MODE_11AC_VHT20 = 8,
33 	MODE_11AC_VHT40 = 9,
34 	MODE_11AC_VHT80 = 10,
35 	MODE_11AC_VHT20_2G = 11,
36 	MODE_11AC_VHT40_2G = 12,
37 	MODE_11AC_VHT80_2G = 13,
38 	MODE_11AC_VHT80_80 = 14,
39 	MODE_11AC_VHT160   = 15,
40 	MODE_11AX_HE20 = 16,
41 	MODE_11AX_HE40 = 17,
42 	MODE_11AX_HE80 = 18,
43 	MODE_11AX_HE80_80 = 19,
44 	MODE_11AX_HE160 = 20,
45 	MODE_11AX_HE20_2G = 21,
46 	MODE_11AX_HE40_2G = 22,
47 	MODE_11AX_HE80_2G = 23,
48 	/* MODE_UNKNOWN should not be used within the host / target interface.
49 	 * Thus, it is permissible for ODE_UNKNOWN to be conditionally-defined,
50 	 * taking different values when compiling for different targets.
51 	 */
52 	MODE_UNKNOWN,
53 	MODE_UNKNOWN_NO_160MHZ_SUPPORT = 14, /* not needed? */
54 	MODE_UNKNOWN_160MHZ_SUPPORT = MODE_UNKNOWN, /* not needed? */
55 } DP_PHY_MODE;
56 
57 /* The following would span more than one octet
58  * when 160MHz BW defined for VHT
59  * Also it's important to maintain the ordering of this enum
60  * else it would break other rate adapation functions
61  */
62 
63 enum DP_CMN_RATECODE_PREAM_TYPE {
64 	DP_CMN_RATECODE_PREAM_OFDM,
65 	DP_CMN_RATECODE_PREAM_CCK,
66 	DP_CMN_RATECODE_PREAM_HT,
67 	DP_CMN_RATECODE_PREAM_VHT,
68 	DP_CMN_RATECODE_PREAM_HE,
69 	DP_CMN_RATECODE_PREAM_COUNT,
70 };
71 
72 /*
73  * @validmodemask : bit mask where 1 indicates the rate is valid for that mode
74  * @DP_CMN_MODULATION : modulation CCK/OFDM/MCS
75  * @propmask : bit mask of rate property. NSS/STBC/TXBF/LDPC
76  * @ratekbps : Rate in Kbits per second
77  * @ratebpdsgi : Rate in kbits per second if HT SGI is enabled
78  * @ratekbpsdgi : Rate in kbits per second if 1.6us GI is enabled
79  * @ratekbpsqgi : Rate in kbits per second if 3.2us GI is enabled
80  * @ratekbpsdcm : Rate in kbits per second if DCM is applied
81  * @userratekabps : User rate in KBits per second
82  * @dot11rate : Value that goes into supported rates info element of MLME
83  * @ratecode : rate that goes into hw descriptors
84  */
85 const struct DP_CMN_RATE_TABLE {
86 	struct {
87 		uint32_t validmodemask;
88 		enum DP_CMN_MODULATION_TYPE phy;
89 		uint32_t ratekbps;
90 		uint32_t ratekbpssgi;
91 		uint32_t ratekbpsdgi;
92 		uint32_t ratekbpsqgi;
93 		uint32_t ratekbpsdcm;
94 		uint32_t userratekbps;
95 		uint16_t ratecode;
96 	} info[DP_RATE_TABLE_SIZE];
97 } DP_CMN_RATE_TABLE;
98 
99 /*Use the highest bit to indicate the invalid bcc rates accorss
100  *different PHYMODE
101  */
102 #define INVALID_BCC_RATE BIT(MODE_UNKNOWN)
103 
104 #define CCK_MODE_VALID_MASK ((1 << MODE_11G) | (1 << MODE_11B) | \
105 		(1 << MODE_11NG_HT20) | (1 << MODE_11NG_HT40) | \
106 		(1 << MODE_11AC_VHT40_2G) | (1 << MODE_11AC_VHT20_2G) |\
107 		(1 << MODE_11AC_VHT80_2G))
108 
109 #define OFDM_MODE_VALID_MASK ((1 << MODE_11A) | (1 << MODE_11G) | \
110 		(1 << MODE_11GONLY) | (1 << MODE_11NA_HT20) | \
111 		(1 << MODE_11NG_HT20) \
112 		| (1 << MODE_11NA_HT40) | (1 << MODE_11NG_HT40) \
113 		| (1 << MODE_11AC_VHT40) | (1 << MODE_11AC_VHT20) | \
114 		(1 << MODE_11AC_VHT80) \
115 		| (1 << MODE_11AC_VHT40_2G) | (1 << MODE_11AC_VHT20_2G) | \
116 		(1 << MODE_11AC_VHT80_2G) \
117 		| (1 << MODE_11AC_VHT160) | (1 << MODE_11AC_VHT80_80))
118 
119 #define HT20_MODE_VALID_MASK ((1 << MODE_11NA_HT20) | \
120 		(1 << MODE_11NG_HT20) \
121 		| (1 << MODE_11NA_HT40) | (1 << MODE_11NG_HT40) \
122 		| (1 << MODE_11AC_VHT40) | (1 << MODE_11AC_VHT20) | \
123 		(1 << MODE_11AC_VHT80) \
124 		| (1 << MODE_11AC_VHT40_2G) | (1 << MODE_11AC_VHT20_2G) | \
125 		(1 << MODE_11AC_VHT80_2G) \
126 		| (1 << MODE_11AC_VHT160) | (1 << MODE_11AC_VHT80_80))
127 
128 #define HT40_MODE_VALID_MASK ((1 << MODE_11NA_HT40) | \
129 		(1 << MODE_11NG_HT40) \
130 		| (1 << MODE_11AC_VHT40) | (1 << MODE_11AC_VHT80) \
131 		| (1 << MODE_11AC_VHT40_2G) | (1 << MODE_11AC_VHT80_2G) \
132 		| (1 << MODE_11AC_VHT160) | (1 << MODE_11AC_VHT80_80))
133 
134 #define VHT20_MODE_VALID_MASK ((1 << MODE_11AC_VHT20) | \
135 		(1 << MODE_11AC_VHT40) | (1 << MODE_11AC_VHT80) | \
136 		(1 << MODE_11AC_VHT40_2G) | (1 << MODE_11AC_VHT20_2G) | \
137 		(1 << MODE_11AC_VHT80_2G) | \
138 		(1 << MODE_11AC_VHT160) | (1 << MODE_11AC_VHT80_80))
139 
140 #define VHT40_MODE_VALID_MASK ((1 << MODE_11AC_VHT40) | \
141 		(1 << MODE_11AC_VHT80) | \
142 		(1 << MODE_11AC_VHT40_2G) | (1 << MODE_11AC_VHT80_2G) | \
143 		(1 << MODE_11AC_VHT160) | (1 << MODE_11AC_VHT80_80))
144 
145 #define VHT80_MODE_VALID_MASK ((1 << MODE_11AC_VHT80) | \
146 		(1 << MODE_11AC_VHT80_2G) | \
147 		(1 << MODE_11AC_VHT160) | (1 << MODE_11AC_VHT80_80))
148 
149 #define VHT160_MODE_VALID_MASK ((1 << MODE_11AC_VHT160) | \
150 		(1 << MODE_11AC_VHT80_80))
151 
152 #define VHT20_LDPC_ONLY_MASKS (VHT20_MODE_VALID_MASK | INVALID_BCC_RATE)
153 #define VHT40_LDPC_ONLY_MASKS (VHT40_MODE_VALID_MASK | INVALID_BCC_RATE)
154 #define VHT80_LDPC_ONLY_MASKS (VHT80_MODE_VALID_MASK | INVALID_BCC_RATE)
155 #define VHT160_LDPC_ONLY_MASKS (VHT160_MODE_VALID_MASK | INVALID_BCC_RATE)
156 
157 #define VHT_INVALID_MCS (0xFF)
158 #define VHT_INVALID_RATES_MASK 0
159 
160 #define HE20_MODE_VALID_MASK ((1 << MODE_11AX_HE20) |\
161 		(1 << MODE_11AX_HE40) | \
162 		(1 << MODE_11AX_HE80) | (1 << MODE_11AX_HE20_2G) | \
163 		(1 << MODE_11AX_HE40_2G) | \
164 		(1 << MODE_11AX_HE80_2G) | (1 << MODE_11AX_HE80_80) | \
165 		(1 << MODE_11AX_HE160))
166 
167 #define HE40_MODE_VALID_MASK ((1 << MODE_11AX_HE40) | \
168 		(1 << MODE_11AX_HE80) | (1 << MODE_11AX_HE40_2G) | \
169 		(1 << MODE_11AX_HE80_2G) | (1 << MODE_11AX_HE80_80) | \
170 		(1 << MODE_11AX_HE160))
171 
172 #define HE80_MODE_VALID_MASK ((1 << MODE_11AX_HE80) | \
173 		(1 << MODE_11AX_HE80_2G) | \
174 		(1 << MODE_11AX_HE80_80) | (1 << MODE_11AX_HE160))
175 
176 #define HE160_MODE_VALID_MASK ((1 << MODE_11AX_HE80_80) | \
177 		(1 << MODE_11AX_HE160))
178 
179 #define HE20_LDPC_ONLY_MASKS (HE20_MODE_VALID_MASK | INVALID_BCC_RATE)
180 #define HE40_LDPC_ONLY_MASKS (HE40_MODE_VALID_MASK | INVALID_BCC_RATE)
181 #define HE80_LDPC_ONLY_MASKS (HE80_MODE_VALID_MASK | INVALID_BCC_RATE)
182 #define HE160_LDPC_ONLY_MASKS (HE160_MODE_VALID_MASK | INVALID_BCC_RATE)
183 
184 #define HE_INVALID_RATES_MASK 0
185 
186 static const struct DP_CMN_RATE_TABLE dp_11abgnratetable = {
187 	{
188 	  /* When number of spatial strams > 4 or 11AX support is enabled */
189 
190 	  /*     0  11 Mb  */ { CCK_MODE_VALID_MASK, DP_CMN_MOD_IEEE80211_T_CCK,
191 		  11000,    11000,        0,        0,        0,    11000,
192 		  0x100  },
193 	  /*     1 5.5 Mb  */ { CCK_MODE_VALID_MASK, DP_CMN_MOD_IEEE80211_T_CCK,
194 		  5500,     5500,        0,        0,        0,     5500,  0x101
195 	  },
196 	  /*     2   2 Mb  */ { CCK_MODE_VALID_MASK, DP_CMN_MOD_IEEE80211_T_CCK,
197 		  2000,     2000,        0,        0,        0,     2000,  0x102
198 	  },
199 	  /*     3   1 Mb  */ { CCK_MODE_VALID_MASK, DP_CMN_MOD_IEEE80211_T_CCK,
200 		  1000,     1000,        0,        0,        0,     1000,  0x103
201 	  },
202 	  /*   4  48 Mb  */ { OFDM_MODE_VALID_MASK, DP_CMN_MOD_IEEE80211_T_OFDM,
203 		  48000,     48000,         0,         0,         0,     48000,
204 		  0x000  },
205 	  /*   5  24 Mb  */ { OFDM_MODE_VALID_MASK, DP_CMN_MOD_IEEE80211_T_OFDM,
206 		  24000,     24000,         0,         0,         0,     24000,
207 		  0x001  },
208 	  /*   6  12 Mb  */ { OFDM_MODE_VALID_MASK, DP_CMN_MOD_IEEE80211_T_OFDM,
209 		  12000,     12000,         0,         0,         0,     12000,
210 		  0x002  },
211 	  /*   7   6 Mb  */ { OFDM_MODE_VALID_MASK, DP_CMN_MOD_IEEE80211_T_OFDM,
212 		  6000,      6000,         0,         0,         0,      6000,
213 		  0x003 },
214 	  /*   8  54 Mb  */ { OFDM_MODE_VALID_MASK, DP_CMN_MOD_IEEE80211_T_OFDM,
215 		  54000,     54000,         0,         0,         0,     54000,
216 		  0x004  },
217 	  /*   9  36 Mb  */ { OFDM_MODE_VALID_MASK, DP_CMN_MOD_IEEE80211_T_OFDM,
218 		  36000,     36000,         0,         0,         0,     36000,
219 		  0x005  },
220 	  /*     10  18 Mb  */ { OFDM_MODE_VALID_MASK,
221 		  DP_CMN_MOD_IEEE80211_T_OFDM,
222 		  18000,     18000,         0,         0,         0,     18000,
223 		  0x006  },
224 	  /*     11   9 Mb  */ { OFDM_MODE_VALID_MASK,
225 		  DP_CMN_MOD_IEEE80211_T_OFDM,
226 		  9000,      9000,         0,         0,         0,      9000,
227 		  0x007},
228 
229 	  /*      12 MCS-00 */ { HT20_MODE_VALID_MASK,
230 		  DP_CMN_MOD_IEEE80211_T_HT_20,                            6500,
231 		  7200,        0,        0,        0,     6500,  0x200   },
232 	  /*      13 MCS-01 */ { HT20_MODE_VALID_MASK,
233 		  DP_CMN_MOD_IEEE80211_T_HT_20,                           13000,
234 		  14400,        0,        0,        0,    13000,  0x201   },
235 	  /*      14 MCS-02 */ { HT20_MODE_VALID_MASK,
236 		  DP_CMN_MOD_IEEE80211_T_HT_20,                           19500,
237 		  21700,        0,        0,        0,    19500,  0x202   },
238 	  /*      15 MCS-03 */ { HT20_MODE_VALID_MASK,
239 		  DP_CMN_MOD_IEEE80211_T_HT_20,                           26000,
240 		  28900,        0,        0,        0,    26000,  0x203   },
241 	  /*      16 MCS-04 */ { HT20_MODE_VALID_MASK,
242 		  DP_CMN_MOD_IEEE80211_T_HT_20,                           39000,
243 		  43300,        0,        0,        0,    39000,  0x204   },
244 	  /*      17 MCS-05 */ { HT20_MODE_VALID_MASK,
245 		  DP_CMN_MOD_IEEE80211_T_HT_20,                           52000,
246 		  57800,        0,        0,        0,    52000,  0x205   },
247 	  /*      18 MCS-06 */ { HT20_MODE_VALID_MASK,
248 		  DP_CMN_MOD_IEEE80211_T_HT_20,                           58500,
249 		  65000,        0,        0,        0,    58500,  0x206   },
250 	  /*      19 MCS-07 */ { HT20_MODE_VALID_MASK,
251 		  DP_CMN_MOD_IEEE80211_T_HT_20,                           65000,
252 		  72200,        0,        0,        0,    65000,  0x207   },
253 	  /* When number of spatial streams > 1 */
254 	  /*      20 MCS-00 */ { HT20_MODE_VALID_MASK,
255 		  DP_CMN_MOD_IEEE80211_T_HT_20,                           13000,
256 		  14400,        0,        0,        0,    13000,  0x220   },
257 	  /*      21 MCS-01 */ { HT20_MODE_VALID_MASK,
258 		  DP_CMN_MOD_IEEE80211_T_HT_20,                           26000,
259 		  28900,        0,        0,        0,    26000,  0x221   },
260 	  /*      22 MCS-02 */ { HT20_MODE_VALID_MASK,
261 		  DP_CMN_MOD_IEEE80211_T_HT_20,                           39000,
262 		  43300,        0,        0,        0,    39000,  0x222   },
263 	  /*      23 MCS-03 */ { HT20_MODE_VALID_MASK,
264 		  DP_CMN_MOD_IEEE80211_T_HT_20,                           52000,
265 		  57800,        0,        0,        0,    52000,  0x223   },
266 	  /*      24 MCS-04 */ { HT20_MODE_VALID_MASK,
267 		  DP_CMN_MOD_IEEE80211_T_HT_20,                           78000,
268 		  86700,        0,        0,        0,    78000,  0x224   },
269 	  /*      25 MCS-05 */ { HT20_MODE_VALID_MASK,
270 		  DP_CMN_MOD_IEEE80211_T_HT_20,                          104000,
271 		  115600,        0,        0,        0,   104000,  0x225   },
272 	  /*      26 MCS-06 */ { HT20_MODE_VALID_MASK,
273 		  DP_CMN_MOD_IEEE80211_T_HT_20,                          117000,
274 		  130000,        0,        0,        0,   117000,  0x226   },
275 	  /*      27 MCS-07 */ { HT20_MODE_VALID_MASK,
276 		  DP_CMN_MOD_IEEE80211_T_HT_20,                          130000,
277 		  144000,        0,        0,        0,   130000,  0x227   },
278 	  /* When number of spatial streams > 2 */
279 	  /*      28 MCS-00 */ { HT20_MODE_VALID_MASK,
280 		  DP_CMN_MOD_IEEE80211_T_HT_20,                           19500,
281 		  21700,        0,        0,        0,    19500,  0x240   },
282 	  /*      29 MCS-01 */ { HT20_MODE_VALID_MASK,
283 		  DP_CMN_MOD_IEEE80211_T_HT_20,                           39000,
284 		  43300,        0,        0,        0,    39000,  0x241   },
285 	  /*      30 MCS-02 */ { HT20_MODE_VALID_MASK,
286 		  DP_CMN_MOD_IEEE80211_T_HT_20,                           58500,
287 		  65000,        0,        0,        0,    58500,  0x242   },
288 	  /*      31 MCS-03 */ { HT20_MODE_VALID_MASK,
289 		  DP_CMN_MOD_IEEE80211_T_HT_20,                           78000,
290 		  86700,        0,        0,        0,    78000,  0x243   },
291 	  /*      32 MCS-04 */ { HT20_MODE_VALID_MASK,
292 		  DP_CMN_MOD_IEEE80211_T_HT_20,                          117000,
293 		  130000,        0,        0,        0,   117000,  0x244   },
294 	  /*      33 MCS-05 */ { HT20_MODE_VALID_MASK,
295 		  DP_CMN_MOD_IEEE80211_T_HT_20,                          156000,
296 		  173300,        0,        0,        0,   156000,  0x245   },
297 	  /*      34 MCS-06 */ { HT20_MODE_VALID_MASK,
298 		  DP_CMN_MOD_IEEE80211_T_HT_20,                          175500,
299 		  195000,        0,        0,        0,   175500,  0x246   },
300 	  /*      35 MCS-07 */ { HT20_MODE_VALID_MASK,
301 		  DP_CMN_MOD_IEEE80211_T_HT_20,                          195000,
302 		  216700,        0,        0,        0,   195000,  0x247   },
303 	  /* When number of spatial streams > 3 */
304 	  /*      36 MCS-00 */ { HT20_MODE_VALID_MASK,
305 		  DP_CMN_MOD_IEEE80211_T_HT_20,                           26000,
306 		  28900,        0,        0,        0,    26000,  0x260   },
307 	  /*      37 MCS-01 */ { HT20_MODE_VALID_MASK,
308 		  DP_CMN_MOD_IEEE80211_T_HT_20,                           52000,
309 		  57800,        0,        0,        0,    52000,  0x261   },
310 	  /*      38 MCS-02 */ { HT20_MODE_VALID_MASK,
311 		  DP_CMN_MOD_IEEE80211_T_HT_20,                           78000,
312 		  86700,        0,        0,        0,    78000,  0x262   },
313 	  /*      39 MCS-03 */ { HT20_MODE_VALID_MASK,
314 		  DP_CMN_MOD_IEEE80211_T_HT_20,                          104000,
315 		  115600,        0,        0,        0,   104000,  0x263   },
316 	  /*      40 MCS-04 */ { HT20_MODE_VALID_MASK,
317 		  DP_CMN_MOD_IEEE80211_T_HT_20,                          156000,
318 		  173300,        0,        0,        0,   156000,  0x264   },
319 	  /*      41 MCS-05 */ { HT20_MODE_VALID_MASK,
320 		  DP_CMN_MOD_IEEE80211_T_HT_20,                          208000,
321 		  231100,        0,        0,        0,   208000,  0x265   },
322 	  /*      42 MCS-06 */ { HT20_MODE_VALID_MASK,
323 		  DP_CMN_MOD_IEEE80211_T_HT_20,                          234000,
324 		  260000,        0,        0,        0,   234000,  0x266   },
325 	  /*      43 MCS-07 */ { HT20_MODE_VALID_MASK,
326 		  DP_CMN_MOD_IEEE80211_T_HT_20,                          260000,
327 		  288900,        0,        0,        0,   260000,  0x267   },
328 
329 	  /* 11n HT40 rates                                                   */
330 	  /*      44 MCS-00 */ { HT40_MODE_VALID_MASK,
331 		  DP_CMN_MOD_IEEE80211_T_HT_40,                           13500,
332 		  15000,        0,        0,        0,    13500,  0x200  },
333 	  /*      45 MCS-01 */ { HT40_MODE_VALID_MASK,
334 		  DP_CMN_MOD_IEEE80211_T_HT_40,                           27000,
335 		  30000,        0,        0,        0,    27000,  0x201  },
336 	  /*      46 MCS-02 */ { HT40_MODE_VALID_MASK,
337 		  DP_CMN_MOD_IEEE80211_T_HT_40,                           40500,
338 		  45000,        0,        0,        0,    40500,  0x202  },
339 	  /*      47 MCS-03 */ { HT40_MODE_VALID_MASK,
340 		  DP_CMN_MOD_IEEE80211_T_HT_40,                           54000,
341 		  60000,        0,        0,        0,    54000,  0x203  },
342 	  /*      48 MCS-04 */ { HT40_MODE_VALID_MASK,
343 		  DP_CMN_MOD_IEEE80211_T_HT_40,                           81500,
344 		  90000,        0,        0,        0,    81500,  0x204  },
345 	  /*      49 MCS-05 */ { HT40_MODE_VALID_MASK,
346 		  DP_CMN_MOD_IEEE80211_T_HT_40,                          108000,
347 		  120000,        0,        0,        0,   108000,  0x205  },
348 	  /*      50 MCS-06 */ { HT40_MODE_VALID_MASK,
349 		  DP_CMN_MOD_IEEE80211_T_HT_40,                          121500,
350 		  135000,        0,        0,        0,   121500,  0x206  },
351 	  /*      51 MCS-07 */ { HT40_MODE_VALID_MASK,
352 		  DP_CMN_MOD_IEEE80211_T_HT_40,                          135000,
353 		  150000,        0,        0,        0,   135000,  0x207  },
354 	  /* When number of spatial streams > 1 */
355 	  /*      52 MCS-00 */ { HT40_MODE_VALID_MASK,
356 		  DP_CMN_MOD_IEEE80211_T_HT_40,                           27000,
357 		  30000,        0,        0,        0,    27000,  0x220  },
358 	  /*      53 MCS-01 */ { HT40_MODE_VALID_MASK,
359 		  DP_CMN_MOD_IEEE80211_T_HT_40,                           54000,
360 		  60000,        0,        0,        0,    54000,  0x221  },
361 	  /*      54 MCS-02 */ { HT40_MODE_VALID_MASK,
362 		  DP_CMN_MOD_IEEE80211_T_HT_40,                           81000,
363 		  90000,        0,        0,        0,    81000,  0x222  },
364 	  /*      55 MCS-03 */ { HT40_MODE_VALID_MASK,
365 		  DP_CMN_MOD_IEEE80211_T_HT_40,                          108000,
366 		  120000,        0,        0,        0,   108000,  0x223  },
367 	  /*      56 MCS-04 */ { HT40_MODE_VALID_MASK,
368 		  DP_CMN_MOD_IEEE80211_T_HT_40,                          162000,
369 		  180000,        0,        0,        0,   162000,  0x224  },
370 	  /*      57 MCS-05 */ { HT40_MODE_VALID_MASK,
371 		  DP_CMN_MOD_IEEE80211_T_HT_40,                          216000,
372 		  240000,        0,        0,        0,   216000,  0x225  },
373 	  /*      58 MCS-06 */ { HT40_MODE_VALID_MASK,
374 		  DP_CMN_MOD_IEEE80211_T_HT_40,                          243000,
375 		  270000,        0,        0,        0,   243000,  0x226  },
376 	  /*      59 MCS-07 */ { HT40_MODE_VALID_MASK,
377 		  DP_CMN_MOD_IEEE80211_T_HT_40,                          270000,
378 		  300000,        0,        0,        0,   270000,  0x227  },
379 	  /* When number of spatial streams > 2 */
380 	  /*      60 MCS-00 */ { HT40_MODE_VALID_MASK,
381 		  DP_CMN_MOD_IEEE80211_T_HT_40,                           40500,
382 		  45000,        0,        0,        0,    40500,  0x240  },
383 	  /*      61 MCS-01 */ { HT40_MODE_VALID_MASK,
384 		  DP_CMN_MOD_IEEE80211_T_HT_40,                           81000,
385 		  90000,        0,        0,        0,    81000,  0x241  },
386 	  /*      62 MCS-02 */ { HT40_MODE_VALID_MASK,
387 		  DP_CMN_MOD_IEEE80211_T_HT_40,                          121500,
388 		  135000,        0,        0,        0,   121500,  0x242  },
389 	  /*      63 MCS-03 */ { HT40_MODE_VALID_MASK,
390 		  DP_CMN_MOD_IEEE80211_T_HT_40,                          162000,
391 		  180000,        0,        0,        0,   162000,  0x243  },
392 	  /*      64 MCS-04 */ { HT40_MODE_VALID_MASK,
393 		  DP_CMN_MOD_IEEE80211_T_HT_40,                          243000,
394 		  270000,        0,        0,        0,   243000,  0x244  },
395 	  /*      65 MCS-05 */ { HT40_MODE_VALID_MASK,
396 		  DP_CMN_MOD_IEEE80211_T_HT_40,                          324000,
397 		  360000,        0,        0,        0,   324000,  0x245  },
398 	  /*      66 MCS-06 */ { HT40_MODE_VALID_MASK,
399 		  DP_CMN_MOD_IEEE80211_T_HT_40,                          364500,
400 		  405000,        0,        0,        0,   364500,  0x246  },
401 	  /*      67 MCS-07 */ { HT40_MODE_VALID_MASK,
402 		  DP_CMN_MOD_IEEE80211_T_HT_40,                          405000,
403 		  450000,        0,        0,        0,   405000,  0x247  },
404 	  /* When number of spatial streams > 3 */
405 	  /*      68 MCS-00 */ { HT40_MODE_VALID_MASK,
406 		  DP_CMN_MOD_IEEE80211_T_HT_40,                           54000,
407 		  60000,        0,        0,        0,    54000,  0x260  },
408 	  /*      69 MCS-01 */ { HT40_MODE_VALID_MASK,
409 		  DP_CMN_MOD_IEEE80211_T_HT_40,                          108000,
410 		  120000,        0,        0,        0,   108000,  0x261  },
411 	  /*      70 MCS-02 */ { HT40_MODE_VALID_MASK,
412 		  DP_CMN_MOD_IEEE80211_T_HT_40,                          162000,
413 		  180000,        0,        0,        0,   162000,  0x262  },
414 	  /*      71 MCS-03 */ { HT40_MODE_VALID_MASK,
415 		  DP_CMN_MOD_IEEE80211_T_HT_40,                          216000,
416 		  240000,        0,        0,        0,   216000,  0x263  },
417 	  /*      72 MCS-04 */ { HT40_MODE_VALID_MASK,
418 		  DP_CMN_MOD_IEEE80211_T_HT_40,                          324000,
419 		  360000,        0,        0,        0,   324000,  0x264  },
420 	  /*      73 MCS-05 */ { HT40_MODE_VALID_MASK,
421 		  DP_CMN_MOD_IEEE80211_T_HT_40,                          432000,
422 		  480000,        0,        0,        0,   432000,  0x265  },
423 	  /*      74 MCS-06 */ { HT40_MODE_VALID_MASK,
424 		  DP_CMN_MOD_IEEE80211_T_HT_40,                          486000,
425 		  540000,        0,        0,        0,   486000,  0x266  },
426 	  /*      75 MCS-07 */ { HT40_MODE_VALID_MASK,
427 		  DP_CMN_MOD_IEEE80211_T_HT_40,                          540000,
428 		  600000,        0,        0,        0,   540000,  0x267  },
429 
430 	  /* 11ac VHT20 rates                                                 */
431 	  /*      76 MCS-00 */ { VHT20_MODE_VALID_MASK,
432 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                           6500,
433 		  7200,        0,        0,        0,     6500,  0x300  },
434 	  /*      77 MCS-01 */ { VHT20_MODE_VALID_MASK,
435 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                          13000,
436 		  14400,        0,        0,        0,    13000,  0x301  },
437 	  /*      78 MCS-02 */ { VHT20_MODE_VALID_MASK,
438 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                          19500,
439 		  21700,        0,        0,        0,    19500,  0x302  },
440 	  /*      79 MCS-03 */ { VHT20_MODE_VALID_MASK,
441 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                          26000,
442 		  28900,        0,        0,        0,    26000,  0x303  },
443 	  /*      80 MCS-04 */ { VHT20_MODE_VALID_MASK,
444 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                          39000,
445 		  43300,        0,        0,        0,    39000,  0x304  },
446 	  /*      81 MCS-05 */ { VHT20_MODE_VALID_MASK,
447 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                          52000,
448 		  57800,        0,        0,        0,    52000,  0x305  },
449 	  /*      82 MCS-06 */ { VHT20_MODE_VALID_MASK,
450 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                          58500,
451 		  65000,        0,        0,        0,    58500,  0x306  },
452 	  /*      83 MCS-07 */ { VHT20_MODE_VALID_MASK,
453 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                          65000,
454 		  72200,        0,        0,        0,    65000,  0x307  },
455 	  /*      84 MCS-08 */ { VHT20_MODE_VALID_MASK,
456 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                          78000,
457 		  86700,        0,        0,        0,    78000,  0x308  },
458 	  /*      85 MCS-09 */ { VHT20_LDPC_ONLY_MASKS,
459 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                          86500,
460 		  96000,        0,        0,        0,    86500,  0x309 },
461 	  /* When we support very hight throughput MCS */
462 	  /* 86 MCS-10 */ { VHT20_LDPC_ONLY_MASKS,
463 		  DP_CMN_MOD_IEEE80211_T_VHT_20,
464 		  97500,   108300,	    0,        0,	 0,
465 		  97500,  0x30a},
466 	  /*	     87 MCS-11 */ { VHT20_LDPC_ONLY_MASKS,
467 		  DP_CMN_MOD_IEEE80211_T_VHT_20,
468 		  108300,  120400,	    0,        0,	 0,
469 		  108300,  0x30b},
470 
471 	  /* When number of spatial streams > 1 */
472 	  /*      88 MCS-00 */ { VHT20_MODE_VALID_MASK,
473 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                          13000,
474 		  14400,        0,        0,        0,    13000,  0x320 },
475 	  /*      89 MCS-01 */ { VHT20_MODE_VALID_MASK,
476 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                          26000,
477 		  28900,        0,        0,        0,    26000,  0x321 },
478 	  /*      90 MCS-02 */ { VHT20_MODE_VALID_MASK,
479 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                          39000,
480 		  43300,        0,        0,        0,    39000,  0x322 },
481 	  /*      91 MCS-03 */ { VHT20_MODE_VALID_MASK,
482 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                          52000,
483 		  57800,        0,        0,        0,    52000,  0x323 },
484 	  /*      92 MCS-04 */ { VHT20_MODE_VALID_MASK,
485 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                          78000,
486 		  86700,        0,        0,        0,    78000,  0x324 },
487 	  /*      93 MCS-05 */ { VHT20_MODE_VALID_MASK,
488 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         104000,
489 		  115600,        0,        0,        0,   104000,  0x325 },
490 	  /*      94 MCS-06 */ { VHT20_MODE_VALID_MASK,
491 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         117000,
492 		  130000,        0,        0,        0,   117000,  0x326 },
493 	  /*      95 MCS-07 */ { VHT20_MODE_VALID_MASK,
494 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         130000,
495 		  144400,        0,        0,        0,   130000,  0x327 },
496 	  /*      96 MCS-08 */ { VHT20_MODE_VALID_MASK,
497 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         156000,
498 		  173300,        0,        0,        0,   156000,  0x328 },
499 	  /*      97 MCS-09 */ { VHT20_LDPC_ONLY_MASKS,
500 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         173000,
501 		  192000,        0,        0,        0,   173000,  0x329 },
502 	  /*	 98 MCS-10 */ { VHT20_LDPC_ONLY_MASKS,
503 		  DP_CMN_MOD_IEEE80211_T_VHT_20,
504 		  195000,	 216700,	    0,		 0,	   0,
505 		  195000,  0x32a },
506 	  /*	 99 MCS-11 */ { VHT20_LDPC_ONLY_MASKS,
507 		  DP_CMN_MOD_IEEE80211_T_VHT_20,
508 		  216700,	 240700,	    0,		 0,	   0,
509 		  216700,  0x32b    },
510 
511 	  /* when number of spatial streams > 2 */
512 	  /*     100 MCS-00 */ { VHT20_MODE_VALID_MASK,
513 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                          19500,
514 		  21700,        0,        0,        0,    19500,  0x340 },
515 	  /*     101 MCS-01 */ { VHT20_MODE_VALID_MASK,
516 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                          39000,
517 		  43300,        0,        0,        0,    39000,  0x341 },
518 	  /*     102 MCS-02 */ { VHT20_MODE_VALID_MASK,
519 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                          58500,
520 		  65000,        0,        0,        0,    58500,  0x342 },
521 	  /*     103 MCS-03 */ { VHT20_MODE_VALID_MASK,
522 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                          78000,
523 		  86700,        0,        0,        0,    78000,  0x343 },
524 	  /*     104 MCS-04 */ { VHT20_MODE_VALID_MASK,
525 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         117000,
526 		  130000,        0,        0,        0,   117000,  0x344 },
527 	  /*     105 MCS-05 */ { VHT20_MODE_VALID_MASK,
528 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         156000,
529 		  173300,        0,        0,        0,   156000,  0x345 },
530 	  /*     106 MCS-06 */ { VHT20_MODE_VALID_MASK,
531 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         175500,
532 		  195000,        0,        0,        0,   175500,  0x346 },
533 	  /*     107 MCS-07 */ { VHT20_MODE_VALID_MASK,
534 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         195000,
535 		  216700,        0,        0,        0,   195000,  0x347 },
536 	  /*     108 MCS-08 */ { VHT20_MODE_VALID_MASK,
537 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         234000,
538 		  260000,        0,        0,        0,   234000,  0x348 },
539 	  /*     109 MCS-09 */ { VHT20_MODE_VALID_MASK,
540 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         260000,
541 		  288900,        0,        0,        0,   260000,  0x349 },
542 	  /*	    110 MCS-10 */ { VHT20_LDPC_ONLY_MASKS,
543 		  DP_CMN_MOD_IEEE80211_T_VHT_20,
544 		  292500,	 325000,	    0,		  0,	    0,
545 		  292500,  0x34a},
546 	  /*	    111 MCS-11 */ { VHT20_LDPC_ONLY_MASKS,
547 		  DP_CMN_MOD_IEEE80211_T_VHT_20,
548 		  325000,	 361100,	    0,		  0,	    0,
549 		  325000,  0x34b},
550 
551 	  /* when number of spatial streams > 3 */
552 	  /*     112 MCS-00 */ { VHT20_MODE_VALID_MASK,
553 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                          26000,
554 		  28900,        0,        0,        0,    26000,  0x360 },
555 	  /*     113 MCS-01 */ { VHT20_MODE_VALID_MASK,
556 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                          52000,
557 		  57800,        0,        0,        0,    52000,  0x361 },
558 	  /*     114 MCS-02 */ { VHT20_MODE_VALID_MASK,
559 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                          78000,
560 		  86700,        0,        0,        0,    78000,  0x362 },
561 	  /*     115 MCS-03 */ { VHT20_MODE_VALID_MASK,
562 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         104000,
563 		  115600,        0,        0,        0,   104000,  0x363 },
564 	  /*     116 MCS-04 */ { VHT20_MODE_VALID_MASK,
565 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         156000,
566 		  173300,        0,        0,        0,   156000,  0x364 },
567 	  /*     117 MCS-05 */ { VHT20_MODE_VALID_MASK,
568 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         208000,
569 		  231100,        0,        0,        0,   208000,  0x365 },
570 	  /*     118 MCS-06 */ { VHT20_MODE_VALID_MASK,
571 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         234000,
572 		  260000,        0,        0,        0,   234000,  0x366 },
573 	  /*     119 MCS-07 */ { VHT20_MODE_VALID_MASK,
574 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         260000,
575 		  288900,        0,        0,        0,   260000,  0x367 },
576 	  /*     120 MCS-08 */ { VHT20_MODE_VALID_MASK,
577 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         312000,
578 		  346700,        0,        0,        0,   312000,  0x368 },
579 	  /*     121 MCS-09 */ { VHT20_LDPC_ONLY_MASKS,
580 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         344000,
581 		  378400,        0,        0,        0,   344000,  0x369 },
582 	  /*    122 MCS-10 */ { VHT20_LDPC_ONLY_MASKS,
583 		  DP_CMN_MOD_IEEE80211_T_VHT_20,
584 		  390000,   433300,        0,     0, 0,    390000,
585 		  0x36a},
586 	  /*     123 MCS-11 */ { VHT20_LDPC_ONLY_MASKS,
587 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                       433300,
588 		  481500,        0,	      0,	0,    433300,  0x36b},
589 
590 	  /* when number of spatial streams > 4 */
591 	  /*     124 MCS-00 */ { VHT20_LDPC_ONLY_MASKS,
592 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                          32500,
593 		  36100,        0,        0,        0,    32500,  0x380 },
594 	  /*     125 MCS-01 */ { VHT20_LDPC_ONLY_MASKS,
595 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                          65000,
596 		  72200,        0,        0,        0,    65000,  0x381 },
597 	  /*     126 MCS-02 */ { VHT20_LDPC_ONLY_MASKS,
598 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                          97500,
599 		  108300,        0,        0,        0,    97500,  0x382 },
600 	  /*     127 MCS-03 */ { VHT20_LDPC_ONLY_MASKS,
601 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         130000,
602 		  144400,        0,        0,        0,   130000,  0x383 },
603 	  /*     128 MCS-04 */ { VHT20_LDPC_ONLY_MASKS,
604 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         195000,
605 		  216700,        0,        0,        0,   195000,  0x384 },
606 	  /*     129 MCS-05 */ { VHT20_LDPC_ONLY_MASKS,
607 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         260000,
608 		  288900,        0,        0,        0,   260000,  0x385 },
609 	  /*     130 MCS-06 */ { VHT20_LDPC_ONLY_MASKS,
610 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         292500,
611 		  325000,        0,        0,        0,   292500,  0x386 },
612 	  /*     131 MCS-07 */ { VHT20_LDPC_ONLY_MASKS,
613 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         325000,
614 		  361100,        0,        0,        0,   325000,  0x387 },
615 	  /*     132 MCS-08 */ { VHT20_LDPC_ONLY_MASKS,
616 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         390000,
617 		  433300,        0,        0,        0,   390000,  0x388 },
618 	  /*     133 MCS-09 */ { VHT20_LDPC_ONLY_MASKS,
619 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         433300,
620 		  481500,        0,        0,        0,   433300,  0x389 },
621 	  /*     134 MCS-10 */ { VHT20_LDPC_ONLY_MASKS,
622 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         487500,
623 		  541700,        0,        0,        0,   487500,  0x38a },
624 	  /*     135 MCS-11 */ { VHT20_LDPC_ONLY_MASKS,
625 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         541700,
626 		  601900,        0,        0,        0,   541700,  0x38b },
627 
628 	  /* When number of spatial streams > 5 */
629 	  /*     136 MCS-00 */ { VHT20_LDPC_ONLY_MASKS,
630 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                          39000,
631 		  43300,        0,        0,        0,    39000,  0x3a0 },
632 	  /*     137 MCS-01 */ { VHT20_LDPC_ONLY_MASKS,
633 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                          78000,
634 		  86700,        0,        0,        0,    78000,  0x3a1 },
635 	  /*     138 MCS-02 */ { VHT20_LDPC_ONLY_MASKS,
636 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         117000,
637 		  130000,        0,        0,        0,   117000,  0x3a2 },
638 	  /*     139 MCS-03 */ { VHT20_LDPC_ONLY_MASKS,
639 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         156000,
640 		  173300,        0,        0,        0,   156000,  0x3a3 },
641 	  /*     140 MCS-04 */ { VHT20_LDPC_ONLY_MASKS,
642 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         234000,
643 		  260000,        0,        0,        0,   234000,  0x3a4 },
644 	  /*     141 MCS-05 */ { VHT20_LDPC_ONLY_MASKS,
645 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         312000,
646 		  346700,        0,        0,        0,   312000,  0x3a5 },
647 	  /*     142 MCS-06 */ { VHT20_LDPC_ONLY_MASKS,
648 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         351000,
649 		  390000,        0,        0,        0,   351000,  0x3a6 },
650 	  /*     143 MCS-07 */ { VHT20_LDPC_ONLY_MASKS,
651 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         390000,
652 		  433300,        0,        0,        0,   390000,  0x3a7 },
653 	  /*     144 MCS-08 */ { VHT20_LDPC_ONLY_MASKS,
654 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         468000,
655 		  520000,        0,        0,        0,   468000,  0x3a8 },
656 	  /*     145 MCS-09 */ { VHT20_LDPC_ONLY_MASKS,
657 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         520000,
658 		  577800,        0,        0,        0,   520000,  0x3a9 },
659 	  /*    146 MCS-10 */ { VHT20_LDPC_ONLY_MASKS,
660 		  DP_CMN_MOD_IEEE80211_T_VHT_20,
661 		  585000, 650000,   0, 0,   0,
662 		  585000,  0x3aa },
663 	  /*     147 MCS-11 */ { VHT20_LDPC_ONLY_MASKS,
664 		  DP_CMN_MOD_IEEE80211_T_VHT_20,
665 		  650000, 722200,	       0,		 0,
666 		  0, 650000,  0x3ab },
667 
668 	  /* when number of spatial streams > 6 */
669 	  /*     148 MCS-00 */ { VHT20_LDPC_ONLY_MASKS,
670 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                          45500,
671 		  50600,        0,        0,        0,    45500,  0x3c0 },
672 	  /*     149 MCS-01 */ { VHT20_LDPC_ONLY_MASKS,
673 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                          91000,
674 		  101100,        0,        0,       0,    91000,  0x3c1 },
675 	  /*     150 MCS-02 */ { VHT20_LDPC_ONLY_MASKS,
676 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         136500,
677 		  151700,        0,        0,        0,   136500,  0x3c2 },
678 	  /*     151 MCS-03 */ { VHT20_LDPC_ONLY_MASKS,
679 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         182000,
680 		  202200,        0,        0,        0,   182000,  0x3c3 },
681 	  /*     152 MCS-04 */ { VHT20_LDPC_ONLY_MASKS,
682 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         273000,
683 		  303300,        0,        0,        0,   273000,  0x3c4 },
684 	  /*     153 MCS-05 */ { VHT20_LDPC_ONLY_MASKS,
685 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         364000,
686 		  404400,        0,        0,        0,   364000,  0x3c5 },
687 	  /*     154 MCS-06 */ { VHT20_LDPC_ONLY_MASKS,
688 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         409500,
689 		  455000,        0,        0,        0,   409500,  0x3c6 },
690 	  /*     155 MCS-07 */ { VHT20_LDPC_ONLY_MASKS,
691 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         455000,
692 		  505600,        0,        0,        0,   455000,  0x3c7 },
693 	  /*     156 MCS-08 */ { VHT20_LDPC_ONLY_MASKS,
694 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         546000,
695 		  606700,        0,        0,        0,   546000,  0x3c8 },
696 	  /*     157 MCS-09 */ { VHT20_LDPC_ONLY_MASKS,
697 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         606700,
698 		  674100,        0,        0,        0,   606700,  0x3c9 },
699 	  /*     158 MCS-10 */ { VHT20_LDPC_ONLY_MASKS,
700 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         682500,
701 		  758300,        0,        0,        0,   682500,  0x3ca },
702 	  /*     159 MCS-11 */ { VHT20_LDPC_ONLY_MASKS,
703 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         758300,
704 		  842600,        0,        0,        0,   758300,  0x3cb },
705 
706 	  /* when number of spatial streams > 7 */
707 	  /*     160 MCS-00 */ { VHT20_LDPC_ONLY_MASKS,
708 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                          52000,
709 		  57800,        0,        0,        0,    52000,  0x3e0 },
710 	  /*     161 MCS-01 */ { VHT20_LDPC_ONLY_MASKS,
711 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         104000,
712 		  115600,        0,        0,        0,   104000,  0x3e1 },
713 	  /*     162 MCS-02 */ { VHT20_LDPC_ONLY_MASKS,
714 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         156000,
715 		  173300,        0,        0,        0,   156000,  0x3e2 },
716 	  /*     163 MCS-03 */ { VHT20_LDPC_ONLY_MASKS,
717 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         208000,
718 		  231100,        0,        0,        0,   208000,  0x3e3 },
719 	  /*     164 MCS-04 */ { VHT20_LDPC_ONLY_MASKS,
720 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         312000,
721 		  346700,        0,        0,        0,   312000,  0x3e4 },
722 	  /*     165 MCS-05 */ { VHT20_LDPC_ONLY_MASKS,
723 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         416000,
724 		  462200,        0,        0,        0,   416000,  0x3e5 },
725 	  /*     166 MCS-06 */ { VHT20_LDPC_ONLY_MASKS,
726 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         468000,
727 		  520000,        0,        0,        0,   468000,  0x3e6 },
728 	  /*     167 MCS-07 */ { VHT20_LDPC_ONLY_MASKS,
729 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         520000,
730 		  577800,        0,        0,        0,   520000,  0x3e7 },
731 	  /*     168 MCS-08 */ { VHT20_LDPC_ONLY_MASKS,
732 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         624000,
733 		  693300,        0,        0,        0,   624000,  0x3e8 },
734 	  /*     169 MCS-09 */ { VHT20_LDPC_ONLY_MASKS,
735 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         693300,
736 		  770400,        0,        0,        0,   693300,  0x3e9 },
737 	  /*     170 MCS-10 */ { VHT20_LDPC_ONLY_MASKS,
738 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         780000,
739 		  866700,        0,        0,        0,   780000,  0x3ea },
740 	  /*     171 MCS-11 */ { VHT20_LDPC_ONLY_MASKS,
741 		  DP_CMN_MOD_IEEE80211_T_VHT_20,                         866700,
742 		  963000,        0,        0,        0,   866700,  0x3eb },
743 
744 	  /* 11ac VHT40 rates                                                 */
745 	  /*     172 MCS-00 */ { VHT40_MODE_VALID_MASK,
746 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                          13500,
747 		  15000,        0,        0,        0,    13500,  0x300 },
748 	  /*     173 MCS-01 */ { VHT40_MODE_VALID_MASK,
749 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                          27000,
750 		  30000,        0,        0,        0,    27000,  0x301 },
751 	  /*     174 MCS-02 */ { VHT40_MODE_VALID_MASK,
752 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                          40500,
753 		  45000,        0,        0,        0,    40500,  0x302 },
754 	  /*     175 MCS-03 */ { VHT40_MODE_VALID_MASK,
755 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                          54000,
756 		  60000,        0,        0,        0,    54000,  0x303 },
757 	  /*     176 MCS-04 */ { VHT40_MODE_VALID_MASK,
758 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                          81000,
759 		  90000,        0,        0,        0,    81000,  0x304 },
760 	  /*     177 MCS-05 */ { VHT40_MODE_VALID_MASK,
761 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                         108000,
762 		  120000,        0,        0,        0,   108000,  0x305 },
763 	  /*     178 MCS-06 */ { VHT40_MODE_VALID_MASK,
764 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                         121500,
765 		  135000,        0,        0,        0,   121500,  0x306 },
766 	  /*     179 MCS-07 */ { VHT40_MODE_VALID_MASK,
767 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                         135000,
768 		  150000,        0,        0,        0,   135000,  0x307 },
769 	  /*     180 MCS-08 */ { VHT40_MODE_VALID_MASK,
770 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                         162000,
771 		  180000,        0,        0,        0,   162000,  0x308 },
772 	  /*     181 MCS-09 */ { VHT40_MODE_VALID_MASK,
773 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                         180000,
774 		  200000,        0,        0,        0,   180000,  0x309 },
775 	  /*     182 MCS-10 */ { VHT40_LDPC_ONLY_MASKS,
776 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                         202500,
777 		  225000,        0,        0,        0,   202500,  0x30a },
778 	  /*     183 MCS-11 */ { VHT40_LDPC_ONLY_MASKS,
779 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                         225000,
780 		  250000,        0,        0,        0,   225000,  0x30b },
781 
782 	  /*  when number of spatial streams > 1 */
783 	  /*     184 MCS-00 */ { VHT40_MODE_VALID_MASK,
784 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                          27000,
785 		  30000,        0,        0,        0,    27000,  0x320 },
786 	  /*     185 MCS-01 */ { VHT40_MODE_VALID_MASK,
787 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                          54000,
788 		  60000,        0,        0,        0,    54000,  0x321 },
789 	  /*     186 MCS-02 */ { VHT40_MODE_VALID_MASK,
790 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                          81000,
791 		  90000,        0,        0,        0,    81000,  0x322 },
792 	  /*     187 MCS-03 */ { VHT40_MODE_VALID_MASK,
793 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                         108000,
794 		  120000,        0,        0,        0,   108000,  0x323 },
795 	  /*     188 MCS-04 */ { VHT40_MODE_VALID_MASK,
796 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                         162000,
797 		  180000,        0,        0,        0,   162000,  0x324 },
798 	  /*     189 MCS-05 */ { VHT40_MODE_VALID_MASK,
799 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                         216000,
800 		  240000,        0,        0,        0,   216000,  0x325 },
801 	  /*     190 MCS-06 */ { VHT40_MODE_VALID_MASK,
802 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                         243000,
803 		  270000,        0,        0,        0,   243000,  0x326 },
804 	  /*     191 MCS-07 */ { VHT40_MODE_VALID_MASK,
805 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                         270000,
806 		  300000,        0,        0,        0,   270000,  0x327 },
807 	  /*     192 MCS-08 */ { VHT40_MODE_VALID_MASK,
808 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                         324000,
809 		  360000,        0,        0,        0,   324000,  0x328 },
810 	  /*     193 MCS-09 */ { VHT40_MODE_VALID_MASK,
811 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                         360000,
812 		  400000,        0,        0,        0,   360000,  0x329 },
813 	  /*     194 MCS-10 */ { VHT40_LDPC_ONLY_MASKS,
814 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                         405000,
815 		  450000,        0,        0,        0,   405000,  0x32a },
816 	  /*     195 MCS-11 */ { VHT40_LDPC_ONLY_MASKS,
817 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                         450000,
818 		  500000,        0,        0,        0,   450000,  0x32b },
819 
820 	  /* When number of spatial streams > 2 use below rate*/
821 	  /*     196 MCS-00 */ { VHT40_MODE_VALID_MASK,
822 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                          40500,
823 		  45000,        0,        0,        0,    40500,  0x340 },
824 	  /*     197 MCS-01 */ { VHT40_MODE_VALID_MASK,
825 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                          81000,
826 		  90000,        0,        0,        0,    81000,  0x341 },
827 	  /*     198 MCS-02 */ { VHT40_MODE_VALID_MASK,
828 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                         121500,
829 		  135000,        0,        0,        0,   121500,  0x342 },
830 	  /*     199 MCS-03 */ { VHT40_MODE_VALID_MASK,
831 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                         162000,
832 		  180000,        0,        0,        0,   162000,  0x343 },
833 	  /*     200 MCS-04 */ { VHT40_MODE_VALID_MASK,
834 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                         243000,
835 		  270000,        0,        0,        0,   243000,  0x344 },
836 	  /*     201 MCS-05 */ { VHT40_MODE_VALID_MASK,
837 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                         324000,
838 		  360000,        0,        0,        0,   324000,  0x345 },
839 	  /*     202 MCS-06 */ { VHT40_MODE_VALID_MASK,
840 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                         364500,
841 		  405000,        0,        0,        0,   364500,  0x346 },
842 	  /*     203 MCS-07 */ { VHT40_MODE_VALID_MASK,
843 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                         405000,
844 		  450000,        0,        0,        0,   405000,  0x347 },
845 	  /*     204 MCS-08 */ { VHT40_MODE_VALID_MASK,
846 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                         486000,
847 		  540000,        0,        0,        0,   486000,  0x348 },
848 	  /*     205 MCS-09 */ { VHT40_MODE_VALID_MASK,
849 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                         540000,
850 		  600000,        0,        0,        0,   540000,  0x349 },
851 	  /*     206 MCS-10 */ { VHT40_LDPC_ONLY_MASKS,
852 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                         607500,
853 		  675000,        0,        0,        0,   607500,  0x34a},
854 	  /*     207 MCS-11 */ { VHT40_LDPC_ONLY_MASKS,
855 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                         675000,
856 		  750000,        0,        0,        0,   675000,  0x34b},
857 
858 	  /* When number of spatial streams > 3 use below rates */
859 	  /*     208 MCS-00 */ { VHT40_MODE_VALID_MASK,
860 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                          54000,
861 		  60000,        0,        0,        0,    54000,  0x360},
862 	  /*     209 MCS-01 */ { VHT40_MODE_VALID_MASK,
863 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                         108000,
864 		  120000,        0,        0,        0,   108000,  0x361},
865 	  /*     210 MCS-02 */ { VHT40_MODE_VALID_MASK,
866 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                         162000,
867 		  180000,        0,        0,        0,   162000,  0x362},
868 	  /*     211 MCS-03 */ { VHT40_MODE_VALID_MASK,
869 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                         216000,
870 		  240000,        0,        0,        0,   216000,  0x363},
871 	  /*     212 MCS-04 */ { VHT40_MODE_VALID_MASK,
872 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                         324000,
873 		  260000,        0,        0,        0,   324000,  0x364},
874 	  /*     213 MCS-05 */ { VHT40_MODE_VALID_MASK,
875 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                         432000,
876 		  480000,        0,        0,        0,   432000,  0x365},
877 	  /*     214 MCS-06 */ { VHT40_MODE_VALID_MASK,
878 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                         486000,
879 		  540000,        0,        0,        0,   486000,  0x366},
880 	  /*     215 MCS-07 */ { VHT40_MODE_VALID_MASK,
881 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                         540000,
882 		  600000,        0,        0,        0,   540000,  0x367},
883 	  /*     216 MCS-08 */ { VHT40_MODE_VALID_MASK,
884 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                         648000,
885 		  720000,        0,        0,        0,   648000,  0x368},
886 	  /*     217 MCS-09 */ { VHT40_MODE_VALID_MASK,
887 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                         720000,
888 		  800000,        0,        0,        0,   720000,  0x369},
889 	  /*     218 MCS-10 */ { VHT40_LDPC_ONLY_MASKS,
890 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                         810000,
891 		  900000,        0,        0,        0,   810000,  0x36a },
892 	  /*     219 MCS-11 */ { VHT40_LDPC_ONLY_MASKS,
893 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                         900000,
894 		  1000000,        0,        0,        0,   900000,  0x36b },
895 
896 	  /* when number of spatial streams > 4 use below rates */
897 	  /*     220 MCS-00 */ { VHT40_LDPC_ONLY_MASKS,
898 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                          67500,
899 		  75000,        0,        0,        0,    67500,  0x380 },
900 	  /*     221 MCS-01 */ { VHT40_LDPC_ONLY_MASKS,
901 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                         135000,
902 		  150000,        0,        0,        0,   135000,  0x381 },
903 	  /*     222 MCS-02 */ { VHT40_LDPC_ONLY_MASKS,
904 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                         202500,
905 		  225000,        0,        0,        0,   202500,  0x382 },
906 	  /*     223 MCS-03 */ { VHT40_LDPC_ONLY_MASKS,
907 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                         270000,
908 		  300000,        0,        0,        0,   270000,  0x383 },
909 	  /*     224 MCS-04 */ { VHT40_LDPC_ONLY_MASKS,
910 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                         405000,
911 		  450000,        0,        0,        0,   405000,  0x384 },
912 	  /*     225 MCS-05 */ { VHT40_LDPC_ONLY_MASKS,
913 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                         540000,
914 		  600000,        0,        0,        0,   540000,  0x385 },
915 	  /*     226 MCS-06 */ { VHT40_LDPC_ONLY_MASKS,
916 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                         607500,
917 		  675000,        0,        0,        0,   607500,  0x386 },
918 	  /*     227 MCS-07 */ { VHT40_LDPC_ONLY_MASKS,
919 		  DP_CMN_MOD_IEEE80211_T_VHT_40,                         675000,
920 		  750000,        0,        0,        0,   675000,  0x387 },
921 	  /*     228 MCS-08 */ { VHT40_LDPC_ONLY_MASKS,
922 		  DP_CMN_MOD_IEEE80211_T_VHT_40,
923 		  810000, 900000,        0,        0,        0,   810000,
924 		  0x388 },
925 	  /*     229 MCS-09 */ { VHT40_LDPC_ONLY_MASKS,
926 		  DP_CMN_MOD_IEEE80211_T_VHT_40,
927 		  900000, 1000000,        0,        0,        0,   900000,
928 		  0x389 },
929 	  /*     230 MCS-10 */ { VHT40_LDPC_ONLY_MASKS,
930 		  DP_CMN_MOD_IEEE80211_T_VHT_40,
931 		  1012500, 1125000,        0,        0,        0,   1012500,
932 		  0x38a },
933 	  /*     231 MCS-11 */ { VHT40_LDPC_ONLY_MASKS,
934 		  DP_CMN_MOD_IEEE80211_T_VHT_40,
935 		  1125000, 1250000,        0,        0,        0,   1125000,
936 		  0x38b },
937 
938 	  /* when number of spatial streams > 5 use below rates*/
939 	  /*     232 MCS-00 */ { VHT40_LDPC_ONLY_MASKS,
940 		  DP_CMN_MOD_IEEE80211_T_VHT_40,
941 		  81000, 90000,        0,        0,        0,    81000,  0x3a0
942 	  },
943 	  /*     233 MCS-01 */ { VHT40_LDPC_ONLY_MASKS,
944 		  DP_CMN_MOD_IEEE80211_T_VHT_40,
945 		  162000, 180000,        0,        0,        0,   162000,
946 		  0x3a1 },
947 	  /*     234 MCS-02 */ { VHT40_LDPC_ONLY_MASKS,
948 		  DP_CMN_MOD_IEEE80211_T_VHT_40,
949 		  243000, 270000,        0,        0,        0,   243000,
950 		  0x3a2 },
951 	  /*     235 MCS-03 */ { VHT40_LDPC_ONLY_MASKS,
952 		  DP_CMN_MOD_IEEE80211_T_VHT_40,
953 		  324000, 360000,        0,        0,        0,   324000,
954 		  0x3a3 },
955 	  /*     236 MCS-04 */ { VHT40_LDPC_ONLY_MASKS,
956 		  DP_CMN_MOD_IEEE80211_T_VHT_40,
957 		  486000, 540000,        0,        0,        0,   486000,
958 		  0x3a4 },
959 	  /*     237 MCS-05 */ { VHT40_LDPC_ONLY_MASKS,
960 		  DP_CMN_MOD_IEEE80211_T_VHT_40,
961 		  648000, 720000,        0,        0,        0,   648000,
962 		  0x3a5 },
963 	  /*     238 MCS-06 */ { VHT40_LDPC_ONLY_MASKS,
964 		  DP_CMN_MOD_IEEE80211_T_VHT_40,
965 		  729000, 815000,        0,        0,        0,   729000,
966 		  0x3a6 },
967 	  /*     239 MCS-07 */ { VHT40_LDPC_ONLY_MASKS,
968 		  DP_CMN_MOD_IEEE80211_T_VHT_40,
969 		  810000, 900000,        0,        0,        0,   810000,
970 		  0x3a7 },
971 	  /*     240 MCS-08 */ { VHT40_LDPC_ONLY_MASKS,
972 		  DP_CMN_MOD_IEEE80211_T_VHT_40,
973 		  972000, 1080000,        0,        0,        0,   972000,
974 		  0x3a8 },
975 	  /*     241 MCS-09 */ { VHT40_LDPC_ONLY_MASKS,
976 		  DP_CMN_MOD_IEEE80211_T_VHT_40,
977 		  1080000, 1200000,        0,        0,        0,  1080000,
978 		  0x3a9 },
979 	  /*     242 MCS-10 */ { VHT40_LDPC_ONLY_MASKS,
980 		  DP_CMN_MOD_IEEE80211_T_VHT_40,
981 		  1215000, 1350000,        0,        0,        0,  1215000,
982 		  0x3aa },
983 	  /*     243 MCS-11 */ { VHT40_LDPC_ONLY_MASKS,
984 		  DP_CMN_MOD_IEEE80211_T_VHT_40,
985 		  1350000, 1500000,        0,        0,        0,  1350000,
986 		  0x3ab },
987 
988 	  /* when number of spatial streams > 6 use below rates */
989 	  /*     244 MCS-00 */ { VHT40_LDPC_ONLY_MASKS,
990 		  DP_CMN_MOD_IEEE80211_T_VHT_40,
991 		  94500, 105000,        0,        0,        0,    94500,  0x3c0
992 	  },
993 	  /*     245 MCS-01 */ { VHT40_LDPC_ONLY_MASKS,
994 		  DP_CMN_MOD_IEEE80211_T_VHT_40,
995 		  189000, 210000,        0,        0,        0,   189000,
996 		  0x3c1 },
997 	  /*     246 MCS-02 */ { VHT40_LDPC_ONLY_MASKS,
998 		  DP_CMN_MOD_IEEE80211_T_VHT_40,
999 		  283500, 315000,        0,        0,        0,   283500,
1000 		  0x3c2 },
1001 	  /*     247 MCS-03 */ { VHT40_LDPC_ONLY_MASKS,
1002 		  DP_CMN_MOD_IEEE80211_T_VHT_40,
1003 		  378000, 420000,        0,        0,        0,   378000,
1004 		  0x3c3 },
1005 	  /*     248 MCS-04 */ { VHT40_LDPC_ONLY_MASKS,
1006 		  DP_CMN_MOD_IEEE80211_T_VHT_40,
1007 		  567000, 630000,        0,        0,        0,   567000,
1008 		  0x3c4 },
1009 	  /*     249 MCS-05 */ { VHT40_LDPC_ONLY_MASKS,
1010 		  DP_CMN_MOD_IEEE80211_T_VHT_40,
1011 		  756000, 840000,        0,        0,        0,   756000,
1012 		  0x3c5 },
1013 	  /*     250 MCS-06 */ { VHT40_LDPC_ONLY_MASKS,
1014 		  DP_CMN_MOD_IEEE80211_T_VHT_40,
1015 		  850500, 945000,        0,        0,        0,   850500,
1016 		  0x3c6 },
1017 	  /*     251 MCS-07 */ { VHT40_LDPC_ONLY_MASKS,
1018 		  DP_CMN_MOD_IEEE80211_T_VHT_40,
1019 		  945000, 1050000,        0,        0,        0,   945000,
1020 		  0x3c7 },
1021 	  /*     252 MCS-08 */ { VHT40_LDPC_ONLY_MASKS,
1022 		  DP_CMN_MOD_IEEE80211_T_VHT_40,
1023 		  1134000, 1260000,        0,        0,        0,  1134000,
1024 		  0x3c8 },
1025 	  /*     253 MCS-09 */ { VHT40_LDPC_ONLY_MASKS,
1026 		  DP_CMN_MOD_IEEE80211_T_VHT_40,
1027 		  1260000, 1400000,        0,        0,        0,  1260000,
1028 		  0x3c9 },
1029 	  /*     254 MCS-10 */ { VHT40_LDPC_ONLY_MASKS,
1030 		  DP_CMN_MOD_IEEE80211_T_VHT_40,
1031 		  1417500, 1575000,        0,        0,        0,  1417500,
1032 		  0x3ca },
1033 	  /*     255 MCS-11 */ { VHT40_LDPC_ONLY_MASKS,
1034 		  DP_CMN_MOD_IEEE80211_T_VHT_40,
1035 		  1575000, 1750000,        0,        0,        0,  1575000,
1036 		  0x3cb },
1037 
1038 	  /* when number of spatial streams > 7 use below rates */
1039 	  /*     256 MCS-00 */ { VHT40_LDPC_ONLY_MASKS,
1040 		  DP_CMN_MOD_IEEE80211_T_VHT_40,
1041 		  108000, 120000,        0,        0,        0,   108000,
1042 		  0x3e0 },
1043 	  /*     257 MCS-01 */ { VHT40_LDPC_ONLY_MASKS,
1044 		  DP_CMN_MOD_IEEE80211_T_VHT_40,
1045 		  216000, 240000,        0,        0,        0,   216000,
1046 		  0x3e1 },
1047 	  /*     258 MCS-02 */ { VHT40_LDPC_ONLY_MASKS,
1048 		  DP_CMN_MOD_IEEE80211_T_VHT_40,
1049 		  324000, 360000,        0,        0,        0,   324000,
1050 		  0x3e2 },
1051 	  /*     259 MCS-03 */ { VHT40_LDPC_ONLY_MASKS,
1052 		  DP_CMN_MOD_IEEE80211_T_VHT_40,
1053 		  432000, 480000,        0,        0,        0,   432000,
1054 		  0x3e3 },
1055 	  /*     260 MCS-04 */ { VHT40_LDPC_ONLY_MASKS,
1056 		  DP_CMN_MOD_IEEE80211_T_VHT_40,
1057 		  648000, 720000,        0,        0,        0,   648000,
1058 		  0x3e4 },
1059 	  /*     261 MCS-05 */ { VHT40_LDPC_ONLY_MASKS,
1060 		  DP_CMN_MOD_IEEE80211_T_VHT_40,
1061 		  864000, 960000,        0,        0,        0,   864000,
1062 		  0x3e5 },
1063 	  /*     262 MCS-06 */ { VHT40_LDPC_ONLY_MASKS,
1064 		  DP_CMN_MOD_IEEE80211_T_VHT_40,
1065 		  972000, 1080000,        0,        0,        0,   972000,
1066 		  0x3e6 },
1067 	  /*     263 MCS-07 */ { VHT40_LDPC_ONLY_MASKS,
1068 		  DP_CMN_MOD_IEEE80211_T_VHT_40,
1069 		  1080000, 1200000,        0,        0,        0,  1080000,
1070 		  0x3e7 },
1071 	  /*     264 MCS-08 */ { VHT40_LDPC_ONLY_MASKS,
1072 		  DP_CMN_MOD_IEEE80211_T_VHT_40,
1073 		  1296000, 1440000,        0,        0,        0,  1296000,
1074 		  0x3e8 },
1075 	  /*     265 MCS-09 */ { VHT40_LDPC_ONLY_MASKS,
1076 		  DP_CMN_MOD_IEEE80211_T_VHT_40,
1077 		  1440000, 1600000,        0,        0,        0,  1440000,
1078 		  0x3e9 },
1079 	  /*     266 MCS-10 */ { VHT40_LDPC_ONLY_MASKS,
1080 		  DP_CMN_MOD_IEEE80211_T_VHT_40,
1081 		  1620000, 1800000,        0,        0,        0,  1620000,
1082 		  0x3ea },
1083 	  /*     267 MCS-11 */ { VHT40_LDPC_ONLY_MASKS,
1084 		  DP_CMN_MOD_IEEE80211_T_VHT_40,
1085 		  1800000, 2000000,        0,        0,        0,  1800000,
1086 		  0x3eb },
1087 
1088 	  /* 11ac VHT80 rates
1089 	   */
1090 	  /*     268 MCS-00 */ { VHT80_MODE_VALID_MASK,
1091 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1092 		  29300, 32500,        0,        0,        0,    29300,
1093 		  0x300},
1094 	  /*     269 MCS-01 */ { VHT80_MODE_VALID_MASK,
1095 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1096 		  58500, 65000,        0,        0,        0,    58500,
1097 		  0x301},
1098 	  /*     270 MCS-02 */ { VHT80_MODE_VALID_MASK,
1099 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1100 		  87800, 97500,        0,        0,        0,    87800,
1101 		  0x302},
1102 	  /*     271 MCS-03 */ { VHT80_MODE_VALID_MASK,
1103 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1104 		  117000, 130000,        0,        0,        0,   117000,
1105 		  0x303},
1106 	  /*     272 MCS-04 */ { VHT80_MODE_VALID_MASK,
1107 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1108 		  175500, 195000,        0,        0,        0,   175500,
1109 		  0x304},
1110 	  /*     273 MCS-05 */ { VHT80_MODE_VALID_MASK,
1111 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1112 		  234000, 260000,        0,        0,        0,   234000,
1113 		  0x305},
1114 	  /*     274 MCS-06 */ { VHT80_MODE_VALID_MASK,
1115 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1116 		  263300, 292500,        0,        0,        0,   263300,
1117 		  0x306},
1118 	  /*     275 MCS-07 */ { VHT80_MODE_VALID_MASK,
1119 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1120 		  292500, 325000,        0,        0,        0,   292500,
1121 		  0x307},
1122 	  /*     276 MCS-08 */ { VHT80_MODE_VALID_MASK,
1123 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1124 		  351000, 390000,        0,        0,        0,   351000,
1125 		  0x308},
1126 	  /*     277 MCS-09 */ { VHT80_MODE_VALID_MASK,
1127 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1128 		  390000, 433300,        0,        0,        0,   390000,
1129 		  0x309},
1130 	  /*     278 MCS-10 */ { VHT80_LDPC_ONLY_MASKS,
1131 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1132 		  438800, 487500,        0,        0,        0,   438800,
1133 		  0x30a},
1134 	  /*     279 MCS-11 */ { VHT80_LDPC_ONLY_MASKS,
1135 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1136 		  487500, 541700,        0,        0,        0,   487500,
1137 		  0x30b},
1138 
1139 	  /* When number of spatial streams > 1 use below rates*/
1140 	  /*     280 MCS-00 */ { VHT80_MODE_VALID_MASK,
1141 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1142 		  58500, 65000,        0,        0,        0,    58500,
1143 		  0x320},
1144 	  /*     281 MCS-01 */ { VHT80_MODE_VALID_MASK,
1145 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1146 		  117000, 130000,        0,        0,        0,   117000,
1147 		  0x321},
1148 	  /*     282 MCS-02 */ { VHT80_MODE_VALID_MASK,
1149 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1150 		  175500, 195000,        0,        0,        0,   175500,
1151 		  0x322},
1152 	  /*     283 MCS-03 */ { VHT80_MODE_VALID_MASK,
1153 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1154 		  234000, 260000,        0,        0,        0,   234000,
1155 		  0x323},
1156 	  /*     284 MCS-04 */ { VHT80_MODE_VALID_MASK,
1157 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1158 		  351000, 390000,        0,        0,        0,   351000,
1159 		  0x324},
1160 	  /*     285 MCS-05 */ { VHT80_MODE_VALID_MASK,
1161 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1162 		  468000, 520000,        0,        0,        0,   468000,
1163 		  0x325},
1164 	  /*     286 MCS-06 */ { VHT80_MODE_VALID_MASK,
1165 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1166 		  526500, 585000,        0,        0,        0,   526500,
1167 		  0x326},
1168 	  /*     287 MCS-07 */ { VHT80_MODE_VALID_MASK,
1169 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1170 		  585000, 650000,        0,        0,        0,   585000,
1171 		  0x327},
1172 	  /*     288 MCS-08 */ { VHT80_MODE_VALID_MASK,
1173 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1174 		  702000, 780000,        0,        0,        0,   702000,
1175 		  0x328},
1176 	  /*     289 MCS-09 */ { VHT80_MODE_VALID_MASK,
1177 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1178 		  780000, 866700,        0,        0,        0,   780000,
1179 		  0x329},
1180 	  /*     290 MCS-10 */ { VHT80_LDPC_ONLY_MASKS,
1181 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1182 		  877500, 975000,        0,        0,        0,   877500,
1183 		  0x32a},
1184 	  /*     291 MCS-11 */ { VHT80_LDPC_ONLY_MASKS,
1185 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1186 		  975000, 1083300,        0,        0,        0,   975000,
1187 		  0x32b},
1188 
1189 	  /* When number of spatial streams > 2 use below rates */
1190 	  /*     292 MCS-00 */ { VHT80_MODE_VALID_MASK,
1191 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1192 		  87800, 97500,        0,        0,        0,    87800,  0x340
1193 	  },
1194 	  /*     293 MCS-01 */ { VHT80_MODE_VALID_MASK,
1195 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1196 		  175500, 195000,        0,        0,        0,   175500,
1197 		  0x341 },
1198 	  /*     294 MCS-02 */ { VHT80_MODE_VALID_MASK,
1199 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1200 		  263300, 292500,        0,        0,        0,   263300,
1201 		  0x342 },
1202 	  /*     295 MCS-03 */ { VHT80_MODE_VALID_MASK,
1203 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1204 		  351000, 390000,        0,        0,        0,   351000,
1205 		  0x343 },
1206 	  /*     296 MCS-04 */ { VHT80_MODE_VALID_MASK,
1207 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1208 		  526500, 585000,        0,        0,        0,   526500,
1209 		  0x344 },
1210 	  /*     297 MCS-05 */ { VHT80_MODE_VALID_MASK,
1211 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1212 		  702000, 780000,        0,        0,        0,   702000,
1213 		  0x345 },
1214 	  /*     298 MCS-06 */ { VHT_INVALID_RATES_MASK,
1215 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1216 		  789800, 877500,        0,        0,        0,   789800,
1217 		  0x346 },
1218 	  /*     299 MCS-07 */ { VHT80_MODE_VALID_MASK,
1219 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1220 		  877500, 975000,        0,        0,        0,   877500,
1221 		  0x347 },
1222 	  /*     300 MCS-08 */ { VHT80_MODE_VALID_MASK,
1223 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1224 		  1053000, 1170000,        0,        0,        0,  1053000,
1225 		  0x348 },
1226 	  /*     301 MCS-09 */ { VHT80_MODE_VALID_MASK,
1227 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1228 		  1170000, 1300000,        0,        0,        0,  1170000,
1229 		  0x349 },
1230 	  /*     302 MCS-10 */ { VHT80_LDPC_ONLY_MASKS,
1231 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1232 		  1316300, 1462500,        0,        0,        0,  1316300,
1233 		  0x34a },
1234 	  /*     303 MCS-11 */ { VHT80_LDPC_ONLY_MASKS,
1235 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1236 		  1462500, 1625000,        0,        0,        0,  1462500,
1237 		  0x34b },
1238 	  /* When number of spatial streams > 3 use below rates */
1239 	  /*     304 MCS-00 */ { VHT80_MODE_VALID_MASK,
1240 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1241 		  117000, 130000,        0,        0,        0,   117000,
1242 		  0x360 },
1243 	  /*     305 MCS-01 */ { VHT80_MODE_VALID_MASK,
1244 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1245 		  234000, 260000,        0,        0,        0,   234000,
1246 		  0x361 },
1247 	  /*     306 MCS-02 */ { VHT80_MODE_VALID_MASK,
1248 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1249 		  351000, 390000,        0,        0,        0,   351000,
1250 		  0x362 },
1251 	  /*     307 MCS-03 */ { VHT80_MODE_VALID_MASK,
1252 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1253 		  468000, 520000,        0,        0,        0,   468000,
1254 		  0x363 },
1255 	  /*     308 MCS-04 */ { VHT80_MODE_VALID_MASK,
1256 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1257 		  702000, 780000,        0,        0,        0,   702000,
1258 		  0x364 },
1259 	  /*     309 MCS-05 */ { VHT80_MODE_VALID_MASK,
1260 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1261 		  936000, 1040000,        0,        0,        0,   936000,
1262 		  0x365 },
1263 	  /*     310 MCS-06 */ { VHT80_MODE_VALID_MASK,
1264 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1265 		  1053000, 1170000,        0,        0,        0,  1053000,
1266 		  0x366 },
1267 	  /*     311 MCS-07 */ { VHT80_MODE_VALID_MASK,
1268 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1269 		  1170000, 1300000,        0,        0,        0,  1170000,
1270 		  0x367 },
1271 	  /*     312 MCS-08 */ { VHT80_MODE_VALID_MASK,
1272 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1273 		  1404000, 1560000,        0,        0,        0,  1404000,
1274 		  0x368 },
1275 	  /*     313 MCS-09 */ { VHT80_MODE_VALID_MASK,
1276 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1277 		  1560000, 1733000,        0,        0,        0,  1560000,
1278 		  0x369 },
1279 	  /*     314 MCS-08 */ { VHT80_LDPC_ONLY_MASKS,
1280 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1281 		  1755000, 1950000,        0,        0,        0,  1755000,
1282 		  0x36a },
1283 	  /*     315 MCS-09 */ { VHT80_LDPC_ONLY_MASKS,
1284 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1285 		  1950000, 2166700,        0,        0,        0,  1950000,
1286 		  0x36b },
1287 	  /* When number of spatial streams > 4 use below rates */
1288 	  /*     316 MCS-00 */ { VHT80_LDPC_ONLY_MASKS,
1289 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1290 		  146300, 162500,        0,        0,        0,   146300,
1291 		  0x380 },
1292 	  /*     317 MCS-01 */ { VHT80_LDPC_ONLY_MASKS,
1293 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1294 		  292500, 325000,        0,        0,        0,   292500,
1295 		  0x381 },
1296 	  /*     318 MCS-02 */ { VHT80_LDPC_ONLY_MASKS,
1297 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1298 		  438800, 487500,        0,        0,        0,   438800,
1299 		  0x382 },
1300 	  /*     319 MCS-03 */ { VHT80_LDPC_ONLY_MASKS,
1301 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1302 		  585000, 650000,        0,        0,        0,   585000,
1303 		  0x383 },
1304 	  /*     320 MCS-04 */ { VHT80_LDPC_ONLY_MASKS,
1305 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1306 		  877500, 975000,        0,        0,        0,   877500,
1307 		  0x384 },
1308 	  /*     321 MCS-05 */ { VHT80_LDPC_ONLY_MASKS,
1309 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1310 		  1170000, 1300000,        0,        0,        0,  1170000,
1311 		  0x385 },
1312 	  /*     322 MCS-06 */ { VHT80_LDPC_ONLY_MASKS,
1313 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1314 		  1316300, 1462500,        0,        0,        0,  1316300,
1315 		  0x386 },
1316 	  /*     323 MCS-07 */ { VHT80_LDPC_ONLY_MASKS,
1317 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1318 		  1462500, 1625000,        0,        0,        0,  1462500,
1319 		  0x387 },
1320 	  /*     324 MCS-08 */ { VHT80_LDPC_ONLY_MASKS,
1321 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1322 		  1755000, 1950000,        0,        0,        0,  1755000,
1323 		  0x388 },
1324 	  /*     325 MCS-09 */ { VHT80_LDPC_ONLY_MASKS,
1325 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1326 		  1950000, 2166700,        0,        0,        0,  1950000,
1327 		  0x389 },
1328 	  /*     326 MCS-10 */ { VHT80_LDPC_ONLY_MASKS,
1329 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1330 		  2193800, 2437500,        0,        0,        0,  2193800,
1331 		  0x38a },
1332 	  /*     327 MCS-11 */ { VHT80_LDPC_ONLY_MASKS,
1333 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1334 		  2437500, 2708300,        0,        0,        0,  2437500,
1335 		  0x38b },
1336 	  /* When number of spatial streams > 5 use below rates */
1337 	  /*     328 MCS-00 */ { VHT80_LDPC_ONLY_MASKS,
1338 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1339 		  175500, 195000,        0,        0,        0,   175500,
1340 		  0x3a0 },
1341 	  /*     329 MCS-01 */ { VHT80_LDPC_ONLY_MASKS,
1342 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1343 		  351000, 390000,        0,        0,        0,   351000,
1344 		  0x3a1 },
1345 	  /*     330 MCS-02 */ { VHT80_LDPC_ONLY_MASKS,
1346 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1347 		  526500, 585500,        0,        0,        0,   526500,
1348 		  0x3a2 },
1349 	  /*     331 MCS-03 */ { VHT80_LDPC_ONLY_MASKS,
1350 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1351 		  702000, 780000,        0,        0,        0,   702000,
1352 		  0x3a3 },
1353 	  /*     332 MCS-04 */ { VHT80_LDPC_ONLY_MASKS,
1354 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1355 		  1053000, 1170000,        0,        0,        0,  1053000,
1356 		  0x3a4 },
1357 	  /*     333 MCS-05 */ { VHT80_LDPC_ONLY_MASKS,
1358 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1359 		  1404000, 1560000,        0,        0,        0,  1404000,
1360 		  0x3a5 },
1361 	  /*     334 MCS-06 */ { VHT80_LDPC_ONLY_MASKS,
1362 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1363 		  1579500, 1755000,        0,        0,        0,  1579500,
1364 		  0x3a6 },
1365 	  /*     335 MCS-07 */ { VHT80_LDPC_ONLY_MASKS,
1366 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1367 		  1755000, 1950000,        0,        0,        0,  1755000,
1368 		  0x3a7 },
1369 	  /*     336 MCS-08 */ { VHT80_LDPC_ONLY_MASKS,
1370 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1371 		  2106000, 2340000,        0,        0,        0,  2106000,
1372 		  0x3a8 },
1373 	  /*     337 MCS-09 */ { VHT80_LDPC_ONLY_MASKS,
1374 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1375 		  2340000, 2600000,        0,        0,        0,  2340000,
1376 		  0x3a9 },
1377 	  /*     338 MCS-10 */ { VHT80_LDPC_ONLY_MASKS,
1378 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1379 		  2632500, 2925000,        0,        0,        0,  2632500,
1380 		  0x3aa },
1381 	  /*     339 MCS-11 */ { VHT80_LDPC_ONLY_MASKS,
1382 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1383 		  2925000, 3250000,        0,        0,        0,  2925000,
1384 		  0x3ab },
1385 	  /* When number of spatial streams > 6 use below rates*/
1386 	  /*     340 MCS-00 */ { VHT80_LDPC_ONLY_MASKS,
1387 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1388 		  204800, 227500,        0,        0,        0,   204800,
1389 		  0x3c0 },
1390 	  /*     341 MCS-01 */ { VHT80_LDPC_ONLY_MASKS,
1391 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1392 		  409500, 455000,        0,        0,        0,   409500,
1393 		  0x3c1 },
1394 	  /*     342 MCS-02 */ { VHT80_LDPC_ONLY_MASKS,
1395 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1396 		  614300, 682500,        0,        0,        0,   614300,
1397 		  0x3c2 },
1398 	  /*     343 MCS-03 */ { VHT80_LDPC_ONLY_MASKS,
1399 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1400 		  819000, 910000,        0,        0,        0,   819000,
1401 		  0x3c3 },
1402 	  /*     344 MCS-04 */ { VHT80_LDPC_ONLY_MASKS,
1403 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1404 		  1288500, 1365000,        0,        0,        0,  1288500,
1405 		  0x3c4 },
1406 	  /*     345 MCS-05 */ { VHT80_LDPC_ONLY_MASKS,
1407 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1408 		  1638000, 1820000,        0,        0,        0,  1638000,
1409 		  0x3c5 },
1410 	  /*     346 MCS-06 */ { VHT80_LDPC_ONLY_MASKS,
1411 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1412 		  1842800, 2047500,        0,        0,        0,  1842800,
1413 		  0x3c6 },
1414 	  /*     347 MCS-07 */ { VHT80_LDPC_ONLY_MASKS,
1415 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1416 		  2047500, 2275000,        0,        0,        0,  2047500,
1417 		  0x3c7 },
1418 	  /*     348 MCS-08 */ { VHT80_LDPC_ONLY_MASKS,
1419 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1420 		  2457000, 2730000,        0,        0,        0,  2457000,
1421 		  0x3c8 },
1422 	  /*     349 MCS-09 */ { VHT80_LDPC_ONLY_MASKS,
1423 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1424 		  2730000, 3033300,        0,        0,        0,  2730000,
1425 		  0x3c9 },
1426 	  /*     350 MCS-10 */ { VHT80_LDPC_ONLY_MASKS,
1427 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1428 		  3071300, 3412500,        0,        0,        0,  3071300,
1429 		  0x3ca },
1430 	  /*     351 MCS-11 */ { VHT80_LDPC_ONLY_MASKS,
1431 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1432 		  3412500, 3791700,        0,        0,        0,  3412500,
1433 		  0x3cb },
1434 	  /* When number of spatial streams > 7 use below rates*/
1435 	  /*     352 MCS-00 */ { VHT80_LDPC_ONLY_MASKS,
1436 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1437 		  234000, 260000,        0,        0,        0,   234000,
1438 		  0x3e0 },
1439 	  /*     353 MCS-01 */ { VHT80_LDPC_ONLY_MASKS,
1440 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1441 		  468000, 520000,        0,        0,        0,   468000,
1442 		  0x3e1},
1443 	  /*     354 MCS-02 */ { VHT80_LDPC_ONLY_MASKS,
1444 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1445 		  702000, 780000,        0,        0,        0,   702000,
1446 		  0x3e2},
1447 	  /*     355 MCS-03 */ { VHT80_LDPC_ONLY_MASKS,
1448 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1449 		  936000, 1040000,        0,        0,        0,   936000,
1450 		  0x3e3},
1451 	  /*     356 MCS-04 */ { VHT80_LDPC_ONLY_MASKS,
1452 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1453 		  1404000, 1560000,        0,        0,        0,  1404000,
1454 		  0x3e4},
1455 	  /*     357 MCS-05 */ { VHT80_LDPC_ONLY_MASKS,
1456 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1457 		  1872000, 2080000,        0,        0,        0,  1872000,
1458 		  0x3e5},
1459 	  /*     358 MCS-06 */ { VHT80_LDPC_ONLY_MASKS,
1460 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1461 		  2106000, 2340000,        0,        0,        0,  2106000,
1462 		  0x3e6},
1463 	  /*     359 MCS-07 */ { VHT80_LDPC_ONLY_MASKS,
1464 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1465 		  2340000, 2600000,        0,        0,        0,  2340000,
1466 		  0x3e7},
1467 	  /*     360 MCS-08 */ { VHT80_LDPC_ONLY_MASKS,
1468 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1469 		  2808000, 3120000,        0,        0,        0,  2808000,
1470 		  0x3e8},
1471 	  /*     361 MCS-09 */ { VHT80_LDPC_ONLY_MASKS,
1472 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1473 		  3120000, 3466700,        0,        0,        0,  3120000,
1474 		  0x3e9},
1475 	  /*     362 MCS-10 */ { VHT80_LDPC_ONLY_MASKS,
1476 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1477 		  3510000, 3900000,        0,        0,        0,  3510000,
1478 		  0x3ea},
1479 	  /*     363 MCS-11 */ { VHT80_LDPC_ONLY_MASKS,
1480 		  DP_CMN_MOD_IEEE80211_T_VHT_80,
1481 		  3900000, 4333300,        0,        0,        0,  3900000,
1482 		  0x3eb},
1483 
1484 	  /* 11ac VHT160 rates
1485 	   */
1486 	  /*     364 MCS-00 */ { VHT160_MODE_VALID_MASK,
1487 		  DP_CMN_MOD_IEEE80211_T_VHT_160,
1488 		  58500, 65000,        0,        0,        0,    58500,
1489 		  0x300},
1490 	  /*     365 MCS-01 */ { VHT160_MODE_VALID_MASK,
1491 		  DP_CMN_MOD_IEEE80211_T_VHT_160,
1492 		  117000, 130000,        0,        0,        0,   117000,
1493 		  0x301},
1494 	  /*     366 MCS-02 */ { VHT160_MODE_VALID_MASK,
1495 		  DP_CMN_MOD_IEEE80211_T_VHT_160,
1496 		  175500, 195000,        0,        0,        0,   175500,
1497 		  0x302},
1498 	  /*     367 MCS-03 */ { VHT160_MODE_VALID_MASK,
1499 		  DP_CMN_MOD_IEEE80211_T_VHT_160,
1500 		  234000, 260000,        0,        0,        0,   234000,
1501 		  0x303},
1502 	  /*     368 MCS-04 */ { VHT160_MODE_VALID_MASK,
1503 		  DP_CMN_MOD_IEEE80211_T_VHT_160,
1504 		  351000, 390000,        0,        0,        0,   351000,
1505 		  0x304},
1506 	  /*     369 MCS-05 */ { VHT160_MODE_VALID_MASK,
1507 		  DP_CMN_MOD_IEEE80211_T_VHT_160,
1508 		  468000, 520000,        0,        0,        0,   468000,
1509 		  0x305},
1510 	  /*     370 MCS-06 */ { VHT160_MODE_VALID_MASK,
1511 		  DP_CMN_MOD_IEEE80211_T_VHT_160,
1512 		  526500, 585000,        0,        0,        0,   526500,
1513 		  0x306},
1514 	  /*     371 MCS-07 */ { VHT160_MODE_VALID_MASK,
1515 		  DP_CMN_MOD_IEEE80211_T_VHT_160,
1516 		  585000, 650000,        0,        0,        0,   585000,
1517 		  0x307},
1518 	  /*     372 MCS-08 */ { VHT160_MODE_VALID_MASK,
1519 		  DP_CMN_MOD_IEEE80211_T_VHT_160,
1520 		  702000, 780000,        0,        0,        0,   702000,
1521 		  0x308},
1522 	  /*     373 MCS-09 */ { VHT160_MODE_VALID_MASK,
1523 		  DP_CMN_MOD_IEEE80211_T_VHT_160,
1524 		  780000, 866700,        0,        0,        0,   780000,
1525 		  0x309},
1526 	  /*     374 MCS-10 */ { VHT160_LDPC_ONLY_MASKS,
1527 		  DP_CMN_MOD_IEEE80211_T_VHT_160,
1528 		  877500, 975000,        0,        0,        0,   877500,
1529 		  0x30a },
1530 	  /*     375 MCS-11 */ { VHT160_LDPC_ONLY_MASKS,
1531 		  DP_CMN_MOD_IEEE80211_T_VHT_160,
1532 		  975000, 1083300,        0,        0,        0,   975000,
1533 		  0x30b },
1534 	  /* If maximum number of spatial streams supported
1535 	   * at 160MHZ > 1 use below rates
1536 	   */
1537 	  /*     376 MCS-00 */ { VHT160_MODE_VALID_MASK,
1538 		  DP_CMN_MOD_IEEE80211_T_VHT_160,
1539 		  117000, 130000,        0,        0,        0,   117000,
1540 		  0x320},
1541 	  /*     377 MCS-01 */ { VHT160_MODE_VALID_MASK,
1542 		  DP_CMN_MOD_IEEE80211_T_VHT_160,
1543 		  234000, 260000,        0,        0,        0,   234000,
1544 		  0x321},
1545 	  /*     378 MCS-02 */ { VHT160_MODE_VALID_MASK,
1546 		  DP_CMN_MOD_IEEE80211_T_VHT_160,
1547 		  351000, 390000,        0,        0,        0,   351000,
1548 		  0x322},
1549 	  /*     379 MCS-03 */ { VHT160_MODE_VALID_MASK,
1550 		  DP_CMN_MOD_IEEE80211_T_VHT_160,
1551 		  468000, 520000,        0,        0,        0,   468000,
1552 		  0x323},
1553 	  /*     380 MCS-04 */ { VHT160_MODE_VALID_MASK,
1554 		  DP_CMN_MOD_IEEE80211_T_VHT_160,
1555 		  702000, 780000,        0,        0,        0,   702000,
1556 		  0x324},
1557 	  /*     381 MCS-05 */ { VHT160_MODE_VALID_MASK,
1558 		  DP_CMN_MOD_IEEE80211_T_VHT_160,
1559 		  936000, 1040000,        0,        0,        0,   936000,
1560 		  0x325},
1561 	  /*     382 MCS-06 */ { VHT160_MODE_VALID_MASK,
1562 		  DP_CMN_MOD_IEEE80211_T_VHT_160,
1563 		  1053000, 1170000,        0,        0,        0,  1053000,
1564 		  0x326},
1565 	  /*     383 MCS-07 */ { VHT160_MODE_VALID_MASK,
1566 		  DP_CMN_MOD_IEEE80211_T_VHT_160,
1567 		  1170000, 1300000,        0,        0,        0,  1170000,
1568 		  0x327},
1569 	  /*     384 MCS-08 */ { VHT160_MODE_VALID_MASK,
1570 		  DP_CMN_MOD_IEEE80211_T_VHT_160,
1571 		  1404000, 1560000,        0,        0,        0,  1404000,
1572 		  0x328},
1573 	  /*     385 MCS-09 */ { VHT160_MODE_VALID_MASK,
1574 		  DP_CMN_MOD_IEEE80211_T_VHT_160,
1575 		  1560000, 1733300,        0,        0,        0,  1560000,
1576 		  0x329},
1577 	  /*     386 MCS-10 */ { VHT160_LDPC_ONLY_MASKS,
1578 		  DP_CMN_MOD_IEEE80211_T_VHT_160,
1579 		  1755000, 1950000,        0,        0,        0,  1755000,
1580 		  0x32a},
1581 	  /*     387 MCS-11 */ { VHT160_LDPC_ONLY_MASKS,
1582 		  DP_CMN_MOD_IEEE80211_T_VHT_160,
1583 		  1950000, 2166700,        0,        0,        0,  1950000,
1584 		  0x32b},
1585 	  /* If maximum number of spatial streams supported
1586 	   * at 160MHZ > 2 use below rates
1587 	   */
1588 	  /*     388 MCS-00 */ { VHT160_MODE_VALID_MASK,
1589 		  DP_CMN_MOD_IEEE80211_T_VHT_160,
1590 		  175500, 195000,        0,        0,        0,   175500,
1591 		  0x340 },
1592 	  /*     389 MCS-01 */ { VHT160_MODE_VALID_MASK,
1593 		  DP_CMN_MOD_IEEE80211_T_VHT_160,
1594 		  351000, 390000,        0,        0,        0,   351000,
1595 		  0x341 },
1596 	  /*     390 MCS-02 */ { VHT160_MODE_VALID_MASK,
1597 		  DP_CMN_MOD_IEEE80211_T_VHT_160,
1598 		  526500, 585000,        0,        0,        0,   526500,
1599 		  0x342 },
1600 	  /*     391 MCS-03 */ { VHT160_MODE_VALID_MASK,
1601 		  DP_CMN_MOD_IEEE80211_T_VHT_160,
1602 		  702000, 780000,        0,        0,        0,   702000,
1603 		  0x343 },
1604 	  /*     392 MCS-04 */ { VHT160_MODE_VALID_MASK,
1605 		  DP_CMN_MOD_IEEE80211_T_VHT_160,
1606 		  1053000, 1170000,        0,        0,        0,  1053000,
1607 		  0x344 },
1608 	  /*     393 MCS-05 */ { VHT160_MODE_VALID_MASK,
1609 		  DP_CMN_MOD_IEEE80211_T_VHT_160,
1610 		  1404000, 1560000,        0,        0,        0,  1404000,
1611 		  0x345 },
1612 	  /*     394 MCS-06 */ { VHT160_MODE_VALID_MASK,
1613 		  DP_CMN_MOD_IEEE80211_T_VHT_160,
1614 		  1579500, 1755000,        0,        0,        0,  1579500,
1615 		  0x346 },
1616 	  /*     395 MCS-07 */ { VHT160_MODE_VALID_MASK,
1617 		  DP_CMN_MOD_IEEE80211_T_VHT_160,
1618 		  1755000, 1755000,        0,        0,        0,  1755000,
1619 		  0x347 },
1620 	  /*     396 MCS-08 */ { VHT160_MODE_VALID_MASK,
1621 		  DP_CMN_MOD_IEEE80211_T_VHT_160,
1622 		  2106000, 2340000,        0,        0,        0,  2106000,
1623 		  0x348 },
1624 	  /*     397 MCS-09 */ { VHT160_MODE_VALID_MASK,
1625 		  DP_CMN_MOD_IEEE80211_T_VHT_160,
1626 		  2340000, 2600000,        0,        0,        0,  2340000,
1627 		  0x349 },
1628 	  /*     398 MCS-10 */ { VHT160_LDPC_ONLY_MASKS,
1629 		  DP_CMN_MOD_IEEE80211_T_VHT_160,
1630 		  2632500, 2925000,        0,        0,        0,  2632500,
1631 		  0x34a },
1632 	  /*     399 MCS-11 */ { VHT160_LDPC_ONLY_MASKS,
1633 		  DP_CMN_MOD_IEEE80211_T_VHT_160,
1634 		  2925000, 3250000,        0,        0,        0,  2925000,
1635 		  0x34b },
1636 	  /* If maximum number of spatial streams supported
1637 	   * at 160MHZ > 3 use below rates
1638 	   */
1639 	  /*     400 MCS-00 */ { VHT160_MODE_VALID_MASK,
1640 		  DP_CMN_MOD_IEEE80211_T_VHT_160,
1641 		  234000, 260000,        0,        0,        0,   234000,
1642 		  0x360 },
1643 	  /*     401 MCS-01 */ { VHT160_MODE_VALID_MASK,
1644 		  DP_CMN_MOD_IEEE80211_T_VHT_160,
1645 		  468000, 520000,        0,        0,        0,   468000,
1646 		  0x361 },
1647 	  /*     402 MCS-02 */ { VHT160_MODE_VALID_MASK,
1648 		  DP_CMN_MOD_IEEE80211_T_VHT_160,
1649 		  702000, 780000,        0,        0,        0,   702000,
1650 		  0x362 },
1651 	  /*     403 MCS-03 */ { VHT160_MODE_VALID_MASK,
1652 		  DP_CMN_MOD_IEEE80211_T_VHT_160,
1653 		  936000, 1040000,        0,        0,        0,   936000,
1654 		  0x363 },
1655 	  /*     404 MCS-04 */ { VHT160_MODE_VALID_MASK,
1656 		  DP_CMN_MOD_IEEE80211_T_VHT_160,
1657 		  1404000, 1560000,        0,        0,        0,  1404000,
1658 		  0x364 },
1659 	  /*     405 MCS-05 */ { VHT160_MODE_VALID_MASK,
1660 		  DP_CMN_MOD_IEEE80211_T_VHT_160,
1661 		  1872000, 2080000,        0,        0,        0,  1872000,
1662 		  0x365 },
1663 	  /*     406 MCS-06 */ { VHT160_MODE_VALID_MASK,
1664 		  DP_CMN_MOD_IEEE80211_T_VHT_160,
1665 		  2106000, 2340000,        0,        0,        0,  2106000,
1666 		  0x366 },
1667 	  /*     407 MCS-07 */ { VHT160_MODE_VALID_MASK,
1668 		  DP_CMN_MOD_IEEE80211_T_VHT_160,
1669 		  2340000, 2600000,        0,        0,        0,  2340000,
1670 		  0x367 },
1671 	  /*     408 MCS-08 */ { VHT160_MODE_VALID_MASK,
1672 		  DP_CMN_MOD_IEEE80211_T_VHT_160,
1673 		  2808000, 3120000,        0,        0,        0,  2808000,
1674 		  0x368 },
1675 	  /*     409 MCS-09 */ { VHT160_LDPC_ONLY_MASKS,
1676 		  DP_CMN_MOD_IEEE80211_T_VHT_160,
1677 		  3120000, 3466700,        0,        0,        0,  3120000,
1678 		  0x369 },
1679 	  /*     410 MCS-10 */ { VHT160_LDPC_ONLY_MASKS,
1680 		  DP_CMN_MOD_IEEE80211_T_VHT_160,
1681 		  3510000, 3900000,        0,        0,        0,  3510000,
1682 		  0x36a },
1683 	  /*     411 MCS-11 */ { VHT160_LDPC_ONLY_MASKS,
1684 		  DP_CMN_MOD_IEEE80211_T_VHT_160,
1685 		  3900000, 4333300,        0,        0,        0,  3900000,
1686 		  0x36b },
1687 
1688 	  /* 11ax RU242 rates
1689 	   */
1690 	  /*     412 MCS-00 */ { HE20_MODE_VALID_MASK,
1691 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1692 		  8600, 8900,     8100,     7300,     4300,     8600,  0x400},
1693 	  /*     413 MCS-01 */ { HE20_MODE_VALID_MASK,
1694 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1695 		  17200, 17700,    16300,    14600,     8600,    17200,
1696 		  0x401},
1697 	  /*     414 MCS-02 */ { HE20_MODE_VALID_MASK,
1698 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1699 		  25800, 26600,    24400,    21900,        0,    25800,
1700 		  0x402},
1701 	  /*     415 MCS-03 */ { HE20_MODE_VALID_MASK,
1702 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1703 		  34400, 35500,    32500,    29300,    17700,    34400,
1704 		  0x403},
1705 	  /*     416 MCS-04 */ { HE20_MODE_VALID_MASK,
1706 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1707 		  51600, 53200,    48800,    43900,    25800,    51600,
1708 		  0x404},
1709 	  /*     417 MCS-05 */ { HE20_MODE_VALID_MASK,
1710 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1711 		  68800, 70900,    65000,    58500,        0,    68800,
1712 		  0x405},
1713 	  /*     418 MCS-06 */ { HE20_MODE_VALID_MASK,
1714 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1715 		  77400, 79800,    73100,    65800,        0,    77400,
1716 		  0x406},
1717 	  /*     419 MCS-07 */ { HE20_MODE_VALID_MASK,
1718 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1719 		  86000, 88600,    81300,    73100,        0,    86000,
1720 		  0x407},
1721 	  /*     420 MCS-08 */ { HE20_MODE_VALID_MASK,
1722 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1723 		  103200, 106400,    97500,    87800,        0,   103200,
1724 		  0x408},
1725 	  /*     421 MCS-09 */ { HE20_MODE_VALID_MASK,
1726 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1727 		  114700, 118200,   108300,    97500,        0,   114700,
1728 		  0x409},
1729 	  /*     422 MCS-10 */ { HE20_LDPC_ONLY_MASKS,
1730 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1731 		  129000, 133000,   121900,   109700,        0,   129000,
1732 		  0x40a},
1733 	  /*     423 MCS-11 */ { HE20_LDPC_ONLY_MASKS,
1734 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1735 		  143400, 147700,   135400,   121900,        0,   143400,
1736 		  0x40b},
1737 	  /* When number spatial streams > 1 use below rates */
1738 	  /*     424 MCS-00 */ { HE20_MODE_VALID_MASK,
1739 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1740 		  17200, 17700,    16300,    14600,     8600,    17200,
1741 		  0x420},
1742 	  /*     425 MCS-01 */ { HE20_MODE_VALID_MASK,
1743 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1744 		  34400, 35500,    32500,    29300,    17700,    34400,
1745 		  0x421},
1746 	  /*     426 MCS-02 */ { HE20_MODE_VALID_MASK,
1747 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1748 		  51600, 53200,    48800,    43900,        0,    51600,
1749 		  0x422},
1750 	  /*     427 MCS-03 */ { HE20_MODE_VALID_MASK,
1751 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1752 		  68800, 70900,    65000,    58500,    34400,    68800,
1753 		  0x423},
1754 	  /*     428 MCS-04 */ { HE20_MODE_VALID_MASK,
1755 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1756 		  103200, 106400,    97500,    87800,    51600,   103200,
1757 		  0x424},
1758 	  /*     429 MCS-05 */ { HE20_MODE_VALID_MASK,
1759 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1760 		  137600, 141800,   130000,   117000,        0,   137600,
1761 		  0x425},
1762 	  /*     430 MCS-06 */ { HE20_MODE_VALID_MASK,
1763 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1764 		  154900, 159500,   146300,   131600,        0,   154900,
1765 		  0x426},
1766 	  /*     431 MCS-07 */ { HE20_MODE_VALID_MASK,
1767 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1768 		  172100, 177300,   162500,   146300,        0,   172100,
1769 		  0x427},
1770 	  /*     432 MCS-08 */ { HE20_MODE_VALID_MASK,
1771 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1772 		  206500, 212700,   195000,   175500,        0,   206500,
1773 		  0x428},
1774 	  /*     433 MCS-09 */ { HE20_MODE_VALID_MASK,
1775 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1776 		  229400, 236400,   216700,   195000,        0,   229400,
1777 		  0x429},
1778 	  /*     434 MCS-10 */ { HE20_LDPC_ONLY_MASKS,
1779 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1780 		  258100, 265900,   243800,   219400,        0,   258100,
1781 		  0x42a},
1782 	  /*     435 MCS-11 */ { HE20_LDPC_ONLY_MASKS,
1783 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1784 		  286800, 295500,   270800,   243800,        0,   286800,
1785 		  0x42b},
1786 
1787 	  /* When number of spatial streams > 2
1788 	   * use below rates
1789 	   */
1790 	  /*     436 MCS-00 */ { HE20_MODE_VALID_MASK,
1791 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1792 		  25800, 26600,    24400,    21900,    12900,    25800,
1793 		  0x440},
1794 	  /*     437 MCS-01 */ { HE20_MODE_VALID_MASK,
1795 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1796 		  51600, 53200,    48800,    43900,    25800,    51600,
1797 		  0x441},
1798 	  /*     438 MCS-02 */ { HE20_MODE_VALID_MASK,
1799 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1800 		  77400, 79800,    73100,    65800,        0,    77400,
1801 		  0x442},
1802 	  /*     439 MCS-03 */ { HE20_MODE_VALID_MASK,
1803 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1804 		  103200, 106400,    97500,    87800,    51600,   103200,
1805 		  0x443},
1806 	  /*     440 MCS-04 */ { HE20_MODE_VALID_MASK,
1807 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1808 		  154900, 159500,   146300,   131600,    77400,   154900,
1809 		  0x444},
1810 	  /*     441 MCS-05 */ { HE20_MODE_VALID_MASK,
1811 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1812 		  206500, 212700,   195000,   175500,        0,   206500,
1813 		  0x445},
1814 	  /*     442 MCS-06 */ { HE20_MODE_VALID_MASK,
1815 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1816 		  232300, 239300,   219400,   197400,        0,   232300,
1817 		  0x446},
1818 	  /*     443 MCS-07 */ { HE20_MODE_VALID_MASK,
1819 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1820 		  258100, 265900,   243800,   219400,        0,   258100,
1821 		  0x447},
1822 	  /*     444 MCS-08 */ { HE20_MODE_VALID_MASK,
1823 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1824 		  309700, 319100,   292500,   263300,        0,   309700,
1825 		  0x448},
1826 	  /*     445 MCS-09 */ { HE20_MODE_VALID_MASK,
1827 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1828 		  344100, 354500,   325000,   292500,        0,   344100,
1829 		  0x449},
1830 	  /*     446 MCS-10 */ { HE20_LDPC_ONLY_MASKS,
1831 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1832 		  387100, 398900,   365600,   329100,        0,   387100,
1833 		  0x44a},
1834 	  /*     447 MCS-11 */ { HE20_LDPC_ONLY_MASKS,
1835 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1836 		  430100, 443200,   406300,   365600,        0,   430100,
1837 		  0x44b},
1838 
1839 	  /* When number of spatial streams > 3
1840 	   * use below rates
1841 	   */
1842 	  /*     448 MCS-00 */ { HE20_MODE_VALID_MASK,
1843 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1844 		  34400, 35500,    32500,    29300,    17700,    34400,
1845 		  0x460},
1846 	  /*     449 MCS-01 */ { HE20_MODE_VALID_MASK,
1847 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1848 		  68800, 70900,    65000,    58500,    34400,    68800,
1849 		  0x461},
1850 	  /*     450 MCS-02 */ { HE20_MODE_VALID_MASK,
1851 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1852 		  103200, 106400,    97500,    87800,        0,   103200,
1853 		  0x462},
1854 	  /*     451 MCS-03 */ { HE20_MODE_VALID_MASK,
1855 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1856 		  137600, 141800,   130000,   117000,    68800,   137600,
1857 		  0x463},
1858 	  /*     452 MCS-04 */ { HE20_MODE_VALID_MASK,
1859 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1860 		  206500, 212700,   195000,   175500,   103200,   206500,
1861 		  0x464},
1862 	  /*     453 MCS-05 */ { HE20_MODE_VALID_MASK,
1863 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1864 		  275300, 283600,   260000,   234000,        0,   275300,
1865 		  0x465},
1866 	  /*     454 MCS-06 */ { HE20_MODE_VALID_MASK,
1867 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1868 		  309700, 319100,   292500,   263300,        0,   309700,
1869 		  0x466},
1870 	  /*     455 MCS-07 */ { HE20_MODE_VALID_MASK,
1871 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1872 		  344100, 354500,   325000,   292500,        0,   344100,
1873 		  0x467},
1874 	  /*     456 MCS-08 */ { HE20_MODE_VALID_MASK,
1875 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1876 		  412900, 425500,   390000,   351000,        0,   412900,
1877 		  0x468},
1878 	  /*     457 MCS-09 */ { HE20_MODE_VALID_MASK,
1879 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1880 		  455800, 472700,   433300,   390000,        0,   455800,
1881 		  0x469},
1882 	  /*     458 MCS-10 */ { HE20_LDPC_ONLY_MASKS,
1883 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1884 		  516200, 531800,   487500,   438800,        0,   516200,
1885 		  0x46a},
1886 	  /*     459 MCS-11 */ { HE20_LDPC_ONLY_MASKS,
1887 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1888 		  573500, 590900,   541700,   487500,        0,   573500,
1889 		  0x46b},
1890 
1891 	  /* When number of spatial streams > 4
1892 	   * use below rates
1893 	   */
1894 	  /*     460 MCS-00 */ { HE20_LDPC_ONLY_MASKS,
1895 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1896 		  43000, 43300,    40600,    36600,    21500,    43000,
1897 		  0x480},
1898 	  /*     461 MCS-01 */ { HE20_LDPC_ONLY_MASKS,
1899 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1900 		  86000, 88600,    81300,    73100,    43000,    86000,
1901 		  0x481},
1902 	  /*     462 MCS-02 */ { HE20_LDPC_ONLY_MASKS,
1903 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1904 		  129000, 133000,   121900,   109700,        0,   129000,
1905 		  0x482},
1906 	  /*     463 MCS-03 */ { HE20_LDPC_ONLY_MASKS,
1907 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1908 		  172100, 177300,   162500,   146300,    86000,   172100,
1909 		  0x483},
1910 	  /*     464 MCS-04 */ { HE20_LDPC_ONLY_MASKS,
1911 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1912 		  258100, 265900,   243800,   219400,   129000,   258100,
1913 		  0x484},
1914 	  /*     465 MCS-05 */ { HE20_LDPC_ONLY_MASKS,
1915 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1916 		  344100, 354500,   325000,   292500,        0,   344100,
1917 		  0x485},
1918 	  /*     466 MCS-06 */ { HE20_LDPC_ONLY_MASKS,
1919 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1920 		  387100, 398900,   365600,   329100,        0,   387100,
1921 		  0x486},
1922 	  /*     467 MCS-07 */ { HE20_LDPC_ONLY_MASKS,
1923 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1924 		  430100, 443200,   406300,   365600,        0,   430100,
1925 		  0x487},
1926 	  /*     468 MCS-08 */ { HE20_LDPC_ONLY_MASKS,
1927 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1928 		  516200, 531800,   487500,   438800,        0,   516200,
1929 		  0x488},
1930 	  /*     469 MCS-09 */ { HE20_LDPC_ONLY_MASKS,
1931 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1932 		  573500, 590900,   541700,   487500,        0,   573500,
1933 		  0x489},
1934 	  /*     470 MCS-10 */ { HE20_LDPC_ONLY_MASKS,
1935 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1936 		  645200, 664800,   609400,   548400,        0,   645200,
1937 		  0x48a},
1938 	  /*     471 MCS-11 */ { HE20_LDPC_ONLY_MASKS,
1939 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1940 		  716900, 738600,   677100,   609400,        0,   716900,
1941 		  0x48b},
1942 
1943 	  /* When number of spatial streams > 5
1944 	   * use below rates
1945 	   */
1946 	  /*     472 MCS-00 */ { HE20_LDPC_ONLY_MASKS,
1947 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1948 		  51600, 53200,    48800,    43900,    25800,    51600,
1949 		  0x4a0},
1950 	  /*     473 MCS-01 */ { HE20_LDPC_ONLY_MASKS,
1951 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1952 		  103200, 106400,    97500,    87800,    51600,   103200,
1953 		  0x4a1},
1954 	  /*     474 MCS-02 */ { HE20_LDPC_ONLY_MASKS,
1955 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1956 		  154900, 159500,   146300,   131600,        0,   154900,
1957 		  0x4a2},
1958 	  /*     475 MCS-03 */ { HE20_LDPC_ONLY_MASKS,
1959 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1960 		  206500, 212700,   195000,   175500,   103200,   206500,
1961 		  0x4a3},
1962 	  /*     476 MCS-04 */ { HE20_LDPC_ONLY_MASKS,
1963 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1964 		  309700, 319100,   292500,   263300,   154900,   309700,
1965 		  0x4a4},
1966 	  /*     477 MCS-05 */ { HE20_LDPC_ONLY_MASKS,
1967 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1968 		  412900, 425500,   390000,   351000,        0,   412900,
1969 		  0x4a5},
1970 	  /*     478 MCS-06 */ { HE20_LDPC_ONLY_MASKS,
1971 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1972 		  464600, 478600,   438000,   394900,        0,   464600,
1973 		  0x4a6},
1974 	  /*     479 MCS-07 */ { HE20_LDPC_ONLY_MASKS,
1975 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1976 		  516200, 531800,   487500,   438800,        0,   516200,
1977 		  0x4a7},
1978 	  /*     480 MCS-08 */ { HE20_LDPC_ONLY_MASKS,
1979 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1980 		  619400, 638200,   585000,   526500,        0,   619400,
1981 		  0x4a8},
1982 	  /*     481 MCS-09 */ { HE20_LDPC_ONLY_MASKS,
1983 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1984 		  688200, 709100,   650000,   585000,        0,   688200,
1985 		  0x4a9},
1986 	  /*     482 MCS-10 */ { HE20_LDPC_ONLY_MASKS,
1987 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1988 		  774300, 797700,   731300,   658100,        0,   774300,
1989 		  0x4aa},
1990 	  /*     483 MCS-11 */ { HE20_LDPC_ONLY_MASKS,
1991 		  DP_CMN_MOD_IEEE80211_T_HE_20,
1992 		  860300, 886400,   812500,   731300,        0,   860300,
1993 		  0x4ab},
1994 
1995 	  /* When number of spatial streams > 6
1996 	   * use below rates
1997 	   */
1998 	  /*     484 MCS-00 */ { HE20_LDPC_ONLY_MASKS,
1999 		  DP_CMN_MOD_IEEE80211_T_HE_20,
2000 		  60200, 62000,    56900,    51200,    30100,    60200,
2001 		  0x4c0},
2002 	  /*     485 MCS-01 */ { HE20_LDPC_ONLY_MASKS,
2003 		  DP_CMN_MOD_IEEE80211_T_HE_20,
2004 		  120400, 124100,   113800,   102400,    60200,   120400,
2005 		  0x4c1},
2006 	  /*     486 MCS-02 */ { HE20_LDPC_ONLY_MASKS,
2007 		  DP_CMN_MOD_IEEE80211_T_HE_20,
2008 		  180700, 186100,   170600,   153600,        0,   180700,
2009 		  0x4c2},
2010 	  /*     487 MCS-03 */ { HE20_LDPC_ONLY_MASKS,
2011 		  DP_CMN_MOD_IEEE80211_T_HE_20,
2012 		  240900, 248200,   227500,   204800,   120400,   240900,
2013 		  0x4c3},
2014 	  /*     488 MCS-04 */ { HE20_LDPC_ONLY_MASKS,
2015 		  DP_CMN_MOD_IEEE80211_T_HE_20,
2016 		  361300, 372300,   341300,   307100,   180700,   361300,
2017 		  0x4c4},
2018 	  /*     489 MCS-05 */ { HE20_LDPC_ONLY_MASKS,
2019 		  DP_CMN_MOD_IEEE80211_T_HE_20,
2020 		  481800, 496400,   455000,   409500,        0,   481800,
2021 		  0x4c5},
2022 	  /*     490 MCS-06 */ { HE20_LDPC_ONLY_MASKS,
2023 		  DP_CMN_MOD_IEEE80211_T_HE_20,
2024 		  542000, 558400,   511900,   460700,        0,   542000,
2025 		  0x4c6},
2026 	  /*     491 MCS-07 */ { HE20_LDPC_ONLY_MASKS,
2027 		  DP_CMN_MOD_IEEE80211_T_HE_20,
2028 		  602200, 620500,   568800,   511900,        0,   602200,
2029 		  0x4c7},
2030 	  /*     492 MCS-08 */ { HE20_LDPC_ONLY_MASKS,
2031 		  DP_CMN_MOD_IEEE80211_T_HE_20,
2032 		  722600, 744500,   682500,   614300,        0,   722600,
2033 		  0x4c8},
2034 	  /*     493 MCS-09 */ { HE20_LDPC_ONLY_MASKS,
2035 		  DP_CMN_MOD_IEEE80211_T_HE_20,
2036 		  802900, 827300,   758300,   682500,        0,   802900,
2037 		  0x4c9},
2038 	  /*     494 MCS-10 */ { HE20_LDPC_ONLY_MASKS,
2039 		  DP_CMN_MOD_IEEE80211_T_HE_20,
2040 		  903300, 930700,   853100,   767800,        0,   903300,
2041 		  0x4ca},
2042 	  /*     495 MCS-11 */ { HE20_LDPC_ONLY_MASKS,
2043 		  DP_CMN_MOD_IEEE80211_T_HE_20,
2044 		  1003700, 1034100,   947900,   853100,        0,  1003700,
2045 		  0x4cb},
2046 
2047 	  /* When number of spatial streams > 7
2048 	   * use below rates
2049 	   */
2050 	  /*     496 MCS-00 */ { HE20_LDPC_ONLY_MASKS,
2051 		  DP_CMN_MOD_IEEE80211_T_HE_20,
2052 		  68800, 70900,    65000,    58500,    34400,    68800,
2053 		  0x4e0},
2054 	  /*     497 MCS-01 */ { HE20_LDPC_ONLY_MASKS,
2055 		  DP_CMN_MOD_IEEE80211_T_HE_20,
2056 		  137600, 141800,   130000,   117000,    68800,   137600,
2057 		  0x4e1},
2058 	  /*     498 MCS-02 */ { HE20_LDPC_ONLY_MASKS,
2059 		  DP_CMN_MOD_IEEE80211_T_HE_20,
2060 		  206500, 212700,   195000,   175500,        0,   206500,
2061 		  0x4e2},
2062 	  /*     499 MCS-03 */ { HE20_LDPC_ONLY_MASKS,
2063 		  DP_CMN_MOD_IEEE80211_T_HE_20,
2064 		  275300, 283600,   260000,   234000,   137600,   275300,
2065 		  0x4e3},
2066 	  /*     500 MCS-04 */ { HE20_LDPC_ONLY_MASKS,
2067 		  DP_CMN_MOD_IEEE80211_T_HE_20,
2068 		  412900, 425500,   390000,   351000,   206500,   412900,
2069 		  0x4e4},
2070 	  /*     501 MCS-05 */ { HE20_LDPC_ONLY_MASKS,
2071 		  DP_CMN_MOD_IEEE80211_T_HE_20,
2072 		  550600, 567300,   520000,   468000,        0,   550600,
2073 		  0x4e5},
2074 	  /*     502 MCS-06 */ { HE20_LDPC_ONLY_MASKS,
2075 		  DP_CMN_MOD_IEEE80211_T_HE_20,
2076 		  619400, 638200,   585000,   526500,        0,   619400,
2077 		  0x4e6},
2078 	  /*     503 MCS-07 */ { HE20_LDPC_ONLY_MASKS,
2079 		  DP_CMN_MOD_IEEE80211_T_HE_20,
2080 		  688200, 709100,   650000,   585000,        0,   688200,
2081 		  0x4e7},
2082 	  /*     504 MCS-08 */ { HE20_LDPC_ONLY_MASKS,
2083 		  DP_CMN_MOD_IEEE80211_T_HE_20,
2084 		  825900, 850900,   780000,   702000,        0,   825900,
2085 		  0x4e8},
2086 	  /*     505 MCS-09 */ { HE20_LDPC_ONLY_MASKS,
2087 		  DP_CMN_MOD_IEEE80211_T_HE_20,
2088 		  917600, 945500,   866700,   780000,        0,   917600,
2089 		  0x4e9},
2090 	  /*     506 MCS-10 */ { HE20_LDPC_ONLY_MASKS,
2091 		  DP_CMN_MOD_IEEE80211_T_HE_20,
2092 		  1032400, 1063600,   975000,   877500,        0,  1032400,
2093 		  0x4ea},
2094 	  /*     507 MCS-11 */ { HE20_LDPC_ONLY_MASKS,
2095 		  DP_CMN_MOD_IEEE80211_T_HE_20,
2096 		  1147100, 1181800,  1083300,   975000,        0,  1147100,
2097 		  0x4eb},
2098 
2099 	  /* 11ax RU484 rates
2100 	   */
2101 	  /*     508 MCS-00 */ { HE40_LDPC_ONLY_MASKS,
2102 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2103 		  17200, 17700,    16300,    14600,     8600,    17200,  0x400
2104 	  },
2105 	  /*     509 MCS-01 */ { HE40_LDPC_ONLY_MASKS,
2106 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2107 		  34400, 35500,    32500,    29300,    17700,    34400,  0x401
2108 	  },
2109 	  /*     510 MCS-02 */ { HE40_LDPC_ONLY_MASKS,
2110 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2111 		  51600, 53200,    48800,    43900,    25800,    51600,  0x402
2112 	  },
2113 	  /*     511 MCS-03 */ { HE40_LDPC_ONLY_MASKS,
2114 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2115 		  68800, 70900,    65000,    58500,        0,    68800,  0x403
2116 	  },
2117 	  /*     512 MCS-04 */ { HE40_LDPC_ONLY_MASKS,
2118 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2119 		  103200, 106400,    97500,    87800,        0,   103200,
2120 		  0x404 },
2121 	  /*     513 MCS-05 */ { HE40_LDPC_ONLY_MASKS,
2122 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2123 		  137600, 141800,   130000,   117000,        0,   137600,
2124 		  0x405 },
2125 	  /*     514 MCS-06 */ { HE40_LDPC_ONLY_MASKS,
2126 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2127 		  154900, 159500,   146300,   131600,        0,   154900,
2128 		  0x406 },
2129 	  /*     515 MCS-07 */ { HE40_LDPC_ONLY_MASKS,
2130 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2131 		  172100, 177300,   162500,   146300,        0,   172100,
2132 		  0x407 },
2133 	  /*     516 MCS-08 */ { HE40_LDPC_ONLY_MASKS,
2134 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2135 		  206500, 212700,   195000,   175500,        0,   206500,
2136 		  0x408 },
2137 	  /*     517 MCS-09 */ { HE40_LDPC_ONLY_MASKS,
2138 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2139 		  229400, 236400,   216700,   195000,        0,   229400,
2140 		  0x409 },
2141 	  /*     518 MCS-10 */ { HE40_LDPC_ONLY_MASKS,
2142 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2143 		  258100, 265900,   243800,   219400,        0,   258100,
2144 		  0x40a },
2145 	  /*     519 MCS-11 */ { HE40_LDPC_ONLY_MASKS,
2146 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2147 		  286800, 295500,   270800,   243800,        0,   286800,
2148 		  0x40b },
2149 	  /* When number of spatial streams > 1
2150 	   * use below rates
2151 	   */
2152 	  /*     520 MCS-00 */ { HE40_LDPC_ONLY_MASKS,
2153 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2154 		  34400, 35500,    32500,    29300,    17700,    34400,  0x420
2155 	  },
2156 	  /*     521 MCS-01 */ { HE40_LDPC_ONLY_MASKS,
2157 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2158 		  68800, 70900,    65000,    58500,    34400,    68800,  0x421
2159 	  },
2160 	  /*     522 MCS-02 */ { HE40_LDPC_ONLY_MASKS,
2161 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2162 		  103200, 106400,    97500,    87800,        0,   103200,
2163 		  0x422 },
2164 	  /*     523 MCS-03 */ { HE40_LDPC_ONLY_MASKS,
2165 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2166 		  137600, 141800,   130000,   117000,    68800,   137600,
2167 		  0x423 },
2168 	  /*     524 MCS-04 */ { HE40_LDPC_ONLY_MASKS,
2169 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2170 		  206500, 212700,   195000,   175500,   103200,   206500,
2171 		  0x424 },
2172 	  /*     525 MCS-05 */ { HE40_LDPC_ONLY_MASKS,
2173 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2174 		  275300, 283600,   260000,   234000,        0,   275300,
2175 		  0x425 },
2176 	  /*     526 MCS-06 */ { HE40_LDPC_ONLY_MASKS,
2177 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2178 		  309700, 319100,   292500,   263300,        0,   309700,
2179 		  0x426 },
2180 	  /*     527 MCS-07 */ { HE40_LDPC_ONLY_MASKS,
2181 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2182 		  344100, 354500,   325000,   292500,        0,   344100,
2183 		  0x427 },
2184 	  /*     528 MCS-08 */ { HE40_LDPC_ONLY_MASKS,
2185 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2186 		  412900, 425500,   390000,   351000,        0,   412900,
2187 		  0x428 },
2188 	  /*     529 MCS-09 */ { HE40_LDPC_ONLY_MASKS,
2189 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2190 		  455800, 472700,   433300,   390000,        0,   455800,
2191 		  0x429 },
2192 	  /*     530 MCS-10 */ { HE40_LDPC_ONLY_MASKS,
2193 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2194 		  516200, 531800,   487500,   438800,        0,   516200,
2195 		  0x42a },
2196 	  /*     531 MCS-11 */ { HE40_LDPC_ONLY_MASKS,
2197 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2198 		  573500, 590900,   541700,   487500,        0,   573500,
2199 		  0x42b },
2200 
2201 	  /* When number of spatial streams > 2
2202 	   * use below rates
2203 	   */
2204 	  /*     532 MCS-00 */ { HE40_LDPC_ONLY_MASKS,
2205 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2206 		  51600, 53200,    48800,    43900,    25800,    51600,  0x440
2207 	  },
2208 	  /*     533 MCS-01 */ { HE40_LDPC_ONLY_MASKS,
2209 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2210 		  103200, 106400,    97500,    87800,    51600,   103200,
2211 		  0x441 },
2212 	  /*     534 MCS-02 */ { HE40_LDPC_ONLY_MASKS,
2213 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2214 		  154900, 159500,   146300,   131600,        0,   154900,
2215 		  0x442 },
2216 	  /*     535 MCS-03 */ { HE40_LDPC_ONLY_MASKS,
2217 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2218 		  206500, 212700,   195000,   175500,   103200,   206500,
2219 		  0x443 },
2220 	  /*     536 MCS-04 */ { HE40_LDPC_ONLY_MASKS,
2221 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2222 		  309700, 319100,   292500,   263300,   154900,   309700,
2223 		  0x444 },
2224 	  /*     537 MCS-05 */ { HE40_LDPC_ONLY_MASKS,
2225 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2226 		  412900, 425500,   390000,   351000,        0,   412900,
2227 		  0x445 },
2228 	  /*     538 MCS-06 */ { HE40_LDPC_ONLY_MASKS,
2229 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2230 		  464600, 478600,   438000,   394900,        0,   464600,
2231 		  0x446 },
2232 	  /*     539 MCS-07 */ { HE40_LDPC_ONLY_MASKS,
2233 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2234 		  516200, 531800,   487500,   438800,        0,   516200,
2235 		  0x447 },
2236 	  /*     540 MCS-08 */ { HE40_LDPC_ONLY_MASKS,
2237 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2238 		  619400, 638200,   585000,   526500,        0,   619400,
2239 		  0x448 },
2240 	  /*     541 MCS-09 */ { HE40_LDPC_ONLY_MASKS,
2241 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2242 		  688200, 709100,   650000,   585000,        0,   688200,
2243 		  0x449 },
2244 	  /*     542 MCS-10 */ { HE40_LDPC_ONLY_MASKS,
2245 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2246 		  774300, 797700,   731300,   658100,        0,   774300,
2247 		  0x44a },
2248 	  /*     543 MCS-11 */ { HE40_LDPC_ONLY_MASKS,
2249 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2250 		  860300, 886400,   812500,   731300,        0,   860300,
2251 		  0x44b },
2252 
2253 	  /* When number of spatial streams > 3
2254 	   * use below rates
2255 	   */
2256 	  /*     544 MCS-00 */ { HE40_LDPC_ONLY_MASKS,
2257 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2258 		  68800, 70900,    65000,    58500,    34400,    68800,  0x460
2259 	  },
2260 	  /*     545 MCS-01 */ { HE40_LDPC_ONLY_MASKS,
2261 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2262 		  137600, 141800,   130000,   117000,    68800,   137600,
2263 		  0x461 },
2264 	  /*     546 MCS-02 */ { HE40_LDPC_ONLY_MASKS,
2265 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2266 		  206500, 212700,   195000,   175500,        0,   206500,
2267 		  0x462 },
2268 	  /*     547 MCS-03 */ { HE40_LDPC_ONLY_MASKS,
2269 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2270 		  275300, 283600,   260000,   234000,   137600,   275300,
2271 		  0x463 },
2272 	  /*     548 MCS-04 */ { HE40_LDPC_ONLY_MASKS,
2273 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2274 		  412900, 425500,   390000,   351000,   206500,   412900,
2275 		  0x464 },
2276 	  /*     549 MCS-05 */ { HE40_LDPC_ONLY_MASKS,
2277 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2278 		  550600, 567300,   520000,   468000,        0,   550600,
2279 		  0x465 },
2280 	  /*     550 MCS-06 */ { HE40_LDPC_ONLY_MASKS,
2281 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2282 		  619400, 638200,   585000,   526500,        0,   619400,
2283 		  0x466 },
2284 	  /*     551 MCS-07 */ { HE40_LDPC_ONLY_MASKS,
2285 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2286 		  688200, 709100,   650000,   585000,        0,   688200,
2287 		  0x467 },
2288 	  /*     552 MCS-08 */ { HE40_LDPC_ONLY_MASKS,
2289 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2290 		  825900, 850900,   780000,   702000,        0,   825900,
2291 		  0x468 },
2292 	  /*     553 MCS-09 */ { HE40_LDPC_ONLY_MASKS,
2293 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2294 		  917600, 945500,   866700,   780000,        0,   917600,
2295 		  0x469 },
2296 	  /*     554 MCS-10 */ { HE40_LDPC_ONLY_MASKS,
2297 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2298 		  1032400, 1063600,   975000,   877500,        0,  1032400,
2299 		  0x46a },
2300 	  /*     555 MCS-11 */ { HE40_LDPC_ONLY_MASKS,
2301 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2302 		  1147100, 1181800,  1083300,   975000,        0,  1147100,
2303 		  0x46b },
2304 
2305 	  /* When number of spatial streams > 4
2306 	   * use below rates
2307 	   */
2308 	  /*     556 MCS-00 */ { HE40_LDPC_ONLY_MASKS,
2309 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2310 		  86000, 88600,    81300,    73100,    43000,    86000,  0x480
2311 	  },
2312 	  /*     557 MCS-01 */ { HE40_LDPC_ONLY_MASKS,
2313 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2314 		  172100, 177300,   162500,   146300,    86000,   172100,
2315 		  0x481 },
2316 	  /*     558 MCS-02 */ { HE40_LDPC_ONLY_MASKS,
2317 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2318 		  258100, 265900,   243800,   219400,        0,   258100,
2319 		  0x482 },
2320 	  /*     559 MCS-03 */ { HE40_LDPC_ONLY_MASKS,
2321 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2322 		  344100, 354500,   325000,   292500,   172100,   344100,
2323 		  0x483 },
2324 	  /*     560 MCS-04 */ { HE40_LDPC_ONLY_MASKS,
2325 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2326 		  516200, 531800,   487500,   438800,   258100,   516200,
2327 		  0x484 },
2328 	  /*     561 MCS-05 */ { HE40_LDPC_ONLY_MASKS,
2329 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2330 		  688200, 709100,   650000,   585000,        0,   688200,
2331 		  0x485 },
2332 	  /*     562 MCS-06 */ { HE40_LDPC_ONLY_MASKS,
2333 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2334 		  774300, 797700,   731300,   658100,        0,   774300,
2335 		  0x486 },
2336 	  /*     563 MCS-07 */ { HE40_LDPC_ONLY_MASKS,
2337 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2338 		  860300, 886400,   812500,   731300,        0,   860300,
2339 		  0x487 },
2340 	  /*     564 MCS-08 */ { HE40_LDPC_ONLY_MASKS,
2341 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2342 		  1032400, 1063600,   975000,   877500,        0,  1032400,
2343 		  0x488 },
2344 	  /*     565 MCS-09 */ { HE40_LDPC_ONLY_MASKS,
2345 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2346 		  1147100, 1181800,  1083300,   975000,        0,  1147100,
2347 		  0x489 },
2348 	  /*     566 MCS-10 */ { HE40_LDPC_ONLY_MASKS,
2349 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2350 		  1290400, 1329500,  1218800,  1096900,        0,  1290400,
2351 		  0x48a },
2352 	  /*     567 MCS-11 */ { HE40_LDPC_ONLY_MASKS,
2353 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2354 		  1433800, 1477300,  1354200,  1218800,        0,  1433800,
2355 		  0x48b },
2356 
2357 	  /* When number of spatial streams > 5
2358 	   * use below rates
2359 	   */
2360 	  /*     568 MCS-00 */ { HE40_LDPC_ONLY_MASKS,
2361 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2362 		  103200, 106400,    97500,    87800,    51600,   103200,
2363 		  0x4a0 },
2364 	  /*     569 MCS-01 */ { HE40_LDPC_ONLY_MASKS,
2365 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2366 		  206500, 212700,   195000,   175500,   103200,   206500,
2367 		  0x4a1 },
2368 	  /*     570 MCS-02 */ { HE40_LDPC_ONLY_MASKS,
2369 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2370 		  309700, 319100,   292500,   263300,        0,   309700,
2371 		  0x4a2 },
2372 	  /*     571 MCS-03 */ { HE40_LDPC_ONLY_MASKS,
2373 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2374 		  412900, 425500,   390000,   351000,   206500,   412900,
2375 		  0x4a3 },
2376 	  /*     572 MCS-04 */ { HE40_LDPC_ONLY_MASKS,
2377 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2378 		  619400, 638200,   585000,   526500,   309700,   619400,
2379 		  0x4a4 },
2380 	  /*     573 MCS-05 */ { HE40_LDPC_ONLY_MASKS,
2381 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2382 		  825900, 850900,   780000,   702000,        0,   825900,
2383 		  0x4a5 },
2384 	  /*     574 MCS-06 */ { HE40_LDPC_ONLY_MASKS,
2385 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2386 		  929100, 957300,   877500,   789800,        0,   929100,
2387 		  0x4a6 },
2388 	  /*     575 MCS-07 */ { HE40_LDPC_ONLY_MASKS,
2389 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2390 		  1032400, 1063600,   975000,   877500,        0,  1032400,
2391 		  0x4a7 },
2392 	  /*     576 MCS-08 */ { HE40_LDPC_ONLY_MASKS,
2393 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2394 		  1238800, 1276400,  1170000,  1053000,        0,  1238800,
2395 		  0x4a8 },
2396 	  /*     577 MCS-09 */ { HE40_LDPC_ONLY_MASKS,
2397 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2398 		  1376500, 1418200,  1300000,  1170000,        0,  1376500,
2399 		  0x4a9 },
2400 	  /*     578 MCS-10 */ { HE40_LDPC_ONLY_MASKS,
2401 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2402 		  1548500, 1595500,  1462500,  1316300,        0,  1548500,
2403 		  0x4aa },
2404 	  /*     579 MCS-11 */ { HE40_LDPC_ONLY_MASKS,
2405 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2406 		  1720600, 1772700,  1625000,  1462500,        0,  1720600,
2407 		  0x4ab },
2408 	  /* When number spatial streams > 6
2409 	   * use below rates
2410 	   */
2411 	  /*     580 MCS-00 */ { HE40_LDPC_ONLY_MASKS,
2412 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2413 		  120400, 124100,   113800,   102400,    60200,   120400,
2414 		  0x4c0 },
2415 	  /*     581 MCS-01 */ { HE40_LDPC_ONLY_MASKS,
2416 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2417 		  240900, 248200,   227500,   204800,   120400,   240900,
2418 		  0x4c1 },
2419 	  /*     582 MCS-02 */ { HE40_LDPC_ONLY_MASKS,
2420 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2421 		  361300, 372300,   341300,   307100,   180600,   361300,
2422 		  0x4c2 },
2423 	  /*     583 MCS-03 */ { HE40_LDPC_ONLY_MASKS,
2424 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2425 		  481800, 496400,   455000,   409500,        0,   481800,
2426 		  0x4c3 },
2427 	  /*     584 MCS-04 */ { HE40_LDPC_ONLY_MASKS,
2428 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2429 		  722600, 744500,   682500,   614300,        0,   722600,
2430 		  0x4c4 },
2431 	  /*     585 MCS-05 */ { HE40_LDPC_ONLY_MASKS,
2432 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2433 		  963500, 992700,   910000,   819000,        0,   963500,
2434 		  0x4c5 },
2435 	  /*     586 MCS-06 */ { HE40_LDPC_ONLY_MASKS,
2436 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2437 		  1084000, 1116800,  1023800,   921400,        0,  1084000,
2438 		  0x4c6 },
2439 	  /*     587 MCS-07 */ { HE40_LDPC_ONLY_MASKS,
2440 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2441 		  1204400, 1240900,  1137500,  1023800,        0,  1204400,
2442 		  0x4c7 },
2443 	  /*     588 MCS-08 */ { HE40_LDPC_ONLY_MASKS,
2444 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2445 		  1445300, 1489100,  1365000,  1228500,        0,  1445300,
2446 		  0x4c8 },
2447 	  /*     589 MCS-09 */ { HE40_LDPC_ONLY_MASKS,
2448 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2449 		  1605900, 1654500,  1516700,  1365000,        0,  1605900,
2450 		  0x4c9 },
2451 	  /*     590 MCS-10 */ { HE40_LDPC_ONLY_MASKS,
2452 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2453 		  1806600, 1861400,  1706300,  1535600,        0,  1806600,
2454 		  0x4ca },
2455 	  /*     591 MCS-11 */ { HE40_LDPC_ONLY_MASKS,
2456 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2457 		  2007400, 2068200,  1895800,  1706300,        0,  2007400,
2458 		  0x4cb },
2459 
2460 	  /* When number of spatial streams > 7
2461 	   * use below rates
2462 	   */
2463 	  /*     592 MCS-00 */ { HE40_LDPC_ONLY_MASKS,
2464 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2465 		  137600, 141800,   130000,   117000,    68800,   137600,
2466 		  0x4e0 },
2467 	  /*     593 MCS-01 */ { HE40_LDPC_ONLY_MASKS,
2468 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2469 		  275300, 283600,   260000,   234000,   137600,   275300,
2470 		  0x4e1 },
2471 	  /*     594 MCS-02 */ { HE40_LDPC_ONLY_MASKS,
2472 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2473 		  412900, 425500,   390000,   351000,   206500,   412900,
2474 		  0x4e2 },
2475 	  /*     595 MCS-03 */ { HE40_LDPC_ONLY_MASKS,
2476 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2477 		  550600, 567300,   520000,   468000,        0,   550600,
2478 		  0x4e3 },
2479 	  /*     596 MCS-04 */ { HE40_LDPC_ONLY_MASKS,
2480 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2481 		  825900, 850900,   780000,   702000,        0,   825900,
2482 		  0x4e4 },
2483 	  /*     597 MCS-05 */ { HE40_LDPC_ONLY_MASKS,
2484 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2485 		  1101200, 1134500,  1040000,   936000,        0,  1101200,
2486 		  0x4e5 },
2487 	  /*     598 MCS-06 */ { HE40_LDPC_ONLY_MASKS,
2488 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2489 		  1238800, 1276400,  1170000,  1053000,        0,  1238800,
2490 		  0x4e6 },
2491 	  /*     599 MCS-07 */ { HE40_LDPC_ONLY_MASKS,
2492 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2493 		  1376500, 1418200,  1300000,  1170000,        0,  1376500,
2494 		  0x4e7 },
2495 	  /*     600 MCS-08 */ { HE40_LDPC_ONLY_MASKS,
2496 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2497 		  1651800, 1701800,  1560000,  1404000,        0,  1651800,
2498 		  0x4e8 },
2499 	  /*     601 MCS-09 */ { HE40_LDPC_ONLY_MASKS,
2500 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2501 		  1835300, 1890900,  1733300,  1560000,        0,  1835300,
2502 		  0x4e9 },
2503 	  /*     602 MCS-10 */ { HE40_LDPC_ONLY_MASKS,
2504 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2505 		  2064700, 2127300,  1950000,  1755000,        0,  2064700,
2506 		  0x4ea },
2507 	  /*     603 MCS-11 */ { HE40_LDPC_ONLY_MASKS,
2508 		  DP_CMN_MOD_IEEE80211_T_HE_40,
2509 		  2294100, 2363600,  2166700,  1950000,        0,  2294100,
2510 		  0x4eb },
2511 
2512 	  /* 11ax RU996 rates
2513 	   */
2514 	  /*     604 MCS-00 */ { HE80_LDPC_ONLY_MASKS,
2515 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2516 		  36000, 37100,    34000,    30600,    18000,    36000,  0x400
2517 	  },
2518 	  /*     605 MCS-01 */ { HE80_LDPC_ONLY_MASKS,
2519 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2520 		  72100, 74200,    68100,    61300,    36000,    72100,  0x401
2521 	  },
2522 	  /*     606 MCS-02 */ { HE80_LDPC_ONLY_MASKS,
2523 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2524 		  108100, 111400,   102100,    91900,        0,   108100,
2525 		  0x402 },
2526 	  /*     607 MCS-03 */ { HE80_LDPC_ONLY_MASKS,
2527 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2528 		  144100, 148500,   136100,   122500,    72100,   144100,
2529 		  0x403 },
2530 	  /*     608 MCS-04 */ { HE80_LDPC_ONLY_MASKS,
2531 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2532 		  216200, 222700,   204200,   183800,   108100,   216200,
2533 		  0x404 },
2534 	  /*     609 MCS-05 */ { HE80_LDPC_ONLY_MASKS,
2535 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2536 		  288200, 297000,   272200,   245000,        0,   288200,
2537 		  0x405 },
2538 	  /*     610 MCS-06 */ { HE80_LDPC_ONLY_MASKS,
2539 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2540 		  324300, 334100,   306300,   275600,        0,   324300,
2541 		  0x406 },
2542 	  /*     611 MCS-07 */ { HE80_LDPC_ONLY_MASKS,
2543 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2544 		  360300, 371200,   340300,   306300,        0,   360300,
2545 		  0x407 },
2546 	  /*     612 MCS-08 */ { HE80_LDPC_ONLY_MASKS,
2547 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2548 		  432400, 445500,   408300,   367500,        0,   432400,
2549 		  0x408 },
2550 	  /*     613 MCS-09 */ { HE80_LDPC_ONLY_MASKS,
2551 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2552 		  480400, 494900,   453700,   408300,        0,   480400,
2553 		  0x409 },
2554 	  /*     614 MCS-10 */ { HE80_LDPC_ONLY_MASKS,
2555 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2556 		  540400, 556800,   510400,   459400,        0,   540400,
2557 		  0x40a },
2558 	  /*     615 MCS-11 */ { HE80_LDPC_ONLY_MASKS,
2559 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2560 		  600500, 618700,   567100,   510400,        0,   600500,
2561 		  0x40b },
2562 	  /* When number spatial streams > 1
2563 	   * use below rates
2564 	   */
2565 	  /*     616 MCS-00 */ { HE80_LDPC_ONLY_MASKS,
2566 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2567 		  72100, 74200,    68100,    61300,    36000,    72100,  0x420
2568 	  },
2569 	  /*     617 MCS-01 */ { HE80_LDPC_ONLY_MASKS,
2570 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2571 		  144100, 148500,   136100,   122500,    72100,   144100,
2572 		  0x421 },
2573 	  /*     618 MCS-02 */ { HE80_LDPC_ONLY_MASKS,
2574 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2575 		  216200, 222700,   204200,   183800,        0,   216200,
2576 		  0x422 },
2577 	  /*     619 MCS-03 */ { HE80_LDPC_ONLY_MASKS,
2578 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2579 		  288200, 297000,   272200,   245000,   144100,   288200,
2580 		  0x423 },
2581 	  /*     620 MCS-04 */ { HE80_LDPC_ONLY_MASKS,
2582 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2583 		  432400, 445500,   408300,   367500,   216200,   432400,
2584 		  0x424 },
2585 	  /*     621 MCS-05 */ { HE80_LDPC_ONLY_MASKS,
2586 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2587 		  576500, 593900,   544400,   490000,        0,   576500,
2588 		  0x425 },
2589 	  /*     622 MCS-06 */ { HE80_LDPC_ONLY_MASKS,
2590 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2591 		  648500, 668200,   612500,   551300,        0,   648500,
2592 		  0x426 },
2593 	  /*     623 MCS-07 */ { HE80_LDPC_ONLY_MASKS,
2594 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2595 		  720600, 742400,   680600,   612500,        0,   720600,
2596 		  0x427 },
2597 	  /*     624 MCS-08 */ { HE80_LDPC_ONLY_MASKS,
2598 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2599 		  864700, 890900,   816700,   735000,        0,   864700,
2600 		  0x428 },
2601 	  /*     625 MCS-09 */ { HE80_LDPC_ONLY_MASKS,
2602 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2603 		  960800, 989900,   907400,   816700,        0,   960800,
2604 		  0x429 },
2605 	  /*     626 MCS-10 */ { HE80_LDPC_ONLY_MASKS,
2606 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2607 		  1080900, 1113600,  1020800,   918800,        0,  1080900,
2608 		  0x42a },
2609 	  /*     627 MCS-11 */ { HE80_LDPC_ONLY_MASKS,
2610 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2611 		  1201000, 1237400,  1134300,  1020800,        0,  1201000,
2612 		  0x42b },
2613 
2614 	  /* When number of spatial streams > 2
2615 	   * use below rates
2616 	   */
2617 	  /*     628 MCS-00 */ { HE80_LDPC_ONLY_MASKS,
2618 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2619 		  108100, 111400,   102100,    91900,    54000,   108100,
2620 		  0x440 },
2621 	  /*     629 MCS-01 */ { HE80_LDPC_ONLY_MASKS,
2622 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2623 		  216200, 222700,   204200,   183800,   108100,   216200,
2624 		  0x441 },
2625 	  /*     630 MCS-02 */ { HE80_LDPC_ONLY_MASKS,
2626 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2627 		  324300, 334100,   306300,   275600,        0,   324300,
2628 		  0x442 },
2629 	  /*     631 MCS-03 */ { HE80_LDPC_ONLY_MASKS,
2630 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2631 		  432400, 445500,   408300,   367500,        0,   432400,
2632 		  0x443 },
2633 	  /*     632 MCS-04 */ { HE80_LDPC_ONLY_MASKS,
2634 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2635 		  648500, 668200,   612500,   551300,        0,   648500,
2636 		  0x444 },
2637 	  /*     633 MCS-05 */ { HE80_LDPC_ONLY_MASKS,
2638 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2639 		  864700, 890900,   816700,   735000,        0,   864700,
2640 		  0x445 },
2641 	  /*     634 MCS-06 */ { HE80_LDPC_ONLY_MASKS,
2642 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2643 		  972800, 1002300,   918800,   826900,        0,   972800,
2644 		  0x446 },
2645 	  /*     635 MCS-07 */ { HE80_LDPC_ONLY_MASKS,
2646 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2647 		  1080900, 1113600,  1020800,   918800,        0,  1080900,
2648 		  0x447 },
2649 	  /*     636 MCS-08 */ { HE80_LDPC_ONLY_MASKS,
2650 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2651 		  1297100, 1336400,  1225000,  1102500,        0,  1297100,
2652 		  0x448 },
2653 	  /*     637 MCS-09 */ { HE80_LDPC_ONLY_MASKS,
2654 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2655 		  1441200, 1484800,  1361100,  1225000,        0,  1441200,
2656 		  0x449 },
2657 	  /*     638 MCS-10 */ { HE80_LDPC_ONLY_MASKS,
2658 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2659 		  1621300, 1670500,  1531300,  1378100,        0,  1621300,
2660 		  0x44a },
2661 	  /*     639 MCS-11 */ { HE80_LDPC_ONLY_MASKS,
2662 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2663 		  1801500, 1856100,  1701400,  1531300,        0,  1801500,
2664 		  0x44b },
2665 
2666 	  /* When number of spatial streams > 3
2667 	   * use below rates
2668 	   */
2669 	  /*     640 MCS-00 */ { HE80_LDPC_ONLY_MASKS,
2670 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2671 		  144100, 148500,   136100,   122500,    72100,   144100,
2672 		  0x460 },
2673 	  /*     641 MCS-01 */ { HE80_LDPC_ONLY_MASKS,
2674 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2675 		  288200, 297000,   272200,   245000,   144100,   288200,
2676 		  0x461 },
2677 	  /*     642 MCS-02 */ { HE80_LDPC_ONLY_MASKS,
2678 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2679 		  432400, 445500,   408300,   367500,        0,   432400,
2680 		  0x462 },
2681 	  /*     643 MCS-03 */ { HE80_LDPC_ONLY_MASKS,
2682 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2683 		  576500, 593900,   544400,   490000,   288200,   576500,
2684 		  0x463 },
2685 	  /*     644 MCS-04 */ { HE80_LDPC_ONLY_MASKS,
2686 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2687 		  864700, 890900,   816700,   735000,   432400,   864700,
2688 		  0x464 },
2689 	  /*     645 MCS-05 */ { HE80_LDPC_ONLY_MASKS,
2690 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2691 		  1152900, 1187900,  1088900,   980000,        0,  1152900,
2692 		  0x465 },
2693 	  /*     646 MCS-06 */ { HE80_LDPC_ONLY_MASKS,
2694 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2695 		  1297100, 1336400,  1225000,  1102500,        0,  1297100,
2696 		  0x466 },
2697 	  /*     647 MCS-07 */ { HE80_LDPC_ONLY_MASKS,
2698 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2699 		  1441200, 1484800,  1361100,  1225000,        0,  1441200,
2700 		  0x467 },
2701 	  /*     648 MCS-08 */ { HE80_LDPC_ONLY_MASKS,
2702 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2703 		  1729400, 1781800,  1633300,  1470000,        0,  1729400,
2704 		  0x468 },
2705 	  /*     649 MCS-09 */ { HE80_LDPC_ONLY_MASKS,
2706 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2707 		  1921600, 1979800,  1814800,  1633300,        0,  1921600,
2708 		  0x469 },
2709 	  /*     650 MCS-10 */ { HE80_LDPC_ONLY_MASKS,
2710 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2711 		  2161800, 2227300,  2041700,  1837500,        0,  2161800,
2712 		  0x46a },
2713 	  /*     651 MCS-11 */ { HE80_LDPC_ONLY_MASKS,
2714 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2715 		  2402000, 2474700,  2268500,  2041700,        0,  2402000,
2716 		  0x46b },
2717 
2718 	  /* When number spatial streams > 4
2719 	   * use below rates
2720 	   */
2721 	  /*     652 MCS-00 */ { HE80_LDPC_ONLY_MASKS,
2722 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2723 		  180100, 185600,   170100,   153100,    90100,   180100,
2724 		  0x480 },
2725 	  /*     653 MCS-01 */ { HE80_LDPC_ONLY_MASKS,
2726 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2727 		  360300, 371200,   340300,   306300,   180100,   360300,
2728 		  0x481 },
2729 	  /*     654 MCS-02 */ { HE80_LDPC_ONLY_MASKS,
2730 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2731 		  540400, 556800,   510400,   459400,        0,   540400,
2732 		  0x482 },
2733 	  /*     655 MCS-03 */ { HE80_LDPC_ONLY_MASKS,
2734 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2735 		  720600, 742400,   680600,   612500,        0,   720600,
2736 		  0x483 },
2737 	  /*     656 MCS-04 */ { HE80_LDPC_ONLY_MASKS,
2738 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2739 		  1080900, 1113600,  1020800,   918800,        0,  1080900,
2740 		  0x484 },
2741 	  /*     657 MCS-05 */ { HE80_LDPC_ONLY_MASKS,
2742 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2743 		  1441200, 1484800,  1361100,  1225000,        0,  1441200,
2744 		  0x485 },
2745 	  /*     658 MCS-06 */ { HE80_LDPC_ONLY_MASKS,
2746 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2747 		  1621300, 1670500,  1531300,  1378100,        0,  1621300,
2748 		  0x486 },
2749 	  /*     659 MCS-07 */ { HE80_LDPC_ONLY_MASKS,
2750 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2751 		  1801500, 1856100,  1701400,  1531300,        0,  1801500,
2752 		  0x487 },
2753 	  /*     660 MCS-08 */ { HE80_LDPC_ONLY_MASKS,
2754 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2755 		  2161800, 2227300,  2041700,  1837500,        0,  2161800,
2756 		  0x488 },
2757 	  /*     661 MCS-09 */ { HE80_LDPC_ONLY_MASKS,
2758 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2759 		  2402000, 2474700,  2268500,  2041700,        0,  2402000,
2760 		  0x489 },
2761 	  /*     662 MCS-10 */ { HE80_LDPC_ONLY_MASKS,
2762 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2763 		  2702200, 2784100,  2552100,  2296900,        0,  2702200,
2764 		  0x48a },
2765 	  /*     663 MCS-11 */ { HE80_LDPC_ONLY_MASKS,
2766 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2767 		  3002500, 3093400,  2835600,  2552100,        0,  3002500,
2768 		  0x48b },
2769 
2770 	  /* When number of spatial streams > 5
2771 	   * use below rates
2772 	   */
2773 	  /*     664 MCS-00 */ { HE80_LDPC_ONLY_MASKS,
2774 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2775 		  216200, 222700,   204200,   183800,   108100,   216200,
2776 		  0x4a0 },
2777 	  /*     665 MCS-01 */ { HE80_LDPC_ONLY_MASKS,
2778 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2779 		  432400, 445500,   408300,   367500,   216200,   432400,
2780 		  0x4a1 },
2781 	  /*     666 MCS-02 */ { HE80_LDPC_ONLY_MASKS,
2782 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2783 		  648500, 668200,   612500,   551300,        0,   648500,
2784 		  0x4a2 },
2785 	  /*     667 MCS-03 */ { HE80_LDPC_ONLY_MASKS,
2786 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2787 		  864700, 890900,   816700,   735000,   432400,   864700,
2788 		  0x4a3 },
2789 	  /*     668 MCS-04 */ { HE80_LDPC_ONLY_MASKS,
2790 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2791 		  1297100, 1336400,  1225000,  1102500,   648500,  1297100,
2792 		  0x4a4 },
2793 	  /*     669 MCS-05 */ { HE80_LDPC_ONLY_MASKS,
2794 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2795 		  1729400, 1781800,  1633300,  1470000,        0,  1729400,
2796 		  0x4a5 },
2797 	  /*     670 MCS-06 */ { HE80_LDPC_ONLY_MASKS,
2798 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2799 		  1945600, 2004500,  1837500,  1653800,        0,  1945600,
2800 		  0x4a6 },
2801 	  /*     671 MCS-07 */ { HE80_LDPC_ONLY_MASKS,
2802 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2803 		  2161800, 2227300,  2041700,  1837500,        0,  2161800,
2804 		  0x4a7 },
2805 	  /*     672 MCS-08 */ { HE80_LDPC_ONLY_MASKS,
2806 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2807 		  2594100, 2672700,  2450000,  2205000,        0,  2594100,
2808 		  0x4a8 },
2809 	  /*     673 MCS-09 */ { HE80_LDPC_ONLY_MASKS,
2810 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2811 		  2882400, 2969700,  2722200,  2450000,        0,  2882400,
2812 		  0x4a9 },
2813 	  /*     674 MCS-10 */ { HE80_LDPC_ONLY_MASKS,
2814 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2815 		  3242600, 3340900,  3062500,  2756300,        0,  3242600,
2816 		  0x4aa },
2817 	  /*     675 MCS-11 */ { HE80_LDPC_ONLY_MASKS,
2818 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2819 		  3602900, 3712100,  3402800,  3062500,        0,  3602900,
2820 		  0x4ab },
2821 
2822 	  /* When number of spatial streams > 6
2823 	   * use below rates
2824 	   */
2825 	  /*     676 MCS-00 */ { HE80_LDPC_ONLY_MASKS,
2826 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2827 		  252200, 259800,   238200,   214400,   129900,   252200,
2828 		  0x4c0 },
2829 	  /*     677 MCS-01 */ { HE80_LDPC_ONLY_MASKS,
2830 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2831 		  504400, 519700,   476400,   428800,   252200,   504400,
2832 		  0x4c1 },
2833 	  /*     678 MCS-02 */ { HE80_LDPC_ONLY_MASKS,
2834 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2835 		  756600, 779500,   714600,   643100,        0,   756600,
2836 		  0x4c2 },
2837 	  /*     679 MCS-03 */ { HE80_LDPC_ONLY_MASKS,
2838 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2839 		  1008800, 1039400,   952800,   857500,   504400,  1008800,
2840 		  0x4c3 },
2841 	  /*     680 MCS-04 */ { HE80_LDPC_ONLY_MASKS,
2842 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2843 		  1513200, 1559100,  1429200,  1286300,   756600,  1513200,
2844 		  0x4c4 },
2845 	  /*     681 MCS-05 */ { HE80_LDPC_ONLY_MASKS,
2846 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2847 		  2017600, 2078800,  1905600,  1715000,        0,  2017600,
2848 		  0x4c5 },
2849 	  /*     682 MCS-06 */ { HE80_LDPC_ONLY_MASKS,
2850 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2851 		  2269900, 2338600,  2143800,  1929400,        0,  2269900,
2852 		  0x4c6 },
2853 	  /*     683 MCS-07 */ { HE80_LDPC_ONLY_MASKS,
2854 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2855 		  2522100, 2598500,  2381900,  2143800,        0,  2522100,
2856 		  0x4c7 },
2857 	  /*     684 MCS-08 */ { HE80_LDPC_ONLY_MASKS,
2858 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2859 		  3026500, 3118200,  2858300,  2572500,        0,  3026500,
2860 		  0x4c8 },
2861 	  /*     685 MCS-09 */ { HE80_LDPC_ONLY_MASKS,
2862 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2863 		  3362700, 3464600,  3175900,  2858300,        0,  3362700,
2864 		  0x4c9 },
2865 	  /*     686 MCS-10 */ { HE80_LDPC_ONLY_MASKS,
2866 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2867 		  3783100, 3897700,  3572900,  3215600,        0,  3783100,
2868 		  0x4ca },
2869 	  /*     687 MCS-11 */ { HE80_LDPC_ONLY_MASKS,
2870 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2871 		  4203400, 4330800,  3969900,  3572900,        0,  4203400,
2872 		  0x4cb },
2873 
2874 	  /* When number of spatial streams > 7
2875 	   * use below rates
2876 	   */
2877 	  /*     688 MCS-00 */ { HE80_LDPC_ONLY_MASKS,
2878 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2879 		  288200, 297000,   272200,   245000,   144100,   288200,
2880 		  0x4e0 },
2881 	  /*     689 MCS-01 */ { HE80_LDPC_ONLY_MASKS,
2882 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2883 		  576500, 593900,   544400,   490000,   288200,   576500,
2884 		  0x4e1 },
2885 	  /*     690 MCS-02 */ { HE80_LDPC_ONLY_MASKS,
2886 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2887 		  864700, 890900,   816700,   735000,        0,   864700,
2888 		  0x4e2 },
2889 	  /*     691 MCS-03 */ { HE80_LDPC_ONLY_MASKS,
2890 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2891 		  1152900, 1187900,  1088900,   980000,   576500,  1152900,
2892 		  0x4e3 },
2893 	  /*     692 MCS-04 */ { HE80_LDPC_ONLY_MASKS,
2894 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2895 		  1729400, 1781800,  1633300,  1470000,   864700,  1729400,
2896 		  0x4e4 },
2897 	  /*     693 MCS-05 */ { HE80_LDPC_ONLY_MASKS,
2898 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2899 		  2305900, 2375800,  2177800,  1960000,        0,  2305900,
2900 		  0x4e5 },
2901 	  /*     694 MCS-06 */ { HE80_LDPC_ONLY_MASKS,
2902 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2903 		  2594100, 2672700,  2450000,  2205000,        0,  2594100,
2904 		  0x4e6 },
2905 	  /*     695 MCS-07 */ { HE80_LDPC_ONLY_MASKS,
2906 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2907 		  2882400, 2969700,  2722200,  2450000,        0,  2882400,
2908 		  0x4e7 },
2909 	  /*     696 MCS-08 */ { HE80_LDPC_ONLY_MASKS,
2910 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2911 		  3458800, 3563600,  3266700,  2940000,        0,  3458800,
2912 		  0x4e8 },
2913 	  /*     697 MCS-09 */ { HE80_LDPC_ONLY_MASKS,
2914 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2915 		  3843100, 3959600,  3629600,  3266700,        0,  3843100,
2916 		  0x4e9 },
2917 	  /*     698 MCS-10 */ { HE80_LDPC_ONLY_MASKS,
2918 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2919 		  4323500, 4454500,  4083300,  3675000,        0,  4323500,
2920 		  0x4ea },
2921 	  /*     699 MCS-11 */ { HE80_LDPC_ONLY_MASKS,
2922 		  DP_CMN_MOD_IEEE80211_T_HE_80,
2923 		  4803900, 4949500,  4537000,  4083300,        0,  4803900,
2924 		  0x4eb },
2925 
2926 	  /* 11ax RU996x2 rates
2927 	   */
2928 	  /*     700 MCS-00 */ { HE160_LDPC_ONLY_MASKS,
2929 		  DP_CMN_MOD_IEEE80211_T_HE_160,
2930 		  72100, 74200,    68100,    61300,    36000,    72100,
2931 		  0x400},
2932 	  /*     701 MCS-01 */ { HE160_LDPC_ONLY_MASKS,
2933 		  DP_CMN_MOD_IEEE80211_T_HE_160,
2934 		  144100, 148500,   136100,   122500,    72100,   144100,
2935 		  0x401},
2936 	  /*     702 MCS-02 */ { HE160_LDPC_ONLY_MASKS,
2937 		  DP_CMN_MOD_IEEE80211_T_HE_160,
2938 		  216200, 222700,   204200,   183800,        0,   216200,
2939 		  0x402},
2940 	  /*     703 MCS-03 */ { HE160_LDPC_ONLY_MASKS,
2941 		  DP_CMN_MOD_IEEE80211_T_HE_160,
2942 		  288200, 297000,   272200,   245000,   144100,   288200,
2943 		  0x403},
2944 	  /*     704 MCS-04 */ { HE160_LDPC_ONLY_MASKS,
2945 		  DP_CMN_MOD_IEEE80211_T_HE_160,
2946 		  432400, 445500,   408300,   367500,   216200,   432400,
2947 		  0x404},
2948 	  /*     705 MCS-05 */ { HE160_LDPC_ONLY_MASKS,
2949 		  DP_CMN_MOD_IEEE80211_T_HE_160,
2950 		  576500, 593900,   544400,   490000,        0,   576500,
2951 		  0x405},
2952 	  /*     706 MCS-06 */ { HE160_LDPC_ONLY_MASKS,
2953 		  DP_CMN_MOD_IEEE80211_T_HE_160,
2954 		  648500, 668200,   612500,   551300,        0,   648500,
2955 		  0x406},
2956 	  /*     707 MCS-07 */ { HE160_LDPC_ONLY_MASKS,
2957 		  DP_CMN_MOD_IEEE80211_T_HE_160,
2958 		  720600, 742400,   680600,   612500,        0,   720600,
2959 		  0x407},
2960 	  /*     708 MCS-08 */ { HE160_LDPC_ONLY_MASKS,
2961 		  DP_CMN_MOD_IEEE80211_T_HE_160,
2962 		  864700, 890900,   816700,   735000,        0,   864700,
2963 		  0x408},
2964 	  /*     709 MCS-09 */ { HE160_LDPC_ONLY_MASKS,
2965 		  DP_CMN_MOD_IEEE80211_T_HE_160,
2966 		  960800, 989900,   907400,   816700,        0,   960800,
2967 		  0x409},
2968 	  /*     710 MCS-10 */ { HE160_LDPC_ONLY_MASKS,
2969 		  DP_CMN_MOD_IEEE80211_T_HE_160,
2970 		  1080900, 1113600,  1020800,   918800,        0,  1080900,
2971 		  0x40a},
2972 	  /*     711 MCS-11 */ { HE160_LDPC_ONLY_MASKS,
2973 		  DP_CMN_MOD_IEEE80211_T_HE_160,
2974 		  1201000, 1237400,  1134300,  1020800,        0,  1201000,
2975 		  0x40b},
2976 	  /* When maximum spatial streams supported at 160MHZ > 1
2977 	   * use below rates
2978 	   */
2979 	  /*     712 MCS-00 */ { HE160_LDPC_ONLY_MASKS,
2980 		  DP_CMN_MOD_IEEE80211_T_HE_160,
2981 		  144100, 148500,   136100,   122500,    72100,   144100,
2982 		  0x420},
2983 	  /*     713 MCS-01 */ { HE160_LDPC_ONLY_MASKS,
2984 		  DP_CMN_MOD_IEEE80211_T_HE_160,
2985 		  288200, 297000,   272200,   245000,   144100,   288200,
2986 		  0x421},
2987 	  /*     714 MCS-02 */ { HE160_LDPC_ONLY_MASKS,
2988 		  DP_CMN_MOD_IEEE80211_T_HE_160,
2989 		  432400, 445500,   408300,   367500,        0,   432400,
2990 		  0x422},
2991 	  /*     715 MCS-03 */ { HE160_LDPC_ONLY_MASKS,
2992 		  DP_CMN_MOD_IEEE80211_T_HE_160,
2993 		  576500, 593900,   544400,   490000,   288200,   576500,
2994 		  0x423},
2995 	  /*     716 MCS-04 */ { HE160_LDPC_ONLY_MASKS,
2996 		  DP_CMN_MOD_IEEE80211_T_HE_160,
2997 		  864700, 890900,   816700,   735000,   432400,   864700,
2998 		  0x424},
2999 	  /*     717 MCS-05 */ { HE160_LDPC_ONLY_MASKS,
3000 		  DP_CMN_MOD_IEEE80211_T_HE_160,
3001 		  1152900, 1187900,  1088900,   980000,        0,  1152900,
3002 		  0x425},
3003 	  /*     718 MCS-06 */ { HE160_LDPC_ONLY_MASKS,
3004 		  DP_CMN_MOD_IEEE80211_T_HE_160,
3005 		  1297100, 1336400,  1225000,  1102500,        0,  1297100,
3006 		  0x426},
3007 	  /*     719 MCS-07 */ { HE160_LDPC_ONLY_MASKS,
3008 		  DP_CMN_MOD_IEEE80211_T_HE_160,
3009 		  1441200, 1484800,  1361100,  1225000,        0,  1441200,
3010 		  0x427},
3011 	  /*     720 MCS-08 */ { HE160_LDPC_ONLY_MASKS,
3012 		  DP_CMN_MOD_IEEE80211_T_HE_160,
3013 		  1729400, 1781800,  1633300,  1470000,        0,  1729400,
3014 		  0x428},
3015 	  /*     721 MCS-09 */ { HE160_LDPC_ONLY_MASKS,
3016 		  DP_CMN_MOD_IEEE80211_T_HE_160,
3017 		  1921600, 1979800,  1814800,  1633300,        0,  1921600,
3018 		  0x429},
3019 	  /*     722 MCS-10 */ { HE160_LDPC_ONLY_MASKS,
3020 		  DP_CMN_MOD_IEEE80211_T_HE_160,
3021 		  2161800, 2227300,  2041700,  1837500,        0,  2161800,
3022 		  0x42a},
3023 	  /*     723 MCS-11 */ { HE160_LDPC_ONLY_MASKS,
3024 		  DP_CMN_MOD_IEEE80211_T_HE_160,
3025 		  2402000, 2474700,  2268500,  2041700,        0,  2402000,
3026 		  0x42b},
3027 
3028 	  /* When maximum spatial streams supported at 160MHZ > 2
3029 	   * use below rates
3030 	   */
3031 	  /*     724 MCS-00 */ { HE160_LDPC_ONLY_MASKS,
3032 		  DP_CMN_MOD_IEEE80211_T_HE_160,
3033 		  216200, 222700,   204200,   183800,   108100,   216200,
3034 		  0x440},
3035 	  /*     725 MCS-01 */ { HE160_LDPC_ONLY_MASKS,
3036 		  DP_CMN_MOD_IEEE80211_T_HE_160,
3037 		  432400, 445500,   408300,   367500,   216200,   432400,
3038 		  0x441},
3039 	  /*     726 MCS-02 */ { HE160_LDPC_ONLY_MASKS,
3040 		  DP_CMN_MOD_IEEE80211_T_HE_160,
3041 		  648500, 668200,   612500,   551300,        0,   648500,
3042 		  0x442},
3043 	  /*     727 MCS-03 */ { HE160_LDPC_ONLY_MASKS,
3044 		  DP_CMN_MOD_IEEE80211_T_HE_160,
3045 		  864700, 890900,   816700,   735000,   432400,   864700,
3046 		  0x443},
3047 	  /*     728 MCS-04 */ { HE160_LDPC_ONLY_MASKS,
3048 		  DP_CMN_MOD_IEEE80211_T_HE_160,
3049 		  1297100, 1336400,  1225000,  1102500,   648500,  1297100,
3050 		  0x444},
3051 	  /*     729 MCS-05 */ { HE160_LDPC_ONLY_MASKS,
3052 		  DP_CMN_MOD_IEEE80211_T_HE_160,
3053 		  1729400, 1781800,  1633300,  1470000,        0,  1729400,
3054 		  0x445},
3055 	  /*     730 MCS-06 */ { HE160_LDPC_ONLY_MASKS,
3056 		  DP_CMN_MOD_IEEE80211_T_HE_160,
3057 		  1945600, 2004500,  1837500,  1653800,        0,  1945600,
3058 		  0x446},
3059 	  /*     731 MCS-07 */ { HE160_LDPC_ONLY_MASKS,
3060 		  DP_CMN_MOD_IEEE80211_T_HE_160,
3061 		  2161800, 2227300,  2041700,  1837500,        0,  2161800,
3062 		  0x447},
3063 	  /*     732 MCS-08 */ { HE160_LDPC_ONLY_MASKS,
3064 		  DP_CMN_MOD_IEEE80211_T_HE_160,
3065 		  2594100, 2672700,  2450000,  2205000,        0,  2594100,
3066 		  0x448},
3067 	  /*     733 MCS-09 */ { HE160_LDPC_ONLY_MASKS,
3068 		  DP_CMN_MOD_IEEE80211_T_HE_160,
3069 		  2882400, 2969700,  2722200,  2450000,        0,  2882400,
3070 		  0x449},
3071 	  /*     734 MCS-10 */ { HE160_LDPC_ONLY_MASKS,
3072 		  DP_CMN_MOD_IEEE80211_T_HE_160,
3073 		  3242600, 3340900,  3062500,  2756300,        0,  3242600,
3074 		  0x44a},
3075 	  /*     735 MCS-11 */ { HE160_LDPC_ONLY_MASKS,
3076 		  DP_CMN_MOD_IEEE80211_T_HE_160,
3077 		  3602900, 3712100,  3402800,  3062500,        0,  3602900,
3078 		  0x44b},
3079 
3080 	  /* When maximum spatial streams supported at 160MHZ > 3
3081 	   * use below rates
3082 	   */
3083 	  /*     736 MCS-00 */ { HE160_LDPC_ONLY_MASKS,
3084 		  DP_CMN_MOD_IEEE80211_T_HE_160,
3085 		  288200, 297000,   272200,   245000,   144100,   288200,
3086 		  0x460},
3087 	  /*     737 MCS-01 */ { HE160_LDPC_ONLY_MASKS,
3088 		  DP_CMN_MOD_IEEE80211_T_HE_160,
3089 		  576500, 593900,   544400,   490000,   288200,   576500,
3090 		  0x461},
3091 	  /*     738 MCS-02 */ { HE160_LDPC_ONLY_MASKS,
3092 		  DP_CMN_MOD_IEEE80211_T_HE_160,
3093 		  864700, 890900,   816700,   735000,        0,   864700,
3094 		  0x462},
3095 	  /*     739 MCS-03 */ { HE160_LDPC_ONLY_MASKS,
3096 		  DP_CMN_MOD_IEEE80211_T_HE_160,
3097 		  1152900, 1187900,  1088900,   980000,   576500,  1152900,
3098 		  0x463},
3099 	  /*     740 MCS-04 */ { HE160_LDPC_ONLY_MASKS,
3100 		  DP_CMN_MOD_IEEE80211_T_HE_160,
3101 		  1729400, 1781800,  1633300,  1470000,   864700,  1729400,
3102 		  0x464},
3103 	  /*     741 MCS-05 */ { HE160_LDPC_ONLY_MASKS,
3104 		  DP_CMN_MOD_IEEE80211_T_HE_160,
3105 		  2305900, 2375800,  2177800,  1960000,        0,  2305900,
3106 		  0x465},
3107 	  /*     742 MCS-06 */ { HE160_LDPC_ONLY_MASKS,
3108 		  DP_CMN_MOD_IEEE80211_T_HE_160,
3109 		  2594100, 2672700,  2450000,  2205000,        0,  2594100,
3110 		  0x466},
3111 	  /*     743 MCS-07 */ { HE160_LDPC_ONLY_MASKS,
3112 		  DP_CMN_MOD_IEEE80211_T_HE_160,
3113 		  2882400, 2969700,  2722200,  2450000,        0,  2882400,
3114 		  0x467},
3115 	  /*     744 MCS-08 */ { HE160_LDPC_ONLY_MASKS,
3116 		  DP_CMN_MOD_IEEE80211_T_HE_160,
3117 		  3458800, 3563600,  3266700,  2940000,        0,  3458800,
3118 		  0x468},
3119 	  /*     745 MCS-09 */ { HE160_LDPC_ONLY_MASKS,
3120 		  DP_CMN_MOD_IEEE80211_T_HE_160,
3121 		  3843100, 3959600,  3629600,  3266700,        0,  3843100,
3122 		  0x469},
3123 	  /*     746 MCS-10 */ { HE160_LDPC_ONLY_MASKS,
3124 		  DP_CMN_MOD_IEEE80211_T_HE_160,
3125 		  4323500, 4454500,  4083300,  3675000,        0,  4323500,
3126 		  0x46a},
3127 	  /*     747 MCS-11 */ { HE160_LDPC_ONLY_MASKS,
3128 		  DP_CMN_MOD_IEEE80211_T_HE_160,
3129 		  4803900, 4949500,  4537000,  4083300,        0,  4803900,
3130 		  0x46b}
3131 	},
3132 };
3133 
3134 static const uint16_t _rc_idx[DP_CMN_MOD_IEEE80211_T_MAX_PHY] = {
3135 	CCK_RATE_TABLE_INDEX,
3136 	OFDM_RATE_TABLE_INDEX,
3137 	HT_20_RATE_TABLE_INDEX,
3138 	HT_40_RATE_TABLE_INDEX,
3139 	VHT_20_RATE_TABLE_INDEX,
3140 	VHT_40_RATE_TABLE_INDEX,
3141 	VHT_80_RATE_TABLE_INDEX,
3142 	VHT_160_RATE_TABLE_INDEX,
3143 	HE_20_RATE_TABLE_INDEX,
3144 	HE_40_RATE_TABLE_INDEX,
3145 	HE_80_RATE_TABLE_INDEX,
3146 	HE_160_RATE_TABLE_INDEX,
3147 };
3148 
3149 /*
3150  * dp_getmodulation - return rate modulation given code spatial width
3151  * @pream_type - preamble type
3152  * @width - bandwidth
3153  *
3154  * return - modulation type
3155  */
3156 enum DP_CMN_MODULATION_TYPE dp_getmodulation(
3157 		uint16_t pream_type,
3158 		uint8_t width)
3159 {
3160 	static const enum DP_CMN_MODULATION_TYPE _vht_bw_mod[] = {
3161 		DP_CMN_MOD_IEEE80211_T_VHT_20,
3162 		DP_CMN_MOD_IEEE80211_T_VHT_40,
3163 		DP_CMN_MOD_IEEE80211_T_VHT_80,
3164 		DP_CMN_MOD_IEEE80211_T_VHT_160
3165 	};
3166 
3167 	static const enum DP_CMN_MODULATION_TYPE _he_bw_mod[] = {
3168 		DP_CMN_MOD_IEEE80211_T_HE_20,
3169 		DP_CMN_MOD_IEEE80211_T_HE_40,
3170 		DP_CMN_MOD_IEEE80211_T_HE_80,
3171 		DP_CMN_MOD_IEEE80211_T_HE_160
3172 	};
3173 
3174 	enum DP_CMN_MODULATION_TYPE modulation;
3175 
3176 	CMN_DP_ASSERT(width < CMN_BW_CNT);
3177 
3178 	switch (pream_type) {
3179 	case DP_CMN_RATECODE_PREAM_HT:
3180 		if (width)
3181 			modulation = DP_CMN_MOD_IEEE80211_T_HT_40;
3182 		else
3183 			modulation = DP_CMN_MOD_IEEE80211_T_HT_20;
3184 		break;
3185 
3186 	case DP_CMN_RATECODE_PREAM_CCK:
3187 		modulation = DP_CMN_MOD_IEEE80211_T_CCK;
3188 		break;
3189 
3190 	case DP_CMN_RATECODE_PREAM_VHT:
3191 		modulation = _vht_bw_mod[width];
3192 		break;
3193 
3194 	case DP_CMN_RATECODE_PREAM_HE:
3195 		modulation = _he_bw_mod[width];
3196 		break;
3197 
3198 	default:
3199 		modulation = DP_CMN_MOD_IEEE80211_T_OFDM;
3200 		break;
3201 	}
3202 
3203 	return modulation;
3204 }
3205 
3206 /* dp_getrateindex - calculate ratekbps
3207  * @mcs - MCS index
3208  * @nss - NSS 1...8
3209  * preamble - preamble
3210  * @bw - Transmission Bandwidth
3211  * @rix: rate index to be populated
3212  *
3213  * return - rate in kbps
3214  */
3215 uint32_t
3216 dp_getrateindex(uint32_t gi, uint16_t mcs, uint8_t nss, uint8_t preamble,
3217 		uint8_t bw, uint32_t *rix)
3218 {
3219 	uint32_t ratekbps = 0, res = RT_INVALID_INDEX; /* represents failure */
3220 	uint16_t rc;
3221 	enum DP_CMN_MODULATION_TYPE mod;
3222 
3223 	mod = dp_getmodulation(preamble, bw);
3224 	rc = mcs;
3225 
3226 	/* get the base of corresponding rate table  entry */
3227 	res = _rc_idx[mod];
3228 
3229 	switch (preamble) {
3230 	case DP_CMN_RATECODE_PREAM_HE:
3231 		res += rc + nss * NUM_HE_MCS;
3232 		break;
3233 
3234 	case DP_CMN_RATECODE_PREAM_VHT:
3235 		res += rc + nss * NUM_VHT_MCS;
3236 		break;
3237 
3238 	case DP_CMN_RATECODE_PREAM_HT:
3239 		res += rc + nss * NUM_HT_MCS;
3240 		break;
3241 
3242 	case DP_CMN_RATECODE_PREAM_CCK:
3243 		rc  &= ~HW_RATECODE_CCK_SHORT_PREAM_MASK;
3244 		res += rc;
3245 		break;
3246 
3247 	case DP_CMN_RATECODE_PREAM_OFDM:
3248 		res += rc;
3249 		break;
3250 
3251 	default:
3252 		break;
3253 	}
3254 	if (res >= DP_RATE_TABLE_SIZE)
3255 		goto done;
3256 
3257 	if (!gi) {
3258 		ratekbps = dp_11abgnratetable.info[res].userratekbps;
3259 	} else {
3260 		switch (gi) {
3261 		case CDP_SGI_0_4_US:
3262 			ratekbps = dp_11abgnratetable.info[res].ratekbpssgi;
3263 			break;
3264 		case CDP_SGI_1_6_US:
3265 			ratekbps = dp_11abgnratetable.info[res].ratekbpsdgi;
3266 			break;
3267 		case CDP_SGI_3_2_US:
3268 			ratekbps = dp_11abgnratetable.info[res].ratekbpsqgi;
3269 			break;
3270 		}
3271 	}
3272 done:
3273 	*rix = res;
3274 
3275 	return ratekbps;
3276 }
3277 
3278 qdf_export_symbol(dp_getrateindex);
3279 
3280 /* dp_rate_idx_to_kbps - get rate kbps from index
3281  * @rate_idx - rate index
3282  * @gintval - guard interval
3283  *
3284  * return - rate index in kbps with help of ratetable
3285  */
3286 int dp_rate_idx_to_kbps(uint8_t rate_idx, uint8_t gintval)
3287 {
3288 	if (rate_idx >= DP_RATE_TABLE_SIZE)
3289 		return 0;
3290 
3291 	if (!gintval)
3292 		return RT_GET_RAW_KBPS(&dp_11abgnratetable, rate_idx);
3293 	else
3294 		return RT_GET_SGI_KBPS(&dp_11abgnratetable, rate_idx);
3295 	return 0;
3296 }
3297 
3298 qdf_export_symbol(dp_rate_idx_to_kbps);
3299