1 /*
2 * Copyright (c) 2016-2019, 2021 The Linux Foundation. All rights reserved.
3 * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
4 *
5 * Permission to use, copy, modify, and/or distribute this software for
6 * any purpose with or without fee is hereby granted, provided that the
7 * above copyright notice and this permission notice appear in all
8 * copies.
9 *
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
11 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
12 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
13 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
14 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
15 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
16 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17 * PERFORMANCE OF THIS SOFTWARE.
18 */
19
20 #include <qdf_types.h>
21 #include "dp_ratetable.h"
22 #include "qdf_module.h"
23 #include "cdp_txrx_mon_struct.h"
24
25 enum {
26 MODE_11A = 0, /* 11a Mode */
27 MODE_11G = 1, /* 11b/g Mode */
28 MODE_11B = 2, /* 11b Mode */
29 MODE_11GONLY = 3, /* 11g only Mode */
30 MODE_11NA_HT20 = 4, /* 11a HT20 mode */
31 MODE_11NG_HT20 = 5, /* 11g HT20 mode */
32 MODE_11NA_HT40 = 6, /* 11a HT40 mode */
33 MODE_11NG_HT40 = 7, /* 11g HT40 mode */
34 MODE_11AC_VHT20 = 8,
35 MODE_11AC_VHT40 = 9,
36 MODE_11AC_VHT80 = 10,
37 MODE_11AC_VHT20_2G = 11,
38 MODE_11AC_VHT40_2G = 12,
39 MODE_11AC_VHT80_2G = 13,
40 MODE_11AC_VHT80_80 = 14,
41 MODE_11AC_VHT160 = 15,
42 MODE_11AX_HE20 = 16,
43 MODE_11AX_HE40 = 17,
44 MODE_11AX_HE80 = 18,
45 MODE_11AX_HE80_80 = 19,
46 MODE_11AX_HE160 = 20,
47 MODE_11AX_HE20_2G = 21,
48 MODE_11AX_HE40_2G = 22,
49 MODE_11AX_HE80_2G = 23,
50 #ifdef WLAN_FEATURE_11BE
51 MODE_11BE_EHT20 = 24,
52 MODE_11BE_EHT40 = 25,
53 MODE_11BE_EHT80 = 26,
54 MODE_11BE_EHT80_80 = 27,
55 MODE_11BE_EHT160 = 28,
56 MODE_11BE_EHT160_160 = 29,
57 MODE_11BE_EHT320 = 30,
58 MODE_11BE_EHT20_2G = 31,
59 MODE_11BE_EHT40_2G = 32,
60 #endif
61 /* MODE_UNKNOWN should not be used within the host / target interface.
62 * Thus, it is permissible for ODE_UNKNOWN to be conditionally-defined,
63 * taking different values when compiling for different targets.
64 */
65 MODE_UNKNOWN,
66 MODE_UNKNOWN_NO_160MHZ_SUPPORT = 14, /* not needed? */
67 MODE_UNKNOWN_160MHZ_SUPPORT = MODE_UNKNOWN, /* not needed? */
68 } DP_PHY_MODE;
69
70 /* The following would span more than one octet
71 * when 160MHz BW defined for VHT
72 * Also it's important to maintain the ordering of this enum
73 * else it would break other rate adaptation functions
74 */
75
76 enum DP_CMN_RATECODE_PREAM_TYPE {
77 DP_CMN_RATECODE_PREAM_OFDM,
78 DP_CMN_RATECODE_PREAM_CCK,
79 DP_CMN_RATECODE_PREAM_HT,
80 DP_CMN_RATECODE_PREAM_VHT,
81 DP_CMN_RATECODE_PREAM_HE,
82 #ifdef WLAN_FEATURE_11BE
83 DP_CMN_RATECODE_PREAM_EHT,
84 #endif
85 DP_CMN_RATECODE_PREAM_COUNT,
86 };
87
88 /*
89 * @validmodemask : bit mask where 1 indicates the rate is valid for that mode
90 * @DP_CMN_MODULATION : modulation CCK/OFDM/MCS
91 * @propmask : bit mask of rate property. NSS/STBC/TXBF/LDPC
92 * @ratekbps : Rate in Kbits per second
93 * @ratebpdsgi : Rate in kbits per second if HT SGI is enabled
94 * @ratekbpsdgi : Rate in kbits per second if 1.6us GI is enabled
95 * @ratekbpsqgi : Rate in kbits per second if 3.2us GI is enabled
96 * @ratekbpsdcm : Rate in kbits per second if DCM is applied
97 * @userratekabps : User rate in KBits per second
98 * @dot11rate : Value that goes into supported rates info element of MLME
99 * @ratecode : rate that goes into hw descriptors
100 */
101 const struct DP_CMN_RATE_TABLE {
102 struct {
103 #ifdef WLAN_FEATURE_11BE
104 uint64_t validmodemask;
105 #else
106 uint32_t validmodemask;
107 #endif
108 enum DP_CMN_MODULATION_TYPE phy;
109 uint32_t ratekbps;
110 uint32_t ratekbpssgi;
111 uint32_t ratekbpsdgi;
112 uint32_t ratekbpsqgi;
113 uint32_t ratekbpsdcm;
114 uint32_t userratekbps;
115 uint16_t ratecode;
116 } info[DP_RATE_TABLE_SIZE];
117 } DP_CMN_RATE_TABLE;
118
119 /*Use the highest bit to indicate the invalid bcc rates accorss
120 *different PHYMODE
121 */
122 #ifdef WLAN_FEATURE_11BE
123 #define ONE_UL ((uint64_t)1)
124 #define INVALID_BCC_RATE ONE_UL << MODE_UNKNOWN
125 #else
126 #define INVALID_BCC_RATE BIT(MODE_UNKNOWN)
127 #endif
128
129 #define CCK_MODE_VALID_MASK ((1 << MODE_11G) | (1 << MODE_11B) | \
130 (1 << MODE_11NG_HT20) | (1 << MODE_11NG_HT40) | \
131 (1 << MODE_11AC_VHT40_2G) | (1 << MODE_11AC_VHT20_2G) |\
132 (1 << MODE_11AC_VHT80_2G))
133
134 #define OFDM_MODE_VALID_MASK ((1 << MODE_11A) | (1 << MODE_11G) | \
135 (1 << MODE_11GONLY) | (1 << MODE_11NA_HT20) | \
136 (1 << MODE_11NG_HT20) \
137 | (1 << MODE_11NA_HT40) | (1 << MODE_11NG_HT40) \
138 | (1 << MODE_11AC_VHT40) | (1 << MODE_11AC_VHT20) | \
139 (1 << MODE_11AC_VHT80) \
140 | (1 << MODE_11AC_VHT40_2G) | (1 << MODE_11AC_VHT20_2G) | \
141 (1 << MODE_11AC_VHT80_2G) \
142 | (1 << MODE_11AC_VHT160) | (1 << MODE_11AC_VHT80_80))
143
144 #define HT20_MODE_VALID_MASK ((1 << MODE_11NA_HT20) | \
145 (1 << MODE_11NG_HT20) \
146 | (1 << MODE_11NA_HT40) | (1 << MODE_11NG_HT40) \
147 | (1 << MODE_11AC_VHT40) | (1 << MODE_11AC_VHT20) | \
148 (1 << MODE_11AC_VHT80) \
149 | (1 << MODE_11AC_VHT40_2G) | (1 << MODE_11AC_VHT20_2G) | \
150 (1 << MODE_11AC_VHT80_2G) \
151 | (1 << MODE_11AC_VHT160) | (1 << MODE_11AC_VHT80_80))
152
153 #define HT40_MODE_VALID_MASK ((1 << MODE_11NA_HT40) | \
154 (1 << MODE_11NG_HT40) \
155 | (1 << MODE_11AC_VHT40) | (1 << MODE_11AC_VHT80) \
156 | (1 << MODE_11AC_VHT40_2G) | (1 << MODE_11AC_VHT80_2G) \
157 | (1 << MODE_11AC_VHT160) | (1 << MODE_11AC_VHT80_80))
158
159 #define VHT20_MODE_VALID_MASK ((1 << MODE_11AC_VHT20) | \
160 (1 << MODE_11AC_VHT40) | (1 << MODE_11AC_VHT80) | \
161 (1 << MODE_11AC_VHT40_2G) | (1 << MODE_11AC_VHT20_2G) | \
162 (1 << MODE_11AC_VHT80_2G) | \
163 (1 << MODE_11AC_VHT160) | (1 << MODE_11AC_VHT80_80))
164
165 #define VHT40_MODE_VALID_MASK ((1 << MODE_11AC_VHT40) | \
166 (1 << MODE_11AC_VHT80) | \
167 (1 << MODE_11AC_VHT40_2G) | (1 << MODE_11AC_VHT80_2G) | \
168 (1 << MODE_11AC_VHT160) | (1 << MODE_11AC_VHT80_80))
169
170 #define VHT80_MODE_VALID_MASK ((1 << MODE_11AC_VHT80) | \
171 (1 << MODE_11AC_VHT80_2G) | \
172 (1 << MODE_11AC_VHT160) | (1 << MODE_11AC_VHT80_80))
173
174 #define VHT160_MODE_VALID_MASK ((1 << MODE_11AC_VHT160) | \
175 (1 << MODE_11AC_VHT80_80))
176
177 #define VHT20_LDPC_ONLY_MASKS (VHT20_MODE_VALID_MASK | INVALID_BCC_RATE)
178 #define VHT40_LDPC_ONLY_MASKS (VHT40_MODE_VALID_MASK | INVALID_BCC_RATE)
179 #define VHT80_LDPC_ONLY_MASKS (VHT80_MODE_VALID_MASK | INVALID_BCC_RATE)
180 #define VHT160_LDPC_ONLY_MASKS (VHT160_MODE_VALID_MASK | INVALID_BCC_RATE)
181
182 #define VHT_INVALID_MCS (0xFF)
183 #define VHT_INVALID_RATES_MASK 0
184
185 #define HE20_MODE_VALID_MASK ((1 << MODE_11AX_HE20) |\
186 (1 << MODE_11AX_HE40) | \
187 (1 << MODE_11AX_HE80) | (1 << MODE_11AX_HE20_2G) | \
188 (1 << MODE_11AX_HE40_2G) | \
189 (1 << MODE_11AX_HE80_2G) | (1 << MODE_11AX_HE80_80) | \
190 (1 << MODE_11AX_HE160))
191
192 #define HE40_MODE_VALID_MASK ((1 << MODE_11AX_HE40) | \
193 (1 << MODE_11AX_HE80) | (1 << MODE_11AX_HE40_2G) | \
194 (1 << MODE_11AX_HE80_2G) | (1 << MODE_11AX_HE80_80) | \
195 (1 << MODE_11AX_HE160))
196
197 #define HE80_MODE_VALID_MASK ((1 << MODE_11AX_HE80) | \
198 (1 << MODE_11AX_HE80_2G) | \
199 (1 << MODE_11AX_HE80_80) | (1 << MODE_11AX_HE160))
200
201 #define HE160_MODE_VALID_MASK ((1 << MODE_11AX_HE80_80) | \
202 (1 << MODE_11AX_HE160))
203
204 #define HE20_LDPC_ONLY_MASKS (HE20_MODE_VALID_MASK | INVALID_BCC_RATE)
205 #define HE40_LDPC_ONLY_MASKS (HE40_MODE_VALID_MASK | INVALID_BCC_RATE)
206 #define HE80_LDPC_ONLY_MASKS (HE80_MODE_VALID_MASK | INVALID_BCC_RATE)
207 #define HE160_LDPC_ONLY_MASKS (HE160_MODE_VALID_MASK | INVALID_BCC_RATE)
208
209 #define HE_INVALID_RATES_MASK 0
210
211 #ifdef WLAN_FEATURE_11BE
212 #define MODE_11BE_EHT240 0
213
214 #define EHT20_MODE_VALID_MASK ((ONE_UL << MODE_11BE_EHT20) | \
215 (ONE_UL << MODE_11BE_EHT40) | \
216 (ONE_UL << MODE_11BE_EHT80) | \
217 (ONE_UL << MODE_11BE_EHT80_80) | \
218 (ONE_UL << MODE_11BE_EHT160) | \
219 (ONE_UL << MODE_11BE_EHT240) | \
220 (ONE_UL << MODE_11BE_EHT160_160) | \
221 (ONE_UL << MODE_11BE_EHT320) | \
222 (ONE_UL << MODE_11BE_EHT20_2G) | \
223 (ONE_UL << MODE_11BE_EHT40_2G))
224
225 #define EHT40_MODE_VALID_MASK ((ONE_UL << MODE_11BE_EHT40) | \
226 (ONE_UL << MODE_11BE_EHT80) | \
227 (ONE_UL << MODE_11BE_EHT80_80) | \
228 (ONE_UL << MODE_11BE_EHT160) | \
229 (ONE_UL << MODE_11BE_EHT240) | \
230 (ONE_UL << MODE_11BE_EHT160_160) | \
231 (ONE_UL << MODE_11BE_EHT320) | \
232 (ONE_UL << MODE_11BE_EHT40_2G))
233
234 #define EHT80_MODE_VALID_MASK ((ONE_UL << MODE_11BE_EHT80) | \
235 (ONE_UL << MODE_11BE_EHT80_80) | \
236 (ONE_UL << MODE_11BE_EHT160) | \
237 (ONE_UL << MODE_11BE_EHT240) | \
238 (ONE_UL << MODE_11BE_EHT160_160) | \
239 (ONE_UL << MODE_11BE_EHT320))
240
241 #define EHT160_MODE_VALID_MASK ((ONE_UL << MODE_11BE_EHT80_80) | \
242 (ONE_UL << MODE_11BE_EHT160) | \
243 (ONE_UL << MODE_11BE_EHT240) | \
244 (ONE_UL << MODE_11BE_EHT160_160) | \
245 (ONE_UL << MODE_11BE_EHT320))
246
247 #define EHT320_MODE_VALID_MASK ((ONE_UL << MODE_11BE_EHT160_160) | \
248 (ONE_UL << MODE_11BE_EHT320))
249
250 /* LDPC mask definition */
251 #define EHT20_LDPC_ONLY_MASKS (EHT20_MODE_VALID_MASK | INVALID_BCC_RATE)
252 #define EHT40_LDPC_ONLY_MASKS (EHT40_MODE_VALID_MASK | INVALID_BCC_RATE)
253 #define EHT80_LDPC_ONLY_MASKS (EHT80_MODE_VALID_MASK | INVALID_BCC_RATE)
254 #define EHT160_LDPC_ONLY_MASKS (EHT160_MODE_VALID_MASK | INVALID_BCC_RATE)
255 #define EHT320_LDPC_ONLY_MASKS (EHT320_MODE_VALID_MASK | INVALID_BCC_RATE)
256 #define EHT_INVALID_RATES_MASK 0
257 #endif /* WLAN_FEATURE_11BE */
258
259 static const struct DP_CMN_RATE_TABLE dp_11abgnratetable = {
260 {
261 /* When number of spatial streams > 4 or 11AX support is enabled */
262
263 /* 0 11 Mb */ { CCK_MODE_VALID_MASK, DP_CMN_MOD_IEEE80211_T_CCK,
264 11000, 11000, 0, 0, 0, 11000,
265 0x100 },
266 /* 1 5.5 Mb */ { CCK_MODE_VALID_MASK, DP_CMN_MOD_IEEE80211_T_CCK,
267 5500, 5500, 0, 0, 0, 5500, 0x101
268 },
269 /* 2 2 Mb */ { CCK_MODE_VALID_MASK, DP_CMN_MOD_IEEE80211_T_CCK,
270 2000, 2000, 0, 0, 0, 2000, 0x102
271 },
272 /* 3 1 Mb */ { CCK_MODE_VALID_MASK, DP_CMN_MOD_IEEE80211_T_CCK,
273 1000, 1000, 0, 0, 0, 1000, 0x103
274 },
275 /* 4 48 Mb */ { OFDM_MODE_VALID_MASK, DP_CMN_MOD_IEEE80211_T_OFDM,
276 48000, 48000, 0, 0, 0, 48000,
277 0x000 },
278 /* 5 24 Mb */ { OFDM_MODE_VALID_MASK, DP_CMN_MOD_IEEE80211_T_OFDM,
279 24000, 24000, 0, 0, 0, 24000,
280 0x001 },
281 /* 6 12 Mb */ { OFDM_MODE_VALID_MASK, DP_CMN_MOD_IEEE80211_T_OFDM,
282 12000, 12000, 0, 0, 0, 12000,
283 0x002 },
284 /* 7 6 Mb */ { OFDM_MODE_VALID_MASK, DP_CMN_MOD_IEEE80211_T_OFDM,
285 6000, 6000, 0, 0, 0, 6000,
286 0x003 },
287 /* 8 54 Mb */ { OFDM_MODE_VALID_MASK, DP_CMN_MOD_IEEE80211_T_OFDM,
288 54000, 54000, 0, 0, 0, 54000,
289 0x004 },
290 /* 9 36 Mb */ { OFDM_MODE_VALID_MASK, DP_CMN_MOD_IEEE80211_T_OFDM,
291 36000, 36000, 0, 0, 0, 36000,
292 0x005 },
293 /* 10 18 Mb */ { OFDM_MODE_VALID_MASK,
294 DP_CMN_MOD_IEEE80211_T_OFDM,
295 18000, 18000, 0, 0, 0, 18000,
296 0x006 },
297 /* 11 9 Mb */ { OFDM_MODE_VALID_MASK,
298 DP_CMN_MOD_IEEE80211_T_OFDM,
299 9000, 9000, 0, 0, 0, 9000,
300 0x007},
301
302 /* 12 MCS-00 */ { HT20_MODE_VALID_MASK,
303 DP_CMN_MOD_IEEE80211_T_HT_20, 6500,
304 7200, 0, 0, 0, 6500, 0x200 },
305 /* 13 MCS-01 */ { HT20_MODE_VALID_MASK,
306 DP_CMN_MOD_IEEE80211_T_HT_20, 13000,
307 14400, 0, 0, 0, 13000, 0x201 },
308 /* 14 MCS-02 */ { HT20_MODE_VALID_MASK,
309 DP_CMN_MOD_IEEE80211_T_HT_20, 19500,
310 21700, 0, 0, 0, 19500, 0x202 },
311 /* 15 MCS-03 */ { HT20_MODE_VALID_MASK,
312 DP_CMN_MOD_IEEE80211_T_HT_20, 26000,
313 28900, 0, 0, 0, 26000, 0x203 },
314 /* 16 MCS-04 */ { HT20_MODE_VALID_MASK,
315 DP_CMN_MOD_IEEE80211_T_HT_20, 39000,
316 43300, 0, 0, 0, 39000, 0x204 },
317 /* 17 MCS-05 */ { HT20_MODE_VALID_MASK,
318 DP_CMN_MOD_IEEE80211_T_HT_20, 52000,
319 57800, 0, 0, 0, 52000, 0x205 },
320 /* 18 MCS-06 */ { HT20_MODE_VALID_MASK,
321 DP_CMN_MOD_IEEE80211_T_HT_20, 58500,
322 65000, 0, 0, 0, 58500, 0x206 },
323 /* 19 MCS-07 */ { HT20_MODE_VALID_MASK,
324 DP_CMN_MOD_IEEE80211_T_HT_20, 65000,
325 72200, 0, 0, 0, 65000, 0x207 },
326 /* When number of spatial streams > 1 */
327 /* 20 MCS-00 */ { HT20_MODE_VALID_MASK,
328 DP_CMN_MOD_IEEE80211_T_HT_20, 13000,
329 14400, 0, 0, 0, 13000, 0x220 },
330 /* 21 MCS-01 */ { HT20_MODE_VALID_MASK,
331 DP_CMN_MOD_IEEE80211_T_HT_20, 26000,
332 28900, 0, 0, 0, 26000, 0x221 },
333 /* 22 MCS-02 */ { HT20_MODE_VALID_MASK,
334 DP_CMN_MOD_IEEE80211_T_HT_20, 39000,
335 43300, 0, 0, 0, 39000, 0x222 },
336 /* 23 MCS-03 */ { HT20_MODE_VALID_MASK,
337 DP_CMN_MOD_IEEE80211_T_HT_20, 52000,
338 57800, 0, 0, 0, 52000, 0x223 },
339 /* 24 MCS-04 */ { HT20_MODE_VALID_MASK,
340 DP_CMN_MOD_IEEE80211_T_HT_20, 78000,
341 86700, 0, 0, 0, 78000, 0x224 },
342 /* 25 MCS-05 */ { HT20_MODE_VALID_MASK,
343 DP_CMN_MOD_IEEE80211_T_HT_20, 104000,
344 115600, 0, 0, 0, 104000, 0x225 },
345 /* 26 MCS-06 */ { HT20_MODE_VALID_MASK,
346 DP_CMN_MOD_IEEE80211_T_HT_20, 117000,
347 130000, 0, 0, 0, 117000, 0x226 },
348 /* 27 MCS-07 */ { HT20_MODE_VALID_MASK,
349 DP_CMN_MOD_IEEE80211_T_HT_20, 130000,
350 144000, 0, 0, 0, 130000, 0x227 },
351 /* When number of spatial streams > 2 */
352 /* 28 MCS-00 */ { HT20_MODE_VALID_MASK,
353 DP_CMN_MOD_IEEE80211_T_HT_20, 19500,
354 21700, 0, 0, 0, 19500, 0x240 },
355 /* 29 MCS-01 */ { HT20_MODE_VALID_MASK,
356 DP_CMN_MOD_IEEE80211_T_HT_20, 39000,
357 43300, 0, 0, 0, 39000, 0x241 },
358 /* 30 MCS-02 */ { HT20_MODE_VALID_MASK,
359 DP_CMN_MOD_IEEE80211_T_HT_20, 58500,
360 65000, 0, 0, 0, 58500, 0x242 },
361 /* 31 MCS-03 */ { HT20_MODE_VALID_MASK,
362 DP_CMN_MOD_IEEE80211_T_HT_20, 78000,
363 86700, 0, 0, 0, 78000, 0x243 },
364 /* 32 MCS-04 */ { HT20_MODE_VALID_MASK,
365 DP_CMN_MOD_IEEE80211_T_HT_20, 117000,
366 130000, 0, 0, 0, 117000, 0x244 },
367 /* 33 MCS-05 */ { HT20_MODE_VALID_MASK,
368 DP_CMN_MOD_IEEE80211_T_HT_20, 156000,
369 173300, 0, 0, 0, 156000, 0x245 },
370 /* 34 MCS-06 */ { HT20_MODE_VALID_MASK,
371 DP_CMN_MOD_IEEE80211_T_HT_20, 175500,
372 195000, 0, 0, 0, 175500, 0x246 },
373 /* 35 MCS-07 */ { HT20_MODE_VALID_MASK,
374 DP_CMN_MOD_IEEE80211_T_HT_20, 195000,
375 216700, 0, 0, 0, 195000, 0x247 },
376 /* When number of spatial streams > 3 */
377 /* 36 MCS-00 */ { HT20_MODE_VALID_MASK,
378 DP_CMN_MOD_IEEE80211_T_HT_20, 26000,
379 28900, 0, 0, 0, 26000, 0x260 },
380 /* 37 MCS-01 */ { HT20_MODE_VALID_MASK,
381 DP_CMN_MOD_IEEE80211_T_HT_20, 52000,
382 57800, 0, 0, 0, 52000, 0x261 },
383 /* 38 MCS-02 */ { HT20_MODE_VALID_MASK,
384 DP_CMN_MOD_IEEE80211_T_HT_20, 78000,
385 86700, 0, 0, 0, 78000, 0x262 },
386 /* 39 MCS-03 */ { HT20_MODE_VALID_MASK,
387 DP_CMN_MOD_IEEE80211_T_HT_20, 104000,
388 115600, 0, 0, 0, 104000, 0x263 },
389 /* 40 MCS-04 */ { HT20_MODE_VALID_MASK,
390 DP_CMN_MOD_IEEE80211_T_HT_20, 156000,
391 173300, 0, 0, 0, 156000, 0x264 },
392 /* 41 MCS-05 */ { HT20_MODE_VALID_MASK,
393 DP_CMN_MOD_IEEE80211_T_HT_20, 208000,
394 231100, 0, 0, 0, 208000, 0x265 },
395 /* 42 MCS-06 */ { HT20_MODE_VALID_MASK,
396 DP_CMN_MOD_IEEE80211_T_HT_20, 234000,
397 260000, 0, 0, 0, 234000, 0x266 },
398 /* 43 MCS-07 */ { HT20_MODE_VALID_MASK,
399 DP_CMN_MOD_IEEE80211_T_HT_20, 260000,
400 288900, 0, 0, 0, 260000, 0x267 },
401
402 /* 11n HT40 rates */
403 /* 44 MCS-00 */ { HT40_MODE_VALID_MASK,
404 DP_CMN_MOD_IEEE80211_T_HT_40, 13500,
405 15000, 0, 0, 0, 13500, 0x200 },
406 /* 45 MCS-01 */ { HT40_MODE_VALID_MASK,
407 DP_CMN_MOD_IEEE80211_T_HT_40, 27000,
408 30000, 0, 0, 0, 27000, 0x201 },
409 /* 46 MCS-02 */ { HT40_MODE_VALID_MASK,
410 DP_CMN_MOD_IEEE80211_T_HT_40, 40500,
411 45000, 0, 0, 0, 40500, 0x202 },
412 /* 47 MCS-03 */ { HT40_MODE_VALID_MASK,
413 DP_CMN_MOD_IEEE80211_T_HT_40, 54000,
414 60000, 0, 0, 0, 54000, 0x203 },
415 /* 48 MCS-04 */ { HT40_MODE_VALID_MASK,
416 DP_CMN_MOD_IEEE80211_T_HT_40, 81500,
417 90000, 0, 0, 0, 81500, 0x204 },
418 /* 49 MCS-05 */ { HT40_MODE_VALID_MASK,
419 DP_CMN_MOD_IEEE80211_T_HT_40, 108000,
420 120000, 0, 0, 0, 108000, 0x205 },
421 /* 50 MCS-06 */ { HT40_MODE_VALID_MASK,
422 DP_CMN_MOD_IEEE80211_T_HT_40, 121500,
423 135000, 0, 0, 0, 121500, 0x206 },
424 /* 51 MCS-07 */ { HT40_MODE_VALID_MASK,
425 DP_CMN_MOD_IEEE80211_T_HT_40, 135000,
426 150000, 0, 0, 0, 135000, 0x207 },
427 /* When number of spatial streams > 1 */
428 /* 52 MCS-00 */ { HT40_MODE_VALID_MASK,
429 DP_CMN_MOD_IEEE80211_T_HT_40, 27000,
430 30000, 0, 0, 0, 27000, 0x220 },
431 /* 53 MCS-01 */ { HT40_MODE_VALID_MASK,
432 DP_CMN_MOD_IEEE80211_T_HT_40, 54000,
433 60000, 0, 0, 0, 54000, 0x221 },
434 /* 54 MCS-02 */ { HT40_MODE_VALID_MASK,
435 DP_CMN_MOD_IEEE80211_T_HT_40, 81000,
436 90000, 0, 0, 0, 81000, 0x222 },
437 /* 55 MCS-03 */ { HT40_MODE_VALID_MASK,
438 DP_CMN_MOD_IEEE80211_T_HT_40, 108000,
439 120000, 0, 0, 0, 108000, 0x223 },
440 /* 56 MCS-04 */ { HT40_MODE_VALID_MASK,
441 DP_CMN_MOD_IEEE80211_T_HT_40, 162000,
442 180000, 0, 0, 0, 162000, 0x224 },
443 /* 57 MCS-05 */ { HT40_MODE_VALID_MASK,
444 DP_CMN_MOD_IEEE80211_T_HT_40, 216000,
445 240000, 0, 0, 0, 216000, 0x225 },
446 /* 58 MCS-06 */ { HT40_MODE_VALID_MASK,
447 DP_CMN_MOD_IEEE80211_T_HT_40, 243000,
448 270000, 0, 0, 0, 243000, 0x226 },
449 /* 59 MCS-07 */ { HT40_MODE_VALID_MASK,
450 DP_CMN_MOD_IEEE80211_T_HT_40, 270000,
451 300000, 0, 0, 0, 270000, 0x227 },
452 /* When number of spatial streams > 2 */
453 /* 60 MCS-00 */ { HT40_MODE_VALID_MASK,
454 DP_CMN_MOD_IEEE80211_T_HT_40, 40500,
455 45000, 0, 0, 0, 40500, 0x240 },
456 /* 61 MCS-01 */ { HT40_MODE_VALID_MASK,
457 DP_CMN_MOD_IEEE80211_T_HT_40, 81000,
458 90000, 0, 0, 0, 81000, 0x241 },
459 /* 62 MCS-02 */ { HT40_MODE_VALID_MASK,
460 DP_CMN_MOD_IEEE80211_T_HT_40, 121500,
461 135000, 0, 0, 0, 121500, 0x242 },
462 /* 63 MCS-03 */ { HT40_MODE_VALID_MASK,
463 DP_CMN_MOD_IEEE80211_T_HT_40, 162000,
464 180000, 0, 0, 0, 162000, 0x243 },
465 /* 64 MCS-04 */ { HT40_MODE_VALID_MASK,
466 DP_CMN_MOD_IEEE80211_T_HT_40, 243000,
467 270000, 0, 0, 0, 243000, 0x244 },
468 /* 65 MCS-05 */ { HT40_MODE_VALID_MASK,
469 DP_CMN_MOD_IEEE80211_T_HT_40, 324000,
470 360000, 0, 0, 0, 324000, 0x245 },
471 /* 66 MCS-06 */ { HT40_MODE_VALID_MASK,
472 DP_CMN_MOD_IEEE80211_T_HT_40, 364500,
473 405000, 0, 0, 0, 364500, 0x246 },
474 /* 67 MCS-07 */ { HT40_MODE_VALID_MASK,
475 DP_CMN_MOD_IEEE80211_T_HT_40, 405000,
476 450000, 0, 0, 0, 405000, 0x247 },
477 /* When number of spatial streams > 3 */
478 /* 68 MCS-00 */ { HT40_MODE_VALID_MASK,
479 DP_CMN_MOD_IEEE80211_T_HT_40, 54000,
480 60000, 0, 0, 0, 54000, 0x260 },
481 /* 69 MCS-01 */ { HT40_MODE_VALID_MASK,
482 DP_CMN_MOD_IEEE80211_T_HT_40, 108000,
483 120000, 0, 0, 0, 108000, 0x261 },
484 /* 70 MCS-02 */ { HT40_MODE_VALID_MASK,
485 DP_CMN_MOD_IEEE80211_T_HT_40, 162000,
486 180000, 0, 0, 0, 162000, 0x262 },
487 /* 71 MCS-03 */ { HT40_MODE_VALID_MASK,
488 DP_CMN_MOD_IEEE80211_T_HT_40, 216000,
489 240000, 0, 0, 0, 216000, 0x263 },
490 /* 72 MCS-04 */ { HT40_MODE_VALID_MASK,
491 DP_CMN_MOD_IEEE80211_T_HT_40, 324000,
492 360000, 0, 0, 0, 324000, 0x264 },
493 /* 73 MCS-05 */ { HT40_MODE_VALID_MASK,
494 DP_CMN_MOD_IEEE80211_T_HT_40, 432000,
495 480000, 0, 0, 0, 432000, 0x265 },
496 /* 74 MCS-06 */ { HT40_MODE_VALID_MASK,
497 DP_CMN_MOD_IEEE80211_T_HT_40, 486000,
498 540000, 0, 0, 0, 486000, 0x266 },
499 /* 75 MCS-07 */ { HT40_MODE_VALID_MASK,
500 DP_CMN_MOD_IEEE80211_T_HT_40, 540000,
501 600000, 0, 0, 0, 540000, 0x267 },
502
503 /* 11ac VHT20 rates */
504 /* 76 MCS-00 */ { VHT20_MODE_VALID_MASK,
505 DP_CMN_MOD_IEEE80211_T_VHT_20, 6500,
506 7200, 0, 0, 0, 6500, 0x300 },
507 /* 77 MCS-01 */ { VHT20_MODE_VALID_MASK,
508 DP_CMN_MOD_IEEE80211_T_VHT_20, 13000,
509 14400, 0, 0, 0, 13000, 0x301 },
510 /* 78 MCS-02 */ { VHT20_MODE_VALID_MASK,
511 DP_CMN_MOD_IEEE80211_T_VHT_20, 19500,
512 21700, 0, 0, 0, 19500, 0x302 },
513 /* 79 MCS-03 */ { VHT20_MODE_VALID_MASK,
514 DP_CMN_MOD_IEEE80211_T_VHT_20, 26000,
515 28900, 0, 0, 0, 26000, 0x303 },
516 /* 80 MCS-04 */ { VHT20_MODE_VALID_MASK,
517 DP_CMN_MOD_IEEE80211_T_VHT_20, 39000,
518 43300, 0, 0, 0, 39000, 0x304 },
519 /* 81 MCS-05 */ { VHT20_MODE_VALID_MASK,
520 DP_CMN_MOD_IEEE80211_T_VHT_20, 52000,
521 57800, 0, 0, 0, 52000, 0x305 },
522 /* 82 MCS-06 */ { VHT20_MODE_VALID_MASK,
523 DP_CMN_MOD_IEEE80211_T_VHT_20, 58500,
524 65000, 0, 0, 0, 58500, 0x306 },
525 /* 83 MCS-07 */ { VHT20_MODE_VALID_MASK,
526 DP_CMN_MOD_IEEE80211_T_VHT_20, 65000,
527 72200, 0, 0, 0, 65000, 0x307 },
528 /* 84 MCS-08 */ { VHT20_MODE_VALID_MASK,
529 DP_CMN_MOD_IEEE80211_T_VHT_20, 78000,
530 86700, 0, 0, 0, 78000, 0x308 },
531 /* 85 MCS-09 */ { VHT20_LDPC_ONLY_MASKS,
532 DP_CMN_MOD_IEEE80211_T_VHT_20, 86500,
533 96000, 0, 0, 0, 86500, 0x309 },
534 /* When we support very high throughput MCS */
535 /* 86 MCS-10 */ { VHT20_LDPC_ONLY_MASKS,
536 DP_CMN_MOD_IEEE80211_T_VHT_20,
537 97500, 108300, 0, 0, 0,
538 97500, 0x30a},
539 /* 87 MCS-11 */ { VHT20_LDPC_ONLY_MASKS,
540 DP_CMN_MOD_IEEE80211_T_VHT_20,
541 108300, 120400, 0, 0, 0,
542 108300, 0x30b},
543
544 /* When number of spatial streams > 1 */
545 /* 88 MCS-00 */ { VHT20_MODE_VALID_MASK,
546 DP_CMN_MOD_IEEE80211_T_VHT_20, 13000,
547 14400, 0, 0, 0, 13000, 0x320 },
548 /* 89 MCS-01 */ { VHT20_MODE_VALID_MASK,
549 DP_CMN_MOD_IEEE80211_T_VHT_20, 26000,
550 28900, 0, 0, 0, 26000, 0x321 },
551 /* 90 MCS-02 */ { VHT20_MODE_VALID_MASK,
552 DP_CMN_MOD_IEEE80211_T_VHT_20, 39000,
553 43300, 0, 0, 0, 39000, 0x322 },
554 /* 91 MCS-03 */ { VHT20_MODE_VALID_MASK,
555 DP_CMN_MOD_IEEE80211_T_VHT_20, 52000,
556 57800, 0, 0, 0, 52000, 0x323 },
557 /* 92 MCS-04 */ { VHT20_MODE_VALID_MASK,
558 DP_CMN_MOD_IEEE80211_T_VHT_20, 78000,
559 86700, 0, 0, 0, 78000, 0x324 },
560 /* 93 MCS-05 */ { VHT20_MODE_VALID_MASK,
561 DP_CMN_MOD_IEEE80211_T_VHT_20, 104000,
562 115600, 0, 0, 0, 104000, 0x325 },
563 /* 94 MCS-06 */ { VHT20_MODE_VALID_MASK,
564 DP_CMN_MOD_IEEE80211_T_VHT_20, 117000,
565 130000, 0, 0, 0, 117000, 0x326 },
566 /* 95 MCS-07 */ { VHT20_MODE_VALID_MASK,
567 DP_CMN_MOD_IEEE80211_T_VHT_20, 130000,
568 144400, 0, 0, 0, 130000, 0x327 },
569 /* 96 MCS-08 */ { VHT20_MODE_VALID_MASK,
570 DP_CMN_MOD_IEEE80211_T_VHT_20, 156000,
571 173300, 0, 0, 0, 156000, 0x328 },
572 /* 97 MCS-09 */ { VHT20_LDPC_ONLY_MASKS,
573 DP_CMN_MOD_IEEE80211_T_VHT_20, 173000,
574 192000, 0, 0, 0, 173000, 0x329 },
575 /* 98 MCS-10 */ { VHT20_LDPC_ONLY_MASKS,
576 DP_CMN_MOD_IEEE80211_T_VHT_20,
577 195000, 216700, 0, 0, 0,
578 195000, 0x32a },
579 /* 99 MCS-11 */ { VHT20_LDPC_ONLY_MASKS,
580 DP_CMN_MOD_IEEE80211_T_VHT_20,
581 216700, 240700, 0, 0, 0,
582 216700, 0x32b },
583
584 /* when number of spatial streams > 2 */
585 /* 100 MCS-00 */ { VHT20_MODE_VALID_MASK,
586 DP_CMN_MOD_IEEE80211_T_VHT_20, 19500,
587 21700, 0, 0, 0, 19500, 0x340 },
588 /* 101 MCS-01 */ { VHT20_MODE_VALID_MASK,
589 DP_CMN_MOD_IEEE80211_T_VHT_20, 39000,
590 43300, 0, 0, 0, 39000, 0x341 },
591 /* 102 MCS-02 */ { VHT20_MODE_VALID_MASK,
592 DP_CMN_MOD_IEEE80211_T_VHT_20, 58500,
593 65000, 0, 0, 0, 58500, 0x342 },
594 /* 103 MCS-03 */ { VHT20_MODE_VALID_MASK,
595 DP_CMN_MOD_IEEE80211_T_VHT_20, 78000,
596 86700, 0, 0, 0, 78000, 0x343 },
597 /* 104 MCS-04 */ { VHT20_MODE_VALID_MASK,
598 DP_CMN_MOD_IEEE80211_T_VHT_20, 117000,
599 130000, 0, 0, 0, 117000, 0x344 },
600 /* 105 MCS-05 */ { VHT20_MODE_VALID_MASK,
601 DP_CMN_MOD_IEEE80211_T_VHT_20, 156000,
602 173300, 0, 0, 0, 156000, 0x345 },
603 /* 106 MCS-06 */ { VHT20_MODE_VALID_MASK,
604 DP_CMN_MOD_IEEE80211_T_VHT_20, 175500,
605 195000, 0, 0, 0, 175500, 0x346 },
606 /* 107 MCS-07 */ { VHT20_MODE_VALID_MASK,
607 DP_CMN_MOD_IEEE80211_T_VHT_20, 195000,
608 216700, 0, 0, 0, 195000, 0x347 },
609 /* 108 MCS-08 */ { VHT20_MODE_VALID_MASK,
610 DP_CMN_MOD_IEEE80211_T_VHT_20, 234000,
611 260000, 0, 0, 0, 234000, 0x348 },
612 /* 109 MCS-09 */ { VHT20_MODE_VALID_MASK,
613 DP_CMN_MOD_IEEE80211_T_VHT_20, 260000,
614 288900, 0, 0, 0, 260000, 0x349 },
615 /* 110 MCS-10 */ { VHT20_LDPC_ONLY_MASKS,
616 DP_CMN_MOD_IEEE80211_T_VHT_20,
617 292500, 325000, 0, 0, 0,
618 292500, 0x34a},
619 /* 111 MCS-11 */ { VHT20_LDPC_ONLY_MASKS,
620 DP_CMN_MOD_IEEE80211_T_VHT_20,
621 325000, 361100, 0, 0, 0,
622 325000, 0x34b},
623
624 /* when number of spatial streams > 3 */
625 /* 112 MCS-00 */ { VHT20_MODE_VALID_MASK,
626 DP_CMN_MOD_IEEE80211_T_VHT_20, 26000,
627 28900, 0, 0, 0, 26000, 0x360 },
628 /* 113 MCS-01 */ { VHT20_MODE_VALID_MASK,
629 DP_CMN_MOD_IEEE80211_T_VHT_20, 52000,
630 57800, 0, 0, 0, 52000, 0x361 },
631 /* 114 MCS-02 */ { VHT20_MODE_VALID_MASK,
632 DP_CMN_MOD_IEEE80211_T_VHT_20, 78000,
633 86700, 0, 0, 0, 78000, 0x362 },
634 /* 115 MCS-03 */ { VHT20_MODE_VALID_MASK,
635 DP_CMN_MOD_IEEE80211_T_VHT_20, 104000,
636 115600, 0, 0, 0, 104000, 0x363 },
637 /* 116 MCS-04 */ { VHT20_MODE_VALID_MASK,
638 DP_CMN_MOD_IEEE80211_T_VHT_20, 156000,
639 173300, 0, 0, 0, 156000, 0x364 },
640 /* 117 MCS-05 */ { VHT20_MODE_VALID_MASK,
641 DP_CMN_MOD_IEEE80211_T_VHT_20, 208000,
642 231100, 0, 0, 0, 208000, 0x365 },
643 /* 118 MCS-06 */ { VHT20_MODE_VALID_MASK,
644 DP_CMN_MOD_IEEE80211_T_VHT_20, 234000,
645 260000, 0, 0, 0, 234000, 0x366 },
646 /* 119 MCS-07 */ { VHT20_MODE_VALID_MASK,
647 DP_CMN_MOD_IEEE80211_T_VHT_20, 260000,
648 288900, 0, 0, 0, 260000, 0x367 },
649 /* 120 MCS-08 */ { VHT20_MODE_VALID_MASK,
650 DP_CMN_MOD_IEEE80211_T_VHT_20, 312000,
651 346700, 0, 0, 0, 312000, 0x368 },
652 /* 121 MCS-09 */ { VHT20_LDPC_ONLY_MASKS,
653 DP_CMN_MOD_IEEE80211_T_VHT_20, 344000,
654 378400, 0, 0, 0, 344000, 0x369 },
655 /* 122 MCS-10 */ { VHT20_LDPC_ONLY_MASKS,
656 DP_CMN_MOD_IEEE80211_T_VHT_20,
657 390000, 433300, 0, 0, 0, 390000,
658 0x36a},
659 /* 123 MCS-11 */ { VHT20_LDPC_ONLY_MASKS,
660 DP_CMN_MOD_IEEE80211_T_VHT_20, 433300,
661 481500, 0, 0, 0, 433300, 0x36b},
662
663 /* when number of spatial streams > 4 */
664 /* 124 MCS-00 */ { VHT20_LDPC_ONLY_MASKS,
665 DP_CMN_MOD_IEEE80211_T_VHT_20, 32500,
666 36100, 0, 0, 0, 32500, 0x380 },
667 /* 125 MCS-01 */ { VHT20_LDPC_ONLY_MASKS,
668 DP_CMN_MOD_IEEE80211_T_VHT_20, 65000,
669 72200, 0, 0, 0, 65000, 0x381 },
670 /* 126 MCS-02 */ { VHT20_LDPC_ONLY_MASKS,
671 DP_CMN_MOD_IEEE80211_T_VHT_20, 97500,
672 108300, 0, 0, 0, 97500, 0x382 },
673 /* 127 MCS-03 */ { VHT20_LDPC_ONLY_MASKS,
674 DP_CMN_MOD_IEEE80211_T_VHT_20, 130000,
675 144400, 0, 0, 0, 130000, 0x383 },
676 /* 128 MCS-04 */ { VHT20_LDPC_ONLY_MASKS,
677 DP_CMN_MOD_IEEE80211_T_VHT_20, 195000,
678 216700, 0, 0, 0, 195000, 0x384 },
679 /* 129 MCS-05 */ { VHT20_LDPC_ONLY_MASKS,
680 DP_CMN_MOD_IEEE80211_T_VHT_20, 260000,
681 288900, 0, 0, 0, 260000, 0x385 },
682 /* 130 MCS-06 */ { VHT20_LDPC_ONLY_MASKS,
683 DP_CMN_MOD_IEEE80211_T_VHT_20, 292500,
684 325000, 0, 0, 0, 292500, 0x386 },
685 /* 131 MCS-07 */ { VHT20_LDPC_ONLY_MASKS,
686 DP_CMN_MOD_IEEE80211_T_VHT_20, 325000,
687 361100, 0, 0, 0, 325000, 0x387 },
688 /* 132 MCS-08 */ { VHT20_LDPC_ONLY_MASKS,
689 DP_CMN_MOD_IEEE80211_T_VHT_20, 390000,
690 433300, 0, 0, 0, 390000, 0x388 },
691 /* 133 MCS-09 */ { VHT20_LDPC_ONLY_MASKS,
692 DP_CMN_MOD_IEEE80211_T_VHT_20, 433300,
693 481500, 0, 0, 0, 433300, 0x389 },
694 /* 134 MCS-10 */ { VHT20_LDPC_ONLY_MASKS,
695 DP_CMN_MOD_IEEE80211_T_VHT_20, 487500,
696 541700, 0, 0, 0, 487500, 0x38a },
697 /* 135 MCS-11 */ { VHT20_LDPC_ONLY_MASKS,
698 DP_CMN_MOD_IEEE80211_T_VHT_20, 541700,
699 601900, 0, 0, 0, 541700, 0x38b },
700
701 /* When number of spatial streams > 5 */
702 /* 136 MCS-00 */ { VHT20_LDPC_ONLY_MASKS,
703 DP_CMN_MOD_IEEE80211_T_VHT_20, 39000,
704 43300, 0, 0, 0, 39000, 0x3a0 },
705 /* 137 MCS-01 */ { VHT20_LDPC_ONLY_MASKS,
706 DP_CMN_MOD_IEEE80211_T_VHT_20, 78000,
707 86700, 0, 0, 0, 78000, 0x3a1 },
708 /* 138 MCS-02 */ { VHT20_LDPC_ONLY_MASKS,
709 DP_CMN_MOD_IEEE80211_T_VHT_20, 117000,
710 130000, 0, 0, 0, 117000, 0x3a2 },
711 /* 139 MCS-03 */ { VHT20_LDPC_ONLY_MASKS,
712 DP_CMN_MOD_IEEE80211_T_VHT_20, 156000,
713 173300, 0, 0, 0, 156000, 0x3a3 },
714 /* 140 MCS-04 */ { VHT20_LDPC_ONLY_MASKS,
715 DP_CMN_MOD_IEEE80211_T_VHT_20, 234000,
716 260000, 0, 0, 0, 234000, 0x3a4 },
717 /* 141 MCS-05 */ { VHT20_LDPC_ONLY_MASKS,
718 DP_CMN_MOD_IEEE80211_T_VHT_20, 312000,
719 346700, 0, 0, 0, 312000, 0x3a5 },
720 /* 142 MCS-06 */ { VHT20_LDPC_ONLY_MASKS,
721 DP_CMN_MOD_IEEE80211_T_VHT_20, 351000,
722 390000, 0, 0, 0, 351000, 0x3a6 },
723 /* 143 MCS-07 */ { VHT20_LDPC_ONLY_MASKS,
724 DP_CMN_MOD_IEEE80211_T_VHT_20, 390000,
725 433300, 0, 0, 0, 390000, 0x3a7 },
726 /* 144 MCS-08 */ { VHT20_LDPC_ONLY_MASKS,
727 DP_CMN_MOD_IEEE80211_T_VHT_20, 468000,
728 520000, 0, 0, 0, 468000, 0x3a8 },
729 /* 145 MCS-09 */ { VHT20_LDPC_ONLY_MASKS,
730 DP_CMN_MOD_IEEE80211_T_VHT_20, 520000,
731 577800, 0, 0, 0, 520000, 0x3a9 },
732 /* 146 MCS-10 */ { VHT20_LDPC_ONLY_MASKS,
733 DP_CMN_MOD_IEEE80211_T_VHT_20,
734 585000, 650000, 0, 0, 0,
735 585000, 0x3aa },
736 /* 147 MCS-11 */ { VHT20_LDPC_ONLY_MASKS,
737 DP_CMN_MOD_IEEE80211_T_VHT_20,
738 650000, 722200, 0, 0,
739 0, 650000, 0x3ab },
740
741 /* when number of spatial streams > 6 */
742 /* 148 MCS-00 */ { VHT20_LDPC_ONLY_MASKS,
743 DP_CMN_MOD_IEEE80211_T_VHT_20, 45500,
744 50600, 0, 0, 0, 45500, 0x3c0 },
745 /* 149 MCS-01 */ { VHT20_LDPC_ONLY_MASKS,
746 DP_CMN_MOD_IEEE80211_T_VHT_20, 91000,
747 101100, 0, 0, 0, 91000, 0x3c1 },
748 /* 150 MCS-02 */ { VHT20_LDPC_ONLY_MASKS,
749 DP_CMN_MOD_IEEE80211_T_VHT_20, 136500,
750 151700, 0, 0, 0, 136500, 0x3c2 },
751 /* 151 MCS-03 */ { VHT20_LDPC_ONLY_MASKS,
752 DP_CMN_MOD_IEEE80211_T_VHT_20, 182000,
753 202200, 0, 0, 0, 182000, 0x3c3 },
754 /* 152 MCS-04 */ { VHT20_LDPC_ONLY_MASKS,
755 DP_CMN_MOD_IEEE80211_T_VHT_20, 273000,
756 303300, 0, 0, 0, 273000, 0x3c4 },
757 /* 153 MCS-05 */ { VHT20_LDPC_ONLY_MASKS,
758 DP_CMN_MOD_IEEE80211_T_VHT_20, 364000,
759 404400, 0, 0, 0, 364000, 0x3c5 },
760 /* 154 MCS-06 */ { VHT20_LDPC_ONLY_MASKS,
761 DP_CMN_MOD_IEEE80211_T_VHT_20, 409500,
762 455000, 0, 0, 0, 409500, 0x3c6 },
763 /* 155 MCS-07 */ { VHT20_LDPC_ONLY_MASKS,
764 DP_CMN_MOD_IEEE80211_T_VHT_20, 455000,
765 505600, 0, 0, 0, 455000, 0x3c7 },
766 /* 156 MCS-08 */ { VHT20_LDPC_ONLY_MASKS,
767 DP_CMN_MOD_IEEE80211_T_VHT_20, 546000,
768 606700, 0, 0, 0, 546000, 0x3c8 },
769 /* 157 MCS-09 */ { VHT20_LDPC_ONLY_MASKS,
770 DP_CMN_MOD_IEEE80211_T_VHT_20, 606700,
771 674100, 0, 0, 0, 606700, 0x3c9 },
772 /* 158 MCS-10 */ { VHT20_LDPC_ONLY_MASKS,
773 DP_CMN_MOD_IEEE80211_T_VHT_20, 682500,
774 758300, 0, 0, 0, 682500, 0x3ca },
775 /* 159 MCS-11 */ { VHT20_LDPC_ONLY_MASKS,
776 DP_CMN_MOD_IEEE80211_T_VHT_20, 758300,
777 842600, 0, 0, 0, 758300, 0x3cb },
778
779 /* when number of spatial streams > 7 */
780 /* 160 MCS-00 */ { VHT20_LDPC_ONLY_MASKS,
781 DP_CMN_MOD_IEEE80211_T_VHT_20, 52000,
782 57800, 0, 0, 0, 52000, 0x3e0 },
783 /* 161 MCS-01 */ { VHT20_LDPC_ONLY_MASKS,
784 DP_CMN_MOD_IEEE80211_T_VHT_20, 104000,
785 115600, 0, 0, 0, 104000, 0x3e1 },
786 /* 162 MCS-02 */ { VHT20_LDPC_ONLY_MASKS,
787 DP_CMN_MOD_IEEE80211_T_VHT_20, 156000,
788 173300, 0, 0, 0, 156000, 0x3e2 },
789 /* 163 MCS-03 */ { VHT20_LDPC_ONLY_MASKS,
790 DP_CMN_MOD_IEEE80211_T_VHT_20, 208000,
791 231100, 0, 0, 0, 208000, 0x3e3 },
792 /* 164 MCS-04 */ { VHT20_LDPC_ONLY_MASKS,
793 DP_CMN_MOD_IEEE80211_T_VHT_20, 312000,
794 346700, 0, 0, 0, 312000, 0x3e4 },
795 /* 165 MCS-05 */ { VHT20_LDPC_ONLY_MASKS,
796 DP_CMN_MOD_IEEE80211_T_VHT_20, 416000,
797 462200, 0, 0, 0, 416000, 0x3e5 },
798 /* 166 MCS-06 */ { VHT20_LDPC_ONLY_MASKS,
799 DP_CMN_MOD_IEEE80211_T_VHT_20, 468000,
800 520000, 0, 0, 0, 468000, 0x3e6 },
801 /* 167 MCS-07 */ { VHT20_LDPC_ONLY_MASKS,
802 DP_CMN_MOD_IEEE80211_T_VHT_20, 520000,
803 577800, 0, 0, 0, 520000, 0x3e7 },
804 /* 168 MCS-08 */ { VHT20_LDPC_ONLY_MASKS,
805 DP_CMN_MOD_IEEE80211_T_VHT_20, 624000,
806 693300, 0, 0, 0, 624000, 0x3e8 },
807 /* 169 MCS-09 */ { VHT20_LDPC_ONLY_MASKS,
808 DP_CMN_MOD_IEEE80211_T_VHT_20, 693300,
809 770400, 0, 0, 0, 693300, 0x3e9 },
810 /* 170 MCS-10 */ { VHT20_LDPC_ONLY_MASKS,
811 DP_CMN_MOD_IEEE80211_T_VHT_20, 780000,
812 866700, 0, 0, 0, 780000, 0x3ea },
813 /* 171 MCS-11 */ { VHT20_LDPC_ONLY_MASKS,
814 DP_CMN_MOD_IEEE80211_T_VHT_20, 866700,
815 963000, 0, 0, 0, 866700, 0x3eb },
816
817 /* 11ac VHT40 rates */
818 /* 172 MCS-00 */ { VHT40_MODE_VALID_MASK,
819 DP_CMN_MOD_IEEE80211_T_VHT_40, 13500,
820 15000, 0, 0, 0, 13500, 0x300 },
821 /* 173 MCS-01 */ { VHT40_MODE_VALID_MASK,
822 DP_CMN_MOD_IEEE80211_T_VHT_40, 27000,
823 30000, 0, 0, 0, 27000, 0x301 },
824 /* 174 MCS-02 */ { VHT40_MODE_VALID_MASK,
825 DP_CMN_MOD_IEEE80211_T_VHT_40, 40500,
826 45000, 0, 0, 0, 40500, 0x302 },
827 /* 175 MCS-03 */ { VHT40_MODE_VALID_MASK,
828 DP_CMN_MOD_IEEE80211_T_VHT_40, 54000,
829 60000, 0, 0, 0, 54000, 0x303 },
830 /* 176 MCS-04 */ { VHT40_MODE_VALID_MASK,
831 DP_CMN_MOD_IEEE80211_T_VHT_40, 81000,
832 90000, 0, 0, 0, 81000, 0x304 },
833 /* 177 MCS-05 */ { VHT40_MODE_VALID_MASK,
834 DP_CMN_MOD_IEEE80211_T_VHT_40, 108000,
835 120000, 0, 0, 0, 108000, 0x305 },
836 /* 178 MCS-06 */ { VHT40_MODE_VALID_MASK,
837 DP_CMN_MOD_IEEE80211_T_VHT_40, 121500,
838 135000, 0, 0, 0, 121500, 0x306 },
839 /* 179 MCS-07 */ { VHT40_MODE_VALID_MASK,
840 DP_CMN_MOD_IEEE80211_T_VHT_40, 135000,
841 150000, 0, 0, 0, 135000, 0x307 },
842 /* 180 MCS-08 */ { VHT40_MODE_VALID_MASK,
843 DP_CMN_MOD_IEEE80211_T_VHT_40, 162000,
844 180000, 0, 0, 0, 162000, 0x308 },
845 /* 181 MCS-09 */ { VHT40_MODE_VALID_MASK,
846 DP_CMN_MOD_IEEE80211_T_VHT_40, 180000,
847 200000, 0, 0, 0, 180000, 0x309 },
848 /* 182 MCS-10 */ { VHT40_LDPC_ONLY_MASKS,
849 DP_CMN_MOD_IEEE80211_T_VHT_40, 202500,
850 225000, 0, 0, 0, 202500, 0x30a },
851 /* 183 MCS-11 */ { VHT40_LDPC_ONLY_MASKS,
852 DP_CMN_MOD_IEEE80211_T_VHT_40, 225000,
853 250000, 0, 0, 0, 225000, 0x30b },
854
855 /* when number of spatial streams > 1 */
856 /* 184 MCS-00 */ { VHT40_MODE_VALID_MASK,
857 DP_CMN_MOD_IEEE80211_T_VHT_40, 27000,
858 30000, 0, 0, 0, 27000, 0x320 },
859 /* 185 MCS-01 */ { VHT40_MODE_VALID_MASK,
860 DP_CMN_MOD_IEEE80211_T_VHT_40, 54000,
861 60000, 0, 0, 0, 54000, 0x321 },
862 /* 186 MCS-02 */ { VHT40_MODE_VALID_MASK,
863 DP_CMN_MOD_IEEE80211_T_VHT_40, 81000,
864 90000, 0, 0, 0, 81000, 0x322 },
865 /* 187 MCS-03 */ { VHT40_MODE_VALID_MASK,
866 DP_CMN_MOD_IEEE80211_T_VHT_40, 108000,
867 120000, 0, 0, 0, 108000, 0x323 },
868 /* 188 MCS-04 */ { VHT40_MODE_VALID_MASK,
869 DP_CMN_MOD_IEEE80211_T_VHT_40, 162000,
870 180000, 0, 0, 0, 162000, 0x324 },
871 /* 189 MCS-05 */ { VHT40_MODE_VALID_MASK,
872 DP_CMN_MOD_IEEE80211_T_VHT_40, 216000,
873 240000, 0, 0, 0, 216000, 0x325 },
874 /* 190 MCS-06 */ { VHT40_MODE_VALID_MASK,
875 DP_CMN_MOD_IEEE80211_T_VHT_40, 243000,
876 270000, 0, 0, 0, 243000, 0x326 },
877 /* 191 MCS-07 */ { VHT40_MODE_VALID_MASK,
878 DP_CMN_MOD_IEEE80211_T_VHT_40, 270000,
879 300000, 0, 0, 0, 270000, 0x327 },
880 /* 192 MCS-08 */ { VHT40_MODE_VALID_MASK,
881 DP_CMN_MOD_IEEE80211_T_VHT_40, 324000,
882 360000, 0, 0, 0, 324000, 0x328 },
883 /* 193 MCS-09 */ { VHT40_MODE_VALID_MASK,
884 DP_CMN_MOD_IEEE80211_T_VHT_40, 360000,
885 400000, 0, 0, 0, 360000, 0x329 },
886 /* 194 MCS-10 */ { VHT40_LDPC_ONLY_MASKS,
887 DP_CMN_MOD_IEEE80211_T_VHT_40, 405000,
888 450000, 0, 0, 0, 405000, 0x32a },
889 /* 195 MCS-11 */ { VHT40_LDPC_ONLY_MASKS,
890 DP_CMN_MOD_IEEE80211_T_VHT_40, 450000,
891 500000, 0, 0, 0, 450000, 0x32b },
892
893 /* When number of spatial streams > 2 use below rate*/
894 /* 196 MCS-00 */ { VHT40_MODE_VALID_MASK,
895 DP_CMN_MOD_IEEE80211_T_VHT_40, 40500,
896 45000, 0, 0, 0, 40500, 0x340 },
897 /* 197 MCS-01 */ { VHT40_MODE_VALID_MASK,
898 DP_CMN_MOD_IEEE80211_T_VHT_40, 81000,
899 90000, 0, 0, 0, 81000, 0x341 },
900 /* 198 MCS-02 */ { VHT40_MODE_VALID_MASK,
901 DP_CMN_MOD_IEEE80211_T_VHT_40, 121500,
902 135000, 0, 0, 0, 121500, 0x342 },
903 /* 199 MCS-03 */ { VHT40_MODE_VALID_MASK,
904 DP_CMN_MOD_IEEE80211_T_VHT_40, 162000,
905 180000, 0, 0, 0, 162000, 0x343 },
906 /* 200 MCS-04 */ { VHT40_MODE_VALID_MASK,
907 DP_CMN_MOD_IEEE80211_T_VHT_40, 243000,
908 270000, 0, 0, 0, 243000, 0x344 },
909 /* 201 MCS-05 */ { VHT40_MODE_VALID_MASK,
910 DP_CMN_MOD_IEEE80211_T_VHT_40, 324000,
911 360000, 0, 0, 0, 324000, 0x345 },
912 /* 202 MCS-06 */ { VHT40_MODE_VALID_MASK,
913 DP_CMN_MOD_IEEE80211_T_VHT_40, 364500,
914 405000, 0, 0, 0, 364500, 0x346 },
915 /* 203 MCS-07 */ { VHT40_MODE_VALID_MASK,
916 DP_CMN_MOD_IEEE80211_T_VHT_40, 405000,
917 450000, 0, 0, 0, 405000, 0x347 },
918 /* 204 MCS-08 */ { VHT40_MODE_VALID_MASK,
919 DP_CMN_MOD_IEEE80211_T_VHT_40, 486000,
920 540000, 0, 0, 0, 486000, 0x348 },
921 /* 205 MCS-09 */ { VHT40_MODE_VALID_MASK,
922 DP_CMN_MOD_IEEE80211_T_VHT_40, 540000,
923 600000, 0, 0, 0, 540000, 0x349 },
924 /* 206 MCS-10 */ { VHT40_LDPC_ONLY_MASKS,
925 DP_CMN_MOD_IEEE80211_T_VHT_40, 607500,
926 675000, 0, 0, 0, 607500, 0x34a},
927 /* 207 MCS-11 */ { VHT40_LDPC_ONLY_MASKS,
928 DP_CMN_MOD_IEEE80211_T_VHT_40, 675000,
929 750000, 0, 0, 0, 675000, 0x34b},
930
931 /* When number of spatial streams > 3 use below rates */
932 /* 208 MCS-00 */ { VHT40_MODE_VALID_MASK,
933 DP_CMN_MOD_IEEE80211_T_VHT_40, 54000,
934 60000, 0, 0, 0, 54000, 0x360},
935 /* 209 MCS-01 */ { VHT40_MODE_VALID_MASK,
936 DP_CMN_MOD_IEEE80211_T_VHT_40, 108000,
937 120000, 0, 0, 0, 108000, 0x361},
938 /* 210 MCS-02 */ { VHT40_MODE_VALID_MASK,
939 DP_CMN_MOD_IEEE80211_T_VHT_40, 162000,
940 180000, 0, 0, 0, 162000, 0x362},
941 /* 211 MCS-03 */ { VHT40_MODE_VALID_MASK,
942 DP_CMN_MOD_IEEE80211_T_VHT_40, 216000,
943 240000, 0, 0, 0, 216000, 0x363},
944 /* 212 MCS-04 */ { VHT40_MODE_VALID_MASK,
945 DP_CMN_MOD_IEEE80211_T_VHT_40, 324000,
946 260000, 0, 0, 0, 324000, 0x364},
947 /* 213 MCS-05 */ { VHT40_MODE_VALID_MASK,
948 DP_CMN_MOD_IEEE80211_T_VHT_40, 432000,
949 480000, 0, 0, 0, 432000, 0x365},
950 /* 214 MCS-06 */ { VHT40_MODE_VALID_MASK,
951 DP_CMN_MOD_IEEE80211_T_VHT_40, 486000,
952 540000, 0, 0, 0, 486000, 0x366},
953 /* 215 MCS-07 */ { VHT40_MODE_VALID_MASK,
954 DP_CMN_MOD_IEEE80211_T_VHT_40, 540000,
955 600000, 0, 0, 0, 540000, 0x367},
956 /* 216 MCS-08 */ { VHT40_MODE_VALID_MASK,
957 DP_CMN_MOD_IEEE80211_T_VHT_40, 648000,
958 720000, 0, 0, 0, 648000, 0x368},
959 /* 217 MCS-09 */ { VHT40_MODE_VALID_MASK,
960 DP_CMN_MOD_IEEE80211_T_VHT_40, 720000,
961 800000, 0, 0, 0, 720000, 0x369},
962 /* 218 MCS-10 */ { VHT40_LDPC_ONLY_MASKS,
963 DP_CMN_MOD_IEEE80211_T_VHT_40, 810000,
964 900000, 0, 0, 0, 810000, 0x36a },
965 /* 219 MCS-11 */ { VHT40_LDPC_ONLY_MASKS,
966 DP_CMN_MOD_IEEE80211_T_VHT_40, 900000,
967 1000000, 0, 0, 0, 900000, 0x36b },
968
969 /* when number of spatial streams > 4 use below rates */
970 /* 220 MCS-00 */ { VHT40_LDPC_ONLY_MASKS,
971 DP_CMN_MOD_IEEE80211_T_VHT_40, 67500,
972 75000, 0, 0, 0, 67500, 0x380 },
973 /* 221 MCS-01 */ { VHT40_LDPC_ONLY_MASKS,
974 DP_CMN_MOD_IEEE80211_T_VHT_40, 135000,
975 150000, 0, 0, 0, 135000, 0x381 },
976 /* 222 MCS-02 */ { VHT40_LDPC_ONLY_MASKS,
977 DP_CMN_MOD_IEEE80211_T_VHT_40, 202500,
978 225000, 0, 0, 0, 202500, 0x382 },
979 /* 223 MCS-03 */ { VHT40_LDPC_ONLY_MASKS,
980 DP_CMN_MOD_IEEE80211_T_VHT_40, 270000,
981 300000, 0, 0, 0, 270000, 0x383 },
982 /* 224 MCS-04 */ { VHT40_LDPC_ONLY_MASKS,
983 DP_CMN_MOD_IEEE80211_T_VHT_40, 405000,
984 450000, 0, 0, 0, 405000, 0x384 },
985 /* 225 MCS-05 */ { VHT40_LDPC_ONLY_MASKS,
986 DP_CMN_MOD_IEEE80211_T_VHT_40, 540000,
987 600000, 0, 0, 0, 540000, 0x385 },
988 /* 226 MCS-06 */ { VHT40_LDPC_ONLY_MASKS,
989 DP_CMN_MOD_IEEE80211_T_VHT_40, 607500,
990 675000, 0, 0, 0, 607500, 0x386 },
991 /* 227 MCS-07 */ { VHT40_LDPC_ONLY_MASKS,
992 DP_CMN_MOD_IEEE80211_T_VHT_40, 675000,
993 750000, 0, 0, 0, 675000, 0x387 },
994 /* 228 MCS-08 */ { VHT40_LDPC_ONLY_MASKS,
995 DP_CMN_MOD_IEEE80211_T_VHT_40,
996 810000, 900000, 0, 0, 0, 810000,
997 0x388 },
998 /* 229 MCS-09 */ { VHT40_LDPC_ONLY_MASKS,
999 DP_CMN_MOD_IEEE80211_T_VHT_40,
1000 900000, 1000000, 0, 0, 0, 900000,
1001 0x389 },
1002 /* 230 MCS-10 */ { VHT40_LDPC_ONLY_MASKS,
1003 DP_CMN_MOD_IEEE80211_T_VHT_40,
1004 1012500, 1125000, 0, 0, 0, 1012500,
1005 0x38a },
1006 /* 231 MCS-11 */ { VHT40_LDPC_ONLY_MASKS,
1007 DP_CMN_MOD_IEEE80211_T_VHT_40,
1008 1125000, 1250000, 0, 0, 0, 1125000,
1009 0x38b },
1010
1011 /* when number of spatial streams > 5 use below rates*/
1012 /* 232 MCS-00 */ { VHT40_LDPC_ONLY_MASKS,
1013 DP_CMN_MOD_IEEE80211_T_VHT_40,
1014 81000, 90000, 0, 0, 0, 81000, 0x3a0
1015 },
1016 /* 233 MCS-01 */ { VHT40_LDPC_ONLY_MASKS,
1017 DP_CMN_MOD_IEEE80211_T_VHT_40,
1018 162000, 180000, 0, 0, 0, 162000,
1019 0x3a1 },
1020 /* 234 MCS-02 */ { VHT40_LDPC_ONLY_MASKS,
1021 DP_CMN_MOD_IEEE80211_T_VHT_40,
1022 243000, 270000, 0, 0, 0, 243000,
1023 0x3a2 },
1024 /* 235 MCS-03 */ { VHT40_LDPC_ONLY_MASKS,
1025 DP_CMN_MOD_IEEE80211_T_VHT_40,
1026 324000, 360000, 0, 0, 0, 324000,
1027 0x3a3 },
1028 /* 236 MCS-04 */ { VHT40_LDPC_ONLY_MASKS,
1029 DP_CMN_MOD_IEEE80211_T_VHT_40,
1030 486000, 540000, 0, 0, 0, 486000,
1031 0x3a4 },
1032 /* 237 MCS-05 */ { VHT40_LDPC_ONLY_MASKS,
1033 DP_CMN_MOD_IEEE80211_T_VHT_40,
1034 648000, 720000, 0, 0, 0, 648000,
1035 0x3a5 },
1036 /* 238 MCS-06 */ { VHT40_LDPC_ONLY_MASKS,
1037 DP_CMN_MOD_IEEE80211_T_VHT_40,
1038 729000, 815000, 0, 0, 0, 729000,
1039 0x3a6 },
1040 /* 239 MCS-07 */ { VHT40_LDPC_ONLY_MASKS,
1041 DP_CMN_MOD_IEEE80211_T_VHT_40,
1042 810000, 900000, 0, 0, 0, 810000,
1043 0x3a7 },
1044 /* 240 MCS-08 */ { VHT40_LDPC_ONLY_MASKS,
1045 DP_CMN_MOD_IEEE80211_T_VHT_40,
1046 972000, 1080000, 0, 0, 0, 972000,
1047 0x3a8 },
1048 /* 241 MCS-09 */ { VHT40_LDPC_ONLY_MASKS,
1049 DP_CMN_MOD_IEEE80211_T_VHT_40,
1050 1080000, 1200000, 0, 0, 0, 1080000,
1051 0x3a9 },
1052 /* 242 MCS-10 */ { VHT40_LDPC_ONLY_MASKS,
1053 DP_CMN_MOD_IEEE80211_T_VHT_40,
1054 1215000, 1350000, 0, 0, 0, 1215000,
1055 0x3aa },
1056 /* 243 MCS-11 */ { VHT40_LDPC_ONLY_MASKS,
1057 DP_CMN_MOD_IEEE80211_T_VHT_40,
1058 1350000, 1500000, 0, 0, 0, 1350000,
1059 0x3ab },
1060
1061 /* when number of spatial streams > 6 use below rates */
1062 /* 244 MCS-00 */ { VHT40_LDPC_ONLY_MASKS,
1063 DP_CMN_MOD_IEEE80211_T_VHT_40,
1064 94500, 105000, 0, 0, 0, 94500, 0x3c0
1065 },
1066 /* 245 MCS-01 */ { VHT40_LDPC_ONLY_MASKS,
1067 DP_CMN_MOD_IEEE80211_T_VHT_40,
1068 189000, 210000, 0, 0, 0, 189000,
1069 0x3c1 },
1070 /* 246 MCS-02 */ { VHT40_LDPC_ONLY_MASKS,
1071 DP_CMN_MOD_IEEE80211_T_VHT_40,
1072 283500, 315000, 0, 0, 0, 283500,
1073 0x3c2 },
1074 /* 247 MCS-03 */ { VHT40_LDPC_ONLY_MASKS,
1075 DP_CMN_MOD_IEEE80211_T_VHT_40,
1076 378000, 420000, 0, 0, 0, 378000,
1077 0x3c3 },
1078 /* 248 MCS-04 */ { VHT40_LDPC_ONLY_MASKS,
1079 DP_CMN_MOD_IEEE80211_T_VHT_40,
1080 567000, 630000, 0, 0, 0, 567000,
1081 0x3c4 },
1082 /* 249 MCS-05 */ { VHT40_LDPC_ONLY_MASKS,
1083 DP_CMN_MOD_IEEE80211_T_VHT_40,
1084 756000, 840000, 0, 0, 0, 756000,
1085 0x3c5 },
1086 /* 250 MCS-06 */ { VHT40_LDPC_ONLY_MASKS,
1087 DP_CMN_MOD_IEEE80211_T_VHT_40,
1088 850500, 945000, 0, 0, 0, 850500,
1089 0x3c6 },
1090 /* 251 MCS-07 */ { VHT40_LDPC_ONLY_MASKS,
1091 DP_CMN_MOD_IEEE80211_T_VHT_40,
1092 945000, 1050000, 0, 0, 0, 945000,
1093 0x3c7 },
1094 /* 252 MCS-08 */ { VHT40_LDPC_ONLY_MASKS,
1095 DP_CMN_MOD_IEEE80211_T_VHT_40,
1096 1134000, 1260000, 0, 0, 0, 1134000,
1097 0x3c8 },
1098 /* 253 MCS-09 */ { VHT40_LDPC_ONLY_MASKS,
1099 DP_CMN_MOD_IEEE80211_T_VHT_40,
1100 1260000, 1400000, 0, 0, 0, 1260000,
1101 0x3c9 },
1102 /* 254 MCS-10 */ { VHT40_LDPC_ONLY_MASKS,
1103 DP_CMN_MOD_IEEE80211_T_VHT_40,
1104 1417500, 1575000, 0, 0, 0, 1417500,
1105 0x3ca },
1106 /* 255 MCS-11 */ { VHT40_LDPC_ONLY_MASKS,
1107 DP_CMN_MOD_IEEE80211_T_VHT_40,
1108 1575000, 1750000, 0, 0, 0, 1575000,
1109 0x3cb },
1110
1111 /* when number of spatial streams > 7 use below rates */
1112 /* 256 MCS-00 */ { VHT40_LDPC_ONLY_MASKS,
1113 DP_CMN_MOD_IEEE80211_T_VHT_40,
1114 108000, 120000, 0, 0, 0, 108000,
1115 0x3e0 },
1116 /* 257 MCS-01 */ { VHT40_LDPC_ONLY_MASKS,
1117 DP_CMN_MOD_IEEE80211_T_VHT_40,
1118 216000, 240000, 0, 0, 0, 216000,
1119 0x3e1 },
1120 /* 258 MCS-02 */ { VHT40_LDPC_ONLY_MASKS,
1121 DP_CMN_MOD_IEEE80211_T_VHT_40,
1122 324000, 360000, 0, 0, 0, 324000,
1123 0x3e2 },
1124 /* 259 MCS-03 */ { VHT40_LDPC_ONLY_MASKS,
1125 DP_CMN_MOD_IEEE80211_T_VHT_40,
1126 432000, 480000, 0, 0, 0, 432000,
1127 0x3e3 },
1128 /* 260 MCS-04 */ { VHT40_LDPC_ONLY_MASKS,
1129 DP_CMN_MOD_IEEE80211_T_VHT_40,
1130 648000, 720000, 0, 0, 0, 648000,
1131 0x3e4 },
1132 /* 261 MCS-05 */ { VHT40_LDPC_ONLY_MASKS,
1133 DP_CMN_MOD_IEEE80211_T_VHT_40,
1134 864000, 960000, 0, 0, 0, 864000,
1135 0x3e5 },
1136 /* 262 MCS-06 */ { VHT40_LDPC_ONLY_MASKS,
1137 DP_CMN_MOD_IEEE80211_T_VHT_40,
1138 972000, 1080000, 0, 0, 0, 972000,
1139 0x3e6 },
1140 /* 263 MCS-07 */ { VHT40_LDPC_ONLY_MASKS,
1141 DP_CMN_MOD_IEEE80211_T_VHT_40,
1142 1080000, 1200000, 0, 0, 0, 1080000,
1143 0x3e7 },
1144 /* 264 MCS-08 */ { VHT40_LDPC_ONLY_MASKS,
1145 DP_CMN_MOD_IEEE80211_T_VHT_40,
1146 1296000, 1440000, 0, 0, 0, 1296000,
1147 0x3e8 },
1148 /* 265 MCS-09 */ { VHT40_LDPC_ONLY_MASKS,
1149 DP_CMN_MOD_IEEE80211_T_VHT_40,
1150 1440000, 1600000, 0, 0, 0, 1440000,
1151 0x3e9 },
1152 /* 266 MCS-10 */ { VHT40_LDPC_ONLY_MASKS,
1153 DP_CMN_MOD_IEEE80211_T_VHT_40,
1154 1620000, 1800000, 0, 0, 0, 1620000,
1155 0x3ea },
1156 /* 267 MCS-11 */ { VHT40_LDPC_ONLY_MASKS,
1157 DP_CMN_MOD_IEEE80211_T_VHT_40,
1158 1800000, 2000000, 0, 0, 0, 1800000,
1159 0x3eb },
1160
1161 /* 11ac VHT80 rates
1162 */
1163 /* 268 MCS-00 */ { VHT80_MODE_VALID_MASK,
1164 DP_CMN_MOD_IEEE80211_T_VHT_80,
1165 29300, 32500, 0, 0, 0, 29300,
1166 0x300},
1167 /* 269 MCS-01 */ { VHT80_MODE_VALID_MASK,
1168 DP_CMN_MOD_IEEE80211_T_VHT_80,
1169 58500, 65000, 0, 0, 0, 58500,
1170 0x301},
1171 /* 270 MCS-02 */ { VHT80_MODE_VALID_MASK,
1172 DP_CMN_MOD_IEEE80211_T_VHT_80,
1173 87800, 97500, 0, 0, 0, 87800,
1174 0x302},
1175 /* 271 MCS-03 */ { VHT80_MODE_VALID_MASK,
1176 DP_CMN_MOD_IEEE80211_T_VHT_80,
1177 117000, 130000, 0, 0, 0, 117000,
1178 0x303},
1179 /* 272 MCS-04 */ { VHT80_MODE_VALID_MASK,
1180 DP_CMN_MOD_IEEE80211_T_VHT_80,
1181 175500, 195000, 0, 0, 0, 175500,
1182 0x304},
1183 /* 273 MCS-05 */ { VHT80_MODE_VALID_MASK,
1184 DP_CMN_MOD_IEEE80211_T_VHT_80,
1185 234000, 260000, 0, 0, 0, 234000,
1186 0x305},
1187 /* 274 MCS-06 */ { VHT80_MODE_VALID_MASK,
1188 DP_CMN_MOD_IEEE80211_T_VHT_80,
1189 263300, 292500, 0, 0, 0, 263300,
1190 0x306},
1191 /* 275 MCS-07 */ { VHT80_MODE_VALID_MASK,
1192 DP_CMN_MOD_IEEE80211_T_VHT_80,
1193 292500, 325000, 0, 0, 0, 292500,
1194 0x307},
1195 /* 276 MCS-08 */ { VHT80_MODE_VALID_MASK,
1196 DP_CMN_MOD_IEEE80211_T_VHT_80,
1197 351000, 390000, 0, 0, 0, 351000,
1198 0x308},
1199 /* 277 MCS-09 */ { VHT80_MODE_VALID_MASK,
1200 DP_CMN_MOD_IEEE80211_T_VHT_80,
1201 390000, 433300, 0, 0, 0, 390000,
1202 0x309},
1203 /* 278 MCS-10 */ { VHT80_LDPC_ONLY_MASKS,
1204 DP_CMN_MOD_IEEE80211_T_VHT_80,
1205 438800, 487500, 0, 0, 0, 438800,
1206 0x30a},
1207 /* 279 MCS-11 */ { VHT80_LDPC_ONLY_MASKS,
1208 DP_CMN_MOD_IEEE80211_T_VHT_80,
1209 487500, 541700, 0, 0, 0, 487500,
1210 0x30b},
1211
1212 /* When number of spatial streams > 1 use below rates*/
1213 /* 280 MCS-00 */ { VHT80_MODE_VALID_MASK,
1214 DP_CMN_MOD_IEEE80211_T_VHT_80,
1215 58500, 65000, 0, 0, 0, 58500,
1216 0x320},
1217 /* 281 MCS-01 */ { VHT80_MODE_VALID_MASK,
1218 DP_CMN_MOD_IEEE80211_T_VHT_80,
1219 117000, 130000, 0, 0, 0, 117000,
1220 0x321},
1221 /* 282 MCS-02 */ { VHT80_MODE_VALID_MASK,
1222 DP_CMN_MOD_IEEE80211_T_VHT_80,
1223 175500, 195000, 0, 0, 0, 175500,
1224 0x322},
1225 /* 283 MCS-03 */ { VHT80_MODE_VALID_MASK,
1226 DP_CMN_MOD_IEEE80211_T_VHT_80,
1227 234000, 260000, 0, 0, 0, 234000,
1228 0x323},
1229 /* 284 MCS-04 */ { VHT80_MODE_VALID_MASK,
1230 DP_CMN_MOD_IEEE80211_T_VHT_80,
1231 351000, 390000, 0, 0, 0, 351000,
1232 0x324},
1233 /* 285 MCS-05 */ { VHT80_MODE_VALID_MASK,
1234 DP_CMN_MOD_IEEE80211_T_VHT_80,
1235 468000, 520000, 0, 0, 0, 468000,
1236 0x325},
1237 /* 286 MCS-06 */ { VHT80_MODE_VALID_MASK,
1238 DP_CMN_MOD_IEEE80211_T_VHT_80,
1239 526500, 585000, 0, 0, 0, 526500,
1240 0x326},
1241 /* 287 MCS-07 */ { VHT80_MODE_VALID_MASK,
1242 DP_CMN_MOD_IEEE80211_T_VHT_80,
1243 585000, 650000, 0, 0, 0, 585000,
1244 0x327},
1245 /* 288 MCS-08 */ { VHT80_MODE_VALID_MASK,
1246 DP_CMN_MOD_IEEE80211_T_VHT_80,
1247 702000, 780000, 0, 0, 0, 702000,
1248 0x328},
1249 /* 289 MCS-09 */ { VHT80_MODE_VALID_MASK,
1250 DP_CMN_MOD_IEEE80211_T_VHT_80,
1251 780000, 866700, 0, 0, 0, 780000,
1252 0x329},
1253 /* 290 MCS-10 */ { VHT80_LDPC_ONLY_MASKS,
1254 DP_CMN_MOD_IEEE80211_T_VHT_80,
1255 877500, 975000, 0, 0, 0, 877500,
1256 0x32a},
1257 /* 291 MCS-11 */ { VHT80_LDPC_ONLY_MASKS,
1258 DP_CMN_MOD_IEEE80211_T_VHT_80,
1259 975000, 1083300, 0, 0, 0, 975000,
1260 0x32b},
1261
1262 /* When number of spatial streams > 2 use below rates */
1263 /* 292 MCS-00 */ { VHT80_MODE_VALID_MASK,
1264 DP_CMN_MOD_IEEE80211_T_VHT_80,
1265 87800, 97500, 0, 0, 0, 87800, 0x340
1266 },
1267 /* 293 MCS-01 */ { VHT80_MODE_VALID_MASK,
1268 DP_CMN_MOD_IEEE80211_T_VHT_80,
1269 175500, 195000, 0, 0, 0, 175500,
1270 0x341 },
1271 /* 294 MCS-02 */ { VHT80_MODE_VALID_MASK,
1272 DP_CMN_MOD_IEEE80211_T_VHT_80,
1273 263300, 292500, 0, 0, 0, 263300,
1274 0x342 },
1275 /* 295 MCS-03 */ { VHT80_MODE_VALID_MASK,
1276 DP_CMN_MOD_IEEE80211_T_VHT_80,
1277 351000, 390000, 0, 0, 0, 351000,
1278 0x343 },
1279 /* 296 MCS-04 */ { VHT80_MODE_VALID_MASK,
1280 DP_CMN_MOD_IEEE80211_T_VHT_80,
1281 526500, 585000, 0, 0, 0, 526500,
1282 0x344 },
1283 /* 297 MCS-05 */ { VHT80_MODE_VALID_MASK,
1284 DP_CMN_MOD_IEEE80211_T_VHT_80,
1285 702000, 780000, 0, 0, 0, 702000,
1286 0x345 },
1287 /* 298 MCS-06 */ { VHT_INVALID_RATES_MASK,
1288 DP_CMN_MOD_IEEE80211_T_VHT_80,
1289 789800, 877500, 0, 0, 0, 789800,
1290 0x346 },
1291 /* 299 MCS-07 */ { VHT80_MODE_VALID_MASK,
1292 DP_CMN_MOD_IEEE80211_T_VHT_80,
1293 877500, 975000, 0, 0, 0, 877500,
1294 0x347 },
1295 /* 300 MCS-08 */ { VHT80_MODE_VALID_MASK,
1296 DP_CMN_MOD_IEEE80211_T_VHT_80,
1297 1053000, 1170000, 0, 0, 0, 1053000,
1298 0x348 },
1299 /* 301 MCS-09 */ { VHT80_MODE_VALID_MASK,
1300 DP_CMN_MOD_IEEE80211_T_VHT_80,
1301 1170000, 1300000, 0, 0, 0, 1170000,
1302 0x349 },
1303 /* 302 MCS-10 */ { VHT80_LDPC_ONLY_MASKS,
1304 DP_CMN_MOD_IEEE80211_T_VHT_80,
1305 1316300, 1462500, 0, 0, 0, 1316300,
1306 0x34a },
1307 /* 303 MCS-11 */ { VHT80_LDPC_ONLY_MASKS,
1308 DP_CMN_MOD_IEEE80211_T_VHT_80,
1309 1462500, 1625000, 0, 0, 0, 1462500,
1310 0x34b },
1311 /* When number of spatial streams > 3 use below rates */
1312 /* 304 MCS-00 */ { VHT80_MODE_VALID_MASK,
1313 DP_CMN_MOD_IEEE80211_T_VHT_80,
1314 117000, 130000, 0, 0, 0, 117000,
1315 0x360 },
1316 /* 305 MCS-01 */ { VHT80_MODE_VALID_MASK,
1317 DP_CMN_MOD_IEEE80211_T_VHT_80,
1318 234000, 260000, 0, 0, 0, 234000,
1319 0x361 },
1320 /* 306 MCS-02 */ { VHT80_MODE_VALID_MASK,
1321 DP_CMN_MOD_IEEE80211_T_VHT_80,
1322 351000, 390000, 0, 0, 0, 351000,
1323 0x362 },
1324 /* 307 MCS-03 */ { VHT80_MODE_VALID_MASK,
1325 DP_CMN_MOD_IEEE80211_T_VHT_80,
1326 468000, 520000, 0, 0, 0, 468000,
1327 0x363 },
1328 /* 308 MCS-04 */ { VHT80_MODE_VALID_MASK,
1329 DP_CMN_MOD_IEEE80211_T_VHT_80,
1330 702000, 780000, 0, 0, 0, 702000,
1331 0x364 },
1332 /* 309 MCS-05 */ { VHT80_MODE_VALID_MASK,
1333 DP_CMN_MOD_IEEE80211_T_VHT_80,
1334 936000, 1040000, 0, 0, 0, 936000,
1335 0x365 },
1336 /* 310 MCS-06 */ { VHT80_MODE_VALID_MASK,
1337 DP_CMN_MOD_IEEE80211_T_VHT_80,
1338 1053000, 1170000, 0, 0, 0, 1053000,
1339 0x366 },
1340 /* 311 MCS-07 */ { VHT80_MODE_VALID_MASK,
1341 DP_CMN_MOD_IEEE80211_T_VHT_80,
1342 1170000, 1300000, 0, 0, 0, 1170000,
1343 0x367 },
1344 /* 312 MCS-08 */ { VHT80_MODE_VALID_MASK,
1345 DP_CMN_MOD_IEEE80211_T_VHT_80,
1346 1404000, 1560000, 0, 0, 0, 1404000,
1347 0x368 },
1348 /* 313 MCS-09 */ { VHT80_MODE_VALID_MASK,
1349 DP_CMN_MOD_IEEE80211_T_VHT_80,
1350 1560000, 1733000, 0, 0, 0, 1560000,
1351 0x369 },
1352 /* 314 MCS-08 */ { VHT80_LDPC_ONLY_MASKS,
1353 DP_CMN_MOD_IEEE80211_T_VHT_80,
1354 1755000, 1950000, 0, 0, 0, 1755000,
1355 0x36a },
1356 /* 315 MCS-09 */ { VHT80_LDPC_ONLY_MASKS,
1357 DP_CMN_MOD_IEEE80211_T_VHT_80,
1358 1950000, 2166700, 0, 0, 0, 1950000,
1359 0x36b },
1360 /* When number of spatial streams > 4 use below rates */
1361 /* 316 MCS-00 */ { VHT80_LDPC_ONLY_MASKS,
1362 DP_CMN_MOD_IEEE80211_T_VHT_80,
1363 146300, 162500, 0, 0, 0, 146300,
1364 0x380 },
1365 /* 317 MCS-01 */ { VHT80_LDPC_ONLY_MASKS,
1366 DP_CMN_MOD_IEEE80211_T_VHT_80,
1367 292500, 325000, 0, 0, 0, 292500,
1368 0x381 },
1369 /* 318 MCS-02 */ { VHT80_LDPC_ONLY_MASKS,
1370 DP_CMN_MOD_IEEE80211_T_VHT_80,
1371 438800, 487500, 0, 0, 0, 438800,
1372 0x382 },
1373 /* 319 MCS-03 */ { VHT80_LDPC_ONLY_MASKS,
1374 DP_CMN_MOD_IEEE80211_T_VHT_80,
1375 585000, 650000, 0, 0, 0, 585000,
1376 0x383 },
1377 /* 320 MCS-04 */ { VHT80_LDPC_ONLY_MASKS,
1378 DP_CMN_MOD_IEEE80211_T_VHT_80,
1379 877500, 975000, 0, 0, 0, 877500,
1380 0x384 },
1381 /* 321 MCS-05 */ { VHT80_LDPC_ONLY_MASKS,
1382 DP_CMN_MOD_IEEE80211_T_VHT_80,
1383 1170000, 1300000, 0, 0, 0, 1170000,
1384 0x385 },
1385 /* 322 MCS-06 */ { VHT80_LDPC_ONLY_MASKS,
1386 DP_CMN_MOD_IEEE80211_T_VHT_80,
1387 1316300, 1462500, 0, 0, 0, 1316300,
1388 0x386 },
1389 /* 323 MCS-07 */ { VHT80_LDPC_ONLY_MASKS,
1390 DP_CMN_MOD_IEEE80211_T_VHT_80,
1391 1462500, 1625000, 0, 0, 0, 1462500,
1392 0x387 },
1393 /* 324 MCS-08 */ { VHT80_LDPC_ONLY_MASKS,
1394 DP_CMN_MOD_IEEE80211_T_VHT_80,
1395 1755000, 1950000, 0, 0, 0, 1755000,
1396 0x388 },
1397 /* 325 MCS-09 */ { VHT80_LDPC_ONLY_MASKS,
1398 DP_CMN_MOD_IEEE80211_T_VHT_80,
1399 1950000, 2166700, 0, 0, 0, 1950000,
1400 0x389 },
1401 /* 326 MCS-10 */ { VHT80_LDPC_ONLY_MASKS,
1402 DP_CMN_MOD_IEEE80211_T_VHT_80,
1403 2193800, 2437500, 0, 0, 0, 2193800,
1404 0x38a },
1405 /* 327 MCS-11 */ { VHT80_LDPC_ONLY_MASKS,
1406 DP_CMN_MOD_IEEE80211_T_VHT_80,
1407 2437500, 2708300, 0, 0, 0, 2437500,
1408 0x38b },
1409 /* When number of spatial streams > 5 use below rates */
1410 /* 328 MCS-00 */ { VHT80_LDPC_ONLY_MASKS,
1411 DP_CMN_MOD_IEEE80211_T_VHT_80,
1412 175500, 195000, 0, 0, 0, 175500,
1413 0x3a0 },
1414 /* 329 MCS-01 */ { VHT80_LDPC_ONLY_MASKS,
1415 DP_CMN_MOD_IEEE80211_T_VHT_80,
1416 351000, 390000, 0, 0, 0, 351000,
1417 0x3a1 },
1418 /* 330 MCS-02 */ { VHT80_LDPC_ONLY_MASKS,
1419 DP_CMN_MOD_IEEE80211_T_VHT_80,
1420 526500, 585500, 0, 0, 0, 526500,
1421 0x3a2 },
1422 /* 331 MCS-03 */ { VHT80_LDPC_ONLY_MASKS,
1423 DP_CMN_MOD_IEEE80211_T_VHT_80,
1424 702000, 780000, 0, 0, 0, 702000,
1425 0x3a3 },
1426 /* 332 MCS-04 */ { VHT80_LDPC_ONLY_MASKS,
1427 DP_CMN_MOD_IEEE80211_T_VHT_80,
1428 1053000, 1170000, 0, 0, 0, 1053000,
1429 0x3a4 },
1430 /* 333 MCS-05 */ { VHT80_LDPC_ONLY_MASKS,
1431 DP_CMN_MOD_IEEE80211_T_VHT_80,
1432 1404000, 1560000, 0, 0, 0, 1404000,
1433 0x3a5 },
1434 /* 334 MCS-06 */ { VHT80_LDPC_ONLY_MASKS,
1435 DP_CMN_MOD_IEEE80211_T_VHT_80,
1436 1579500, 1755000, 0, 0, 0, 1579500,
1437 0x3a6 },
1438 /* 335 MCS-07 */ { VHT80_LDPC_ONLY_MASKS,
1439 DP_CMN_MOD_IEEE80211_T_VHT_80,
1440 1755000, 1950000, 0, 0, 0, 1755000,
1441 0x3a7 },
1442 /* 336 MCS-08 */ { VHT80_LDPC_ONLY_MASKS,
1443 DP_CMN_MOD_IEEE80211_T_VHT_80,
1444 2106000, 2340000, 0, 0, 0, 2106000,
1445 0x3a8 },
1446 /* 337 MCS-09 */ { VHT80_LDPC_ONLY_MASKS,
1447 DP_CMN_MOD_IEEE80211_T_VHT_80,
1448 2340000, 2600000, 0, 0, 0, 2340000,
1449 0x3a9 },
1450 /* 338 MCS-10 */ { VHT80_LDPC_ONLY_MASKS,
1451 DP_CMN_MOD_IEEE80211_T_VHT_80,
1452 2632500, 2925000, 0, 0, 0, 2632500,
1453 0x3aa },
1454 /* 339 MCS-11 */ { VHT80_LDPC_ONLY_MASKS,
1455 DP_CMN_MOD_IEEE80211_T_VHT_80,
1456 2925000, 3250000, 0, 0, 0, 2925000,
1457 0x3ab },
1458 /* When number of spatial streams > 6 use below rates*/
1459 /* 340 MCS-00 */ { VHT80_LDPC_ONLY_MASKS,
1460 DP_CMN_MOD_IEEE80211_T_VHT_80,
1461 204800, 227500, 0, 0, 0, 204800,
1462 0x3c0 },
1463 /* 341 MCS-01 */ { VHT80_LDPC_ONLY_MASKS,
1464 DP_CMN_MOD_IEEE80211_T_VHT_80,
1465 409500, 455000, 0, 0, 0, 409500,
1466 0x3c1 },
1467 /* 342 MCS-02 */ { VHT80_LDPC_ONLY_MASKS,
1468 DP_CMN_MOD_IEEE80211_T_VHT_80,
1469 614300, 682500, 0, 0, 0, 614300,
1470 0x3c2 },
1471 /* 343 MCS-03 */ { VHT80_LDPC_ONLY_MASKS,
1472 DP_CMN_MOD_IEEE80211_T_VHT_80,
1473 819000, 910000, 0, 0, 0, 819000,
1474 0x3c3 },
1475 /* 344 MCS-04 */ { VHT80_LDPC_ONLY_MASKS,
1476 DP_CMN_MOD_IEEE80211_T_VHT_80,
1477 1288500, 1365000, 0, 0, 0, 1288500,
1478 0x3c4 },
1479 /* 345 MCS-05 */ { VHT80_LDPC_ONLY_MASKS,
1480 DP_CMN_MOD_IEEE80211_T_VHT_80,
1481 1638000, 1820000, 0, 0, 0, 1638000,
1482 0x3c5 },
1483 /* 346 MCS-06 */ { VHT80_LDPC_ONLY_MASKS,
1484 DP_CMN_MOD_IEEE80211_T_VHT_80,
1485 1842800, 2047500, 0, 0, 0, 1842800,
1486 0x3c6 },
1487 /* 347 MCS-07 */ { VHT80_LDPC_ONLY_MASKS,
1488 DP_CMN_MOD_IEEE80211_T_VHT_80,
1489 2047500, 2275000, 0, 0, 0, 2047500,
1490 0x3c7 },
1491 /* 348 MCS-08 */ { VHT80_LDPC_ONLY_MASKS,
1492 DP_CMN_MOD_IEEE80211_T_VHT_80,
1493 2457000, 2730000, 0, 0, 0, 2457000,
1494 0x3c8 },
1495 /* 349 MCS-09 */ { VHT80_LDPC_ONLY_MASKS,
1496 DP_CMN_MOD_IEEE80211_T_VHT_80,
1497 2730000, 3033300, 0, 0, 0, 2730000,
1498 0x3c9 },
1499 /* 350 MCS-10 */ { VHT80_LDPC_ONLY_MASKS,
1500 DP_CMN_MOD_IEEE80211_T_VHT_80,
1501 3071300, 3412500, 0, 0, 0, 3071300,
1502 0x3ca },
1503 /* 351 MCS-11 */ { VHT80_LDPC_ONLY_MASKS,
1504 DP_CMN_MOD_IEEE80211_T_VHT_80,
1505 3412500, 3791700, 0, 0, 0, 3412500,
1506 0x3cb },
1507 /* When number of spatial streams > 7 use below rates*/
1508 /* 352 MCS-00 */ { VHT80_LDPC_ONLY_MASKS,
1509 DP_CMN_MOD_IEEE80211_T_VHT_80,
1510 234000, 260000, 0, 0, 0, 234000,
1511 0x3e0 },
1512 /* 353 MCS-01 */ { VHT80_LDPC_ONLY_MASKS,
1513 DP_CMN_MOD_IEEE80211_T_VHT_80,
1514 468000, 520000, 0, 0, 0, 468000,
1515 0x3e1},
1516 /* 354 MCS-02 */ { VHT80_LDPC_ONLY_MASKS,
1517 DP_CMN_MOD_IEEE80211_T_VHT_80,
1518 702000, 780000, 0, 0, 0, 702000,
1519 0x3e2},
1520 /* 355 MCS-03 */ { VHT80_LDPC_ONLY_MASKS,
1521 DP_CMN_MOD_IEEE80211_T_VHT_80,
1522 936000, 1040000, 0, 0, 0, 936000,
1523 0x3e3},
1524 /* 356 MCS-04 */ { VHT80_LDPC_ONLY_MASKS,
1525 DP_CMN_MOD_IEEE80211_T_VHT_80,
1526 1404000, 1560000, 0, 0, 0, 1404000,
1527 0x3e4},
1528 /* 357 MCS-05 */ { VHT80_LDPC_ONLY_MASKS,
1529 DP_CMN_MOD_IEEE80211_T_VHT_80,
1530 1872000, 2080000, 0, 0, 0, 1872000,
1531 0x3e5},
1532 /* 358 MCS-06 */ { VHT80_LDPC_ONLY_MASKS,
1533 DP_CMN_MOD_IEEE80211_T_VHT_80,
1534 2106000, 2340000, 0, 0, 0, 2106000,
1535 0x3e6},
1536 /* 359 MCS-07 */ { VHT80_LDPC_ONLY_MASKS,
1537 DP_CMN_MOD_IEEE80211_T_VHT_80,
1538 2340000, 2600000, 0, 0, 0, 2340000,
1539 0x3e7},
1540 /* 360 MCS-08 */ { VHT80_LDPC_ONLY_MASKS,
1541 DP_CMN_MOD_IEEE80211_T_VHT_80,
1542 2808000, 3120000, 0, 0, 0, 2808000,
1543 0x3e8},
1544 /* 361 MCS-09 */ { VHT80_LDPC_ONLY_MASKS,
1545 DP_CMN_MOD_IEEE80211_T_VHT_80,
1546 3120000, 3466700, 0, 0, 0, 3120000,
1547 0x3e9},
1548 /* 362 MCS-10 */ { VHT80_LDPC_ONLY_MASKS,
1549 DP_CMN_MOD_IEEE80211_T_VHT_80,
1550 3510000, 3900000, 0, 0, 0, 3510000,
1551 0x3ea},
1552 /* 363 MCS-11 */ { VHT80_LDPC_ONLY_MASKS,
1553 DP_CMN_MOD_IEEE80211_T_VHT_80,
1554 3900000, 4333300, 0, 0, 0, 3900000,
1555 0x3eb},
1556
1557 /* 11ac VHT160 rates
1558 */
1559 /* 364 MCS-00 */ { VHT160_MODE_VALID_MASK,
1560 DP_CMN_MOD_IEEE80211_T_VHT_160,
1561 58500, 65000, 0, 0, 0, 58500,
1562 0x300},
1563 /* 365 MCS-01 */ { VHT160_MODE_VALID_MASK,
1564 DP_CMN_MOD_IEEE80211_T_VHT_160,
1565 117000, 130000, 0, 0, 0, 117000,
1566 0x301},
1567 /* 366 MCS-02 */ { VHT160_MODE_VALID_MASK,
1568 DP_CMN_MOD_IEEE80211_T_VHT_160,
1569 175500, 195000, 0, 0, 0, 175500,
1570 0x302},
1571 /* 367 MCS-03 */ { VHT160_MODE_VALID_MASK,
1572 DP_CMN_MOD_IEEE80211_T_VHT_160,
1573 234000, 260000, 0, 0, 0, 234000,
1574 0x303},
1575 /* 368 MCS-04 */ { VHT160_MODE_VALID_MASK,
1576 DP_CMN_MOD_IEEE80211_T_VHT_160,
1577 351000, 390000, 0, 0, 0, 351000,
1578 0x304},
1579 /* 369 MCS-05 */ { VHT160_MODE_VALID_MASK,
1580 DP_CMN_MOD_IEEE80211_T_VHT_160,
1581 468000, 520000, 0, 0, 0, 468000,
1582 0x305},
1583 /* 370 MCS-06 */ { VHT160_MODE_VALID_MASK,
1584 DP_CMN_MOD_IEEE80211_T_VHT_160,
1585 526500, 585000, 0, 0, 0, 526500,
1586 0x306},
1587 /* 371 MCS-07 */ { VHT160_MODE_VALID_MASK,
1588 DP_CMN_MOD_IEEE80211_T_VHT_160,
1589 585000, 650000, 0, 0, 0, 585000,
1590 0x307},
1591 /* 372 MCS-08 */ { VHT160_MODE_VALID_MASK,
1592 DP_CMN_MOD_IEEE80211_T_VHT_160,
1593 702000, 780000, 0, 0, 0, 702000,
1594 0x308},
1595 /* 373 MCS-09 */ { VHT160_MODE_VALID_MASK,
1596 DP_CMN_MOD_IEEE80211_T_VHT_160,
1597 780000, 866700, 0, 0, 0, 780000,
1598 0x309},
1599 /* 374 MCS-10 */ { VHT160_LDPC_ONLY_MASKS,
1600 DP_CMN_MOD_IEEE80211_T_VHT_160,
1601 877500, 975000, 0, 0, 0, 877500,
1602 0x30a },
1603 /* 375 MCS-11 */ { VHT160_LDPC_ONLY_MASKS,
1604 DP_CMN_MOD_IEEE80211_T_VHT_160,
1605 975000, 1083300, 0, 0, 0, 975000,
1606 0x30b },
1607 /* If maximum number of spatial streams supported
1608 * at 160MHZ > 1 use below rates
1609 */
1610 /* 376 MCS-00 */ { VHT160_MODE_VALID_MASK,
1611 DP_CMN_MOD_IEEE80211_T_VHT_160,
1612 117000, 130000, 0, 0, 0, 117000,
1613 0x320},
1614 /* 377 MCS-01 */ { VHT160_MODE_VALID_MASK,
1615 DP_CMN_MOD_IEEE80211_T_VHT_160,
1616 234000, 260000, 0, 0, 0, 234000,
1617 0x321},
1618 /* 378 MCS-02 */ { VHT160_MODE_VALID_MASK,
1619 DP_CMN_MOD_IEEE80211_T_VHT_160,
1620 351000, 390000, 0, 0, 0, 351000,
1621 0x322},
1622 /* 379 MCS-03 */ { VHT160_MODE_VALID_MASK,
1623 DP_CMN_MOD_IEEE80211_T_VHT_160,
1624 468000, 520000, 0, 0, 0, 468000,
1625 0x323},
1626 /* 380 MCS-04 */ { VHT160_MODE_VALID_MASK,
1627 DP_CMN_MOD_IEEE80211_T_VHT_160,
1628 702000, 780000, 0, 0, 0, 702000,
1629 0x324},
1630 /* 381 MCS-05 */ { VHT160_MODE_VALID_MASK,
1631 DP_CMN_MOD_IEEE80211_T_VHT_160,
1632 936000, 1040000, 0, 0, 0, 936000,
1633 0x325},
1634 /* 382 MCS-06 */ { VHT160_MODE_VALID_MASK,
1635 DP_CMN_MOD_IEEE80211_T_VHT_160,
1636 1053000, 1170000, 0, 0, 0, 1053000,
1637 0x326},
1638 /* 383 MCS-07 */ { VHT160_MODE_VALID_MASK,
1639 DP_CMN_MOD_IEEE80211_T_VHT_160,
1640 1170000, 1300000, 0, 0, 0, 1170000,
1641 0x327},
1642 /* 384 MCS-08 */ { VHT160_MODE_VALID_MASK,
1643 DP_CMN_MOD_IEEE80211_T_VHT_160,
1644 1404000, 1560000, 0, 0, 0, 1404000,
1645 0x328},
1646 /* 385 MCS-09 */ { VHT160_MODE_VALID_MASK,
1647 DP_CMN_MOD_IEEE80211_T_VHT_160,
1648 1560000, 1733300, 0, 0, 0, 1560000,
1649 0x329},
1650 /* 386 MCS-10 */ { VHT160_LDPC_ONLY_MASKS,
1651 DP_CMN_MOD_IEEE80211_T_VHT_160,
1652 1755000, 1950000, 0, 0, 0, 1755000,
1653 0x32a},
1654 /* 387 MCS-11 */ { VHT160_LDPC_ONLY_MASKS,
1655 DP_CMN_MOD_IEEE80211_T_VHT_160,
1656 1950000, 2166700, 0, 0, 0, 1950000,
1657 0x32b},
1658 /* If maximum number of spatial streams supported
1659 * at 160MHZ > 2 use below rates
1660 */
1661 /* 388 MCS-00 */ { VHT160_MODE_VALID_MASK,
1662 DP_CMN_MOD_IEEE80211_T_VHT_160,
1663 175500, 195000, 0, 0, 0, 175500,
1664 0x340 },
1665 /* 389 MCS-01 */ { VHT160_MODE_VALID_MASK,
1666 DP_CMN_MOD_IEEE80211_T_VHT_160,
1667 351000, 390000, 0, 0, 0, 351000,
1668 0x341 },
1669 /* 390 MCS-02 */ { VHT160_MODE_VALID_MASK,
1670 DP_CMN_MOD_IEEE80211_T_VHT_160,
1671 526500, 585000, 0, 0, 0, 526500,
1672 0x342 },
1673 /* 391 MCS-03 */ { VHT160_MODE_VALID_MASK,
1674 DP_CMN_MOD_IEEE80211_T_VHT_160,
1675 702000, 780000, 0, 0, 0, 702000,
1676 0x343 },
1677 /* 392 MCS-04 */ { VHT160_MODE_VALID_MASK,
1678 DP_CMN_MOD_IEEE80211_T_VHT_160,
1679 1053000, 1170000, 0, 0, 0, 1053000,
1680 0x344 },
1681 /* 393 MCS-05 */ { VHT160_MODE_VALID_MASK,
1682 DP_CMN_MOD_IEEE80211_T_VHT_160,
1683 1404000, 1560000, 0, 0, 0, 1404000,
1684 0x345 },
1685 /* 394 MCS-06 */ { VHT160_MODE_VALID_MASK,
1686 DP_CMN_MOD_IEEE80211_T_VHT_160,
1687 1579500, 1755000, 0, 0, 0, 1579500,
1688 0x346 },
1689 /* 395 MCS-07 */ { VHT160_MODE_VALID_MASK,
1690 DP_CMN_MOD_IEEE80211_T_VHT_160,
1691 1755000, 1755000, 0, 0, 0, 1755000,
1692 0x347 },
1693 /* 396 MCS-08 */ { VHT160_MODE_VALID_MASK,
1694 DP_CMN_MOD_IEEE80211_T_VHT_160,
1695 2106000, 2340000, 0, 0, 0, 2106000,
1696 0x348 },
1697 /* 397 MCS-09 */ { VHT160_MODE_VALID_MASK,
1698 DP_CMN_MOD_IEEE80211_T_VHT_160,
1699 2340000, 2600000, 0, 0, 0, 2340000,
1700 0x349 },
1701 /* 398 MCS-10 */ { VHT160_LDPC_ONLY_MASKS,
1702 DP_CMN_MOD_IEEE80211_T_VHT_160,
1703 2632500, 2925000, 0, 0, 0, 2632500,
1704 0x34a },
1705 /* 399 MCS-11 */ { VHT160_LDPC_ONLY_MASKS,
1706 DP_CMN_MOD_IEEE80211_T_VHT_160,
1707 2925000, 3250000, 0, 0, 0, 2925000,
1708 0x34b },
1709 /* If maximum number of spatial streams supported
1710 * at 160MHZ > 3 use below rates
1711 */
1712 /* 400 MCS-00 */ { VHT160_MODE_VALID_MASK,
1713 DP_CMN_MOD_IEEE80211_T_VHT_160,
1714 234000, 260000, 0, 0, 0, 234000,
1715 0x360 },
1716 /* 401 MCS-01 */ { VHT160_MODE_VALID_MASK,
1717 DP_CMN_MOD_IEEE80211_T_VHT_160,
1718 468000, 520000, 0, 0, 0, 468000,
1719 0x361 },
1720 /* 402 MCS-02 */ { VHT160_MODE_VALID_MASK,
1721 DP_CMN_MOD_IEEE80211_T_VHT_160,
1722 702000, 780000, 0, 0, 0, 702000,
1723 0x362 },
1724 /* 403 MCS-03 */ { VHT160_MODE_VALID_MASK,
1725 DP_CMN_MOD_IEEE80211_T_VHT_160,
1726 936000, 1040000, 0, 0, 0, 936000,
1727 0x363 },
1728 /* 404 MCS-04 */ { VHT160_MODE_VALID_MASK,
1729 DP_CMN_MOD_IEEE80211_T_VHT_160,
1730 1404000, 1560000, 0, 0, 0, 1404000,
1731 0x364 },
1732 /* 405 MCS-05 */ { VHT160_MODE_VALID_MASK,
1733 DP_CMN_MOD_IEEE80211_T_VHT_160,
1734 1872000, 2080000, 0, 0, 0, 1872000,
1735 0x365 },
1736 /* 406 MCS-06 */ { VHT160_MODE_VALID_MASK,
1737 DP_CMN_MOD_IEEE80211_T_VHT_160,
1738 2106000, 2340000, 0, 0, 0, 2106000,
1739 0x366 },
1740 /* 407 MCS-07 */ { VHT160_MODE_VALID_MASK,
1741 DP_CMN_MOD_IEEE80211_T_VHT_160,
1742 2340000, 2600000, 0, 0, 0, 2340000,
1743 0x367 },
1744 /* 408 MCS-08 */ { VHT160_MODE_VALID_MASK,
1745 DP_CMN_MOD_IEEE80211_T_VHT_160,
1746 2808000, 3120000, 0, 0, 0, 2808000,
1747 0x368 },
1748 /* 409 MCS-09 */ { VHT160_LDPC_ONLY_MASKS,
1749 DP_CMN_MOD_IEEE80211_T_VHT_160,
1750 3120000, 3466700, 0, 0, 0, 3120000,
1751 0x369 },
1752 /* 410 MCS-10 */ { VHT160_LDPC_ONLY_MASKS,
1753 DP_CMN_MOD_IEEE80211_T_VHT_160,
1754 3510000, 3900000, 0, 0, 0, 3510000,
1755 0x36a },
1756 /* 411 MCS-11 */ { VHT160_LDPC_ONLY_MASKS,
1757 DP_CMN_MOD_IEEE80211_T_VHT_160,
1758 3900000, 4333300, 0, 0, 0, 3900000,
1759 0x36b },
1760
1761 /* 11ax RU242 rates
1762 */
1763 /* 412 MCS-00 */ { HE20_MODE_VALID_MASK,
1764 DP_CMN_MOD_IEEE80211_T_HE_20,
1765 8600, 8900, 8100, 7300, 4300, 8600, 0x400},
1766 /* 413 MCS-01 */ { HE20_MODE_VALID_MASK,
1767 DP_CMN_MOD_IEEE80211_T_HE_20,
1768 17200, 17700, 16300, 14600, 8600, 17200,
1769 0x401},
1770 /* 414 MCS-02 */ { HE20_MODE_VALID_MASK,
1771 DP_CMN_MOD_IEEE80211_T_HE_20,
1772 25800, 26600, 24400, 21900, 0, 25800,
1773 0x402},
1774 /* 415 MCS-03 */ { HE20_MODE_VALID_MASK,
1775 DP_CMN_MOD_IEEE80211_T_HE_20,
1776 34400, 35500, 32500, 29300, 17700, 34400,
1777 0x403},
1778 /* 416 MCS-04 */ { HE20_MODE_VALID_MASK,
1779 DP_CMN_MOD_IEEE80211_T_HE_20,
1780 51600, 53200, 48800, 43900, 25800, 51600,
1781 0x404},
1782 /* 417 MCS-05 */ { HE20_MODE_VALID_MASK,
1783 DP_CMN_MOD_IEEE80211_T_HE_20,
1784 68800, 70900, 65000, 58500, 0, 68800,
1785 0x405},
1786 /* 418 MCS-06 */ { HE20_MODE_VALID_MASK,
1787 DP_CMN_MOD_IEEE80211_T_HE_20,
1788 77400, 79800, 73100, 65800, 0, 77400,
1789 0x406},
1790 /* 419 MCS-07 */ { HE20_MODE_VALID_MASK,
1791 DP_CMN_MOD_IEEE80211_T_HE_20,
1792 86000, 88600, 81300, 73100, 0, 86000,
1793 0x407},
1794 /* 420 MCS-08 */ { HE20_MODE_VALID_MASK,
1795 DP_CMN_MOD_IEEE80211_T_HE_20,
1796 103200, 106400, 97500, 87800, 0, 103200,
1797 0x408},
1798 /* 421 MCS-09 */ { HE20_MODE_VALID_MASK,
1799 DP_CMN_MOD_IEEE80211_T_HE_20,
1800 114700, 118200, 108300, 97500, 0, 114700,
1801 0x409},
1802 /* 422 MCS-10 */ { HE20_LDPC_ONLY_MASKS,
1803 DP_CMN_MOD_IEEE80211_T_HE_20,
1804 129000, 133000, 121900, 109700, 0, 129000,
1805 0x40a},
1806 /* 423 MCS-11 */ { HE20_LDPC_ONLY_MASKS,
1807 DP_CMN_MOD_IEEE80211_T_HE_20,
1808 143400, 147700, 135400, 121900, 0, 143400,
1809 0x40b},
1810 /* 424 MCS-12 */ { HE20_LDPC_ONLY_MASKS,
1811 DP_CMN_MOD_IEEE80211_T_HE_20,
1812 154900, 159500, 146300, 131600, 0, 154900,
1813 0x40c},
1814 /* 425 MCS-13 */ { HE20_LDPC_ONLY_MASKS,
1815 DP_CMN_MOD_IEEE80211_T_HE_20,
1816 172100, 177300, 162500, 146300, 0, 172100,
1817 0x40d},
1818 /* When number spatial streams > 1 use below rates */
1819 /* 426 MCS-00 */ { HE20_MODE_VALID_MASK,
1820 DP_CMN_MOD_IEEE80211_T_HE_20,
1821 17200, 17700, 16300, 14600, 8600, 17200,
1822 0x420},
1823 /* 427 MCS-01 */ { HE20_MODE_VALID_MASK,
1824 DP_CMN_MOD_IEEE80211_T_HE_20,
1825 34400, 35500, 32500, 29300, 17700, 34400,
1826 0x421},
1827 /* 428 MCS-02 */ { HE20_MODE_VALID_MASK,
1828 DP_CMN_MOD_IEEE80211_T_HE_20,
1829 51600, 53200, 48800, 43900, 0, 51600,
1830 0x422},
1831 /* 429 MCS-03 */ { HE20_MODE_VALID_MASK,
1832 DP_CMN_MOD_IEEE80211_T_HE_20,
1833 68800, 70900, 65000, 58500, 34400, 68800,
1834 0x423},
1835 /* 430 MCS-04 */ { HE20_MODE_VALID_MASK,
1836 DP_CMN_MOD_IEEE80211_T_HE_20,
1837 103200, 106400, 97500, 87800, 51600, 103200,
1838 0x424},
1839 /* 431 MCS-05 */ { HE20_MODE_VALID_MASK,
1840 DP_CMN_MOD_IEEE80211_T_HE_20,
1841 137600, 141800, 130000, 117000, 0, 137600,
1842 0x425},
1843 /* 432 MCS-06 */ { HE20_MODE_VALID_MASK,
1844 DP_CMN_MOD_IEEE80211_T_HE_20,
1845 154900, 159500, 146300, 131600, 0, 154900,
1846 0x426},
1847 /* 433 MCS-07 */ { HE20_MODE_VALID_MASK,
1848 DP_CMN_MOD_IEEE80211_T_HE_20,
1849 172100, 177300, 162500, 146300, 0, 172100,
1850 0x427},
1851 /* 434 MCS-08 */ { HE20_MODE_VALID_MASK,
1852 DP_CMN_MOD_IEEE80211_T_HE_20,
1853 206500, 212700, 195000, 175500, 0, 206500,
1854 0x428},
1855 /* 435 MCS-09 */ { HE20_MODE_VALID_MASK,
1856 DP_CMN_MOD_IEEE80211_T_HE_20,
1857 229400, 236400, 216700, 195000, 0, 229400,
1858 0x429},
1859 /* 436 MCS-10 */ { HE20_LDPC_ONLY_MASKS,
1860 DP_CMN_MOD_IEEE80211_T_HE_20,
1861 258100, 265900, 243800, 219400, 0, 258100,
1862 0x42a},
1863 /* 437 MCS-11 */ { HE20_LDPC_ONLY_MASKS,
1864 DP_CMN_MOD_IEEE80211_T_HE_20,
1865 286800, 295500, 270800, 243800, 0, 286800,
1866 0x42b},
1867 /* 438 MCS-12 */ { HE20_LDPC_ONLY_MASKS,
1868 DP_CMN_MOD_IEEE80211_T_HE_20,
1869 309700, 319100, 292500, 263300, 0, 309700,
1870 0x42c},
1871 /* 439 MCS-13 */ { HE20_LDPC_ONLY_MASKS,
1872 DP_CMN_MOD_IEEE80211_T_HE_20,
1873 344100, 354500, 325000, 292500, 0, 344100,
1874 0x42d},
1875
1876 /* When number of spatial streams > 2
1877 * use below rates
1878 */
1879 /* 440 MCS-00 */ { HE20_MODE_VALID_MASK,
1880 DP_CMN_MOD_IEEE80211_T_HE_20,
1881 25800, 26600, 24400, 21900, 12900, 25800,
1882 0x440},
1883 /* 441 MCS-01 */ { HE20_MODE_VALID_MASK,
1884 DP_CMN_MOD_IEEE80211_T_HE_20,
1885 51600, 53200, 48800, 43900, 25800, 51600,
1886 0x441},
1887 /* 442 MCS-02 */ { HE20_MODE_VALID_MASK,
1888 DP_CMN_MOD_IEEE80211_T_HE_20,
1889 77400, 79800, 73100, 65800, 0, 77400,
1890 0x442},
1891 /* 443 MCS-03 */ { HE20_MODE_VALID_MASK,
1892 DP_CMN_MOD_IEEE80211_T_HE_20,
1893 103200, 106400, 97500, 87800, 51600, 103200,
1894 0x443},
1895 /* 444 MCS-04 */ { HE20_MODE_VALID_MASK,
1896 DP_CMN_MOD_IEEE80211_T_HE_20,
1897 154900, 159500, 146300, 131600, 77400, 154900,
1898 0x444},
1899 /* 445 MCS-05 */ { HE20_MODE_VALID_MASK,
1900 DP_CMN_MOD_IEEE80211_T_HE_20,
1901 206500, 212700, 195000, 175500, 0, 206500,
1902 0x445},
1903 /* 446 MCS-06 */ { HE20_MODE_VALID_MASK,
1904 DP_CMN_MOD_IEEE80211_T_HE_20,
1905 232300, 239300, 219400, 197400, 0, 232300,
1906 0x446},
1907 /* 447 MCS-07 */ { HE20_MODE_VALID_MASK,
1908 DP_CMN_MOD_IEEE80211_T_HE_20,
1909 258100, 265900, 243800, 219400, 0, 258100,
1910 0x447},
1911 /* 448 MCS-08 */ { HE20_MODE_VALID_MASK,
1912 DP_CMN_MOD_IEEE80211_T_HE_20,
1913 309700, 319100, 292500, 263300, 0, 309700,
1914 0x448},
1915 /* 449 MCS-09 */ { HE20_MODE_VALID_MASK,
1916 DP_CMN_MOD_IEEE80211_T_HE_20,
1917 344100, 354500, 325000, 292500, 0, 344100,
1918 0x449},
1919 /* 450 MCS-10 */ { HE20_LDPC_ONLY_MASKS,
1920 DP_CMN_MOD_IEEE80211_T_HE_20,
1921 387100, 398900, 365600, 329100, 0, 387100,
1922 0x44a},
1923 /* 451 MCS-11 */ { HE20_LDPC_ONLY_MASKS,
1924 DP_CMN_MOD_IEEE80211_T_HE_20,
1925 430100, 443200, 406300, 365600, 0, 430100,
1926 0x44b},
1927 /* 452 MCS-12 */ { HE20_LDPC_ONLY_MASKS,
1928 DP_CMN_MOD_IEEE80211_T_HE_20,
1929 464600, 478600, 438800, 394900, 0, 464600,
1930 0x44c},
1931 /* 453 MCS-13 */ { HE20_LDPC_ONLY_MASKS,
1932 DP_CMN_MOD_IEEE80211_T_HE_20,
1933 516200, 531800, 487500, 438800, 0, 516200,
1934 0x44d},
1935
1936 /* When number of spatial streams > 3
1937 * use below rates
1938 */
1939 /* 454 MCS-00 */ { HE20_MODE_VALID_MASK,
1940 DP_CMN_MOD_IEEE80211_T_HE_20,
1941 34400, 35500, 32500, 29300, 17700, 34400,
1942 0x460},
1943 /* 455 MCS-01 */ { HE20_MODE_VALID_MASK,
1944 DP_CMN_MOD_IEEE80211_T_HE_20,
1945 68800, 70900, 65000, 58500, 34400, 68800,
1946 0x461},
1947 /* 456 MCS-02 */ { HE20_MODE_VALID_MASK,
1948 DP_CMN_MOD_IEEE80211_T_HE_20,
1949 103200, 106400, 97500, 87800, 0, 103200,
1950 0x462},
1951 /* 457 MCS-03 */ { HE20_MODE_VALID_MASK,
1952 DP_CMN_MOD_IEEE80211_T_HE_20,
1953 137600, 141800, 130000, 117000, 68800, 137600,
1954 0x463},
1955 /* 458 MCS-04 */ { HE20_MODE_VALID_MASK,
1956 DP_CMN_MOD_IEEE80211_T_HE_20,
1957 206500, 212700, 195000, 175500, 103200, 206500,
1958 0x464},
1959 /* 459 MCS-05 */ { HE20_MODE_VALID_MASK,
1960 DP_CMN_MOD_IEEE80211_T_HE_20,
1961 275300, 283600, 260000, 234000, 0, 275300,
1962 0x465},
1963 /* 460 MCS-06 */ { HE20_MODE_VALID_MASK,
1964 DP_CMN_MOD_IEEE80211_T_HE_20,
1965 309700, 319100, 292500, 263300, 0, 309700,
1966 0x466},
1967 /* 461 MCS-07 */ { HE20_MODE_VALID_MASK,
1968 DP_CMN_MOD_IEEE80211_T_HE_20,
1969 344100, 354500, 325000, 292500, 0, 344100,
1970 0x467},
1971 /* 462 MCS-08 */ { HE20_MODE_VALID_MASK,
1972 DP_CMN_MOD_IEEE80211_T_HE_20,
1973 412900, 425500, 390000, 351000, 0, 412900,
1974 0x468},
1975 /* 463 MCS-09 */ { HE20_MODE_VALID_MASK,
1976 DP_CMN_MOD_IEEE80211_T_HE_20,
1977 455800, 472700, 433300, 390000, 0, 455800,
1978 0x469},
1979 /* 464 MCS-10 */ { HE20_LDPC_ONLY_MASKS,
1980 DP_CMN_MOD_IEEE80211_T_HE_20,
1981 516200, 531800, 487500, 438800, 0, 516200,
1982 0x46a},
1983 /* 465 MCS-11 */ { HE20_LDPC_ONLY_MASKS,
1984 DP_CMN_MOD_IEEE80211_T_HE_20,
1985 573500, 590900, 541700, 487500, 0, 573500,
1986 0x46b},
1987 /* 466 MCS-12 */ { HE20_LDPC_ONLY_MASKS,
1988 DP_CMN_MOD_IEEE80211_T_HE_20,
1989 619400, 638200, 585000, 526500, 0, 619400,
1990 0x46c},
1991 /* 467 MCS-13 */ { HE20_LDPC_ONLY_MASKS,
1992 DP_CMN_MOD_IEEE80211_T_HE_20,
1993 688200, 709100, 650000, 585000, 0, 688200,
1994 0x46d},
1995
1996 /* When number of spatial streams > 4
1997 * use below rates
1998 */
1999 /* 468 MCS-00 */ { HE20_LDPC_ONLY_MASKS,
2000 DP_CMN_MOD_IEEE80211_T_HE_20,
2001 43000, 43300, 40600, 36600, 21500, 43000,
2002 0x480},
2003 /* 469 MCS-01 */ { HE20_LDPC_ONLY_MASKS,
2004 DP_CMN_MOD_IEEE80211_T_HE_20,
2005 86000, 88600, 81300, 73100, 43000, 86000,
2006 0x481},
2007 /* 470 MCS-02 */ { HE20_LDPC_ONLY_MASKS,
2008 DP_CMN_MOD_IEEE80211_T_HE_20,
2009 129000, 133000, 121900, 109700, 0, 129000,
2010 0x482},
2011 /* 471 MCS-03 */ { HE20_LDPC_ONLY_MASKS,
2012 DP_CMN_MOD_IEEE80211_T_HE_20,
2013 172100, 177300, 162500, 146300, 86000, 172100,
2014 0x483},
2015 /* 472 MCS-04 */ { HE20_LDPC_ONLY_MASKS,
2016 DP_CMN_MOD_IEEE80211_T_HE_20,
2017 258100, 265900, 243800, 219400, 129000, 258100,
2018 0x484},
2019 /* 473 MCS-05 */ { HE20_LDPC_ONLY_MASKS,
2020 DP_CMN_MOD_IEEE80211_T_HE_20,
2021 344100, 354500, 325000, 292500, 0, 344100,
2022 0x485},
2023 /* 474 MCS-06 */ { HE20_LDPC_ONLY_MASKS,
2024 DP_CMN_MOD_IEEE80211_T_HE_20,
2025 387100, 398900, 365600, 329100, 0, 387100,
2026 0x486},
2027 /* 475 MCS-07 */ { HE20_LDPC_ONLY_MASKS,
2028 DP_CMN_MOD_IEEE80211_T_HE_20,
2029 430100, 443200, 406300, 365600, 0, 430100,
2030 0x487},
2031 /* 476 MCS-08 */ { HE20_LDPC_ONLY_MASKS,
2032 DP_CMN_MOD_IEEE80211_T_HE_20,
2033 516200, 531800, 487500, 438800, 0, 516200,
2034 0x488},
2035 /* 477 MCS-09 */ { HE20_LDPC_ONLY_MASKS,
2036 DP_CMN_MOD_IEEE80211_T_HE_20,
2037 573500, 590900, 541700, 487500, 0, 573500,
2038 0x489},
2039 /* 478 MCS-10 */ { HE20_LDPC_ONLY_MASKS,
2040 DP_CMN_MOD_IEEE80211_T_HE_20,
2041 645200, 664800, 609400, 548400, 0, 645200,
2042 0x48a},
2043 /* 479 MCS-11 */ { HE20_LDPC_ONLY_MASKS,
2044 DP_CMN_MOD_IEEE80211_T_HE_20,
2045 716900, 738600, 677100, 609400, 0, 716900,
2046 0x48b},
2047 /* 480 MCS-12 */ { HE20_LDPC_ONLY_MASKS,
2048 DP_CMN_MOD_IEEE80211_T_HE_20,
2049 774300, 797700, 731300, 658100, 0, 774300,
2050 0x48c},
2051 /* 481 MCS-13 */ { HE20_LDPC_ONLY_MASKS,
2052 DP_CMN_MOD_IEEE80211_T_HE_20,
2053 860300, 886400, 812500, 731300, 0, 860300,
2054 0x48d},
2055
2056 /* When number of spatial streams > 5
2057 * use below rates
2058 */
2059 /* 482 MCS-00 */ { HE20_LDPC_ONLY_MASKS,
2060 DP_CMN_MOD_IEEE80211_T_HE_20,
2061 51600, 53200, 48800, 43900, 25800, 51600,
2062 0x4a0},
2063 /* 483 MCS-01 */ { HE20_LDPC_ONLY_MASKS,
2064 DP_CMN_MOD_IEEE80211_T_HE_20,
2065 103200, 106400, 97500, 87800, 51600, 103200,
2066 0x4a1},
2067 /* 484 MCS-02 */ { HE20_LDPC_ONLY_MASKS,
2068 DP_CMN_MOD_IEEE80211_T_HE_20,
2069 154900, 159500, 146300, 131600, 0, 154900,
2070 0x4a2},
2071 /* 485 MCS-03 */ { HE20_LDPC_ONLY_MASKS,
2072 DP_CMN_MOD_IEEE80211_T_HE_20,
2073 206500, 212700, 195000, 175500, 103200, 206500,
2074 0x4a3},
2075 /* 486 MCS-04 */ { HE20_LDPC_ONLY_MASKS,
2076 DP_CMN_MOD_IEEE80211_T_HE_20,
2077 309700, 319100, 292500, 263300, 154900, 309700,
2078 0x4a4},
2079 /* 487 MCS-05 */ { HE20_LDPC_ONLY_MASKS,
2080 DP_CMN_MOD_IEEE80211_T_HE_20,
2081 412900, 425500, 390000, 351000, 0, 412900,
2082 0x4a5},
2083 /* 488 MCS-06 */ { HE20_LDPC_ONLY_MASKS,
2084 DP_CMN_MOD_IEEE80211_T_HE_20,
2085 464600, 478600, 438000, 394900, 0, 464600,
2086 0x4a6},
2087 /* 489 MCS-07 */ { HE20_LDPC_ONLY_MASKS,
2088 DP_CMN_MOD_IEEE80211_T_HE_20,
2089 516200, 531800, 487500, 438800, 0, 516200,
2090 0x4a7},
2091 /* 490 MCS-08 */ { HE20_LDPC_ONLY_MASKS,
2092 DP_CMN_MOD_IEEE80211_T_HE_20,
2093 619400, 638200, 585000, 526500, 0, 619400,
2094 0x4a8},
2095 /* 491 MCS-09 */ { HE20_LDPC_ONLY_MASKS,
2096 DP_CMN_MOD_IEEE80211_T_HE_20,
2097 688200, 709100, 650000, 585000, 0, 688200,
2098 0x4a9},
2099 /* 492 MCS-10 */ { HE20_LDPC_ONLY_MASKS,
2100 DP_CMN_MOD_IEEE80211_T_HE_20,
2101 774300, 797700, 731300, 658100, 0, 774300,
2102 0x4aa},
2103 /* 493 MCS-11 */ { HE20_LDPC_ONLY_MASKS,
2104 DP_CMN_MOD_IEEE80211_T_HE_20,
2105 860300, 886400, 812500, 731300, 0, 860300,
2106 0x4ab},
2107 /* 494 MCS-12 */ { HE20_LDPC_ONLY_MASKS,
2108 DP_CMN_MOD_IEEE80211_T_HE_20,
2109 929100, 957300, 877500, 789800, 0, 929100,
2110 0x4ac},
2111 /* 495 MCS-13 */ { HE20_LDPC_ONLY_MASKS,
2112 DP_CMN_MOD_IEEE80211_T_HE_20,
2113 1032400, 1063600, 975000, 877500, 0, 1032400,
2114 0x4ad},
2115
2116 /* When number of spatial streams > 6
2117 * use below rates
2118 */
2119 /* 496 MCS-00 */ { HE20_LDPC_ONLY_MASKS,
2120 DP_CMN_MOD_IEEE80211_T_HE_20,
2121 60200, 62000, 56900, 51200, 30100, 60200,
2122 0x4c0},
2123 /* 497 MCS-01 */ { HE20_LDPC_ONLY_MASKS,
2124 DP_CMN_MOD_IEEE80211_T_HE_20,
2125 120400, 124100, 113800, 102400, 60200, 120400,
2126 0x4c1},
2127 /* 498 MCS-02 */ { HE20_LDPC_ONLY_MASKS,
2128 DP_CMN_MOD_IEEE80211_T_HE_20,
2129 180700, 186100, 170600, 153600, 0, 180700,
2130 0x4c2},
2131 /* 499 MCS-03 */ { HE20_LDPC_ONLY_MASKS,
2132 DP_CMN_MOD_IEEE80211_T_HE_20,
2133 240900, 248200, 227500, 204800, 120400, 240900,
2134 0x4c3},
2135 /* 500 MCS-04 */ { HE20_LDPC_ONLY_MASKS,
2136 DP_CMN_MOD_IEEE80211_T_HE_20,
2137 361300, 372300, 341300, 307100, 180700, 361300,
2138 0x4c4},
2139 /* 501 MCS-05 */ { HE20_LDPC_ONLY_MASKS,
2140 DP_CMN_MOD_IEEE80211_T_HE_20,
2141 481800, 496400, 455000, 409500, 0, 481800,
2142 0x4c5},
2143 /* 502 MCS-06 */ { HE20_LDPC_ONLY_MASKS,
2144 DP_CMN_MOD_IEEE80211_T_HE_20,
2145 542000, 558400, 511900, 460700, 0, 542000,
2146 0x4c6},
2147 /* 503 MCS-07 */ { HE20_LDPC_ONLY_MASKS,
2148 DP_CMN_MOD_IEEE80211_T_HE_20,
2149 602200, 620500, 568800, 511900, 0, 602200,
2150 0x4c7},
2151 /* 504 MCS-08 */ { HE20_LDPC_ONLY_MASKS,
2152 DP_CMN_MOD_IEEE80211_T_HE_20,
2153 722600, 744500, 682500, 614300, 0, 722600,
2154 0x4c8},
2155 /* 505 MCS-09 */ { HE20_LDPC_ONLY_MASKS,
2156 DP_CMN_MOD_IEEE80211_T_HE_20,
2157 802900, 827300, 758300, 682500, 0, 802900,
2158 0x4c9},
2159 /* 506 MCS-10 */ { HE20_LDPC_ONLY_MASKS,
2160 DP_CMN_MOD_IEEE80211_T_HE_20,
2161 903300, 930700, 853100, 767800, 0, 903300,
2162 0x4ca},
2163 /* 507 MCS-11 */ { HE20_LDPC_ONLY_MASKS,
2164 DP_CMN_MOD_IEEE80211_T_HE_20,
2165 1003700, 1034100, 947900, 853100, 0, 1003700,
2166 0x4cb},
2167 /* 508 MCS-12 */ { HE20_LDPC_ONLY_MASKS,
2168 DP_CMN_MOD_IEEE80211_T_HE_20,
2169 1084000, 1116800, 1023800, 921400, 0, 1084000,
2170 0x4cc},
2171 /* 509 MCS-13 */ { HE20_LDPC_ONLY_MASKS,
2172 DP_CMN_MOD_IEEE80211_T_HE_20,
2173 1204400, 1240900, 1137500, 1023800, 0, 1204400,
2174 0x4cd},
2175
2176 /* When number of spatial streams > 7
2177 * use below rates
2178 */
2179 /* 510 MCS-00 */ { HE20_LDPC_ONLY_MASKS,
2180 DP_CMN_MOD_IEEE80211_T_HE_20,
2181 68800, 70900, 65000, 58500, 34400, 68800,
2182 0x4e0},
2183 /* 511 MCS-01 */ { HE20_LDPC_ONLY_MASKS,
2184 DP_CMN_MOD_IEEE80211_T_HE_20,
2185 137600, 141800, 130000, 117000, 68800, 137600,
2186 0x4e1},
2187 /* 512 MCS-02 */ { HE20_LDPC_ONLY_MASKS,
2188 DP_CMN_MOD_IEEE80211_T_HE_20,
2189 206500, 212700, 195000, 175500, 0, 206500,
2190 0x4e2},
2191 /* 513 MCS-03 */ { HE20_LDPC_ONLY_MASKS,
2192 DP_CMN_MOD_IEEE80211_T_HE_20,
2193 275300, 283600, 260000, 234000, 137600, 275300,
2194 0x4e3},
2195 /* 514 MCS-04 */ { HE20_LDPC_ONLY_MASKS,
2196 DP_CMN_MOD_IEEE80211_T_HE_20,
2197 412900, 425500, 390000, 351000, 206500, 412900,
2198 0x4e4},
2199 /* 515 MCS-05 */ { HE20_LDPC_ONLY_MASKS,
2200 DP_CMN_MOD_IEEE80211_T_HE_20,
2201 550600, 567300, 520000, 468000, 0, 550600,
2202 0x4e5},
2203 /* 516 MCS-06 */ { HE20_LDPC_ONLY_MASKS,
2204 DP_CMN_MOD_IEEE80211_T_HE_20,
2205 619400, 638200, 585000, 526500, 0, 619400,
2206 0x4e6},
2207 /* 517 MCS-07 */ { HE20_LDPC_ONLY_MASKS,
2208 DP_CMN_MOD_IEEE80211_T_HE_20,
2209 688200, 709100, 650000, 585000, 0, 688200,
2210 0x4e7},
2211 /* 518 MCS-08 */ { HE20_LDPC_ONLY_MASKS,
2212 DP_CMN_MOD_IEEE80211_T_HE_20,
2213 825900, 850900, 780000, 702000, 0, 825900,
2214 0x4e8},
2215 /* 519 MCS-09 */ { HE20_LDPC_ONLY_MASKS,
2216 DP_CMN_MOD_IEEE80211_T_HE_20,
2217 917600, 945500, 866700, 780000, 0, 917600,
2218 0x4e9},
2219 /* 520 MCS-10 */ { HE20_LDPC_ONLY_MASKS,
2220 DP_CMN_MOD_IEEE80211_T_HE_20,
2221 1032400, 1063600, 975000, 877500, 0, 1032400,
2222 0x4ea},
2223 /* 521 MCS-11 */ { HE20_LDPC_ONLY_MASKS,
2224 DP_CMN_MOD_IEEE80211_T_HE_20,
2225 1147100, 1181800, 1083300, 975000, 0, 1147100,
2226 0x4eb},
2227 /* 522 MCS-12 */ { HE20_LDPC_ONLY_MASKS,
2228 DP_CMN_MOD_IEEE80211_T_HE_20,
2229 1238800, 1276400, 1170000, 1053000, 0, 1238800,
2230 0x4ec},
2231 /* 523 MCS-13 */ { HE20_LDPC_ONLY_MASKS,
2232 DP_CMN_MOD_IEEE80211_T_HE_20,
2233 1376500, 1418200, 1300000, 1170000, 0, 1376500,
2234 0x4ed},
2235
2236 /* 11ax RU484 rates
2237 */
2238 /* 524 MCS-00 */ { HE40_LDPC_ONLY_MASKS,
2239 DP_CMN_MOD_IEEE80211_T_HE_40,
2240 17200, 17700, 16300, 14600, 8600, 17200, 0x400
2241 },
2242 /* 525 MCS-01 */ { HE40_LDPC_ONLY_MASKS,
2243 DP_CMN_MOD_IEEE80211_T_HE_40,
2244 34400, 35500, 32500, 29300, 17700, 34400, 0x401
2245 },
2246 /* 526 MCS-02 */ { HE40_LDPC_ONLY_MASKS,
2247 DP_CMN_MOD_IEEE80211_T_HE_40,
2248 51600, 53200, 48800, 43900, 25800, 51600, 0x402
2249 },
2250 /* 527 MCS-03 */ { HE40_LDPC_ONLY_MASKS,
2251 DP_CMN_MOD_IEEE80211_T_HE_40,
2252 68800, 70900, 65000, 58500, 0, 68800, 0x403
2253 },
2254 /* 528 MCS-04 */ { HE40_LDPC_ONLY_MASKS,
2255 DP_CMN_MOD_IEEE80211_T_HE_40,
2256 103200, 106400, 97500, 87800, 0, 103200,
2257 0x404 },
2258 /* 529 MCS-05 */ { HE40_LDPC_ONLY_MASKS,
2259 DP_CMN_MOD_IEEE80211_T_HE_40,
2260 137600, 141800, 130000, 117000, 0, 137600,
2261 0x405 },
2262 /* 530 MCS-06 */ { HE40_LDPC_ONLY_MASKS,
2263 DP_CMN_MOD_IEEE80211_T_HE_40,
2264 154900, 159500, 146300, 131600, 0, 154900,
2265 0x406 },
2266 /* 531 MCS-07 */ { HE40_LDPC_ONLY_MASKS,
2267 DP_CMN_MOD_IEEE80211_T_HE_40,
2268 172100, 177300, 162500, 146300, 0, 172100,
2269 0x407 },
2270 /* 532 MCS-08 */ { HE40_LDPC_ONLY_MASKS,
2271 DP_CMN_MOD_IEEE80211_T_HE_40,
2272 206500, 212700, 195000, 175500, 0, 206500,
2273 0x408 },
2274 /* 533 MCS-09 */ { HE40_LDPC_ONLY_MASKS,
2275 DP_CMN_MOD_IEEE80211_T_HE_40,
2276 229400, 236400, 216700, 195000, 0, 229400,
2277 0x409 },
2278 /* 534 MCS-10 */ { HE40_LDPC_ONLY_MASKS,
2279 DP_CMN_MOD_IEEE80211_T_HE_40,
2280 258100, 265900, 243800, 219400, 0, 258100,
2281 0x40a },
2282 /* 535 MCS-11 */ { HE40_LDPC_ONLY_MASKS,
2283 DP_CMN_MOD_IEEE80211_T_HE_40,
2284 286800, 295500, 270800, 243800, 0, 286800,
2285 0x40b },
2286 /* 536 MCS-12 */ { HE40_LDPC_ONLY_MASKS,
2287 DP_CMN_MOD_IEEE80211_T_HE_40,
2288 309700, 319100, 292500, 263300, 0, 309700,
2289 0x40c },
2290 /* 537 MCS-13 */ { HE40_LDPC_ONLY_MASKS,
2291 DP_CMN_MOD_IEEE80211_T_HE_40,
2292 344100, 354500, 325000, 292500, 0, 344100,
2293 0x40d },
2294 /* When number of spatial streams > 1
2295 * use below rates
2296 */
2297 /* 538 MCS-00 */ { HE40_LDPC_ONLY_MASKS,
2298 DP_CMN_MOD_IEEE80211_T_HE_40,
2299 34400, 35500, 32500, 29300, 17700, 34400, 0x420
2300 },
2301 /* 539 MCS-01 */ { HE40_LDPC_ONLY_MASKS,
2302 DP_CMN_MOD_IEEE80211_T_HE_40,
2303 68800, 70900, 65000, 58500, 34400, 68800, 0x421
2304 },
2305 /* 540 MCS-02 */ { HE40_LDPC_ONLY_MASKS,
2306 DP_CMN_MOD_IEEE80211_T_HE_40,
2307 103200, 106400, 97500, 87800, 0, 103200,
2308 0x422 },
2309 /* 541 MCS-03 */ { HE40_LDPC_ONLY_MASKS,
2310 DP_CMN_MOD_IEEE80211_T_HE_40,
2311 137600, 141800, 130000, 117000, 68800, 137600,
2312 0x423 },
2313 /* 542 MCS-04 */ { HE40_LDPC_ONLY_MASKS,
2314 DP_CMN_MOD_IEEE80211_T_HE_40,
2315 206500, 212700, 195000, 175500, 103200, 206500,
2316 0x424 },
2317 /* 543 MCS-05 */ { HE40_LDPC_ONLY_MASKS,
2318 DP_CMN_MOD_IEEE80211_T_HE_40,
2319 275300, 283600, 260000, 234000, 0, 275300,
2320 0x425 },
2321 /* 544 MCS-06 */ { HE40_LDPC_ONLY_MASKS,
2322 DP_CMN_MOD_IEEE80211_T_HE_40,
2323 309700, 319100, 292500, 263300, 0, 309700,
2324 0x426 },
2325 /* 545 MCS-07 */ { HE40_LDPC_ONLY_MASKS,
2326 DP_CMN_MOD_IEEE80211_T_HE_40,
2327 344100, 354500, 325000, 292500, 0, 344100,
2328 0x427 },
2329 /* 546 MCS-08 */ { HE40_LDPC_ONLY_MASKS,
2330 DP_CMN_MOD_IEEE80211_T_HE_40,
2331 412900, 425500, 390000, 351000, 0, 412900,
2332 0x428 },
2333 /* 547 MCS-09 */ { HE40_LDPC_ONLY_MASKS,
2334 DP_CMN_MOD_IEEE80211_T_HE_40,
2335 455800, 472700, 433300, 390000, 0, 455800,
2336 0x429 },
2337 /* 548 MCS-10 */ { HE40_LDPC_ONLY_MASKS,
2338 DP_CMN_MOD_IEEE80211_T_HE_40,
2339 516200, 531800, 487500, 438800, 0, 516200,
2340 0x42a },
2341 /* 549 MCS-11 */ { HE40_LDPC_ONLY_MASKS,
2342 DP_CMN_MOD_IEEE80211_T_HE_40,
2343 573500, 590900, 541700, 487500, 0, 573500,
2344 0x42b },
2345 /* 550 MCS-12 */ { HE40_LDPC_ONLY_MASKS,
2346 DP_CMN_MOD_IEEE80211_T_HE_40,
2347 619400, 638200, 585000, 526500, 0, 619400,
2348 0x42c },
2349 /* 551 MCS-13 */ { HE40_LDPC_ONLY_MASKS,
2350 DP_CMN_MOD_IEEE80211_T_HE_40,
2351 688200, 709100, 650000, 585000, 0, 688200,
2352 0x42d },
2353
2354 /* When number of spatial streams > 2
2355 * use below rates
2356 */
2357 /* 552 MCS-00 */ { HE40_LDPC_ONLY_MASKS,
2358 DP_CMN_MOD_IEEE80211_T_HE_40,
2359 51600, 53200, 48800, 43900, 25800, 51600, 0x440
2360 },
2361 /* 553 MCS-01 */ { HE40_LDPC_ONLY_MASKS,
2362 DP_CMN_MOD_IEEE80211_T_HE_40,
2363 103200, 106400, 97500, 87800, 51600, 103200,
2364 0x441 },
2365 /* 554 MCS-02 */ { HE40_LDPC_ONLY_MASKS,
2366 DP_CMN_MOD_IEEE80211_T_HE_40,
2367 154900, 159500, 146300, 131600, 0, 154900,
2368 0x442 },
2369 /* 555 MCS-03 */ { HE40_LDPC_ONLY_MASKS,
2370 DP_CMN_MOD_IEEE80211_T_HE_40,
2371 206500, 212700, 195000, 175500, 103200, 206500,
2372 0x443 },
2373 /* 556 MCS-04 */ { HE40_LDPC_ONLY_MASKS,
2374 DP_CMN_MOD_IEEE80211_T_HE_40,
2375 309700, 319100, 292500, 263300, 154900, 309700,
2376 0x444 },
2377 /* 557 MCS-05 */ { HE40_LDPC_ONLY_MASKS,
2378 DP_CMN_MOD_IEEE80211_T_HE_40,
2379 412900, 425500, 390000, 351000, 0, 412900,
2380 0x445 },
2381 /* 558 MCS-06 */ { HE40_LDPC_ONLY_MASKS,
2382 DP_CMN_MOD_IEEE80211_T_HE_40,
2383 464600, 478600, 438000, 394900, 0, 464600,
2384 0x446 },
2385 /* 559 MCS-07 */ { HE40_LDPC_ONLY_MASKS,
2386 DP_CMN_MOD_IEEE80211_T_HE_40,
2387 516200, 531800, 487500, 438800, 0, 516200,
2388 0x447 },
2389 /* 560 MCS-08 */ { HE40_LDPC_ONLY_MASKS,
2390 DP_CMN_MOD_IEEE80211_T_HE_40,
2391 619400, 638200, 585000, 526500, 0, 619400,
2392 0x448 },
2393 /* 561 MCS-09 */ { HE40_LDPC_ONLY_MASKS,
2394 DP_CMN_MOD_IEEE80211_T_HE_40,
2395 688200, 709100, 650000, 585000, 0, 688200,
2396 0x449 },
2397 /* 562 MCS-10 */ { HE40_LDPC_ONLY_MASKS,
2398 DP_CMN_MOD_IEEE80211_T_HE_40,
2399 774300, 797700, 731300, 658100, 0, 774300,
2400 0x44a },
2401 /* 563 MCS-11 */ { HE40_LDPC_ONLY_MASKS,
2402 DP_CMN_MOD_IEEE80211_T_HE_40,
2403 860300, 886400, 812500, 731300, 0, 860300,
2404 0x44b },
2405 /* 564 MCS-12 */ { HE40_LDPC_ONLY_MASKS,
2406 DP_CMN_MOD_IEEE80211_T_HE_40,
2407 929100, 957300, 877500, 789800, 0, 929100,
2408 0x44c },
2409 /* 565 MCS-13 */ { HE40_LDPC_ONLY_MASKS,
2410 DP_CMN_MOD_IEEE80211_T_HE_40,
2411 1032400, 1063600, 975000, 877500, 0, 1032400,
2412 0x44d },
2413
2414 /* When number of spatial streams > 3
2415 * use below rates
2416 */
2417 /* 566 MCS-00 */ { HE40_LDPC_ONLY_MASKS,
2418 DP_CMN_MOD_IEEE80211_T_HE_40,
2419 68800, 70900, 65000, 58500, 34400, 68800, 0x460
2420 },
2421 /* 567 MCS-01 */ { HE40_LDPC_ONLY_MASKS,
2422 DP_CMN_MOD_IEEE80211_T_HE_40,
2423 137600, 141800, 130000, 117000, 68800, 137600,
2424 0x461 },
2425 /* 568 MCS-02 */ { HE40_LDPC_ONLY_MASKS,
2426 DP_CMN_MOD_IEEE80211_T_HE_40,
2427 206500, 212700, 195000, 175500, 0, 206500,
2428 0x462 },
2429 /* 569 MCS-03 */ { HE40_LDPC_ONLY_MASKS,
2430 DP_CMN_MOD_IEEE80211_T_HE_40,
2431 275300, 283600, 260000, 234000, 137600, 275300,
2432 0x463 },
2433 /* 570 MCS-04 */ { HE40_LDPC_ONLY_MASKS,
2434 DP_CMN_MOD_IEEE80211_T_HE_40,
2435 412900, 425500, 390000, 351000, 206500, 412900,
2436 0x464 },
2437 /* 571 MCS-05 */ { HE40_LDPC_ONLY_MASKS,
2438 DP_CMN_MOD_IEEE80211_T_HE_40,
2439 550600, 567300, 520000, 468000, 0, 550600,
2440 0x465 },
2441 /* 572 MCS-06 */ { HE40_LDPC_ONLY_MASKS,
2442 DP_CMN_MOD_IEEE80211_T_HE_40,
2443 619400, 638200, 585000, 526500, 0, 619400,
2444 0x466 },
2445 /* 573 MCS-07 */ { HE40_LDPC_ONLY_MASKS,
2446 DP_CMN_MOD_IEEE80211_T_HE_40,
2447 688200, 709100, 650000, 585000, 0, 688200,
2448 0x467 },
2449 /* 574 MCS-08 */ { HE40_LDPC_ONLY_MASKS,
2450 DP_CMN_MOD_IEEE80211_T_HE_40,
2451 825900, 850900, 780000, 702000, 0, 825900,
2452 0x468 },
2453 /* 575 MCS-09 */ { HE40_LDPC_ONLY_MASKS,
2454 DP_CMN_MOD_IEEE80211_T_HE_40,
2455 917600, 945500, 866700, 780000, 0, 917600,
2456 0x469 },
2457 /* 576 MCS-10 */ { HE40_LDPC_ONLY_MASKS,
2458 DP_CMN_MOD_IEEE80211_T_HE_40,
2459 1032400, 1063600, 975000, 877500, 0, 1032400,
2460 0x46a },
2461 /* 577 MCS-11 */ { HE40_LDPC_ONLY_MASKS,
2462 DP_CMN_MOD_IEEE80211_T_HE_40,
2463 1147100, 1181800, 1083300, 975000, 0, 1147100,
2464 0x46b },
2465 /* 578 MCS-12 */ { HE40_LDPC_ONLY_MASKS,
2466 DP_CMN_MOD_IEEE80211_T_HE_40,
2467 1238800, 1276400, 1170000, 1053000, 0, 1238800,
2468 0x46c },
2469 /* 579 MCS-13 */ { HE40_LDPC_ONLY_MASKS,
2470 DP_CMN_MOD_IEEE80211_T_HE_40,
2471 1376500, 1418200, 1300000, 1170000, 0, 1376500,
2472 0x46d },
2473
2474 /* When number of spatial streams > 4
2475 * use below rates
2476 */
2477 /* 580 MCS-00 */ { HE40_LDPC_ONLY_MASKS,
2478 DP_CMN_MOD_IEEE80211_T_HE_40,
2479 86000, 88600, 81300, 73100, 43000, 86000, 0x480
2480 },
2481 /* 581 MCS-01 */ { HE40_LDPC_ONLY_MASKS,
2482 DP_CMN_MOD_IEEE80211_T_HE_40,
2483 172100, 177300, 162500, 146300, 86000, 172100,
2484 0x481 },
2485 /* 582 MCS-02 */ { HE40_LDPC_ONLY_MASKS,
2486 DP_CMN_MOD_IEEE80211_T_HE_40,
2487 258100, 265900, 243800, 219400, 0, 258100,
2488 0x482 },
2489 /* 583 MCS-03 */ { HE40_LDPC_ONLY_MASKS,
2490 DP_CMN_MOD_IEEE80211_T_HE_40,
2491 344100, 354500, 325000, 292500, 172100, 344100,
2492 0x483 },
2493 /* 584 MCS-04 */ { HE40_LDPC_ONLY_MASKS,
2494 DP_CMN_MOD_IEEE80211_T_HE_40,
2495 516200, 531800, 487500, 438800, 258100, 516200,
2496 0x484 },
2497 /* 585 MCS-05 */ { HE40_LDPC_ONLY_MASKS,
2498 DP_CMN_MOD_IEEE80211_T_HE_40,
2499 688200, 709100, 650000, 585000, 0, 688200,
2500 0x485 },
2501 /* 586 MCS-06 */ { HE40_LDPC_ONLY_MASKS,
2502 DP_CMN_MOD_IEEE80211_T_HE_40,
2503 774300, 797700, 731300, 658100, 0, 774300,
2504 0x486 },
2505 /* 587 MCS-07 */ { HE40_LDPC_ONLY_MASKS,
2506 DP_CMN_MOD_IEEE80211_T_HE_40,
2507 860300, 886400, 812500, 731300, 0, 860300,
2508 0x487 },
2509 /* 588 MCS-08 */ { HE40_LDPC_ONLY_MASKS,
2510 DP_CMN_MOD_IEEE80211_T_HE_40,
2511 1032400, 1063600, 975000, 877500, 0, 1032400,
2512 0x488 },
2513 /* 589 MCS-09 */ { HE40_LDPC_ONLY_MASKS,
2514 DP_CMN_MOD_IEEE80211_T_HE_40,
2515 1147100, 1181800, 1083300, 975000, 0, 1147100,
2516 0x489 },
2517 /* 590 MCS-10 */ { HE40_LDPC_ONLY_MASKS,
2518 DP_CMN_MOD_IEEE80211_T_HE_40,
2519 1290400, 1329500, 1218800, 1096900, 0, 1290400,
2520 0x48a },
2521 /* 591 MCS-11 */ { HE40_LDPC_ONLY_MASKS,
2522 DP_CMN_MOD_IEEE80211_T_HE_40,
2523 1433800, 1477300, 1354200, 1218800, 0, 1433800,
2524 0x48b },
2525 /* 592 MCS-12 */ { HE40_LDPC_ONLY_MASKS,
2526 DP_CMN_MOD_IEEE80211_T_HE_40,
2527 1548500, 1595500, 1462500, 1316300, 0, 1548500,
2528 0x48c },
2529 /* 593 MCS-13 */ { HE40_LDPC_ONLY_MASKS,
2530 DP_CMN_MOD_IEEE80211_T_HE_40,
2531 1720600, 1772700, 1625000, 1462500, 0, 1720600,
2532 0x48d },
2533
2534 /* When number of spatial streams > 5
2535 * use below rates
2536 */
2537 /* 594 MCS-00 */ { HE40_LDPC_ONLY_MASKS,
2538 DP_CMN_MOD_IEEE80211_T_HE_40,
2539 103200, 106400, 97500, 87800, 51600, 103200,
2540 0x4a0 },
2541 /* 595 MCS-01 */ { HE40_LDPC_ONLY_MASKS,
2542 DP_CMN_MOD_IEEE80211_T_HE_40,
2543 206500, 212700, 195000, 175500, 103200, 206500,
2544 0x4a1 },
2545 /* 596 MCS-02 */ { HE40_LDPC_ONLY_MASKS,
2546 DP_CMN_MOD_IEEE80211_T_HE_40,
2547 309700, 319100, 292500, 263300, 0, 309700,
2548 0x4a2 },
2549 /* 597 MCS-03 */ { HE40_LDPC_ONLY_MASKS,
2550 DP_CMN_MOD_IEEE80211_T_HE_40,
2551 412900, 425500, 390000, 351000, 206500, 412900,
2552 0x4a3 },
2553 /* 598 MCS-04 */ { HE40_LDPC_ONLY_MASKS,
2554 DP_CMN_MOD_IEEE80211_T_HE_40,
2555 619400, 638200, 585000, 526500, 309700, 619400,
2556 0x4a4 },
2557 /* 599 MCS-05 */ { HE40_LDPC_ONLY_MASKS,
2558 DP_CMN_MOD_IEEE80211_T_HE_40,
2559 825900, 850900, 780000, 702000, 0, 825900,
2560 0x4a5 },
2561 /* 600 MCS-06 */ { HE40_LDPC_ONLY_MASKS,
2562 DP_CMN_MOD_IEEE80211_T_HE_40,
2563 929100, 957300, 877500, 789800, 0, 929100,
2564 0x4a6 },
2565 /* 601 MCS-07 */ { HE40_LDPC_ONLY_MASKS,
2566 DP_CMN_MOD_IEEE80211_T_HE_40,
2567 1032400, 1063600, 975000, 877500, 0, 1032400,
2568 0x4a7 },
2569 /* 602 MCS-08 */ { HE40_LDPC_ONLY_MASKS,
2570 DP_CMN_MOD_IEEE80211_T_HE_40,
2571 1238800, 1276400, 1170000, 1053000, 0, 1238800,
2572 0x4a8 },
2573 /* 603 MCS-09 */ { HE40_LDPC_ONLY_MASKS,
2574 DP_CMN_MOD_IEEE80211_T_HE_40,
2575 1376500, 1418200, 1300000, 1170000, 0, 1376500,
2576 0x4a9 },
2577 /* 604 MCS-10 */ { HE40_LDPC_ONLY_MASKS,
2578 DP_CMN_MOD_IEEE80211_T_HE_40,
2579 1548500, 1595500, 1462500, 1316300, 0, 1548500,
2580 0x4aa },
2581 /* 605 MCS-11 */ { HE40_LDPC_ONLY_MASKS,
2582 DP_CMN_MOD_IEEE80211_T_HE_40,
2583 1720600, 1772700, 1625000, 1462500, 0, 1720600,
2584 0x4ab },
2585 /* 606 MCS-12 */ { HE40_LDPC_ONLY_MASKS,
2586 DP_CMN_MOD_IEEE80211_T_HE_40,
2587 1858200, 1914500, 1755000, 1579500, 0, 1858200,
2588 0x4ac },
2589 /* 607 MCS-13 */ { HE40_LDPC_ONLY_MASKS,
2590 DP_CMN_MOD_IEEE80211_T_HE_40,
2591 2064700, 2127300, 1950000, 1755000, 0, 2064700,
2592 0x4ad },
2593 /* When number spatial streams > 6
2594 * use below rates
2595 */
2596 /* 608 MCS-00 */ { HE40_LDPC_ONLY_MASKS,
2597 DP_CMN_MOD_IEEE80211_T_HE_40,
2598 120400, 124100, 113800, 102400, 60200, 120400,
2599 0x4c0 },
2600 /* 609 MCS-01 */ { HE40_LDPC_ONLY_MASKS,
2601 DP_CMN_MOD_IEEE80211_T_HE_40,
2602 240900, 248200, 227500, 204800, 120400, 240900,
2603 0x4c1 },
2604 /* 610 MCS-02 */ { HE40_LDPC_ONLY_MASKS,
2605 DP_CMN_MOD_IEEE80211_T_HE_40,
2606 361300, 372300, 341300, 307100, 180600, 361300,
2607 0x4c2 },
2608 /* 611 MCS-03 */ { HE40_LDPC_ONLY_MASKS,
2609 DP_CMN_MOD_IEEE80211_T_HE_40,
2610 481800, 496400, 455000, 409500, 0, 481800,
2611 0x4c3 },
2612 /* 612 MCS-04 */ { HE40_LDPC_ONLY_MASKS,
2613 DP_CMN_MOD_IEEE80211_T_HE_40,
2614 722600, 744500, 682500, 614300, 0, 722600,
2615 0x4c4 },
2616 /* 613 MCS-05 */ { HE40_LDPC_ONLY_MASKS,
2617 DP_CMN_MOD_IEEE80211_T_HE_40,
2618 963500, 992700, 910000, 819000, 0, 963500,
2619 0x4c5 },
2620 /* 614 MCS-06 */ { HE40_LDPC_ONLY_MASKS,
2621 DP_CMN_MOD_IEEE80211_T_HE_40,
2622 1084000, 1116800, 1023800, 921400, 0, 1084000,
2623 0x4c6 },
2624 /* 615 MCS-07 */ { HE40_LDPC_ONLY_MASKS,
2625 DP_CMN_MOD_IEEE80211_T_HE_40,
2626 1204400, 1240900, 1137500, 1023800, 0, 1204400,
2627 0x4c7 },
2628 /* 616 MCS-08 */ { HE40_LDPC_ONLY_MASKS,
2629 DP_CMN_MOD_IEEE80211_T_HE_40,
2630 1445300, 1489100, 1365000, 1228500, 0, 1445300,
2631 0x4c8 },
2632 /* 617 MCS-09 */ { HE40_LDPC_ONLY_MASKS,
2633 DP_CMN_MOD_IEEE80211_T_HE_40,
2634 1605900, 1654500, 1516700, 1365000, 0, 1605900,
2635 0x4c9 },
2636 /* 618 MCS-10 */ { HE40_LDPC_ONLY_MASKS,
2637 DP_CMN_MOD_IEEE80211_T_HE_40,
2638 1806600, 1861400, 1706300, 1535600, 0, 1806600,
2639 0x4ca },
2640 /* 619 MCS-11 */ { HE40_LDPC_ONLY_MASKS,
2641 DP_CMN_MOD_IEEE80211_T_HE_40,
2642 2007400, 2068200, 1895800, 1706300, 0, 2007400,
2643 0x4cb },
2644 /* 620 MCS-12 */ { HE40_LDPC_ONLY_MASKS,
2645 DP_CMN_MOD_IEEE80211_T_HE_40,
2646 2167900, 2233600, 2047500, 1842800, 0, 2167900,
2647 0x4cc },
2648 /* 621 MCS-13 */ { HE40_LDPC_ONLY_MASKS,
2649 DP_CMN_MOD_IEEE80211_T_HE_40,
2650 2408800, 2481800, 2275000, 2047500, 0, 2408800,
2651 0x4cd },
2652
2653 /* When number of spatial streams > 7
2654 * use below rates
2655 */
2656 /* 622 MCS-00 */ { HE40_LDPC_ONLY_MASKS,
2657 DP_CMN_MOD_IEEE80211_T_HE_40,
2658 137600, 141800, 130000, 117000, 68800, 137600,
2659 0x4e0 },
2660 /* 623 MCS-01 */ { HE40_LDPC_ONLY_MASKS,
2661 DP_CMN_MOD_IEEE80211_T_HE_40,
2662 275300, 283600, 260000, 234000, 137600, 275300,
2663 0x4e1 },
2664 /* 624 MCS-02 */ { HE40_LDPC_ONLY_MASKS,
2665 DP_CMN_MOD_IEEE80211_T_HE_40,
2666 412900, 425500, 390000, 351000, 206500, 412900,
2667 0x4e2 },
2668 /* 625 MCS-03 */ { HE40_LDPC_ONLY_MASKS,
2669 DP_CMN_MOD_IEEE80211_T_HE_40,
2670 550600, 567300, 520000, 468000, 0, 550600,
2671 0x4e3 },
2672 /* 626 MCS-04 */ { HE40_LDPC_ONLY_MASKS,
2673 DP_CMN_MOD_IEEE80211_T_HE_40,
2674 825900, 850900, 780000, 702000, 0, 825900,
2675 0x4e4 },
2676 /* 627 MCS-05 */ { HE40_LDPC_ONLY_MASKS,
2677 DP_CMN_MOD_IEEE80211_T_HE_40,
2678 1101200, 1134500, 1040000, 936000, 0, 1101200,
2679 0x4e5 },
2680 /* 628 MCS-06 */ { HE40_LDPC_ONLY_MASKS,
2681 DP_CMN_MOD_IEEE80211_T_HE_40,
2682 1238800, 1276400, 1170000, 1053000, 0, 1238800,
2683 0x4e6 },
2684 /* 629 MCS-07 */ { HE40_LDPC_ONLY_MASKS,
2685 DP_CMN_MOD_IEEE80211_T_HE_40,
2686 1376500, 1418200, 1300000, 1170000, 0, 1376500,
2687 0x4e7 },
2688 /* 630 MCS-08 */ { HE40_LDPC_ONLY_MASKS,
2689 DP_CMN_MOD_IEEE80211_T_HE_40,
2690 1651800, 1701800, 1560000, 1404000, 0, 1651800,
2691 0x4e8 },
2692 /* 631 MCS-09 */ { HE40_LDPC_ONLY_MASKS,
2693 DP_CMN_MOD_IEEE80211_T_HE_40,
2694 1835300, 1890900, 1733300, 1560000, 0, 1835300,
2695 0x4e9 },
2696 /* 632 MCS-10 */ { HE40_LDPC_ONLY_MASKS,
2697 DP_CMN_MOD_IEEE80211_T_HE_40,
2698 2064700, 2127300, 1950000, 1755000, 0, 2064700,
2699 0x4ea },
2700 /* 633 MCS-11 */ { HE40_LDPC_ONLY_MASKS,
2701 DP_CMN_MOD_IEEE80211_T_HE_40,
2702 2294100, 2363600, 2166700, 1950000, 0, 2294100,
2703 0x4eb },
2704 /* 634 MCS-12 */ { HE40_LDPC_ONLY_MASKS,
2705 DP_CMN_MOD_IEEE80211_T_HE_40,
2706 2477600, 2552700, 2340000, 2106000, 0, 2477600,
2707 0x4ec },
2708 /* 635 MCS-13 */ { HE40_LDPC_ONLY_MASKS,
2709 DP_CMN_MOD_IEEE80211_T_HE_40,
2710 2752900, 2836400, 2600000, 2340000, 0, 2752900,
2711 0x4ed },
2712
2713 /* 11ax RU996 rates
2714 */
2715 /* 636 MCS-00 */ { HE80_LDPC_ONLY_MASKS,
2716 DP_CMN_MOD_IEEE80211_T_HE_80,
2717 36000, 37100, 34000, 30600, 18000, 36000, 0x400
2718 },
2719 /* 637 MCS-01 */ { HE80_LDPC_ONLY_MASKS,
2720 DP_CMN_MOD_IEEE80211_T_HE_80,
2721 72100, 74200, 68100, 61300, 36000, 72100, 0x401
2722 },
2723 /* 638 MCS-02 */ { HE80_LDPC_ONLY_MASKS,
2724 DP_CMN_MOD_IEEE80211_T_HE_80,
2725 108100, 111400, 102100, 91900, 0, 108100,
2726 0x402 },
2727 /* 639 MCS-03 */ { HE80_LDPC_ONLY_MASKS,
2728 DP_CMN_MOD_IEEE80211_T_HE_80,
2729 144100, 148500, 136100, 122500, 72100, 144100,
2730 0x403 },
2731 /* 640 MCS-04 */ { HE80_LDPC_ONLY_MASKS,
2732 DP_CMN_MOD_IEEE80211_T_HE_80,
2733 216200, 222700, 204200, 183800, 108100, 216200,
2734 0x404 },
2735 /* 641 MCS-05 */ { HE80_LDPC_ONLY_MASKS,
2736 DP_CMN_MOD_IEEE80211_T_HE_80,
2737 288200, 297000, 272200, 245000, 0, 288200,
2738 0x405 },
2739 /* 642 MCS-06 */ { HE80_LDPC_ONLY_MASKS,
2740 DP_CMN_MOD_IEEE80211_T_HE_80,
2741 324300, 334100, 306300, 275600, 0, 324300,
2742 0x406 },
2743 /* 643 MCS-07 */ { HE80_LDPC_ONLY_MASKS,
2744 DP_CMN_MOD_IEEE80211_T_HE_80,
2745 360300, 371200, 340300, 306300, 0, 360300,
2746 0x407 },
2747 /* 644 MCS-08 */ { HE80_LDPC_ONLY_MASKS,
2748 DP_CMN_MOD_IEEE80211_T_HE_80,
2749 432400, 445500, 408300, 367500, 0, 432400,
2750 0x408 },
2751 /* 645 MCS-09 */ { HE80_LDPC_ONLY_MASKS,
2752 DP_CMN_MOD_IEEE80211_T_HE_80,
2753 480400, 494900, 453700, 408300, 0, 480400,
2754 0x409 },
2755 /* 646 MCS-10 */ { HE80_LDPC_ONLY_MASKS,
2756 DP_CMN_MOD_IEEE80211_T_HE_80,
2757 540400, 556800, 510400, 459400, 0, 540400,
2758 0x40a },
2759 /* 647 MCS-11 */ { HE80_LDPC_ONLY_MASKS,
2760 DP_CMN_MOD_IEEE80211_T_HE_80,
2761 600500, 618700, 567100, 510400, 0, 600500,
2762 0x40b },
2763 /* 648 MCS-12 */ { HE80_LDPC_ONLY_MASKS,
2764 DP_CMN_MOD_IEEE80211_T_HE_80,
2765 648500, 668200, 612500, 551300, 0, 648500,
2766 0x40c },
2767 /* 649 MCS-13 */ { HE80_LDPC_ONLY_MASKS,
2768 DP_CMN_MOD_IEEE80211_T_HE_80,
2769 720600, 742400, 680600, 612500, 0, 720600,
2770 0x40d },
2771 /* When number spatial streams > 1
2772 * use below rates
2773 */
2774 /* 650 MCS-00 */ { HE80_LDPC_ONLY_MASKS,
2775 DP_CMN_MOD_IEEE80211_T_HE_80,
2776 72100, 74200, 68100, 61300, 36000, 72100, 0x420
2777 },
2778 /* 651 MCS-01 */ { HE80_LDPC_ONLY_MASKS,
2779 DP_CMN_MOD_IEEE80211_T_HE_80,
2780 144100, 148500, 136100, 122500, 72100, 144100,
2781 0x421 },
2782 /* 652 MCS-02 */ { HE80_LDPC_ONLY_MASKS,
2783 DP_CMN_MOD_IEEE80211_T_HE_80,
2784 216200, 222700, 204200, 183800, 0, 216200,
2785 0x422 },
2786 /* 653 MCS-03 */ { HE80_LDPC_ONLY_MASKS,
2787 DP_CMN_MOD_IEEE80211_T_HE_80,
2788 288200, 297000, 272200, 245000, 144100, 288200,
2789 0x423 },
2790 /* 654 MCS-04 */ { HE80_LDPC_ONLY_MASKS,
2791 DP_CMN_MOD_IEEE80211_T_HE_80,
2792 432400, 445500, 408300, 367500, 216200, 432400,
2793 0x424 },
2794 /* 655 MCS-05 */ { HE80_LDPC_ONLY_MASKS,
2795 DP_CMN_MOD_IEEE80211_T_HE_80,
2796 576500, 593900, 544400, 490000, 0, 576500,
2797 0x425 },
2798 /* 656 MCS-06 */ { HE80_LDPC_ONLY_MASKS,
2799 DP_CMN_MOD_IEEE80211_T_HE_80,
2800 648500, 668200, 612500, 551300, 0, 648500,
2801 0x426 },
2802 /* 657 MCS-07 */ { HE80_LDPC_ONLY_MASKS,
2803 DP_CMN_MOD_IEEE80211_T_HE_80,
2804 720600, 742400, 680600, 612500, 0, 720600,
2805 0x427 },
2806 /* 658 MCS-08 */ { HE80_LDPC_ONLY_MASKS,
2807 DP_CMN_MOD_IEEE80211_T_HE_80,
2808 864700, 890900, 816700, 735000, 0, 864700,
2809 0x428 },
2810 /* 659 MCS-09 */ { HE80_LDPC_ONLY_MASKS,
2811 DP_CMN_MOD_IEEE80211_T_HE_80,
2812 960800, 989900, 907400, 816700, 0, 960800,
2813 0x429 },
2814 /* 660 MCS-10 */ { HE80_LDPC_ONLY_MASKS,
2815 DP_CMN_MOD_IEEE80211_T_HE_80,
2816 1080900, 1113600, 1020800, 918800, 0, 1080900,
2817 0x42a },
2818 /* 661 MCS-11 */ { HE80_LDPC_ONLY_MASKS,
2819 DP_CMN_MOD_IEEE80211_T_HE_80,
2820 1201000, 1237400, 1134300, 1020800, 0, 1201000,
2821 0x42b },
2822 /* 662 MCS-12 */ { HE80_LDPC_ONLY_MASKS,
2823 DP_CMN_MOD_IEEE80211_T_HE_80,
2824 1297100, 1336400, 1225000, 1102500, 0, 1297100,
2825 0x42c },
2826 /* 663 MCS-13 */ { HE80_LDPC_ONLY_MASKS,
2827 DP_CMN_MOD_IEEE80211_T_HE_80,
2828 1441200, 1484800, 1361100, 1225000, 0, 1441200,
2829 0x42d },
2830
2831 /* When number of spatial streams > 2
2832 * use below rates
2833 */
2834 /* 664 MCS-00 */ { HE80_LDPC_ONLY_MASKS,
2835 DP_CMN_MOD_IEEE80211_T_HE_80,
2836 108100, 111400, 102100, 91900, 54000, 108100,
2837 0x440 },
2838 /* 665 MCS-01 */ { HE80_LDPC_ONLY_MASKS,
2839 DP_CMN_MOD_IEEE80211_T_HE_80,
2840 216200, 222700, 204200, 183800, 108100, 216200,
2841 0x441 },
2842 /* 666 MCS-02 */ { HE80_LDPC_ONLY_MASKS,
2843 DP_CMN_MOD_IEEE80211_T_HE_80,
2844 324300, 334100, 306300, 275600, 0, 324300,
2845 0x442 },
2846 /* 667 MCS-03 */ { HE80_LDPC_ONLY_MASKS,
2847 DP_CMN_MOD_IEEE80211_T_HE_80,
2848 432400, 445500, 408300, 367500, 0, 432400,
2849 0x443 },
2850 /* 668 MCS-04 */ { HE80_LDPC_ONLY_MASKS,
2851 DP_CMN_MOD_IEEE80211_T_HE_80,
2852 648500, 668200, 612500, 551300, 0, 648500,
2853 0x444 },
2854 /* 669 MCS-05 */ { HE80_LDPC_ONLY_MASKS,
2855 DP_CMN_MOD_IEEE80211_T_HE_80,
2856 864700, 890900, 816700, 735000, 0, 864700,
2857 0x445 },
2858 /* 670 MCS-06 */ { HE80_LDPC_ONLY_MASKS,
2859 DP_CMN_MOD_IEEE80211_T_HE_80,
2860 972800, 1002300, 918800, 826900, 0, 972800,
2861 0x446 },
2862 /* 671 MCS-07 */ { HE80_LDPC_ONLY_MASKS,
2863 DP_CMN_MOD_IEEE80211_T_HE_80,
2864 1080900, 1113600, 1020800, 918800, 0, 1080900,
2865 0x447 },
2866 /* 672 MCS-08 */ { HE80_LDPC_ONLY_MASKS,
2867 DP_CMN_MOD_IEEE80211_T_HE_80,
2868 1297100, 1336400, 1225000, 1102500, 0, 1297100,
2869 0x448 },
2870 /* 673 MCS-09 */ { HE80_LDPC_ONLY_MASKS,
2871 DP_CMN_MOD_IEEE80211_T_HE_80,
2872 1441200, 1484800, 1361100, 1225000, 0, 1441200,
2873 0x449 },
2874 /* 674 MCS-10 */ { HE80_LDPC_ONLY_MASKS,
2875 DP_CMN_MOD_IEEE80211_T_HE_80,
2876 1621300, 1670500, 1531300, 1378100, 0, 1621300,
2877 0x44a },
2878 /* 675 MCS-11 */ { HE80_LDPC_ONLY_MASKS,
2879 DP_CMN_MOD_IEEE80211_T_HE_80,
2880 1801500, 1856100, 1701400, 1531300, 0, 1801500,
2881 0x44b },
2882 /* 676 MCS-12 */ { HE80_LDPC_ONLY_MASKS,
2883 DP_CMN_MOD_IEEE80211_T_HE_80,
2884 1945600, 2004500, 1837500, 1653800, 0, 1945600,
2885 0x44c },
2886 /* 677 MCS-13 */ { HE80_LDPC_ONLY_MASKS,
2887 DP_CMN_MOD_IEEE80211_T_HE_80,
2888 2161800, 2227300, 2041700, 1837500, 0, 2161800,
2889 0x44d },
2890
2891 /* When number of spatial streams > 3
2892 * use below rates
2893 */
2894 /* 678 MCS-00 */ { HE80_LDPC_ONLY_MASKS,
2895 DP_CMN_MOD_IEEE80211_T_HE_80,
2896 144100, 148500, 136100, 122500, 72100, 144100,
2897 0x460 },
2898 /* 679 MCS-01 */ { HE80_LDPC_ONLY_MASKS,
2899 DP_CMN_MOD_IEEE80211_T_HE_80,
2900 288200, 297000, 272200, 245000, 144100, 288200,
2901 0x461 },
2902 /* 680 MCS-02 */ { HE80_LDPC_ONLY_MASKS,
2903 DP_CMN_MOD_IEEE80211_T_HE_80,
2904 432400, 445500, 408300, 367500, 0, 432400,
2905 0x462 },
2906 /* 681 MCS-03 */ { HE80_LDPC_ONLY_MASKS,
2907 DP_CMN_MOD_IEEE80211_T_HE_80,
2908 576500, 593900, 544400, 490000, 288200, 576500,
2909 0x463 },
2910 /* 682 MCS-04 */ { HE80_LDPC_ONLY_MASKS,
2911 DP_CMN_MOD_IEEE80211_T_HE_80,
2912 864700, 890900, 816700, 735000, 432400, 864700,
2913 0x464 },
2914 /* 683 MCS-05 */ { HE80_LDPC_ONLY_MASKS,
2915 DP_CMN_MOD_IEEE80211_T_HE_80,
2916 1152900, 1187900, 1088900, 980000, 0, 1152900,
2917 0x465 },
2918 /* 684 MCS-06 */ { HE80_LDPC_ONLY_MASKS,
2919 DP_CMN_MOD_IEEE80211_T_HE_80,
2920 1297100, 1336400, 1225000, 1102500, 0, 1297100,
2921 0x466 },
2922 /* 685 MCS-07 */ { HE80_LDPC_ONLY_MASKS,
2923 DP_CMN_MOD_IEEE80211_T_HE_80,
2924 1441200, 1484800, 1361100, 1225000, 0, 1441200,
2925 0x467 },
2926 /* 686 MCS-08 */ { HE80_LDPC_ONLY_MASKS,
2927 DP_CMN_MOD_IEEE80211_T_HE_80,
2928 1729400, 1781800, 1633300, 1470000, 0, 1729400,
2929 0x468 },
2930 /* 687 MCS-09 */ { HE80_LDPC_ONLY_MASKS,
2931 DP_CMN_MOD_IEEE80211_T_HE_80,
2932 1921600, 1979800, 1814800, 1633300, 0, 1921600,
2933 0x469 },
2934 /* 688 MCS-10 */ { HE80_LDPC_ONLY_MASKS,
2935 DP_CMN_MOD_IEEE80211_T_HE_80,
2936 2161800, 2227300, 2041700, 1837500, 0, 2161800,
2937 0x46a },
2938 /* 689 MCS-11 */ { HE80_LDPC_ONLY_MASKS,
2939 DP_CMN_MOD_IEEE80211_T_HE_80,
2940 2401900, 2474700, 2268500, 2041700, 0, 2401900,
2941 0x46b },
2942 /* 690 MCS-12 */ { HE80_LDPC_ONLY_MASKS,
2943 DP_CMN_MOD_IEEE80211_T_HE_80,
2944 2594100, 2672700, 2450000, 2205000, 0, 2594100,
2945 0x46c },
2946 /* 691 MCS-13 */ { HE80_LDPC_ONLY_MASKS,
2947 DP_CMN_MOD_IEEE80211_T_HE_80,
2948 2882400, 2969700, 2722200, 2450000, 0, 2882400,
2949 0x46d },
2950
2951 /* When number spatial streams > 4
2952 * use below rates
2953 */
2954 /* 692 MCS-00 */ { HE80_LDPC_ONLY_MASKS,
2955 DP_CMN_MOD_IEEE80211_T_HE_80,
2956 180100, 185600, 170100, 153100, 90100, 180100,
2957 0x480 },
2958 /* 693 MCS-01 */ { HE80_LDPC_ONLY_MASKS,
2959 DP_CMN_MOD_IEEE80211_T_HE_80,
2960 360300, 371200, 340300, 306300, 180100, 360300,
2961 0x481 },
2962 /* 694 MCS-02 */ { HE80_LDPC_ONLY_MASKS,
2963 DP_CMN_MOD_IEEE80211_T_HE_80,
2964 540400, 556800, 510400, 459400, 0, 540400,
2965 0x482 },
2966 /* 695 MCS-03 */ { HE80_LDPC_ONLY_MASKS,
2967 DP_CMN_MOD_IEEE80211_T_HE_80,
2968 720600, 742400, 680600, 612500, 0, 720600,
2969 0x483 },
2970 /* 696 MCS-04 */ { HE80_LDPC_ONLY_MASKS,
2971 DP_CMN_MOD_IEEE80211_T_HE_80,
2972 1080900, 1113600, 1020800, 918800, 0, 1080900,
2973 0x484 },
2974 /* 697 MCS-05 */ { HE80_LDPC_ONLY_MASKS,
2975 DP_CMN_MOD_IEEE80211_T_HE_80,
2976 1441200, 1484800, 1361100, 1225000, 0, 1441200,
2977 0x485 },
2978 /* 698 MCS-06 */ { HE80_LDPC_ONLY_MASKS,
2979 DP_CMN_MOD_IEEE80211_T_HE_80,
2980 1621300, 1670500, 1531300, 1378100, 0, 1621300,
2981 0x486 },
2982 /* 699 MCS-07 */ { HE80_LDPC_ONLY_MASKS,
2983 DP_CMN_MOD_IEEE80211_T_HE_80,
2984 1801500, 1856100, 1701400, 1531300, 0, 1801500,
2985 0x487 },
2986 /* 700 MCS-08 */ { HE80_LDPC_ONLY_MASKS,
2987 DP_CMN_MOD_IEEE80211_T_HE_80,
2988 2161800, 2227300, 2041700, 1837500, 0, 2161800,
2989 0x488 },
2990 /* 701 MCS-09 */ { HE80_LDPC_ONLY_MASKS,
2991 DP_CMN_MOD_IEEE80211_T_HE_80,
2992 2402000, 2474700, 2268500, 2041700, 0, 2402000,
2993 0x489 },
2994 /* 702 MCS-10 */ { HE80_LDPC_ONLY_MASKS,
2995 DP_CMN_MOD_IEEE80211_T_HE_80,
2996 2702200, 2784100, 2552100, 2296900, 0, 2702200,
2997 0x48a },
2998 /* 703 MCS-11 */ { HE80_LDPC_ONLY_MASKS,
2999 DP_CMN_MOD_IEEE80211_T_HE_80,
3000 3002500, 3093400, 2835600, 2552100, 0, 3002500,
3001 0x48b },
3002 /* 704 MCS-12 */ { HE80_LDPC_ONLY_MASKS,
3003 DP_CMN_MOD_IEEE80211_T_HE_80,
3004 3242600, 3340900, 3062500, 2756300, 0, 3242600,
3005 0x48c },
3006 /* 705 MCS-13 */ { HE80_LDPC_ONLY_MASKS,
3007 DP_CMN_MOD_IEEE80211_T_HE_80,
3008 3602900, 3712100, 3402800, 3062500, 0, 3602900,
3009 0x48d },
3010
3011 /* When number of spatial streams > 5
3012 * use below rates
3013 */
3014 /* 706 MCS-00 */ { HE80_LDPC_ONLY_MASKS,
3015 DP_CMN_MOD_IEEE80211_T_HE_80,
3016 216200, 222700, 204200, 183800, 108100, 216200,
3017 0x4a0 },
3018 /* 707 MCS-01 */ { HE80_LDPC_ONLY_MASKS,
3019 DP_CMN_MOD_IEEE80211_T_HE_80,
3020 432400, 445500, 408300, 367500, 216200, 432400,
3021 0x4a1 },
3022 /* 708 MCS-02 */ { HE80_LDPC_ONLY_MASKS,
3023 DP_CMN_MOD_IEEE80211_T_HE_80,
3024 648500, 668200, 612500, 551300, 0, 648500,
3025 0x4a2 },
3026 /* 709 MCS-03 */ { HE80_LDPC_ONLY_MASKS,
3027 DP_CMN_MOD_IEEE80211_T_HE_80,
3028 864700, 890900, 816700, 735000, 432400, 864700,
3029 0x4a3 },
3030 /* 710 MCS-04 */ { HE80_LDPC_ONLY_MASKS,
3031 DP_CMN_MOD_IEEE80211_T_HE_80,
3032 1297100, 1336400, 1225000, 1102500, 648500, 1297100,
3033 0x4a4 },
3034 /* 711 MCS-05 */ { HE80_LDPC_ONLY_MASKS,
3035 DP_CMN_MOD_IEEE80211_T_HE_80,
3036 1729400, 1781800, 1633300, 1470000, 0, 1729400,
3037 0x4a5 },
3038 /* 712 MCS-06 */ { HE80_LDPC_ONLY_MASKS,
3039 DP_CMN_MOD_IEEE80211_T_HE_80,
3040 1945600, 2004500, 1837500, 1653800, 0, 1945600,
3041 0x4a6 },
3042 /* 713 MCS-07 */ { HE80_LDPC_ONLY_MASKS,
3043 DP_CMN_MOD_IEEE80211_T_HE_80,
3044 2161800, 2227300, 2041700, 1837500, 0, 2161800,
3045 0x4a7 },
3046 /* 714 MCS-08 */ { HE80_LDPC_ONLY_MASKS,
3047 DP_CMN_MOD_IEEE80211_T_HE_80,
3048 2594100, 2672700, 2450000, 2205000, 0, 2594100,
3049 0x4a8 },
3050 /* 715 MCS-09 */ { HE80_LDPC_ONLY_MASKS,
3051 DP_CMN_MOD_IEEE80211_T_HE_80,
3052 2882400, 2969700, 2722200, 2450000, 0, 2882400,
3053 0x4a9 },
3054 /* 716 MCS-10 */ { HE80_LDPC_ONLY_MASKS,
3055 DP_CMN_MOD_IEEE80211_T_HE_80,
3056 3242600, 3340900, 3062500, 2756300, 0, 3242600,
3057 0x4aa },
3058 /* 717 MCS-11 */ { HE80_LDPC_ONLY_MASKS,
3059 DP_CMN_MOD_IEEE80211_T_HE_80,
3060 3602900, 3712100, 3402800, 3062500, 0, 3602900,
3061 0x4ab },
3062 /* 718 MCS-12 */ { HE80_LDPC_ONLY_MASKS,
3063 DP_CMN_MOD_IEEE80211_T_HE_80,
3064 3891200, 4009100, 3675000, 3307500, 0, 3891200,
3065 0x4ac },
3066 /* 719 MCS-13 */ { HE80_LDPC_ONLY_MASKS,
3067 DP_CMN_MOD_IEEE80211_T_HE_80,
3068 4323500, 4454500, 4083300, 3675000, 0, 4323500,
3069 0x4ad },
3070
3071 /* When number of spatial streams > 6
3072 * use below rates
3073 */
3074 /* 720 MCS-00 */ { HE80_LDPC_ONLY_MASKS,
3075 DP_CMN_MOD_IEEE80211_T_HE_80,
3076 252200, 259800, 238200, 214400, 129900, 252200,
3077 0x4c0 },
3078 /* 721 MCS-01 */ { HE80_LDPC_ONLY_MASKS,
3079 DP_CMN_MOD_IEEE80211_T_HE_80,
3080 504400, 519700, 476400, 428800, 252200, 504400,
3081 0x4c1 },
3082 /* 722 MCS-02 */ { HE80_LDPC_ONLY_MASKS,
3083 DP_CMN_MOD_IEEE80211_T_HE_80,
3084 756600, 779500, 714600, 643100, 0, 756600,
3085 0x4c2 },
3086 /* 723 MCS-03 */ { HE80_LDPC_ONLY_MASKS,
3087 DP_CMN_MOD_IEEE80211_T_HE_80,
3088 1008800, 1039400, 952800, 857500, 504400, 1008800,
3089 0x4c3 },
3090 /* 724 MCS-04 */ { HE80_LDPC_ONLY_MASKS,
3091 DP_CMN_MOD_IEEE80211_T_HE_80,
3092 1513200, 1559100, 1429200, 1286300, 756600, 1513200,
3093 0x4c4 },
3094 /* 725 MCS-05 */ { HE80_LDPC_ONLY_MASKS,
3095 DP_CMN_MOD_IEEE80211_T_HE_80,
3096 2017600, 2078800, 1905600, 1715000, 0, 2017600,
3097 0x4c5 },
3098 /* 726 MCS-06 */ { HE80_LDPC_ONLY_MASKS,
3099 DP_CMN_MOD_IEEE80211_T_HE_80,
3100 2269900, 2338600, 2143800, 1929400, 0, 2269900,
3101 0x4c6 },
3102 /* 727 MCS-07 */ { HE80_LDPC_ONLY_MASKS,
3103 DP_CMN_MOD_IEEE80211_T_HE_80,
3104 2522100, 2598500, 2381900, 2143800, 0, 2522100,
3105 0x4c7 },
3106 /* 728 MCS-08 */ { HE80_LDPC_ONLY_MASKS,
3107 DP_CMN_MOD_IEEE80211_T_HE_80,
3108 3026500, 3118200, 2858300, 2572500, 0, 3026500,
3109 0x4c8 },
3110 /* 729 MCS-09 */ { HE80_LDPC_ONLY_MASKS,
3111 DP_CMN_MOD_IEEE80211_T_HE_80,
3112 3362700, 3464600, 3175900, 2858300, 0, 3362700,
3113 0x4c9 },
3114 /* 730 MCS-10 */ { HE80_LDPC_ONLY_MASKS,
3115 DP_CMN_MOD_IEEE80211_T_HE_80,
3116 3783100, 3897700, 3572900, 3215600, 0, 3783100,
3117 0x4ca },
3118 /* 731 MCS-11 */ { HE80_LDPC_ONLY_MASKS,
3119 DP_CMN_MOD_IEEE80211_T_HE_80,
3120 4203400, 4330800, 3969900, 3572900, 0, 4203400,
3121 0x4cb },
3122 /* 732 MCS-12 */ { HE80_LDPC_ONLY_MASKS,
3123 DP_CMN_MOD_IEEE80211_T_HE_80,
3124 4539700, 4677300, 4287500, 3858800, 0, 4539700,
3125 0x4cc },
3126 /* 733 MCS-13 */ { HE80_LDPC_ONLY_MASKS,
3127 DP_CMN_MOD_IEEE80211_T_HE_80,
3128 5044100, 5197000, 4763900, 4287500, 0, 5044100,
3129 0x4cd },
3130
3131 /* When number of spatial streams > 7
3132 * use below rates
3133 */
3134 /* 734 MCS-00 */ { HE80_LDPC_ONLY_MASKS,
3135 DP_CMN_MOD_IEEE80211_T_HE_80,
3136 288200, 297000, 272200, 245000, 144100, 288200,
3137 0x4e0 },
3138 /* 735 MCS-01 */ { HE80_LDPC_ONLY_MASKS,
3139 DP_CMN_MOD_IEEE80211_T_HE_80,
3140 576500, 593900, 544400, 490000, 288200, 576500,
3141 0x4e1 },
3142 /* 736 MCS-02 */ { HE80_LDPC_ONLY_MASKS,
3143 DP_CMN_MOD_IEEE80211_T_HE_80,
3144 864700, 890900, 816700, 735000, 0, 864700,
3145 0x4e2 },
3146 /* 737 MCS-03 */ { HE80_LDPC_ONLY_MASKS,
3147 DP_CMN_MOD_IEEE80211_T_HE_80,
3148 1152900, 1187900, 1088900, 980000, 576500, 1152900,
3149 0x4e3 },
3150 /* 738 MCS-04 */ { HE80_LDPC_ONLY_MASKS,
3151 DP_CMN_MOD_IEEE80211_T_HE_80,
3152 1729400, 1781800, 1633300, 1470000, 864700, 1729400,
3153 0x4e4 },
3154 /* 739 MCS-05 */ { HE80_LDPC_ONLY_MASKS,
3155 DP_CMN_MOD_IEEE80211_T_HE_80,
3156 2305900, 2375800, 2177800, 1960000, 0, 2305900,
3157 0x4e5 },
3158 /* 740 MCS-06 */ { HE80_LDPC_ONLY_MASKS,
3159 DP_CMN_MOD_IEEE80211_T_HE_80,
3160 2594100, 2672700, 2450000, 2205000, 0, 2594100,
3161 0x4e6 },
3162 /* 741 MCS-07 */ { HE80_LDPC_ONLY_MASKS,
3163 DP_CMN_MOD_IEEE80211_T_HE_80,
3164 2882400, 2969700, 2722200, 2450000, 0, 2882400,
3165 0x4e7 },
3166 /* 742 MCS-08 */ { HE80_LDPC_ONLY_MASKS,
3167 DP_CMN_MOD_IEEE80211_T_HE_80,
3168 3458800, 3563600, 3266700, 2940000, 0, 3458800,
3169 0x4e8 },
3170 /* 743 MCS-09 */ { HE80_LDPC_ONLY_MASKS,
3171 DP_CMN_MOD_IEEE80211_T_HE_80,
3172 3843100, 3959600, 3629600, 3266700, 0, 3843100,
3173 0x4e9 },
3174 /* 744 MCS-10 */ { HE80_LDPC_ONLY_MASKS,
3175 DP_CMN_MOD_IEEE80211_T_HE_80,
3176 4323500, 4454500, 4083300, 3675000, 0, 4323500,
3177 0x4ea },
3178 /* 745 MCS-11 */ { HE80_LDPC_ONLY_MASKS,
3179 DP_CMN_MOD_IEEE80211_T_HE_80,
3180 4803900, 4949500, 4537000, 4083300, 0, 4803900,
3181 0x4eb },
3182 /* 746 MCS-12 */ { HE80_LDPC_ONLY_MASKS,
3183 DP_CMN_MOD_IEEE80211_T_HE_80,
3184 5188200, 5345500, 4900000, 4410000, 0, 5188200,
3185 0x4ec },
3186 /* 747 MCS-13 */ { HE80_LDPC_ONLY_MASKS,
3187 DP_CMN_MOD_IEEE80211_T_HE_80,
3188 5764700, 5939400, 5444400, 4900000, 0, 5764700,
3189 0x4ed },
3190
3191 /* 11ax RU996x2 rates
3192 */
3193 /* 748 MCS-00 */ { HE160_LDPC_ONLY_MASKS,
3194 DP_CMN_MOD_IEEE80211_T_HE_160,
3195 72100, 74200, 68100, 61300, 36000, 72100,
3196 0x400},
3197 /* 749 MCS-01 */ { HE160_LDPC_ONLY_MASKS,
3198 DP_CMN_MOD_IEEE80211_T_HE_160,
3199 144100, 148500, 136100, 122500, 72100, 144100,
3200 0x401},
3201 /* 750 MCS-02 */ { HE160_LDPC_ONLY_MASKS,
3202 DP_CMN_MOD_IEEE80211_T_HE_160,
3203 216200, 222700, 204200, 183800, 0, 216200,
3204 0x402},
3205 /* 751 MCS-03 */ { HE160_LDPC_ONLY_MASKS,
3206 DP_CMN_MOD_IEEE80211_T_HE_160,
3207 288200, 297000, 272200, 245000, 144100, 288200,
3208 0x403},
3209 /* 752 MCS-04 */ { HE160_LDPC_ONLY_MASKS,
3210 DP_CMN_MOD_IEEE80211_T_HE_160,
3211 432400, 445500, 408300, 367500, 216200, 432400,
3212 0x404},
3213 /* 753 MCS-05 */ { HE160_LDPC_ONLY_MASKS,
3214 DP_CMN_MOD_IEEE80211_T_HE_160,
3215 576500, 593900, 544400, 490000, 0, 576500,
3216 0x405},
3217 /* 754 MCS-06 */ { HE160_LDPC_ONLY_MASKS,
3218 DP_CMN_MOD_IEEE80211_T_HE_160,
3219 648500, 668200, 612500, 551300, 0, 648500,
3220 0x406},
3221 /* 755 MCS-07 */ { HE160_LDPC_ONLY_MASKS,
3222 DP_CMN_MOD_IEEE80211_T_HE_160,
3223 720600, 742400, 680600, 612500, 0, 720600,
3224 0x407},
3225 /* 756 MCS-08 */ { HE160_LDPC_ONLY_MASKS,
3226 DP_CMN_MOD_IEEE80211_T_HE_160,
3227 864700, 890900, 816700, 735000, 0, 864700,
3228 0x408},
3229 /* 757 MCS-09 */ { HE160_LDPC_ONLY_MASKS,
3230 DP_CMN_MOD_IEEE80211_T_HE_160,
3231 960800, 989900, 907400, 816700, 0, 960800,
3232 0x409},
3233 /* 758 MCS-10 */ { HE160_LDPC_ONLY_MASKS,
3234 DP_CMN_MOD_IEEE80211_T_HE_160,
3235 1080900, 1113600, 1020800, 918800, 0, 1080900,
3236 0x40a},
3237 /* 759 MCS-11 */ { HE160_LDPC_ONLY_MASKS,
3238 DP_CMN_MOD_IEEE80211_T_HE_160,
3239 1201000, 1237400, 1134300, 1020800, 0, 1201000,
3240 0x40b},
3241 /* 760 MCS-12 */ { HE160_LDPC_ONLY_MASKS,
3242 DP_CMN_MOD_IEEE80211_T_HE_160,
3243 1297100, 1336400, 1225000, 1102500, 0, 1297100,
3244 0x40c},
3245 /* 761 MCS-13 */ { HE160_LDPC_ONLY_MASKS,
3246 DP_CMN_MOD_IEEE80211_T_HE_160,
3247 1441200, 1484800, 1361100, 1225000, 0, 1441200,
3248 0x40d},
3249 /* When maximum spatial streams supported at 160MHZ > 1
3250 * use below rates
3251 */
3252 /* 762 MCS-00 */ { HE160_LDPC_ONLY_MASKS,
3253 DP_CMN_MOD_IEEE80211_T_HE_160,
3254 144100, 148500, 136100, 122500, 72100, 144100,
3255 0x420},
3256 /* 763 MCS-01 */ { HE160_LDPC_ONLY_MASKS,
3257 DP_CMN_MOD_IEEE80211_T_HE_160,
3258 288200, 297000, 272200, 245000, 144100, 288200,
3259 0x421},
3260 /* 764 MCS-02 */ { HE160_LDPC_ONLY_MASKS,
3261 DP_CMN_MOD_IEEE80211_T_HE_160,
3262 432400, 445500, 408300, 367500, 0, 432400,
3263 0x422},
3264 /* 765 MCS-03 */ { HE160_LDPC_ONLY_MASKS,
3265 DP_CMN_MOD_IEEE80211_T_HE_160,
3266 576500, 593900, 544400, 490000, 288200, 576500,
3267 0x423},
3268 /* 766 MCS-04 */ { HE160_LDPC_ONLY_MASKS,
3269 DP_CMN_MOD_IEEE80211_T_HE_160,
3270 864700, 890900, 816700, 735000, 432400, 864700,
3271 0x424},
3272 /* 767 MCS-05 */ { HE160_LDPC_ONLY_MASKS,
3273 DP_CMN_MOD_IEEE80211_T_HE_160,
3274 1152900, 1187900, 1088900, 980000, 0, 1152900,
3275 0x425},
3276 /* 768 MCS-06 */ { HE160_LDPC_ONLY_MASKS,
3277 DP_CMN_MOD_IEEE80211_T_HE_160,
3278 1297100, 1336400, 1225000, 1102500, 0, 1297100,
3279 0x426},
3280 /* 779 MCS-07 */ { HE160_LDPC_ONLY_MASKS,
3281 DP_CMN_MOD_IEEE80211_T_HE_160,
3282 1441200, 1484800, 1361100, 1225000, 0, 1441200,
3283 0x427},
3284 /* 780 MCS-08 */ { HE160_LDPC_ONLY_MASKS,
3285 DP_CMN_MOD_IEEE80211_T_HE_160,
3286 1729400, 1781800, 1633300, 1470000, 0, 1729400,
3287 0x428},
3288 /* 781 MCS-09 */ { HE160_LDPC_ONLY_MASKS,
3289 DP_CMN_MOD_IEEE80211_T_HE_160,
3290 1921600, 1979800, 1814800, 1633300, 0, 1921600,
3291 0x429},
3292 /* 782 MCS-10 */ { HE160_LDPC_ONLY_MASKS,
3293 DP_CMN_MOD_IEEE80211_T_HE_160,
3294 2161800, 2227300, 2041700, 1837500, 0, 2161800,
3295 0x42a},
3296 /* 783 MCS-11 */ { HE160_LDPC_ONLY_MASKS,
3297 DP_CMN_MOD_IEEE80211_T_HE_160,
3298 2401900, 2474700, 2268500, 2041700, 0, 2401900,
3299 0x42b},
3300 /* 784 MCS-12 */ { HE160_LDPC_ONLY_MASKS,
3301 DP_CMN_MOD_IEEE80211_T_HE_160,
3302 2594100, 2672700, 2450000, 2205000, 0, 2594100,
3303 0x42c},
3304 /* 785 MCS-13 */ { HE160_LDPC_ONLY_MASKS,
3305 DP_CMN_MOD_IEEE80211_T_HE_160,
3306 2882400, 2969700, 2722200, 2450000, 0, 2882400,
3307 0x42d},
3308
3309 /* When maximum spatial streams supported at 160MHZ > 2
3310 * use below rates
3311 */
3312 /* 786 MCS-00 */ { HE160_LDPC_ONLY_MASKS,
3313 DP_CMN_MOD_IEEE80211_T_HE_160,
3314 216200, 222700, 204200, 183800, 108100, 216200,
3315 0x440},
3316 /* 787 MCS-01 */ { HE160_LDPC_ONLY_MASKS,
3317 DP_CMN_MOD_IEEE80211_T_HE_160,
3318 432400, 445500, 408300, 367500, 216200, 432400,
3319 0x441},
3320 /* 788 MCS-02 */ { HE160_LDPC_ONLY_MASKS,
3321 DP_CMN_MOD_IEEE80211_T_HE_160,
3322 648500, 668200, 612500, 551300, 0, 648500,
3323 0x442},
3324 /* 789 MCS-03 */ { HE160_LDPC_ONLY_MASKS,
3325 DP_CMN_MOD_IEEE80211_T_HE_160,
3326 864700, 890900, 816700, 735000, 432400, 864700,
3327 0x443},
3328 /* 790 MCS-04 */ { HE160_LDPC_ONLY_MASKS,
3329 DP_CMN_MOD_IEEE80211_T_HE_160,
3330 1297100, 1336400, 1225000, 1102500, 648500, 1297100,
3331 0x444},
3332 /* 791 MCS-05 */ { HE160_LDPC_ONLY_MASKS,
3333 DP_CMN_MOD_IEEE80211_T_HE_160,
3334 1729400, 1781800, 1633300, 1470000, 0, 1729400,
3335 0x445},
3336 /* 792 MCS-06 */ { HE160_LDPC_ONLY_MASKS,
3337 DP_CMN_MOD_IEEE80211_T_HE_160,
3338 1945600, 2004500, 1837500, 1653800, 0, 1945600,
3339 0x446},
3340 /* 793 MCS-07 */ { HE160_LDPC_ONLY_MASKS,
3341 DP_CMN_MOD_IEEE80211_T_HE_160,
3342 2161800, 2227300, 2041700, 1837500, 0, 2161800,
3343 0x447},
3344 /* 794 MCS-08 */ { HE160_LDPC_ONLY_MASKS,
3345 DP_CMN_MOD_IEEE80211_T_HE_160,
3346 2594100, 2672700, 2450000, 2205000, 0, 2594100,
3347 0x448},
3348 /* 795 MCS-09 */ { HE160_LDPC_ONLY_MASKS,
3349 DP_CMN_MOD_IEEE80211_T_HE_160,
3350 2882400, 2969700, 2722200, 2450000, 0, 2882400,
3351 0x449},
3352 /* 796 MCS-10 */ { HE160_LDPC_ONLY_MASKS,
3353 DP_CMN_MOD_IEEE80211_T_HE_160,
3354 3242600, 3340900, 3062500, 2756300, 0, 3242600,
3355 0x44a},
3356 /* 797 MCS-11 */ { HE160_LDPC_ONLY_MASKS,
3357 DP_CMN_MOD_IEEE80211_T_HE_160,
3358 3602900, 3712100, 3402800, 3062500, 0, 3602900,
3359 0x44b},
3360 /* 798 MCS-12 */ { HE160_LDPC_ONLY_MASKS,
3361 DP_CMN_MOD_IEEE80211_T_HE_160,
3362 3891200, 4009100, 3675000, 3307500, 0, 3891200,
3363 0x44c},
3364 /* 799 MCS-13 */ { HE160_LDPC_ONLY_MASKS,
3365 DP_CMN_MOD_IEEE80211_T_HE_160,
3366 4323500, 4454500, 4083300, 3675000, 0, 4323500,
3367 0x44d},
3368
3369 /* When maximum spatial streams supported at 160MHZ > 3
3370 * use below rates
3371 */
3372 /* 800 MCS-00 */ { HE160_LDPC_ONLY_MASKS,
3373 DP_CMN_MOD_IEEE80211_T_HE_160,
3374 288200, 297000, 272200, 245000, 144100, 288200,
3375 0x460},
3376 /* 801 MCS-01 */ { HE160_LDPC_ONLY_MASKS,
3377 DP_CMN_MOD_IEEE80211_T_HE_160,
3378 576500, 593900, 544400, 490000, 288200, 576500,
3379 0x461},
3380 /* 802 MCS-02 */ { HE160_LDPC_ONLY_MASKS,
3381 DP_CMN_MOD_IEEE80211_T_HE_160,
3382 864700, 890900, 816700, 735000, 0, 864700,
3383 0x462},
3384 /* 803 MCS-03 */ { HE160_LDPC_ONLY_MASKS,
3385 DP_CMN_MOD_IEEE80211_T_HE_160,
3386 1152900, 1187900, 1088900, 980000, 576500, 1152900,
3387 0x463},
3388 /* 804 MCS-04 */ { HE160_LDPC_ONLY_MASKS,
3389 DP_CMN_MOD_IEEE80211_T_HE_160,
3390 1729400, 1781800, 1633300, 1470000, 864700, 1729400,
3391 0x464},
3392 /* 805 MCS-05 */ { HE160_LDPC_ONLY_MASKS,
3393 DP_CMN_MOD_IEEE80211_T_HE_160,
3394 2305900, 2375800, 2177800, 1960000, 0, 2305900,
3395 0x465},
3396 /* 806 MCS-06 */ { HE160_LDPC_ONLY_MASKS,
3397 DP_CMN_MOD_IEEE80211_T_HE_160,
3398 2594100, 2672700, 2450000, 2205000, 0, 2594100,
3399 0x466},
3400 /* 807 MCS-07 */ { HE160_LDPC_ONLY_MASKS,
3401 DP_CMN_MOD_IEEE80211_T_HE_160,
3402 2882400, 2969700, 2722200, 2450000, 0, 2882400,
3403 0x467},
3404 /* 808 MCS-08 */ { HE160_LDPC_ONLY_MASKS,
3405 DP_CMN_MOD_IEEE80211_T_HE_160,
3406 3458800, 3563600, 3266700, 2940000, 0, 3458800,
3407 0x468},
3408 /* 809 MCS-09 */ { HE160_LDPC_ONLY_MASKS,
3409 DP_CMN_MOD_IEEE80211_T_HE_160,
3410 3843100, 3959600, 3629600, 3266700, 0, 3843100,
3411 0x469},
3412 /* 810 MCS-10 */ { HE160_LDPC_ONLY_MASKS,
3413 DP_CMN_MOD_IEEE80211_T_HE_160,
3414 4323500, 4454500, 4083300, 3675000, 0, 4323500,
3415 0x46a},
3416 /* 811 MCS-11 */ { HE160_LDPC_ONLY_MASKS,
3417 DP_CMN_MOD_IEEE80211_T_HE_160,
3418 4803900, 4949500, 4537000, 4083300, 0, 4803900,
3419 0x46b},
3420 /* 812 MCS-12 */ { HE160_LDPC_ONLY_MASKS,
3421 DP_CMN_MOD_IEEE80211_T_HE_160,
3422 5188200, 5345500, 4900000, 4410000, 0, 5188200,
3423 0x46c},
3424 /* 813 MCS-13 */ { HE160_LDPC_ONLY_MASKS,
3425 DP_CMN_MOD_IEEE80211_T_HE_160,
3426 5764700, 5939400, 5444400, 4900000, 0, 5764700,
3427 0x46d},
3428 #ifdef WLAN_FEATURE_11BE
3429 /* 814 MCS-14 */ { EHT20_LDPC_ONLY_MASKS,
3430 DP_CMN_MOD_IEEE80211_T_EHT_20,
3431 2100, 0, 2000, 1800, 0, 2100,
3432 0x50e},
3433 /* 815 MCS-15 */ { EHT20_LDPC_ONLY_MASKS,
3434 DP_CMN_MOD_IEEE80211_T_EHT_20,
3435 4300, 0, 4100, 3700, 4300, 4300,
3436 0x50f},
3437 /* 816 MCS-00 */ { EHT20_LDPC_ONLY_MASKS,
3438 DP_CMN_MOD_IEEE80211_T_EHT_20,
3439 8600, 0, 8100, 7300, 0, 8600,
3440 0x500},
3441 /* 817 MCS-01 */ { EHT20_LDPC_ONLY_MASKS,
3442 DP_CMN_MOD_IEEE80211_T_EHT_20,
3443 17200, 0, 16300, 14600, 0, 17200,
3444 0x501},
3445 /* 818 MCS-02 */ { EHT20_LDPC_ONLY_MASKS,
3446 DP_CMN_MOD_IEEE80211_T_EHT_20,
3447 25800, 0, 24400, 21900, 0, 25800,
3448 0x502},
3449 /* 819 MCS-03 */ { EHT20_LDPC_ONLY_MASKS,
3450 DP_CMN_MOD_IEEE80211_T_EHT_20,
3451 34400, 0, 32500, 29300, 0, 34400,
3452 0x503},
3453 /* 820 MCS-04 */ { EHT20_LDPC_ONLY_MASKS,
3454 DP_CMN_MOD_IEEE80211_T_EHT_20,
3455 51600, 0, 48800, 43900, 0, 51600,
3456 0x504},
3457 /* 821 MCS-05 */ { EHT20_LDPC_ONLY_MASKS,
3458 DP_CMN_MOD_IEEE80211_T_EHT_20,
3459 68800, 0, 65000, 58500, 0, 68800,
3460 0x505},
3461 /* 822 MCS-06 */ { EHT20_LDPC_ONLY_MASKS,
3462 DP_CMN_MOD_IEEE80211_T_EHT_20,
3463 77400, 0, 73100, 65800, 0, 77400,
3464 0x506},
3465 /* 823 MCS-07 */ { EHT20_LDPC_ONLY_MASKS,
3466 DP_CMN_MOD_IEEE80211_T_EHT_20,
3467 86000, 0, 81300, 73100, 0, 86000,
3468 0x507},
3469 /* 824 MCS-08 */ { EHT20_LDPC_ONLY_MASKS,
3470 DP_CMN_MOD_IEEE80211_T_EHT_20,
3471 103200, 0, 97500, 87800, 0, 103200,
3472 0x508},
3473 /* 825 MCS-09 */ { EHT20_LDPC_ONLY_MASKS,
3474 DP_CMN_MOD_IEEE80211_T_EHT_20,
3475 114700, 0, 108300, 97500, 0, 114700,
3476 0x509},
3477 /* 826 MCS-10 */ { EHT20_LDPC_ONLY_MASKS,
3478 DP_CMN_MOD_IEEE80211_T_EHT_20,
3479 129000, 0, 121900, 109700, 0, 129000,
3480 0x50a},
3481 /* 827 MCS-11 */ { EHT20_LDPC_ONLY_MASKS,
3482 DP_CMN_MOD_IEEE80211_T_EHT_20,
3483 143400, 0, 135400, 121900, 0, 143400,
3484 0x50b},
3485 /* 828 MCS-12 */ { EHT20_LDPC_ONLY_MASKS,
3486 DP_CMN_MOD_IEEE80211_T_EHT_20,
3487 154900, 0, 146300, 131600, 0, 154900,
3488 0x50c},
3489 /* 829 MCS-13 */ { EHT20_LDPC_ONLY_MASKS,
3490 DP_CMN_MOD_IEEE80211_T_EHT_20,
3491 172100, 0, 162500, 146300, 0, 172100,
3492 0x50d},
3493
3494 /* when number of spatial streams > 1 */
3495 /* 830 MCS-14 */ { EHT20_LDPC_ONLY_MASKS,
3496 DP_CMN_MOD_IEEE80211_T_EHT_20,
3497 4200, 0, 4000, 3600, 0, 4200,
3498 0x52e},
3499 /* 831 MCS-15 */ { EHT20_LDPC_ONLY_MASKS,
3500 DP_CMN_MOD_IEEE80211_T_EHT_20,
3501 8600, 0, 8200, 7400, 8600, 8600,
3502 0x52f},
3503 /* 832 MCS-00 */ { EHT20_LDPC_ONLY_MASKS,
3504 DP_CMN_MOD_IEEE80211_T_EHT_20,
3505 17200, 0, 16200, 14600, 0, 17200,
3506 0x520},
3507 /* 833 MCS-01 */ { EHT20_LDPC_ONLY_MASKS,
3508 DP_CMN_MOD_IEEE80211_T_EHT_20,
3509 34400, 0, 32600, 29200, 0, 34400,
3510 0x521},
3511 /* 834 MCS-02 */ { EHT20_LDPC_ONLY_MASKS,
3512 DP_CMN_MOD_IEEE80211_T_EHT_20,
3513 51600, 0, 48800, 43800, 0, 51600,
3514 0x522},
3515 /* 835 MCS-03 */ { EHT20_LDPC_ONLY_MASKS,
3516 DP_CMN_MOD_IEEE80211_T_EHT_20,
3517 68800, 0, 65000, 58600, 0, 68800,
3518 0x523},
3519 /* 836 MCS-04 */ { EHT20_LDPC_ONLY_MASKS,
3520 DP_CMN_MOD_IEEE80211_T_EHT_20,
3521 103200, 0, 97600, 87800, 0, 103200,
3522 0x524},
3523 /* 837 MCS-05 */ { EHT20_LDPC_ONLY_MASKS,
3524 DP_CMN_MOD_IEEE80211_T_EHT_20,
3525 137600, 0, 130000, 117000, 0, 137600,
3526 0x525},
3527 /* 838 MCS-06 */ { EHT20_LDPC_ONLY_MASKS,
3528 DP_CMN_MOD_IEEE80211_T_EHT_20,
3529 154800, 0, 146200, 131600, 0, 154800,
3530 0x526},
3531 /* 839 MCS-07 */ { EHT20_LDPC_ONLY_MASKS,
3532 DP_CMN_MOD_IEEE80211_T_EHT_20,
3533 172000, 0, 162600, 146200, 0, 172000,
3534 0x527},
3535 /* 840 MCS-08 */ { EHT20_LDPC_ONLY_MASKS,
3536 DP_CMN_MOD_IEEE80211_T_EHT_20,
3537 206400, 0, 195000, 175600, 0, 206400,
3538 0x528},
3539 /* 841 MCS-09 */ { EHT20_LDPC_ONLY_MASKS,
3540 DP_CMN_MOD_IEEE80211_T_EHT_20,
3541 229400, 0, 216600, 195000, 0, 229400,
3542 0x529},
3543 /* 842 MCS-10 */ { EHT20_LDPC_ONLY_MASKS,
3544 DP_CMN_MOD_IEEE80211_T_EHT_20,
3545 258000, 0, 243800, 219400, 0, 258000,
3546 0x52a},
3547 /* 843 MCS-11 */ { EHT20_LDPC_ONLY_MASKS,
3548 DP_CMN_MOD_IEEE80211_T_EHT_20,
3549 286800, 0, 270800, 243800, 0, 286800,
3550 0x52b},
3551 /* 844 MCS-12 */ { EHT20_LDPC_ONLY_MASKS,
3552 DP_CMN_MOD_IEEE80211_T_EHT_20,
3553 309800, 0, 292600, 263200, 0, 309800,
3554 0x52c},
3555 /* 845 MCS-13 */ { EHT20_LDPC_ONLY_MASKS,
3556 DP_CMN_MOD_IEEE80211_T_EHT_20,
3557 344200, 0, 325000, 292600, 0, 344200,
3558 0x52d},
3559
3560 /* when number of spatial streams > 2 */
3561 /* 846 MCS-14 */ { EHT20_LDPC_ONLY_MASKS,
3562 DP_CMN_MOD_IEEE80211_T_EHT_20,
3563 6300, 0, 6000, 5400, 0, 6300,
3564 0x54e},
3565 /* 847 MCS-15 */ { EHT20_LDPC_ONLY_MASKS,
3566 DP_CMN_MOD_IEEE80211_T_EHT_20,
3567 12900, 0, 12299, 11100, 12900, 12900,
3568 0x54f},
3569 /* 848 MCS-00 */ { EHT20_LDPC_ONLY_MASKS,
3570 DP_CMN_MOD_IEEE80211_T_EHT_20,
3571 25800, 0, 24300, 21900, 0, 25800,
3572 0x540},
3573 /* 849 MCS-01 */ { EHT20_LDPC_ONLY_MASKS,
3574 DP_CMN_MOD_IEEE80211_T_EHT_20,
3575 51600, 0, 48900, 43800, 0, 51600,
3576 0x541},
3577 /* 850 MCS-02 */ { EHT20_LDPC_ONLY_MASKS,
3578 DP_CMN_MOD_IEEE80211_T_EHT_20,
3579 77400, 0, 73200, 65700, 0, 77400,
3580 0x542},
3581 /* 851 MCS-03 */ { EHT20_LDPC_ONLY_MASKS,
3582 DP_CMN_MOD_IEEE80211_T_EHT_20,
3583 103200, 0, 97500, 87900, 0, 103200,
3584 0x543},
3585 /* 852 MCS-04 */ { EHT20_LDPC_ONLY_MASKS,
3586 DP_CMN_MOD_IEEE80211_T_EHT_20,
3587 154800, 0, 146400, 131700, 0, 154800,
3588 0x544},
3589 /* 853 MCS-05 */ { EHT20_LDPC_ONLY_MASKS,
3590 DP_CMN_MOD_IEEE80211_T_EHT_20,
3591 206400, 0, 195000, 175500, 0, 206400,
3592 0x545},
3593 /* 854 MCS-06 */ { EHT20_LDPC_ONLY_MASKS,
3594 DP_CMN_MOD_IEEE80211_T_EHT_20,
3595 232200, 0, 219299, 197400, 0, 232200,
3596 0x546},
3597 /* 855 MCS-07 */ { EHT20_LDPC_ONLY_MASKS,
3598 DP_CMN_MOD_IEEE80211_T_EHT_20,
3599 258000, 0, 243900, 219299, 0, 258000,
3600 0x547},
3601 /* 856 MCS-08 */ { EHT20_LDPC_ONLY_MASKS,
3602 DP_CMN_MOD_IEEE80211_T_EHT_20,
3603 309600, 0, 292500, 263400, 0, 309600,
3604 0x548},
3605 /* 857 MCS-09 */ { EHT20_LDPC_ONLY_MASKS,
3606 DP_CMN_MOD_IEEE80211_T_EHT_20,
3607 344100, 0, 324900, 292500, 0, 344100,
3608 0x549},
3609 /* 858 MCS-10 */ { EHT20_LDPC_ONLY_MASKS,
3610 DP_CMN_MOD_IEEE80211_T_EHT_20,
3611 387000, 0, 365700, 329100, 0, 387000,
3612 0x54a},
3613 /* 859 MCS-11 */ { EHT20_LDPC_ONLY_MASKS,
3614 DP_CMN_MOD_IEEE80211_T_EHT_20,
3615 430200, 0, 406200, 365700, 0, 430200,
3616 0x54b},
3617 /* 860 MCS-12 */ { EHT20_LDPC_ONLY_MASKS,
3618 DP_CMN_MOD_IEEE80211_T_EHT_20,
3619 464700, 0, 438900, 394800, 0, 464700,
3620 0x54c},
3621 /* 861 MCS-13 */ { EHT20_LDPC_ONLY_MASKS,
3622 DP_CMN_MOD_IEEE80211_T_EHT_20,
3623 516300, 0, 487500, 438900, 0, 516300,
3624 0x54d},
3625
3626 /* when number of spatial streams > 3 */
3627 /* 862 MCS-14 */ { EHT20_LDPC_ONLY_MASKS,
3628 DP_CMN_MOD_IEEE80211_T_EHT_20,
3629 8400, 0, 8000, 7200, 0, 8400,
3630 0x56e},
3631 /* 863 MCS-15 */ { EHT20_LDPC_ONLY_MASKS,
3632 DP_CMN_MOD_IEEE80211_T_EHT_20,
3633 17200, 0, 16400, 14800, 17200, 17200,
3634 0x56f},
3635 /* 864 MCS-00 */ { EHT20_LDPC_ONLY_MASKS,
3636 DP_CMN_MOD_IEEE80211_T_EHT_20,
3637 34400, 0, 32400, 29200, 0, 34400,
3638 0x560},
3639 /* 865 MCS-01 */ { EHT20_LDPC_ONLY_MASKS,
3640 DP_CMN_MOD_IEEE80211_T_EHT_20,
3641 68800, 0, 65200, 58400, 0, 68800,
3642 0x561},
3643 /* 866 MCS-02 */ { EHT20_LDPC_ONLY_MASKS,
3644 DP_CMN_MOD_IEEE80211_T_EHT_20,
3645 103200, 0, 97600, 87600, 0, 103200,
3646 0x562},
3647 /* 867 MCS-03 */ { EHT20_LDPC_ONLY_MASKS,
3648 DP_CMN_MOD_IEEE80211_T_EHT_20,
3649 137600, 0, 130000, 117200, 0, 137600,
3650 0x563},
3651 /* 868 MCS-04 */ { EHT20_LDPC_ONLY_MASKS,
3652 DP_CMN_MOD_IEEE80211_T_EHT_20,
3653 206400, 0, 195200, 175600, 0, 206400,
3654 0x564},
3655 /* 869 MCS-05 */ { EHT20_LDPC_ONLY_MASKS,
3656 DP_CMN_MOD_IEEE80211_T_EHT_20,
3657 275200, 0, 260000, 234000, 0, 275200,
3658 0x565},
3659 /* 870 MCS-06 */ { EHT20_LDPC_ONLY_MASKS,
3660 DP_CMN_MOD_IEEE80211_T_EHT_20,
3661 309600, 0, 292400, 263200, 0, 309600,
3662 0x566},
3663 /* 871 MCS-07 */ { EHT20_LDPC_ONLY_MASKS,
3664 DP_CMN_MOD_IEEE80211_T_EHT_20,
3665 344000, 0, 325200, 292400, 0, 344000,
3666 0x567},
3667 /* 872 MCS-08 */ { EHT20_LDPC_ONLY_MASKS,
3668 DP_CMN_MOD_IEEE80211_T_EHT_20,
3669 412800, 0, 390000, 351200, 0, 412800,
3670 0x568},
3671 /* 873 MCS-09 */ { EHT20_LDPC_ONLY_MASKS,
3672 DP_CMN_MOD_IEEE80211_T_EHT_20,
3673 458800, 0, 433200, 390000, 0, 458800,
3674 0x569},
3675 /* 874 MCS-10 */ { EHT20_LDPC_ONLY_MASKS,
3676 DP_CMN_MOD_IEEE80211_T_EHT_20,
3677 516000, 0, 487600, 438800, 0, 516000,
3678 0x56a},
3679 /* 875 MCS-11 */ { EHT20_LDPC_ONLY_MASKS,
3680 DP_CMN_MOD_IEEE80211_T_EHT_20,
3681 573600, 0, 541600, 487600, 0, 573600,
3682 0x56b},
3683 /* 876 MCS-12 */ { EHT20_LDPC_ONLY_MASKS,
3684 DP_CMN_MOD_IEEE80211_T_EHT_20,
3685 619600, 0, 585200, 526400, 0, 619600,
3686 0x56c},
3687 /* 877 MCS-13 */ { EHT20_LDPC_ONLY_MASKS,
3688 DP_CMN_MOD_IEEE80211_T_EHT_20,
3689 688400, 0, 650000, 585200, 0, 688400,
3690 0x56d},
3691
3692 /* 878 MCS-14 */ { EHT40_LDPC_ONLY_MASKS,
3693 DP_CMN_MOD_IEEE80211_T_EHT_40,
3694 4300, 0, 4100, 3700, 0, 4300,
3695 0x50e},
3696 /* 879 MCS-15 */ { EHT40_LDPC_ONLY_MASKS,
3697 DP_CMN_MOD_IEEE80211_T_EHT_40,
3698 8600, 0, 8100, 7300, 8600, 8600,
3699 0x50f},
3700 /* 880 MCS-00 */ { EHT40_LDPC_ONLY_MASKS,
3701 DP_CMN_MOD_IEEE80211_T_EHT_40,
3702 17200, 0, 16300, 14600, 0, 17200,
3703 0x500},
3704 /* 881 MCS-01 */ { EHT40_LDPC_ONLY_MASKS,
3705 DP_CMN_MOD_IEEE80211_T_EHT_40,
3706 34400, 0, 32500, 29300, 0, 34400,
3707 0x501},
3708 /* 882 MCS-02 */ { EHT40_LDPC_ONLY_MASKS,
3709 DP_CMN_MOD_IEEE80211_T_EHT_40,
3710 51600, 0, 48800, 43900, 0, 51600,
3711 0x502},
3712 /* 883 MCS-03 */ { EHT40_LDPC_ONLY_MASKS,
3713 DP_CMN_MOD_IEEE80211_T_EHT_40,
3714 68800, 0, 65000, 58500, 0, 68800,
3715 0x503},
3716 /* 884 MCS-04 */ { EHT40_LDPC_ONLY_MASKS,
3717 DP_CMN_MOD_IEEE80211_T_EHT_40,
3718 103200, 0, 97500, 87800, 0, 103200,
3719 0x504},
3720 /* 885 MCS-05 */ { EHT40_LDPC_ONLY_MASKS,
3721 DP_CMN_MOD_IEEE80211_T_EHT_40,
3722 137600, 0, 130000, 117000, 0, 137600,
3723 0x505},
3724 /* 886 MCS-06 */ { EHT40_LDPC_ONLY_MASKS,
3725 DP_CMN_MOD_IEEE80211_T_EHT_40,
3726 154900, 0, 146300, 131600, 0, 154900,
3727 0x506},
3728 /* 887 MCS-07 */ { EHT40_LDPC_ONLY_MASKS,
3729 DP_CMN_MOD_IEEE80211_T_EHT_40,
3730 172100, 0, 162500, 146300, 0, 172100,
3731 0x507},
3732 /* 888 MCS-08 */ { EHT40_LDPC_ONLY_MASKS,
3733 DP_CMN_MOD_IEEE80211_T_EHT_40,
3734 206500, 0, 195000, 175500, 0, 206500,
3735 0x508},
3736 /* 889 MCS-09 */ { EHT40_LDPC_ONLY_MASKS,
3737 DP_CMN_MOD_IEEE80211_T_EHT_40,
3738 229400, 0, 216700, 195000, 0, 229400,
3739 0x509},
3740 /* 890 MCS-10 */ { EHT40_LDPC_ONLY_MASKS,
3741 DP_CMN_MOD_IEEE80211_T_EHT_40,
3742 258100, 0, 243800, 219400, 0, 258100,
3743 0x50a},
3744 /* 891 MCS-11 */ { EHT40_LDPC_ONLY_MASKS,
3745 DP_CMN_MOD_IEEE80211_T_EHT_40,
3746 286800, 0, 270800, 243800, 0, 286800,
3747 0x50b},
3748 /* 892 MCS-12 */ { EHT40_LDPC_ONLY_MASKS,
3749 DP_CMN_MOD_IEEE80211_T_EHT_40,
3750 309700, 0, 292500, 263300, 0, 309700,
3751 0x50c},
3752 /* 893 MCS-13 */ { EHT40_LDPC_ONLY_MASKS,
3753 DP_CMN_MOD_IEEE80211_T_EHT_40,
3754 344100, 0, 325000, 292500, 0, 344100,
3755 0x50d},
3756
3757 /* when number of spatial streams > 1 */
3758 /* 894 MCS-14 */ { EHT40_LDPC_ONLY_MASKS,
3759 DP_CMN_MOD_IEEE80211_T_EHT_40,
3760 8600, 0, 8200, 7400, 0, 8600,
3761 0x52e},
3762 /* 895 MCS-15 */ { EHT40_LDPC_ONLY_MASKS,
3763 DP_CMN_MOD_IEEE80211_T_EHT_40,
3764 17200, 0, 16200, 14600, 17200, 17200,
3765 0x52f},
3766 /* 896 MCS-00 */ { EHT40_LDPC_ONLY_MASKS,
3767 DP_CMN_MOD_IEEE80211_T_EHT_40,
3768 34400, 0, 32600, 29200, 0, 34400,
3769 0x520},
3770 /* 897 MCS-01 */ { EHT40_LDPC_ONLY_MASKS,
3771 DP_CMN_MOD_IEEE80211_T_EHT_40,
3772 68800, 0, 65000, 58600, 0, 68800,
3773 0x521},
3774 /* 898 MCS-02 */ { EHT40_LDPC_ONLY_MASKS,
3775 DP_CMN_MOD_IEEE80211_T_EHT_40,
3776 103200, 0, 97600, 87800, 0, 103200,
3777 0x522},
3778 /* 899 MCS-03 */ { EHT40_LDPC_ONLY_MASKS,
3779 DP_CMN_MOD_IEEE80211_T_EHT_40,
3780 137600, 0, 130000, 117000, 0, 137600,
3781 0x523},
3782 /* 900 MCS-04 */ { EHT40_LDPC_ONLY_MASKS,
3783 DP_CMN_MOD_IEEE80211_T_EHT_40,
3784 206400, 0, 195000, 175600, 0, 206400,
3785 0x524},
3786 /* 901 MCS-05 */ { EHT40_LDPC_ONLY_MASKS,
3787 DP_CMN_MOD_IEEE80211_T_EHT_40,
3788 275200, 0, 260000, 234000, 0, 275200,
3789 0x525},
3790 /* 902 MCS-06 */ { EHT40_LDPC_ONLY_MASKS,
3791 DP_CMN_MOD_IEEE80211_T_EHT_40,
3792 309800, 0, 292600, 263200, 0, 309800,
3793 0x526},
3794 /* 903 MCS-07 */ { EHT40_LDPC_ONLY_MASKS,
3795 DP_CMN_MOD_IEEE80211_T_EHT_40,
3796 344200, 0, 325000, 292600, 0, 344200,
3797 0x527},
3798 /* 904 MCS-08 */ { EHT40_LDPC_ONLY_MASKS,
3799 DP_CMN_MOD_IEEE80211_T_EHT_40,
3800 413000, 0, 390000, 351000, 0, 413000,
3801 0x528},
3802 /* 905 MCS-09 */ { EHT40_LDPC_ONLY_MASKS,
3803 DP_CMN_MOD_IEEE80211_T_EHT_40,
3804 458800, 0, 433400, 390000, 0, 458800,
3805 0x529},
3806 /* 906 MCS-10 */ { EHT40_LDPC_ONLY_MASKS,
3807 DP_CMN_MOD_IEEE80211_T_EHT_40,
3808 516200, 0, 487600, 438800, 0, 516200,
3809 0x52a},
3810 /* 907 MCS-11 */ { EHT40_LDPC_ONLY_MASKS,
3811 DP_CMN_MOD_IEEE80211_T_EHT_40,
3812 573600, 0, 541600, 487600, 0, 573600,
3813 0x52b},
3814 /* 908 MCS-12 */ { EHT40_LDPC_ONLY_MASKS,
3815 DP_CMN_MOD_IEEE80211_T_EHT_40,
3816 619400, 0, 585000, 526600, 0, 619400,
3817 0x52c},
3818 /* 909 MCS-13 */ { EHT40_LDPC_ONLY_MASKS,
3819 DP_CMN_MOD_IEEE80211_T_EHT_40,
3820 688200, 0, 650000, 585000, 0, 688200,
3821 0x52d},
3822
3823 /* when number of spatial streams > 2 */
3824 /* 910 MCS-14 */ { EHT40_LDPC_ONLY_MASKS,
3825 DP_CMN_MOD_IEEE80211_T_EHT_40,
3826 12900, 0, 12299, 11100, 0, 12900,
3827 0x54e},
3828 /* 911 MCS-15 */ { EHT40_LDPC_ONLY_MASKS,
3829 DP_CMN_MOD_IEEE80211_T_EHT_40,
3830 25800, 0, 24300, 21900, 25800, 25800,
3831 0x54f},
3832 /* 912 MCS-00 */ { EHT40_LDPC_ONLY_MASKS,
3833 DP_CMN_MOD_IEEE80211_T_EHT_40,
3834 51600, 0, 48900, 43800, 0, 51600,
3835 0x540},
3836 /* 913 MCS-01 */ { EHT40_LDPC_ONLY_MASKS,
3837 DP_CMN_MOD_IEEE80211_T_EHT_40,
3838 103200, 0, 97500, 87900, 0, 103200,
3839 0x541},
3840 /* 914 MCS-02 */ { EHT40_LDPC_ONLY_MASKS,
3841 DP_CMN_MOD_IEEE80211_T_EHT_40,
3842 154800, 0, 146400, 131700, 0, 154800,
3843 0x542},
3844 /* 915 MCS-03 */ { EHT40_LDPC_ONLY_MASKS,
3845 DP_CMN_MOD_IEEE80211_T_EHT_40,
3846 206400, 0, 195000, 175500, 0, 206400,
3847 0x543},
3848 /* 916 MCS-04 */ { EHT40_LDPC_ONLY_MASKS,
3849 DP_CMN_MOD_IEEE80211_T_EHT_40,
3850 309600, 0, 292500, 263400, 0, 309600,
3851 0x544},
3852 /* 917 MCS-05 */ { EHT40_LDPC_ONLY_MASKS,
3853 DP_CMN_MOD_IEEE80211_T_EHT_40,
3854 412800, 0, 390000, 351000, 0, 412800,
3855 0x545},
3856 /* 918 MCS-06 */ { EHT40_LDPC_ONLY_MASKS,
3857 DP_CMN_MOD_IEEE80211_T_EHT_40,
3858 464700, 0, 438900, 394800, 0, 464700,
3859 0x546},
3860 /* 919 MCS-07 */ { EHT40_LDPC_ONLY_MASKS,
3861 DP_CMN_MOD_IEEE80211_T_EHT_40,
3862 516300, 0, 487500, 438900, 0, 516300,
3863 0x547},
3864 /* 920 MCS-08 */ { EHT40_LDPC_ONLY_MASKS,
3865 DP_CMN_MOD_IEEE80211_T_EHT_40,
3866 619500, 0, 585000, 526500, 0, 619500,
3867 0x548},
3868 /* 921 MCS-09 */ { EHT40_LDPC_ONLY_MASKS,
3869 DP_CMN_MOD_IEEE80211_T_EHT_40,
3870 688200, 0, 650100, 585000, 0, 688200,
3871 0x549},
3872 /* 922 MCS-10 */ { EHT40_LDPC_ONLY_MASKS,
3873 DP_CMN_MOD_IEEE80211_T_EHT_40,
3874 774300, 0, 731400, 658200, 0, 774300,
3875 0x54a},
3876 /* 923 MCS-11 */ { EHT40_LDPC_ONLY_MASKS,
3877 DP_CMN_MOD_IEEE80211_T_EHT_40,
3878 860400, 0, 812400, 731400, 0, 860400,
3879 0x54b},
3880 /* 924 MCS-12 */ { EHT40_LDPC_ONLY_MASKS,
3881 DP_CMN_MOD_IEEE80211_T_EHT_40,
3882 929100, 0, 877500, 789900, 0, 929100,
3883 0x54c},
3884 /* 925 MCS-13 */ { EHT40_LDPC_ONLY_MASKS,
3885 DP_CMN_MOD_IEEE80211_T_EHT_40,
3886 1032300, 0, 975000, 877500, 0, 1032300,
3887 0x54d},
3888
3889 /* when number of spatial streams > 3 */
3890 /* 926 MCS-14 */ { EHT40_LDPC_ONLY_MASKS,
3891 DP_CMN_MOD_IEEE80211_T_EHT_40,
3892 17200, 0, 16400, 14800, 0, 17200,
3893 0x56e},
3894 /* 927 MCS-15 */ { EHT40_LDPC_ONLY_MASKS,
3895 DP_CMN_MOD_IEEE80211_T_EHT_40,
3896 34400, 0, 32400, 29200, 34400, 34400,
3897 0x56f},
3898 /* 928 MCS-00 */ { EHT40_LDPC_ONLY_MASKS,
3899 DP_CMN_MOD_IEEE80211_T_EHT_40,
3900 68800, 0, 65200, 58400, 0, 68800,
3901 0x560},
3902 /* 929 MCS-01 */ { EHT40_LDPC_ONLY_MASKS,
3903 DP_CMN_MOD_IEEE80211_T_EHT_40,
3904 137600, 0, 130000, 117200, 0, 137600,
3905 0x561},
3906 /* 930 MCS-02 */ { EHT40_LDPC_ONLY_MASKS,
3907 DP_CMN_MOD_IEEE80211_T_EHT_40,
3908 206400, 0, 195200, 175600, 0, 206400,
3909 0x562},
3910 /* 931 MCS-03 */ { EHT40_LDPC_ONLY_MASKS,
3911 DP_CMN_MOD_IEEE80211_T_EHT_40,
3912 275200, 0, 260000, 234000, 0, 275200,
3913 0x563},
3914 /* 932 MCS-04 */ { EHT40_LDPC_ONLY_MASKS,
3915 DP_CMN_MOD_IEEE80211_T_EHT_40,
3916 412800, 0, 390000, 351200, 0, 412800,
3917 0x564},
3918 /* 933 MCS-05 */ { EHT40_LDPC_ONLY_MASKS,
3919 DP_CMN_MOD_IEEE80211_T_EHT_40,
3920 550400, 0, 520000, 468000, 0, 550400,
3921 0x565},
3922 /* 934 MCS-06 */ { EHT40_LDPC_ONLY_MASKS,
3923 DP_CMN_MOD_IEEE80211_T_EHT_40,
3924 619600, 0, 585200, 526400, 0, 619600,
3925 0x566},
3926 /* 935 MCS-07 */ { EHT40_LDPC_ONLY_MASKS,
3927 DP_CMN_MOD_IEEE80211_T_EHT_40,
3928 688400, 0, 650000, 585200, 0, 688400,
3929 0x567},
3930 /* 936 MCS-08 */ { EHT40_LDPC_ONLY_MASKS,
3931 DP_CMN_MOD_IEEE80211_T_EHT_40,
3932 826000, 0, 780000, 702000, 0, 826000,
3933 0x568},
3934 /* 937 MCS-09 */ { EHT40_LDPC_ONLY_MASKS,
3935 DP_CMN_MOD_IEEE80211_T_EHT_40,
3936 917600, 0, 866800, 780000, 0, 917600,
3937 0x569},
3938 /* 938 MCS-10 */ { EHT40_LDPC_ONLY_MASKS,
3939 DP_CMN_MOD_IEEE80211_T_EHT_40,
3940 1032400, 0, 975200, 877600, 0, 1032400,
3941 0x56a},
3942 /* 939 MCS-11 */ { EHT40_LDPC_ONLY_MASKS,
3943 DP_CMN_MOD_IEEE80211_T_EHT_40,
3944 1147200, 0, 1083200, 975200, 0, 1147200,
3945 0x56b},
3946 /* 940 MCS-12 */ { EHT40_LDPC_ONLY_MASKS,
3947 DP_CMN_MOD_IEEE80211_T_EHT_40,
3948 1238800, 0, 1170000, 1053200, 0, 1238800,
3949 0x56c},
3950 /* 941 MCS-13 */ { EHT40_LDPC_ONLY_MASKS,
3951 DP_CMN_MOD_IEEE80211_T_EHT_40,
3952 1376400, 0, 1300000, 1170000, 0, 1376400,
3953 0x56d},
3954
3955 /* 942 MCS-14 */ { EHT80_LDPC_ONLY_MASKS,
3956 DP_CMN_MOD_IEEE80211_T_EHT_60,
3957 6400, 0, 6100, 5500, 0, 6400,
3958 0x50e},
3959 /* 943 MCS-15 */ { EHT80_LDPC_ONLY_MASKS,
3960 DP_CMN_MOD_IEEE80211_T_EHT_60,
3961 12900, 0, 12200, 11000, 12900, 12900,
3962 0x50f},
3963 /* 944 MCS-00 */ { EHT80_LDPC_ONLY_MASKS,
3964 DP_CMN_MOD_IEEE80211_T_EHT_60,
3965 25800, 0, 24400, 21900, 0, 25800,
3966 0x500},
3967 /* 945 MCS-01 */ { EHT80_LDPC_ONLY_MASKS,
3968 DP_CMN_MOD_IEEE80211_T_EHT_60,
3969 51600, 0, 48800, 43900, 0, 51600,
3970 0x501},
3971 /* 946 MCS-02 */ { EHT80_LDPC_ONLY_MASKS,
3972 DP_CMN_MOD_IEEE80211_T_EHT_60,
3973 77400, 0, 73100, 65800, 0, 77400,
3974 0x502},
3975 /* 947 MCS-03 */ { EHT80_LDPC_ONLY_MASKS,
3976 DP_CMN_MOD_IEEE80211_T_EHT_60,
3977 103200, 0, 97500, 87800, 0, 103200,
3978 0x503},
3979 /* 948 MCS-04 */ { EHT80_LDPC_ONLY_MASKS,
3980 DP_CMN_MOD_IEEE80211_T_EHT_60,
3981 154900, 0, 146300, 131600, 0, 154900,
3982 0x504},
3983 /* 949 MCS-05 */ { EHT80_LDPC_ONLY_MASKS,
3984 DP_CMN_MOD_IEEE80211_T_EHT_60,
3985 206500, 0, 195000, 175500, 0, 206500,
3986 0x505},
3987 /* 950 MCS-06 */ { EHT80_LDPC_ONLY_MASKS,
3988 DP_CMN_MOD_IEEE80211_T_EHT_60,
3989 232300, 0, 219400, 197400, 0, 232300,
3990 0x506},
3991 /* 951 MCS-07 */ { EHT80_LDPC_ONLY_MASKS,
3992 DP_CMN_MOD_IEEE80211_T_EHT_60,
3993 258100, 0, 243800, 219400, 0, 258100,
3994 0x507},
3995 /* 952 MCS-08 */ { EHT80_LDPC_ONLY_MASKS,
3996 DP_CMN_MOD_IEEE80211_T_EHT_60,
3997 309700, 0, 292500, 263300, 0, 309700,
3998 0x508},
3999 /* 953 MCS-09 */ { EHT80_LDPC_ONLY_MASKS,
4000 DP_CMN_MOD_IEEE80211_T_EHT_60,
4001 344100, 0, 325000, 292500, 0, 344100,
4002 0x509},
4003 /* 954 MCS-10 */ { EHT80_LDPC_ONLY_MASKS,
4004 DP_CMN_MOD_IEEE80211_T_EHT_60,
4005 387100, 0, 365600, 329100, 0, 387100,
4006 0x50a},
4007 /* 955 MCS-11 */ { EHT80_LDPC_ONLY_MASKS,
4008 DP_CMN_MOD_IEEE80211_T_EHT_60,
4009 430100, 0, 406300, 365600, 0, 430100,
4010 0x50b},
4011 /* 956 MCS-12 */ { EHT80_LDPC_ONLY_MASKS,
4012 DP_CMN_MOD_IEEE80211_T_EHT_60,
4013 464600, 0, 438800, 394900, 0, 464600,
4014 0x50c},
4015 /* 957 MCS-13 */ { EHT80_LDPC_ONLY_MASKS,
4016 DP_CMN_MOD_IEEE80211_T_EHT_60,
4017 516200, 0, 487500, 438800, 0, 516200,
4018 0x50d},
4019
4020 /* when number of spatial streams > 1 */
4021 /* 958 MCS-14 */ { EHT80_LDPC_ONLY_MASKS,
4022 DP_CMN_MOD_IEEE80211_T_EHT_60,
4023 12800, 0, 12200, 11000, 0, 12800,
4024 0x52e},
4025 /* 959 MCS-15 */ { EHT80_LDPC_ONLY_MASKS,
4026 DP_CMN_MOD_IEEE80211_T_EHT_60,
4027 25800, 0, 24400, 22000, 25800, 25800,
4028 0x52f},
4029 /* 960 MCS-00 */ { EHT80_LDPC_ONLY_MASKS,
4030 DP_CMN_MOD_IEEE80211_T_EHT_60,
4031 51600, 0, 48800, 43800, 0, 51600,
4032 0x520},
4033 /* 961 MCS-01 */ { EHT80_LDPC_ONLY_MASKS,
4034 DP_CMN_MOD_IEEE80211_T_EHT_60,
4035 103200, 0, 97600, 87800, 0, 103200,
4036 0x521},
4037 /* 962 MCS-02 */ { EHT80_LDPC_ONLY_MASKS,
4038 DP_CMN_MOD_IEEE80211_T_EHT_60,
4039 154800, 0, 146200, 131600, 0, 154800,
4040 0x522},
4041 /* 963 MCS-03 */ { EHT80_LDPC_ONLY_MASKS,
4042 DP_CMN_MOD_IEEE80211_T_EHT_60,
4043 206400, 0, 195000, 175600, 0, 206400,
4044 0x523},
4045 /* 964 MCS-04 */ { EHT80_LDPC_ONLY_MASKS,
4046 DP_CMN_MOD_IEEE80211_T_EHT_60,
4047 309800, 0, 292600, 263200, 0, 309800,
4048 0x524},
4049 /* 965 MCS-05 */ { EHT80_LDPC_ONLY_MASKS,
4050 DP_CMN_MOD_IEEE80211_T_EHT_60,
4051 413000, 0, 390000, 351000, 0, 413000,
4052 0x525},
4053 /* 966 MCS-06 */ { EHT80_LDPC_ONLY_MASKS,
4054 DP_CMN_MOD_IEEE80211_T_EHT_60,
4055 464600, 0, 438800, 394800, 0, 464600,
4056 0x526},
4057 /* 967 MCS-07 */ { EHT80_LDPC_ONLY_MASKS,
4058 DP_CMN_MOD_IEEE80211_T_EHT_60,
4059 516200, 0, 487600, 438800, 0, 516200,
4060 0x527},
4061 /* 968 MCS-08 */ { EHT80_LDPC_ONLY_MASKS,
4062 DP_CMN_MOD_IEEE80211_T_EHT_60,
4063 619400, 0, 585000, 526600, 0, 619400,
4064 0x528},
4065 /* 969 MCS-09 */ { EHT80_LDPC_ONLY_MASKS,
4066 DP_CMN_MOD_IEEE80211_T_EHT_60,
4067 688200, 0, 650000, 585000, 0, 688200,
4068 0x529},
4069 /* 970 MCS-10 */ { EHT80_LDPC_ONLY_MASKS,
4070 DP_CMN_MOD_IEEE80211_T_EHT_60,
4071 774200, 0, 731200, 658200, 0, 774200,
4072 0x52a},
4073 /* 971 MCS-11 */ { EHT80_LDPC_ONLY_MASKS,
4074 DP_CMN_MOD_IEEE80211_T_EHT_60,
4075 860200, 0, 812600, 731200, 0, 860200,
4076 0x52b},
4077 /* 972 MCS-12 */ { EHT80_LDPC_ONLY_MASKS,
4078 DP_CMN_MOD_IEEE80211_T_EHT_60,
4079 929200, 0, 877600, 789800, 0, 929200,
4080 0x52c},
4081 /* 973 MCS-13 */ { EHT80_LDPC_ONLY_MASKS,
4082 DP_CMN_MOD_IEEE80211_T_EHT_60,
4083 1032400, 0, 975000, 877600, 0, 1032400,
4084 0x52d},
4085
4086 /* when number of spatial streams > 2 */
4087 /* 974 MCS-14 */ { EHT80_LDPC_ONLY_MASKS,
4088 DP_CMN_MOD_IEEE80211_T_EHT_60,
4089 19200, 0, 18300, 16500, 0, 19200,
4090 0x54e},
4091 /* 975 MCS-15 */ { EHT80_LDPC_ONLY_MASKS,
4092 DP_CMN_MOD_IEEE80211_T_EHT_60,
4093 38700, 0, 36600, 33000, 38700, 38700,
4094 0x54f},
4095 /* 976 MCS-00 */ { EHT80_LDPC_ONLY_MASKS,
4096 DP_CMN_MOD_IEEE80211_T_EHT_60,
4097 77400, 0, 73200, 65700, 0, 77400,
4098 0x540},
4099 /* 977 MCS-01 */ { EHT80_LDPC_ONLY_MASKS,
4100 DP_CMN_MOD_IEEE80211_T_EHT_60,
4101 154800, 0, 146400, 131700, 0, 154800,
4102 0x541},
4103 /* 978 MCS-02 */ { EHT80_LDPC_ONLY_MASKS,
4104 DP_CMN_MOD_IEEE80211_T_EHT_60,
4105 232200, 0, 219299, 197400, 0, 232200,
4106 0x542},
4107 /* 979 MCS-03 */ { EHT80_LDPC_ONLY_MASKS,
4108 DP_CMN_MOD_IEEE80211_T_EHT_60,
4109 309600, 0, 292500, 263400, 0, 309600,
4110 0x543},
4111 /* 980 MCS-04 */ { EHT80_LDPC_ONLY_MASKS,
4112 DP_CMN_MOD_IEEE80211_T_EHT_60,
4113 464700, 0, 438900, 394800, 0, 464700,
4114 0x544},
4115 /* 981 MCS-05 */ { EHT80_LDPC_ONLY_MASKS,
4116 DP_CMN_MOD_IEEE80211_T_EHT_60,
4117 619500, 0, 585000, 526500, 0, 619500,
4118 0x545},
4119 /* 982 MCS-06 */ { EHT80_LDPC_ONLY_MASKS,
4120 DP_CMN_MOD_IEEE80211_T_EHT_60,
4121 696900, 0, 658200, 592200, 0, 696900,
4122 0x546},
4123 /* 983 MCS-07 */ { EHT80_LDPC_ONLY_MASKS,
4124 DP_CMN_MOD_IEEE80211_T_EHT_60,
4125 774300, 0, 731400, 658200, 0, 774300,
4126 0x547},
4127 /* 984 MCS-08 */ { EHT80_LDPC_ONLY_MASKS,
4128 DP_CMN_MOD_IEEE80211_T_EHT_60,
4129 929100, 0, 877500, 789900, 0, 929100,
4130 0x548},
4131 /* 985 MCS-09 */ { EHT80_LDPC_ONLY_MASKS,
4132 DP_CMN_MOD_IEEE80211_T_EHT_60,
4133 1032300, 0, 975000, 877500, 0, 1032300,
4134 0x549},
4135 /* 986 MCS-10 */ { EHT80_LDPC_ONLY_MASKS,
4136 DP_CMN_MOD_IEEE80211_T_EHT_60,
4137 1161300, 0, 1096800, 987300, 0, 1161300,
4138 0x54a},
4139 /* 987 MCS-11 */ { EHT80_LDPC_ONLY_MASKS,
4140 DP_CMN_MOD_IEEE80211_T_EHT_60,
4141 1290300, 0, 1218900, 1096800, 0, 1290300,
4142 0x54b},
4143 /* 988 MCS-12 */ { EHT80_LDPC_ONLY_MASKS,
4144 DP_CMN_MOD_IEEE80211_T_EHT_60,
4145 1393800, 0, 1316400, 1184700, 0, 1393800,
4146 0x54c},
4147 /* 989 MCS-13 */ { EHT80_LDPC_ONLY_MASKS,
4148 DP_CMN_MOD_IEEE80211_T_EHT_60,
4149 1548600, 0, 1462500, 1316400, 0, 1548600,
4150 0x54d},
4151
4152 /* when number of spatial streams > 3 */
4153 /* 990 MCS-14 */ { EHT80_LDPC_ONLY_MASKS,
4154 DP_CMN_MOD_IEEE80211_T_EHT_60,
4155 25600, 0, 24400, 22000, 0, 25600,
4156 0x56e},
4157 /* 991 MCS-15 */ { EHT80_LDPC_ONLY_MASKS,
4158 DP_CMN_MOD_IEEE80211_T_EHT_60,
4159 51600, 0, 48800, 44000, 51600, 51600,
4160 0x56f},
4161 /* 992 MCS-00 */ { EHT80_LDPC_ONLY_MASKS,
4162 DP_CMN_MOD_IEEE80211_T_EHT_60,
4163 103200, 0, 97600, 87600, 0, 103200,
4164 0x560},
4165 /* 993 MCS-01 */ { EHT80_LDPC_ONLY_MASKS,
4166 DP_CMN_MOD_IEEE80211_T_EHT_60,
4167 206400, 0, 195200, 175600, 0, 206400,
4168 0x561},
4169 /* 994 MCS-02 */ { EHT80_LDPC_ONLY_MASKS,
4170 DP_CMN_MOD_IEEE80211_T_EHT_60,
4171 309600, 0, 292400, 263200, 0, 309600,
4172 0x562},
4173 /* 995 MCS-03 */ { EHT80_LDPC_ONLY_MASKS,
4174 DP_CMN_MOD_IEEE80211_T_EHT_60,
4175 412800, 0, 390000, 351200, 0, 412800,
4176 0x563},
4177 /* 996 MCS-04 */ { EHT80_LDPC_ONLY_MASKS,
4178 DP_CMN_MOD_IEEE80211_T_EHT_60,
4179 619600, 0, 585200, 526400, 0, 619600,
4180 0x564},
4181 /* 997 MCS-05 */ { EHT80_LDPC_ONLY_MASKS,
4182 DP_CMN_MOD_IEEE80211_T_EHT_60,
4183 826000, 0, 780000, 702000, 0, 826000,
4184 0x565},
4185 /* 998 MCS-06 */ { EHT80_LDPC_ONLY_MASKS,
4186 DP_CMN_MOD_IEEE80211_T_EHT_60,
4187 929200, 0, 877600, 789600, 0, 929200,
4188 0x566},
4189 /* 999 MCS-07 */ { EHT80_LDPC_ONLY_MASKS,
4190 DP_CMN_MOD_IEEE80211_T_EHT_60,
4191 1032400, 0, 975200, 877600, 0, 1032400,
4192 0x567},
4193 /* 1000 MCS-08 */ { EHT80_LDPC_ONLY_MASKS,
4194 DP_CMN_MOD_IEEE80211_T_EHT_60,
4195 1238800, 0, 1170000, 1053200, 0, 1238800,
4196 0x568},
4197 /* 1001 MCS-09 */ { EHT80_LDPC_ONLY_MASKS,
4198 DP_CMN_MOD_IEEE80211_T_EHT_60,
4199 1376400, 0, 1300000, 1170000, 0, 1376400,
4200 0x569},
4201 /* 1002 MCS-10 */ { EHT80_LDPC_ONLY_MASKS,
4202 DP_CMN_MOD_IEEE80211_T_EHT_60,
4203 1548400, 0, 1462400, 1316400, 0, 1548400,
4204 0x56a},
4205 /* 1003 MCS-11 */ { EHT80_LDPC_ONLY_MASKS,
4206 DP_CMN_MOD_IEEE80211_T_EHT_60,
4207 1720400, 0, 1625200, 1462400, 0, 1720400,
4208 0x56b},
4209 /* 1004 MCS-12 */ { EHT80_LDPC_ONLY_MASKS,
4210 DP_CMN_MOD_IEEE80211_T_EHT_60,
4211 1858400, 0, 1755200, 1579600, 0, 1858400,
4212 0x56c},
4213 /* 1005 MCS-13 */ { EHT80_LDPC_ONLY_MASKS,
4214 DP_CMN_MOD_IEEE80211_T_EHT_60,
4215 2064800, 0, 1950000, 1755200, 0, 2064800,
4216 0x56d},
4217
4218 /* 1006 MCS-14 */ { EHT80_LDPC_ONLY_MASKS,
4219 DP_CMN_MOD_IEEE80211_T_EHT_80,
4220 9000, 0, 8500, 7700, 0, 9000,
4221 0x50e},
4222 /* 1007 MCS-15 */ { EHT80_LDPC_ONLY_MASKS,
4223 DP_CMN_MOD_IEEE80211_T_EHT_80,
4224 18000, 0, 17000, 15300, 18000, 18000,
4225 0x50f},
4226 /* 1008 MCS-00 */ { EHT80_LDPC_ONLY_MASKS,
4227 DP_CMN_MOD_IEEE80211_T_EHT_80,
4228 36000, 0, 34000, 30600, 0, 36000,
4229 0x500},
4230 /* 1009 MCS-01 */ { EHT80_LDPC_ONLY_MASKS,
4231 DP_CMN_MOD_IEEE80211_T_EHT_80,
4232 72100, 0, 68100, 61300, 0, 72100,
4233 0x501},
4234 /* 1010 MCS-02 */ { EHT80_LDPC_ONLY_MASKS,
4235 DP_CMN_MOD_IEEE80211_T_EHT_80,
4236 108100, 0, 102100, 91900, 0, 108100,
4237 0x502},
4238 /* 1011 MCS-03 */ { EHT80_LDPC_ONLY_MASKS,
4239 DP_CMN_MOD_IEEE80211_T_EHT_80,
4240 144100, 0, 136100, 122500, 0, 144100,
4241 0x503},
4242 /* 1012 MCS-04 */ { EHT80_LDPC_ONLY_MASKS,
4243 DP_CMN_MOD_IEEE80211_T_EHT_80,
4244 216200, 0, 204200, 183800, 0, 216200,
4245 0x504},
4246 /* 1013 MCS-05 */ { EHT80_LDPC_ONLY_MASKS,
4247 DP_CMN_MOD_IEEE80211_T_EHT_80,
4248 288200, 0, 272200, 245000, 0, 288200,
4249 0x505},
4250 /* 1014 MCS-06 */ { EHT80_LDPC_ONLY_MASKS,
4251 DP_CMN_MOD_IEEE80211_T_EHT_80,
4252 324300, 0, 306300, 275600, 0, 324300,
4253 0x506},
4254 /* 1015 MCS-07 */ { EHT80_LDPC_ONLY_MASKS,
4255 DP_CMN_MOD_IEEE80211_T_EHT_80,
4256 360300, 0, 340300, 306300, 0, 360300,
4257 0x507},
4258 /* 1016 MCS-08 */ { EHT80_LDPC_ONLY_MASKS,
4259 DP_CMN_MOD_IEEE80211_T_EHT_80,
4260 432400, 0, 408300, 367500, 0, 432400,
4261 0x508},
4262 /* 1017 MCS-09 */ { EHT80_LDPC_ONLY_MASKS,
4263 DP_CMN_MOD_IEEE80211_T_EHT_80,
4264 480400, 0, 453700, 408300, 0, 480400,
4265 0x509},
4266 /* 1018 MCS-10 */ { EHT80_LDPC_ONLY_MASKS,
4267 DP_CMN_MOD_IEEE80211_T_EHT_80,
4268 540400, 0, 510400, 459400, 0, 540400,
4269 0x50a},
4270 /* 1019 MCS-11 */ { EHT80_LDPC_ONLY_MASKS,
4271 DP_CMN_MOD_IEEE80211_T_EHT_80,
4272 600500, 0, 567100, 510400, 0, 600500,
4273 0x50b},
4274 /* 1020 MCS-12 */ { EHT80_LDPC_ONLY_MASKS,
4275 DP_CMN_MOD_IEEE80211_T_EHT_80,
4276 648500, 0, 612500, 551300, 0, 648500,
4277 0x50c},
4278 /* 1021 MCS-13 */ { EHT80_LDPC_ONLY_MASKS,
4279 DP_CMN_MOD_IEEE80211_T_EHT_80,
4280 720600, 0, 680600, 612500, 0, 720600,
4281 0x50d},
4282
4283 /* when number of spatial streams > 1 */
4284 /* 1022 MCS-14 */ { EHT80_LDPC_ONLY_MASKS,
4285 DP_CMN_MOD_IEEE80211_T_EHT_80,
4286 18000, 0, 17000, 15400, 0, 18000,
4287 0x52e},
4288 /* 1023 MCS-15 */ { EHT80_LDPC_ONLY_MASKS,
4289 DP_CMN_MOD_IEEE80211_T_EHT_80,
4290 36000, 0, 34000, 30600, 36000, 36000,
4291 0x52f},
4292 /* 1024 MCS-00 */ { EHT80_LDPC_ONLY_MASKS,
4293 DP_CMN_MOD_IEEE80211_T_EHT_80,
4294 72000, 0, 68000, 61200, 0, 72000,
4295 0x520},
4296 /* 1025 MCS-01 */ { EHT80_LDPC_ONLY_MASKS,
4297 DP_CMN_MOD_IEEE80211_T_EHT_80,
4298 144200, 0, 136200, 122600, 0, 144200,
4299 0x521},
4300 /* 1026 MCS-02 */ { EHT80_LDPC_ONLY_MASKS,
4301 DP_CMN_MOD_IEEE80211_T_EHT_80,
4302 216200, 0, 204200, 183800, 0, 216200,
4303 0x522},
4304 /* 1027 MCS-03 */ { EHT80_LDPC_ONLY_MASKS,
4305 DP_CMN_MOD_IEEE80211_T_EHT_80,
4306 288200, 0, 272200, 245000, 0, 288200,
4307 0x523},
4308 /* 1028 MCS-04 */ { EHT80_LDPC_ONLY_MASKS,
4309 DP_CMN_MOD_IEEE80211_T_EHT_80,
4310 432400, 0, 408400, 367600, 0, 432400,
4311 0x524},
4312 /* 1029 MCS-05 */ { EHT80_LDPC_ONLY_MASKS,
4313 DP_CMN_MOD_IEEE80211_T_EHT_80,
4314 576400, 0, 544400, 490000, 0, 576400,
4315 0x525},
4316 /* 1030 MCS-06 */ { EHT80_LDPC_ONLY_MASKS,
4317 DP_CMN_MOD_IEEE80211_T_EHT_80,
4318 648600, 0, 612600, 551200, 0, 648600,
4319 0x526},
4320 /* 1031 MCS-07 */ { EHT80_LDPC_ONLY_MASKS,
4321 DP_CMN_MOD_IEEE80211_T_EHT_80,
4322 720600, 0, 680600, 612600, 0, 720600,
4323 0x527},
4324 /* 1032 MCS-08 */ { EHT80_LDPC_ONLY_MASKS,
4325 DP_CMN_MOD_IEEE80211_T_EHT_80,
4326 864800, 0, 816600, 735000, 0, 864800,
4327 0x528},
4328 /* 1033 MCS-09 */ { EHT80_LDPC_ONLY_MASKS,
4329 DP_CMN_MOD_IEEE80211_T_EHT_80,
4330 960800, 0, 907400, 816600, 0, 960800,
4331 0x529},
4332 /* 1034 MCS-10 */ { EHT80_LDPC_ONLY_MASKS,
4333 DP_CMN_MOD_IEEE80211_T_EHT_80,
4334 1080800, 0, 1020800, 918800, 0, 1080800,
4335 0x52a},
4336 /* 1035 MCS-11 */ { EHT80_LDPC_ONLY_MASKS,
4337 DP_CMN_MOD_IEEE80211_T_EHT_80,
4338 1201000, 0, 1134200, 1020800, 0, 1201000,
4339 0x52b},
4340 /* 1036 MCS-12 */ { EHT80_LDPC_ONLY_MASKS,
4341 DP_CMN_MOD_IEEE80211_T_EHT_80,
4342 1297000, 0, 1225000, 1102600, 0, 1297000,
4343 0x52c},
4344 /* 1037 MCS-13 */ { EHT80_LDPC_ONLY_MASKS,
4345 DP_CMN_MOD_IEEE80211_T_EHT_80,
4346 1441200, 0, 1361200, 1225000, 0, 1441200,
4347 0x52d},
4348
4349 /* when number of spatial streams > 2 */
4350 /* 1028 MCS-14 */ { EHT80_LDPC_ONLY_MASKS,
4351 DP_CMN_MOD_IEEE80211_T_EHT_80,
4352 27000, 0, 25500, 23100, 0, 27000,
4353 0x54e},
4354 /* 1029 MCS-15 */ { EHT80_LDPC_ONLY_MASKS,
4355 DP_CMN_MOD_IEEE80211_T_EHT_80,
4356 54000, 0, 51000, 45900, 54000, 54000,
4357 0x54f},
4358 /* 1030 MCS-00 */ { EHT80_LDPC_ONLY_MASKS,
4359 DP_CMN_MOD_IEEE80211_T_EHT_80,
4360 108000, 0, 102000, 91800, 0, 108000,
4361 0x540},
4362 /* 1031 MCS-01 */ { EHT80_LDPC_ONLY_MASKS,
4363 DP_CMN_MOD_IEEE80211_T_EHT_80,
4364 216299, 0, 204299, 183900, 0, 216299,
4365 0x541},
4366 /* 1032 MCS-02 */ { EHT80_LDPC_ONLY_MASKS,
4367 DP_CMN_MOD_IEEE80211_T_EHT_80,
4368 324300, 0, 306300, 275700, 0, 324300,
4369 0x542},
4370 /* 1033 MCS-03 */ { EHT80_LDPC_ONLY_MASKS,
4371 DP_CMN_MOD_IEEE80211_T_EHT_80,
4372 432300, 0, 408300, 367500, 0, 432300,
4373 0x543},
4374 /* 1034 MCS-04 */ { EHT80_LDPC_ONLY_MASKS,
4375 DP_CMN_MOD_IEEE80211_T_EHT_80,
4376 648600, 0, 612600, 551400, 0, 648600,
4377 0x544},
4378 /* 1035 MCS-05 */ { EHT80_LDPC_ONLY_MASKS,
4379 DP_CMN_MOD_IEEE80211_T_EHT_80,
4380 864600, 0, 816600, 735000, 0, 864600,
4381 0x545},
4382 /* 1036 MCS-06 */ { EHT80_LDPC_ONLY_MASKS,
4383 DP_CMN_MOD_IEEE80211_T_EHT_80,
4384 972900, 0, 918900, 826800, 0, 972900,
4385 0x546},
4386 /* 1037 MCS-07 */ { EHT80_LDPC_ONLY_MASKS,
4387 DP_CMN_MOD_IEEE80211_T_EHT_80,
4388 1080900, 0, 1020900, 918900, 0, 1080900,
4389 0x547},
4390 /* 1038 MCS-08 */ { EHT80_LDPC_ONLY_MASKS,
4391 DP_CMN_MOD_IEEE80211_T_EHT_80,
4392 1297200, 0, 1224900, 1102500, 0, 1297200,
4393 0x548},
4394 /* 1039 MCS-09 */ { EHT80_LDPC_ONLY_MASKS,
4395 DP_CMN_MOD_IEEE80211_T_EHT_80,
4396 1441200, 0, 1361100, 1224900, 0, 1441200,
4397 0x549},
4398 /* 1040 MCS-10 */ { EHT80_LDPC_ONLY_MASKS,
4399 DP_CMN_MOD_IEEE80211_T_EHT_80,
4400 1621200, 0, 1531200, 1378200, 0, 1621200,
4401 0x54a},
4402 /* 1041 MCS-11 */ { EHT80_LDPC_ONLY_MASKS,
4403 DP_CMN_MOD_IEEE80211_T_EHT_80,
4404 1801500, 0, 1701300, 1531200, 0, 1801500,
4405 0x54b},
4406 /* 1042 MCS-12 */ { EHT80_LDPC_ONLY_MASKS,
4407 DP_CMN_MOD_IEEE80211_T_EHT_80,
4408 1945500, 0, 1837500, 1653899, 0, 1945500,
4409 0x54c},
4410 /* 1043 MCS-13 */ { EHT80_LDPC_ONLY_MASKS,
4411 DP_CMN_MOD_IEEE80211_T_EHT_80,
4412 2161800, 0, 2041800, 1837500, 0, 2161800,
4413 0x54d},
4414
4415 /* when number of spatial streams > 3 */
4416 /* 1044 MCS-14 */ { EHT80_LDPC_ONLY_MASKS,
4417 DP_CMN_MOD_IEEE80211_T_EHT_80,
4418 36000, 0, 34000, 30800, 0, 36000,
4419 0x56e},
4420 /* 1045 MCS-15 */ { EHT80_LDPC_ONLY_MASKS,
4421 DP_CMN_MOD_IEEE80211_T_EHT_80,
4422 72000, 0, 68000, 61200, 72000, 72000,
4423 0x56f},
4424 /* 1046 MCS-00 */ { EHT80_LDPC_ONLY_MASKS,
4425 DP_CMN_MOD_IEEE80211_T_EHT_80,
4426 144000, 0, 136000, 122400, 0, 144000,
4427 0x560},
4428 /* 1047 MCS-01 */ { EHT80_LDPC_ONLY_MASKS,
4429 DP_CMN_MOD_IEEE80211_T_EHT_80,
4430 288400, 0, 272400, 245200, 0, 288400,
4431 0x561},
4432 /* 1048 MCS-02 */ { EHT80_LDPC_ONLY_MASKS,
4433 DP_CMN_MOD_IEEE80211_T_EHT_80,
4434 432400, 0, 408400, 367600, 0, 432400,
4435 0x562},
4436 /* 1049 MCS-03 */ { EHT80_LDPC_ONLY_MASKS,
4437 DP_CMN_MOD_IEEE80211_T_EHT_80,
4438 576400, 0, 544400, 490000, 0, 576400,
4439 0x563},
4440 /* 1050 MCS-04 */ { EHT80_LDPC_ONLY_MASKS,
4441 DP_CMN_MOD_IEEE80211_T_EHT_80,
4442 864800, 0, 816800, 735200, 0, 864800,
4443 0x564},
4444 /* 1051 MCS-05 */ { EHT80_LDPC_ONLY_MASKS,
4445 DP_CMN_MOD_IEEE80211_T_EHT_80,
4446 1152800, 0, 1088800, 980000, 0, 1152800,
4447 0x565},
4448 /* 1052 MCS-06 */ { EHT80_LDPC_ONLY_MASKS,
4449 DP_CMN_MOD_IEEE80211_T_EHT_80,
4450 1297200, 0, 1225200, 1102400, 0, 1297200,
4451 0x566},
4452 /* 1053 MCS-07 */ { EHT80_LDPC_ONLY_MASKS,
4453 DP_CMN_MOD_IEEE80211_T_EHT_80,
4454 1441200, 0, 1361200, 1225200, 0, 1441200,
4455 0x567},
4456 /* 1054 MCS-08 */ { EHT80_LDPC_ONLY_MASKS,
4457 DP_CMN_MOD_IEEE80211_T_EHT_80,
4458 1729600, 0, 1633200, 1470000, 0, 1729600,
4459 0x568},
4460 /* 1055 MCS-09 */ { EHT80_LDPC_ONLY_MASKS,
4461 DP_CMN_MOD_IEEE80211_T_EHT_80,
4462 1921600, 0, 1814800, 1633200, 0, 1921600,
4463 0x569},
4464 /* 1056 MCS-10 */ { EHT80_LDPC_ONLY_MASKS,
4465 DP_CMN_MOD_IEEE80211_T_EHT_80,
4466 2161600, 0, 2041600, 1837600, 0, 2161600,
4467 0x56a},
4468 /* 1057 MCS-11 */ { EHT80_LDPC_ONLY_MASKS,
4469 DP_CMN_MOD_IEEE80211_T_EHT_80,
4470 2402000, 0, 2268400, 2041600, 0, 2402000,
4471 0x56b},
4472 /* 1058 MCS-12 */ { EHT80_LDPC_ONLY_MASKS,
4473 DP_CMN_MOD_IEEE80211_T_EHT_80,
4474 2594000, 0, 2450000, 2205200, 0, 2594000,
4475 0x56c},
4476 /* 1059 MCS-13 */ { EHT80_LDPC_ONLY_MASKS,
4477 DP_CMN_MOD_IEEE80211_T_EHT_80,
4478 2882400, 0, 2722400, 2450000, 0, 2882400,
4479 0x56d},
4480
4481 /* 1060 MCS-14 */ { EHT160_LDPC_ONLY_MASKS,
4482 DP_CMN_MOD_IEEE80211_T_EHT_120,
4483 13300, 0, 12600, 11300, 0, 13300,
4484 0x50e},
4485 /* 1061 MCS-15 */ { EHT160_LDPC_ONLY_MASKS,
4486 DP_CMN_MOD_IEEE80211_T_EHT_120,
4487 26600, 0, 25100, 22600, 26600, 26600,
4488 0x50f},
4489 /* 1062 MCS-00 */ { EHT160_LDPC_ONLY_MASKS,
4490 DP_CMN_MOD_IEEE80211_T_EHT_120,
4491 53200, 0, 50300, 45300, 0, 53200,
4492 0x500},
4493 /* 1063 MCS-01 */ { EHT160_LDPC_ONLY_MASKS,
4494 DP_CMN_MOD_IEEE80211_T_EHT_120,
4495 106500, 0, 100600, 90500, 0, 106500,
4496 0x501},
4497 /* 1064 MCS-02 */ { EHT160_LDPC_ONLY_MASKS,
4498 DP_CMN_MOD_IEEE80211_T_EHT_120,
4499 159700, 0, 150800, 135800, 0, 159700,
4500 0x502},
4501 /* 1065 MCS-03 */ { EHT160_LDPC_ONLY_MASKS,
4502 DP_CMN_MOD_IEEE80211_T_EHT_120,
4503 212900, 0, 201100, 181000, 0, 212900,
4504 0x503},
4505 /* 1066 MCS-04 */ { EHT160_LDPC_ONLY_MASKS,
4506 DP_CMN_MOD_IEEE80211_T_EHT_120,
4507 319400, 0, 301700, 271500, 0, 319400,
4508 0x504},
4509 /* 1067 MCS-05 */ { EHT160_LDPC_ONLY_MASKS,
4510 DP_CMN_MOD_IEEE80211_T_EHT_120,
4511 425900, 0, 402200, 362000, 0, 425900,
4512 0x505},
4513 /* 1068 MCS-06 */ { EHT160_LDPC_ONLY_MASKS,
4514 DP_CMN_MOD_IEEE80211_T_EHT_120,
4515 479100, 0, 452500, 407300, 0, 479100,
4516 0x506},
4517 /* 1069 MCS-07 */ { EHT160_LDPC_ONLY_MASKS,
4518 DP_CMN_MOD_IEEE80211_T_EHT_120,
4519 532400, 0, 502800, 452500, 0, 532400,
4520 0x507},
4521 /* 1070 MCS-08 */ { EHT160_LDPC_ONLY_MASKS,
4522 DP_CMN_MOD_IEEE80211_T_EHT_120,
4523 638800, 0, 603300, 543000, 0, 638800,
4524 0x508},
4525 /* 1071 MCS-09 */ { EHT160_LDPC_ONLY_MASKS,
4526 DP_CMN_MOD_IEEE80211_T_EHT_120,
4527 709800, 0, 670400, 603300, 0, 709800,
4528 0x509},
4529 /* 1072 MCS-10 */ { EHT160_LDPC_ONLY_MASKS,
4530 DP_CMN_MOD_IEEE80211_T_EHT_120,
4531 798500, 0, 754200, 678800, 0, 798500,
4532 0x50a},
4533 /* 1073 MCS-11 */ { EHT160_LDPC_ONLY_MASKS,
4534 DP_CMN_MOD_IEEE80211_T_EHT_120,
4535 887300, 0, 838000, 754200, 0, 887300,
4536 0x50b},
4537 /* 1074 MCS-12 */ { EHT160_LDPC_ONLY_MASKS,
4538 DP_CMN_MOD_IEEE80211_T_EHT_120,
4539 958200, 0, 905000, 814500, 0, 958200,
4540 0x50c},
4541 /* 1075 MCS-13 */ { EHT160_LDPC_ONLY_MASKS,
4542 DP_CMN_MOD_IEEE80211_T_EHT_120,
4543 1064700, 0, 1005600, 905000, 0, 1064700,
4544 0x50d},
4545
4546 /* when number of spatial streams > 1 */
4547 /* 1076 MCS-14 */ { EHT160_LDPC_ONLY_MASKS,
4548 DP_CMN_MOD_IEEE80211_T_EHT_120,
4549 26600, 0, 25200, 22600, 0, 26600,
4550 0x52e},
4551 /* 1077 MCS-15 */ { EHT160_LDPC_ONLY_MASKS,
4552 DP_CMN_MOD_IEEE80211_T_EHT_120,
4553 53200, 0, 50200, 45200, 53200, 53200,
4554 0x52f},
4555 /* 1078 MCS-00 */ { EHT160_LDPC_ONLY_MASKS,
4556 DP_CMN_MOD_IEEE80211_T_EHT_120,
4557 106400, 0, 100600, 90600, 0, 106400,
4558 0x520},
4559 /* 1079 MCS-01 */ { EHT160_LDPC_ONLY_MASKS,
4560 DP_CMN_MOD_IEEE80211_T_EHT_120,
4561 213000, 0, 201200, 181000, 0, 213000,
4562 0x521},
4563 /* 1080 MCS-02 */ { EHT160_LDPC_ONLY_MASKS,
4564 DP_CMN_MOD_IEEE80211_T_EHT_120,
4565 319400, 0, 301600, 271600, 0, 319400,
4566 0x522},
4567 /* 1081 MCS-03 */ { EHT160_LDPC_ONLY_MASKS,
4568 DP_CMN_MOD_IEEE80211_T_EHT_120,
4569 425800, 0, 402200, 362000, 0, 425800,
4570 0x523},
4571 /* 1082 MCS-04 */ { EHT160_LDPC_ONLY_MASKS,
4572 DP_CMN_MOD_IEEE80211_T_EHT_120,
4573 638800, 0, 603400, 543000, 0, 638800,
4574 0x524},
4575 /* 1083 MCS-05 */ { EHT160_LDPC_ONLY_MASKS,
4576 DP_CMN_MOD_IEEE80211_T_EHT_120,
4577 851800, 0, 804400, 724000, 0, 851800,
4578 0x525},
4579 /* 1084 MCS-06 */ { EHT160_LDPC_ONLY_MASKS,
4580 DP_CMN_MOD_IEEE80211_T_EHT_120,
4581 958200, 0, 905000, 814600, 0, 958200,
4582 0x526},
4583 /* 1085 MCS-07 */ { EHT160_LDPC_ONLY_MASKS,
4584 DP_CMN_MOD_IEEE80211_T_EHT_120,
4585 1064800, 0, 1005600, 905000, 0, 1064800,
4586 0x527},
4587 /* 1086 MCS-08 */ { EHT160_LDPC_ONLY_MASKS,
4588 DP_CMN_MOD_IEEE80211_T_EHT_120,
4589 1277600, 0, 1206600, 1086000, 0, 1277600,
4590 0x528},
4591 /* 1087 MCS-09 */ { EHT160_LDPC_ONLY_MASKS,
4592 DP_CMN_MOD_IEEE80211_T_EHT_120,
4593 1419600, 0, 1340800, 1206600, 0, 1419600,
4594 0x529},
4595 /* 1088 MCS-10 */ { EHT160_LDPC_ONLY_MASKS,
4596 DP_CMN_MOD_IEEE80211_T_EHT_120,
4597 1597000, 0, 1508400, 1357600, 0, 1597000,
4598 0x52a},
4599 /* 1089 MCS-11 */ { EHT160_LDPC_ONLY_MASKS,
4600 DP_CMN_MOD_IEEE80211_T_EHT_120,
4601 1774600, 0, 1676000, 1508400, 0, 1774600,
4602 0x52b},
4603 /* 1090 MCS-12 */ { EHT160_LDPC_ONLY_MASKS,
4604 DP_CMN_MOD_IEEE80211_T_EHT_120,
4605 1916400, 0, 1810000, 1629000, 0, 1916400,
4606 0x52c},
4607 /* 1091 MCS-13 */ { EHT160_LDPC_ONLY_MASKS,
4608 DP_CMN_MOD_IEEE80211_T_EHT_120,
4609 2129400, 0, 2011200, 1810000, 0, 2129400,
4610 0x52d},
4611
4612 /* when number of spatial streams > 2 */
4613 /* 1092 MCS-14 */ { EHT160_LDPC_ONLY_MASKS,
4614 DP_CMN_MOD_IEEE80211_T_EHT_120,
4615 39900, 0, 37800, 33900, 0, 39900,
4616 0x54e},
4617 /* 1093 MCS-15 */ { EHT160_LDPC_ONLY_MASKS,
4618 DP_CMN_MOD_IEEE80211_T_EHT_120,
4619 79800, 0, 75300, 67800, 79800, 79800,
4620 0x54f},
4621 /* 1094 MCS-00 */ { EHT160_LDPC_ONLY_MASKS,
4622 DP_CMN_MOD_IEEE80211_T_EHT_120,
4623 159600, 0, 150900, 135900, 0, 159600,
4624 0x540},
4625 /* 1095 MCS-01 */ { EHT160_LDPC_ONLY_MASKS,
4626 DP_CMN_MOD_IEEE80211_T_EHT_120,
4627 319500, 0, 301800, 271500, 0, 319500,
4628 0x541},
4629 /* 1096 MCS-02 */ { EHT160_LDPC_ONLY_MASKS,
4630 DP_CMN_MOD_IEEE80211_T_EHT_120,
4631 479099, 0, 452400, 407400, 0, 479099,
4632 0x542},
4633 /* 1097 MCS-03 */ { EHT160_LDPC_ONLY_MASKS,
4634 DP_CMN_MOD_IEEE80211_T_EHT_120,
4635 638700, 0, 603300, 543000, 0, 638700,
4636 0x543},
4637 /* 1098 MCS-04 */ { EHT160_LDPC_ONLY_MASKS,
4638 DP_CMN_MOD_IEEE80211_T_EHT_120,
4639 958199, 0, 905100, 814500, 0, 958199,
4640 0x544},
4641 /* 1099 MCS-05 */ { EHT160_LDPC_ONLY_MASKS,
4642 DP_CMN_MOD_IEEE80211_T_EHT_120,
4643 1277700, 0, 1206600, 1086000, 0, 1277700,
4644 0x545},
4645 /* 1100 MCS-06 */ { EHT160_LDPC_ONLY_MASKS,
4646 DP_CMN_MOD_IEEE80211_T_EHT_120,
4647 1437300, 0, 1357500, 1221900, 0, 1437300,
4648 0x546},
4649 /* 1101 MCS-07 */ { EHT160_LDPC_ONLY_MASKS,
4650 DP_CMN_MOD_IEEE80211_T_EHT_120,
4651 1597200, 0, 1508400, 1357500, 0, 1597200,
4652 0x547},
4653 /* 1102 MCS-08 */ { EHT160_LDPC_ONLY_MASKS,
4654 DP_CMN_MOD_IEEE80211_T_EHT_120,
4655 1916399, 0, 1809899, 1629000, 0, 1916399,
4656 0x548},
4657 /* 1103 MCS-09 */ { EHT160_LDPC_ONLY_MASKS,
4658 DP_CMN_MOD_IEEE80211_T_EHT_120,
4659 2129400, 0, 2011200, 1809899, 0, 2129400,
4660 0x549},
4661 /* 1104 MCS-10 */ { EHT160_LDPC_ONLY_MASKS,
4662 DP_CMN_MOD_IEEE80211_T_EHT_120,
4663 2395500, 0, 2262600, 2036399, 0, 2395500,
4664 0x54a},
4665 /* 1105 MCS-11 */ { EHT160_LDPC_ONLY_MASKS,
4666 DP_CMN_MOD_IEEE80211_T_EHT_120,
4667 2661900, 0, 2514000, 2262600, 0, 2661900,
4668 0x54b},
4669 /* 1106 MCS-12 */ { EHT160_LDPC_ONLY_MASKS,
4670 DP_CMN_MOD_IEEE80211_T_EHT_120,
4671 2874600, 0, 2715000, 2443500, 0, 2874600,
4672 0x54c},
4673 /* 1107 MCS-13 */ { EHT160_LDPC_ONLY_MASKS,
4674 DP_CMN_MOD_IEEE80211_T_EHT_120,
4675 3194100, 0, 3016800, 2715000, 0, 3194100,
4676 0x54d},
4677 /* when number of spatial streams > 3 */
4678 /* 1108 MCS-14 */ { EHT160_LDPC_ONLY_MASKS,
4679 DP_CMN_MOD_IEEE80211_T_EHT_120,
4680 53200, 0, 50400, 45200, 0, 53200,
4681 0x56e},
4682 /* 1109 MCS-15 */ { EHT160_LDPC_ONLY_MASKS,
4683 DP_CMN_MOD_IEEE80211_T_EHT_120,
4684 106400, 0, 100400, 90400, 106400, 106400,
4685 0x56f},
4686 /* 1110 MCS-00 */ { EHT160_LDPC_ONLY_MASKS,
4687 DP_CMN_MOD_IEEE80211_T_EHT_120,
4688 212800, 0, 201200, 181200, 0, 212800,
4689 0x560},
4690 /* 1111 MCS-01 */ { EHT160_LDPC_ONLY_MASKS,
4691 DP_CMN_MOD_IEEE80211_T_EHT_120,
4692 426000, 0, 402400, 362000, 0, 426000,
4693 0x561},
4694 /* 1112 MCS-02 */ { EHT160_LDPC_ONLY_MASKS,
4695 DP_CMN_MOD_IEEE80211_T_EHT_120,
4696 638800, 0, 603200, 543200, 0, 638800,
4697 0x562},
4698 /* 1113 MCS-03 */ { EHT160_LDPC_ONLY_MASKS,
4699 DP_CMN_MOD_IEEE80211_T_EHT_120,
4700 851600, 0, 804400, 724000, 0, 851600,
4701 0x563},
4702 /* 1114 MCS-04 */ { EHT160_LDPC_ONLY_MASKS,
4703 DP_CMN_MOD_IEEE80211_T_EHT_120,
4704 1277600, 0, 1206800, 1086000, 0, 1277600,
4705 0x564},
4706 /* 1115 MCS-05 */ { EHT160_LDPC_ONLY_MASKS,
4707 DP_CMN_MOD_IEEE80211_T_EHT_120,
4708 1703600, 0, 1608800, 1448000, 0, 1703600,
4709 0x565},
4710 /* 1116 MCS-06 */ { EHT160_LDPC_ONLY_MASKS,
4711 DP_CMN_MOD_IEEE80211_T_EHT_120,
4712 1916400, 0, 1810000, 1629200, 0, 1916400,
4713 0x566},
4714 /* 1117 MCS-07 */ { EHT160_LDPC_ONLY_MASKS,
4715 DP_CMN_MOD_IEEE80211_T_EHT_120,
4716 2129600, 0, 2011200, 1810000, 0, 2129600,
4717 0x567},
4718 /* 1118 MCS-08 */ { EHT160_LDPC_ONLY_MASKS,
4719 DP_CMN_MOD_IEEE80211_T_EHT_120,
4720 2555200, 0, 2413200, 2172000, 0, 2555200,
4721 0x568},
4722 /* 1119 MCS-09 */ { EHT160_LDPC_ONLY_MASKS,
4723 DP_CMN_MOD_IEEE80211_T_EHT_120,
4724 2839200, 0, 2681600, 2413200, 0, 2839200,
4725 0x569},
4726 /* 1120 MCS-10 */ { EHT160_LDPC_ONLY_MASKS,
4727 DP_CMN_MOD_IEEE80211_T_EHT_120,
4728 3194000, 0, 3016800, 2715200, 0, 3194000,
4729 0x56a},
4730 /* 1121 MCS-11 */ { EHT160_LDPC_ONLY_MASKS,
4731 DP_CMN_MOD_IEEE80211_T_EHT_120,
4732 3549200, 0, 3352000, 3016800, 0, 3549200,
4733 0x56b},
4734 /* 1122 MCS-12 */ { EHT160_LDPC_ONLY_MASKS,
4735 DP_CMN_MOD_IEEE80211_T_EHT_120,
4736 3832800, 0, 3620000, 3258000, 0, 3832800,
4737 0x56c},
4738 /* 1123 MCS-13 */ { EHT160_LDPC_ONLY_MASKS,
4739 DP_CMN_MOD_IEEE80211_T_EHT_120,
4740 4258800, 0, 4022400, 3620000, 0, 4258800,
4741 0x56d},
4742
4743 /* 1124 MCS-14 */ { EHT160_LDPC_ONLY_MASKS,
4744 DP_CMN_MOD_IEEE80211_T_EHT_140,
4745 15400, 0, 14600, 13100, 0, 15400,
4746 0x50e},
4747 /* 1125 MCS-15 */ { EHT160_LDPC_ONLY_MASKS,
4748 DP_CMN_MOD_IEEE80211_T_EHT_140,
4749 30900, 0, 29200, 26300, 30900, 30900,
4750 0x50f},
4751 /* 1126 MCS-00 */ { EHT160_LDPC_ONLY_MASKS,
4752 DP_CMN_MOD_IEEE80211_T_EHT_140,
4753 61800, 0, 58400, 52600, 0, 61800,
4754 0x500},
4755 /* 1127 MCS-01 */ { EHT160_LDPC_ONLY_MASKS,
4756 DP_CMN_MOD_IEEE80211_T_EHT_140,
4757 123700, 0, 116800, 105100, 0, 123700,
4758 0x501},
4759 /* 1128 MCS-02 */ { EHT160_LDPC_ONLY_MASKS,
4760 DP_CMN_MOD_IEEE80211_T_EHT_140,
4761 185500, 0, 175200, 157700, 0, 185500,
4762 0x502},
4763 /* 1129 MCS-03 */ { EHT160_LDPC_ONLY_MASKS,
4764 DP_CMN_MOD_IEEE80211_T_EHT_140,
4765 247400, 0, 233600, 210300, 0, 247400,
4766 0x503},
4767 /* 1130 MCS-04 */ { EHT160_LDPC_ONLY_MASKS,
4768 DP_CMN_MOD_IEEE80211_T_EHT_140,
4769 371000, 0, 350400, 315400, 0, 371000,
4770 0x504},
4771 /* 1131 MCS-05 */ { EHT160_LDPC_ONLY_MASKS,
4772 DP_CMN_MOD_IEEE80211_T_EHT_140,
4773 494700, 0, 467200, 420500, 0, 494700,
4774 0x505},
4775 /* 1132 MCS-06 */ { EHT160_LDPC_ONLY_MASKS,
4776 DP_CMN_MOD_IEEE80211_T_EHT_140,
4777 556500, 0, 525600, 473100, 0, 556500,
4778 0x506},
4779 /* 1133 MCS-07 */ { EHT160_LDPC_ONLY_MASKS,
4780 DP_CMN_MOD_IEEE80211_T_EHT_140,
4781 618400, 0, 584000, 525600, 0, 618400,
4782 0x507},
4783 /* 1134 MCS-08 */ { EHT160_LDPC_ONLY_MASKS,
4784 DP_CMN_MOD_IEEE80211_T_EHT_140,
4785 742100, 0, 700800, 630800, 0, 742100,
4786 0x508},
4787 /* 1135 MCS-09 */ { EHT160_LDPC_ONLY_MASKS,
4788 DP_CMN_MOD_IEEE80211_T_EHT_140,
4789 824500, 0, 778700, 700800, 0, 824500,
4790 0x509},
4791 /* 1136 MCS-10 */ { EHT160_LDPC_ONLY_MASKS,
4792 DP_CMN_MOD_IEEE80211_T_EHT_140,
4793 927600, 0, 876000, 788400, 0, 927600,
4794 0x50a},
4795 /* 1137 MCS-11 */ { EHT160_LDPC_ONLY_MASKS,
4796 DP_CMN_MOD_IEEE80211_T_EHT_140,
4797 1030599, 0, 973400, 876000, 0, 1030599,
4798 0x50b},
4799 /* 1138 MCS-12 */ { EHT160_LDPC_ONLY_MASKS,
4800 DP_CMN_MOD_IEEE80211_T_EHT_140,
4801 1113100, 0, 1051300, 946100, 0, 1113100,
4802 0x50c},
4803 /* 1139 MCS-13 */ { EHT160_LDPC_ONLY_MASKS,
4804 DP_CMN_MOD_IEEE80211_T_EHT_140,
4805 1236800, 0, 1168100, 1051300, 0, 1236800,
4806 0x50d},
4807
4808 /* when number of spatial streams > 1 */
4809 /* 1140 MCS-14 */ { EHT160_LDPC_ONLY_MASKS,
4810 DP_CMN_MOD_IEEE80211_T_EHT_140,
4811 30800, 0, 29200, 26200, 0, 30800,
4812 0x52e},
4813 /* 1141 MCS-15 */ { EHT160_LDPC_ONLY_MASKS,
4814 DP_CMN_MOD_IEEE80211_T_EHT_140,
4815 61800, 0, 58400, 52600, 61800, 61800,
4816 0x52f},
4817 /* 1142 MCS-00 */ { EHT160_LDPC_ONLY_MASKS,
4818 DP_CMN_MOD_IEEE80211_T_EHT_140,
4819 123600, 0, 116800, 105200, 0, 123600,
4820 0x520},
4821 /* 1143 MCS-01 */ { EHT160_LDPC_ONLY_MASKS,
4822 DP_CMN_MOD_IEEE80211_T_EHT_140,
4823 247400, 0, 233600, 210200, 0, 247400,
4824 0x521},
4825 /* 1144 MCS-02 */ { EHT160_LDPC_ONLY_MASKS,
4826 DP_CMN_MOD_IEEE80211_T_EHT_140,
4827 371000, 0, 350400, 315400, 0, 371000,
4828 0x522},
4829 /* 1145 MCS-03 */ { EHT160_LDPC_ONLY_MASKS,
4830 DP_CMN_MOD_IEEE80211_T_EHT_140,
4831 494800, 0, 467200, 420600, 0, 494800,
4832 0x523},
4833 /* 1146 MCS-04 */ { EHT160_LDPC_ONLY_MASKS,
4834 DP_CMN_MOD_IEEE80211_T_EHT_140,
4835 742000, 0, 700800, 630800, 0, 742000,
4836 0x524},
4837 /* 1147 MCS-05 */ { EHT160_LDPC_ONLY_MASKS,
4838 DP_CMN_MOD_IEEE80211_T_EHT_140,
4839 989400, 0, 934400, 841000, 0, 989400,
4840 0x525},
4841 /* 1148 MCS-06 */ { EHT160_LDPC_ONLY_MASKS,
4842 DP_CMN_MOD_IEEE80211_T_EHT_140,
4843 1113000, 0, 1051200, 946200, 0, 1113000,
4844 0x526},
4845 /* 1149 MCS-07 */ { EHT160_LDPC_ONLY_MASKS,
4846 DP_CMN_MOD_IEEE80211_T_EHT_140,
4847 1236800, 0, 1168000, 1051200, 0, 1236800,
4848 0x527},
4849 /* 1150 MCS-08 */ { EHT160_LDPC_ONLY_MASKS,
4850 DP_CMN_MOD_IEEE80211_T_EHT_140,
4851 1484200, 0, 1401600, 1261600, 0, 1484200,
4852 0x528},
4853 /* 1151 MCS-09 */ { EHT160_LDPC_ONLY_MASKS,
4854 DP_CMN_MOD_IEEE80211_T_EHT_140,
4855 1649000, 0, 1557400, 1401600, 0, 1649000,
4856 0x529},
4857 /* 1152 MCS-10 */ { EHT160_LDPC_ONLY_MASKS,
4858 DP_CMN_MOD_IEEE80211_T_EHT_140,
4859 1855200, 0, 1752000, 1576800, 0, 1855200,
4860 0x52a},
4861 /* 1153 MCS-11 */ { EHT160_LDPC_ONLY_MASKS,
4862 DP_CMN_MOD_IEEE80211_T_EHT_140,
4863 2061199, 0, 1946800, 1752000, 0, 2061199,
4864 0x52b},
4865 /* 1154 MCS-12 */ { EHT160_LDPC_ONLY_MASKS,
4866 DP_CMN_MOD_IEEE80211_T_EHT_140,
4867 2226200, 0, 2102600, 1892200, 0, 2226200,
4868 0x52c},
4869 /* 1155 MCS-13 */ { EHT160_LDPC_ONLY_MASKS,
4870 DP_CMN_MOD_IEEE80211_T_EHT_140,
4871 2473600, 0, 2336200, 2102600, 0, 2473600,
4872 0x52d},
4873
4874 /* when number of spatial streams > 2 */
4875 /* 1156 MCS-14 */ { EHT160_LDPC_ONLY_MASKS,
4876 DP_CMN_MOD_IEEE80211_T_EHT_140,
4877 46200, 0, 43800, 39300, 0, 46200,
4878 0x54e},
4879 /* 1157 MCS-15 */ { EHT160_LDPC_ONLY_MASKS,
4880 DP_CMN_MOD_IEEE80211_T_EHT_140,
4881 92700, 0, 87600, 78900, 92700, 92700,
4882 0x54f},
4883 /* 1158 MCS-00 */ { EHT160_LDPC_ONLY_MASKS,
4884 DP_CMN_MOD_IEEE80211_T_EHT_140,
4885 185400, 0, 175200, 157800, 0, 185400,
4886 0x540},
4887 /* 1159 MCS-01 */ { EHT160_LDPC_ONLY_MASKS,
4888 DP_CMN_MOD_IEEE80211_T_EHT_140,
4889 371100, 0, 350400, 315300, 0, 371100,
4890 0x541},
4891 /* 1160 MCS-02 */ { EHT160_LDPC_ONLY_MASKS,
4892 DP_CMN_MOD_IEEE80211_T_EHT_140,
4893 556500, 0, 525600, 473099, 0, 556500,
4894 0x542},
4895 /* 1161 MCS-03 */ { EHT160_LDPC_ONLY_MASKS,
4896 DP_CMN_MOD_IEEE80211_T_EHT_140,
4897 742200, 0, 700800, 630900, 0, 742200,
4898 0x543},
4899 /* 1162 MCS-04 */ { EHT160_LDPC_ONLY_MASKS,
4900 DP_CMN_MOD_IEEE80211_T_EHT_140,
4901 1113000, 0, 1051200, 946199, 0, 1113000,
4902 0x544},
4903 /* 1163 MCS-05 */ { EHT160_LDPC_ONLY_MASKS,
4904 DP_CMN_MOD_IEEE80211_T_EHT_140,
4905 1484100, 0, 1401600, 1261500, 0, 1484100,
4906 0x545},
4907 /* 1164 MCS-06 */ { EHT160_LDPC_ONLY_MASKS,
4908 DP_CMN_MOD_IEEE80211_T_EHT_140,
4909 1669500, 0, 1576800, 1419300, 0, 1669500,
4910 0x546},
4911 /* 1165 MCS-07 */ { EHT160_LDPC_ONLY_MASKS,
4912 DP_CMN_MOD_IEEE80211_T_EHT_140,
4913 1855200, 0, 1752000, 1576800, 0, 1855200,
4914 0x547},
4915 /* 1166 MCS-08 */ { EHT160_LDPC_ONLY_MASKS,
4916 DP_CMN_MOD_IEEE80211_T_EHT_140,
4917 2226300, 0, 2102400, 1892399, 0, 2226300,
4918 0x548},
4919 /* 1167 MCS-09 */ { EHT160_LDPC_ONLY_MASKS,
4920 DP_CMN_MOD_IEEE80211_T_EHT_140,
4921 2473500, 0, 2336100, 2102400, 0, 2473500,
4922 0x549},
4923 /* 1168 MCS-10 */ { EHT160_LDPC_ONLY_MASKS,
4924 DP_CMN_MOD_IEEE80211_T_EHT_140,
4925 2782800, 0, 2628000, 2365200, 0, 2782800,
4926 0x54a},
4927 /* 1169 MCS-11 */ { EHT160_LDPC_ONLY_MASKS,
4928 DP_CMN_MOD_IEEE80211_T_EHT_140,
4929 3091799, 0, 2920200, 2628000, 0, 3091799,
4930 0x54b},
4931 /* 1170 MCS-12 */ { EHT160_LDPC_ONLY_MASKS,
4932 DP_CMN_MOD_IEEE80211_T_EHT_140,
4933 3339299, 0, 3153900, 2838300, 0, 3339299,
4934 0x54c},
4935 /* 1171 MCS-13 */ { EHT160_LDPC_ONLY_MASKS,
4936 DP_CMN_MOD_IEEE80211_T_EHT_140,
4937 3710400, 0, 3504299, 3153900, 0, 3710400,
4938 0x54d},
4939
4940 /* when number of spatial streams > 3 */
4941 /* 1172 MCS-14 */ { EHT160_LDPC_ONLY_MASKS,
4942 DP_CMN_MOD_IEEE80211_T_EHT_140,
4943 61600, 0, 58400, 52400, 0, 61600,
4944 0x56e},
4945 /* 1173 MCS-15 */ { EHT160_LDPC_ONLY_MASKS,
4946 DP_CMN_MOD_IEEE80211_T_EHT_140,
4947 123600, 0, 116800, 105200, 123600, 123600,
4948 0x56f},
4949 /* 1174 MCS-00 */ { EHT160_LDPC_ONLY_MASKS,
4950 DP_CMN_MOD_IEEE80211_T_EHT_140,
4951 247200, 0, 233600, 210400, 0, 247200,
4952 0x560},
4953 /* 1175 MCS-01 */ { EHT160_LDPC_ONLY_MASKS,
4954 DP_CMN_MOD_IEEE80211_T_EHT_140,
4955 494800, 0, 467200, 420400, 0, 494800,
4956 0x561},
4957 /* 1176 MCS-02 */ { EHT160_LDPC_ONLY_MASKS,
4958 DP_CMN_MOD_IEEE80211_T_EHT_140,
4959 742000, 0, 700800, 630800, 0, 742000,
4960 0x562},
4961 /* 1177 MCS-03 */ { EHT160_LDPC_ONLY_MASKS,
4962 DP_CMN_MOD_IEEE80211_T_EHT_140,
4963 989600, 0, 934400, 841200, 0, 989600,
4964 0x563},
4965 /* 1178 MCS-04 */ { EHT160_LDPC_ONLY_MASKS,
4966 DP_CMN_MOD_IEEE80211_T_EHT_140,
4967 1484000, 0, 1401600, 1261600, 0, 1484000,
4968 0x564},
4969 /* 1179 MCS-05 */ { EHT160_LDPC_ONLY_MASKS,
4970 DP_CMN_MOD_IEEE80211_T_EHT_140,
4971 1978800, 0, 1868800, 1682000, 0, 1978800,
4972 0x565},
4973 /* 1180 MCS-06 */ { EHT160_LDPC_ONLY_MASKS,
4974 DP_CMN_MOD_IEEE80211_T_EHT_140,
4975 2226000, 0, 2102400, 1892400, 0, 2226000,
4976 0x566},
4977 /* 1181 MCS-07 */ { EHT160_LDPC_ONLY_MASKS,
4978 DP_CMN_MOD_IEEE80211_T_EHT_140,
4979 2473600, 0, 2336000, 2102400, 0, 2473600,
4980 0x567},
4981 /* 1182 MCS-08 */ { EHT160_LDPC_ONLY_MASKS,
4982 DP_CMN_MOD_IEEE80211_T_EHT_140,
4983 2968400, 0, 2803200, 2523200, 0, 2968400,
4984 0x568},
4985 /* 1183 MCS-09 */ { EHT160_LDPC_ONLY_MASKS,
4986 DP_CMN_MOD_IEEE80211_T_EHT_140,
4987 3298000, 0, 3114800, 2803200, 0, 3298000,
4988 0x569},
4989 /* 1184 MCS-10 */ { EHT160_LDPC_ONLY_MASKS,
4990 DP_CMN_MOD_IEEE80211_T_EHT_140,
4991 3710400, 0, 3504000, 3153600, 0, 3710400,
4992 0x56a},
4993 /* 1185 MCS-11 */ { EHT160_LDPC_ONLY_MASKS,
4994 DP_CMN_MOD_IEEE80211_T_EHT_140,
4995 4122399, 0, 3893600, 3504000, 0, 4122399,
4996 0x56b},
4997 /* 1186 MCS-12 */ { EHT160_LDPC_ONLY_MASKS,
4998 DP_CMN_MOD_IEEE80211_T_EHT_140,
4999 4452400, 0, 4205200, 3784400, 0, 4452400,
5000 0x56c},
5001 /* 1187 MCS-13 */ { EHT160_LDPC_ONLY_MASKS,
5002 DP_CMN_MOD_IEEE80211_T_EHT_140,
5003 4947200, 0, 4672400, 4205200, 0, 4947200,
5004 0x56d},
5005
5006 /* 1188 MCS-14 */ { EHT160_LDPC_ONLY_MASKS,
5007 DP_CMN_MOD_IEEE80211_T_EHT_160,
5008 18000, 0, 17000, 15300, 0, 18000,
5009 0x50e},
5010 /* 1189 MCS-15 */ { EHT160_LDPC_ONLY_MASKS,
5011 DP_CMN_MOD_IEEE80211_T_EHT_160,
5012 36000, 0, 34000, 30600, 36000, 36000,
5013 0x50f},
5014 /* 1190 MCS-00 */ { EHT160_LDPC_ONLY_MASKS,
5015 DP_CMN_MOD_IEEE80211_T_EHT_160,
5016 72100, 0, 68100, 61300, 0, 72100,
5017 0x500},
5018 /* 1191 MCS-01 */ { EHT160_LDPC_ONLY_MASKS,
5019 DP_CMN_MOD_IEEE80211_T_EHT_160,
5020 144100, 0, 136100, 122500, 0, 144100,
5021 0x501},
5022 /* 1192 MCS-02 */ { EHT160_LDPC_ONLY_MASKS,
5023 DP_CMN_MOD_IEEE80211_T_EHT_160,
5024 216200, 0, 204200, 183800, 0, 216200,
5025 0x502},
5026 /* 1193 MCS-03 */ { EHT160_LDPC_ONLY_MASKS,
5027 DP_CMN_MOD_IEEE80211_T_EHT_160,
5028 288200, 0, 272200, 245000, 0, 288200,
5029 0x503},
5030 /* 1194 MCS-04 */ { EHT160_LDPC_ONLY_MASKS,
5031 DP_CMN_MOD_IEEE80211_T_EHT_160,
5032 432400, 0, 408300, 367500, 0, 432400,
5033 0x504},
5034 /* 1195 MCS-05 */ { EHT160_LDPC_ONLY_MASKS,
5035 DP_CMN_MOD_IEEE80211_T_EHT_160,
5036 576500, 0, 544400, 490000, 0, 576500,
5037 0x505},
5038 /* 1196 MCS-06 */ { EHT160_LDPC_ONLY_MASKS,
5039 DP_CMN_MOD_IEEE80211_T_EHT_160,
5040 648500, 0, 612500, 551300, 0, 648500,
5041 0x506},
5042 /* 1197 MCS-07 */ { EHT160_LDPC_ONLY_MASKS,
5043 DP_CMN_MOD_IEEE80211_T_EHT_160,
5044 720600, 0, 680600, 612500, 0, 720600,
5045 0x507},
5046 /* 1198 MCS-08 */ { EHT160_LDPC_ONLY_MASKS,
5047 DP_CMN_MOD_IEEE80211_T_EHT_160,
5048 864700, 0, 816700, 735000, 0, 864700,
5049 0x508},
5050 /* 1199 MCS-09 */ { EHT160_LDPC_ONLY_MASKS,
5051 DP_CMN_MOD_IEEE80211_T_EHT_160,
5052 960800, 0, 907400, 816700, 0, 960800,
5053 0x509},
5054 /* 1200 MCS-10 */ { EHT160_LDPC_ONLY_MASKS,
5055 DP_CMN_MOD_IEEE80211_T_EHT_160,
5056 1080900, 0, 1020800, 918800, 0, 1080900,
5057 0x50a},
5058 /* 1201 MCS-11 */ { EHT160_LDPC_ONLY_MASKS,
5059 DP_CMN_MOD_IEEE80211_T_EHT_160,
5060 1201000, 0, 1134300, 1020800, 0, 1201000,
5061 0x50b},
5062 /* 1202 MCS-12 */ { EHT160_LDPC_ONLY_MASKS,
5063 DP_CMN_MOD_IEEE80211_T_EHT_160,
5064 1297100, 0, 1225000, 1102500, 0, 1297100,
5065 0x50c},
5066 /* 1203 MCS-13 */ { EHT160_LDPC_ONLY_MASKS,
5067 DP_CMN_MOD_IEEE80211_T_EHT_160,
5068 1441200, 0, 1361100, 1225000, 0, 1441200,
5069 0x50d},
5070
5071 /* when number of spatial streams > 1 */
5072 /* 1204 MCS-14 */ { EHT160_LDPC_ONLY_MASKS,
5073 DP_CMN_MOD_IEEE80211_T_EHT_160,
5074 36000, 0, 34000, 30600, 0, 36000,
5075 0x52e},
5076 /* 1205 MCS-15 */ { EHT160_LDPC_ONLY_MASKS,
5077 DP_CMN_MOD_IEEE80211_T_EHT_160,
5078 72000, 0, 68000, 61200, 72000, 72000,
5079 0x52f},
5080 /* 1206 MCS-00 */ { EHT160_LDPC_ONLY_MASKS,
5081 DP_CMN_MOD_IEEE80211_T_EHT_160,
5082 144200, 0, 136200, 122600, 0, 144200,
5083 0x520},
5084 /* 1207 MCS-01 */ { EHT160_LDPC_ONLY_MASKS,
5085 DP_CMN_MOD_IEEE80211_T_EHT_160,
5086 288200, 0, 272200, 245000, 0, 288200,
5087 0x521},
5088 /* 1208 MCS-02 */ { EHT160_LDPC_ONLY_MASKS,
5089 DP_CMN_MOD_IEEE80211_T_EHT_160,
5090 432400, 0, 408400, 367600, 0, 432400,
5091 0x522},
5092 /* 1209 MCS-03 */ { EHT160_LDPC_ONLY_MASKS,
5093 DP_CMN_MOD_IEEE80211_T_EHT_160,
5094 576400, 0, 544400, 490000, 0, 576400,
5095 0x523},
5096 /* 1210 MCS-04 */ { EHT160_LDPC_ONLY_MASKS,
5097 DP_CMN_MOD_IEEE80211_T_EHT_160,
5098 864800, 0, 816600, 735000, 0, 864800,
5099 0x524},
5100 /* 1211 MCS-05 */ { EHT160_LDPC_ONLY_MASKS,
5101 DP_CMN_MOD_IEEE80211_T_EHT_160,
5102 1153000, 0, 1088800, 980000, 0, 1153000,
5103 0x525},
5104 /* 1212 MCS-06 */ { EHT160_LDPC_ONLY_MASKS,
5105 DP_CMN_MOD_IEEE80211_T_EHT_160,
5106 1297000, 0, 1225000, 1102600, 0, 1297000,
5107 0x526},
5108 /* 1213 MCS-07 */ { EHT160_LDPC_ONLY_MASKS,
5109 DP_CMN_MOD_IEEE80211_T_EHT_160,
5110 1441200, 0, 1361200, 1225000, 0, 1441200,
5111 0x527},
5112 /* 1214 MCS-08 */ { EHT160_LDPC_ONLY_MASKS,
5113 DP_CMN_MOD_IEEE80211_T_EHT_160,
5114 1729400, 0, 1633400, 1470000, 0, 1729400,
5115 0x528},
5116 /* 1215 MCS-09 */ { EHT160_LDPC_ONLY_MASKS,
5117 DP_CMN_MOD_IEEE80211_T_EHT_160,
5118 1921600, 0, 1814800, 1633400, 0, 1921600,
5119 0x529},
5120 /* 1216 MCS-10 */ { EHT160_LDPC_ONLY_MASKS,
5121 DP_CMN_MOD_IEEE80211_T_EHT_160,
5122 2161800, 0, 2041600, 1837600, 0, 2161800,
5123 0x52a},
5124 /* 1217 MCS-11 */ { EHT160_LDPC_ONLY_MASKS,
5125 DP_CMN_MOD_IEEE80211_T_EHT_160,
5126 2402000, 0, 2268600, 2041600, 0, 2402000,
5127 0x52b},
5128 /* 1218 MCS-12 */ { EHT160_LDPC_ONLY_MASKS,
5129 DP_CMN_MOD_IEEE80211_T_EHT_160,
5130 2594200, 0, 2450000, 2205000, 0, 2594200,
5131 0x52c},
5132 /* 1219 MCS-13 */ { EHT160_LDPC_ONLY_MASKS,
5133 DP_CMN_MOD_IEEE80211_T_EHT_160,
5134 2882400, 0, 2722200, 2450000, 0, 2882400,
5135 0x52d},
5136
5137 /* when number of spatial streams > 2 */
5138 /* 1220 MCS-14 */ { EHT160_LDPC_ONLY_MASKS,
5139 DP_CMN_MOD_IEEE80211_T_EHT_160,
5140 54000, 0, 51000, 45900, 0, 54000,
5141 0x54e},
5142 /* 1221 MCS-15 */ { EHT160_LDPC_ONLY_MASKS,
5143 DP_CMN_MOD_IEEE80211_T_EHT_160,
5144 108000, 0, 102000, 91800, 108000, 108000,
5145 0x54f},
5146 /* 1222 MCS-00 */ { EHT160_LDPC_ONLY_MASKS,
5147 DP_CMN_MOD_IEEE80211_T_EHT_160,
5148 216299, 0, 204299, 183900, 0, 216299,
5149 0x540},
5150 /* 1223 MCS-01 */ { EHT160_LDPC_ONLY_MASKS,
5151 DP_CMN_MOD_IEEE80211_T_EHT_160,
5152 432300, 0, 408300, 367500, 0, 432300,
5153 0x541},
5154 /* 1224 MCS-02 */ { EHT160_LDPC_ONLY_MASKS,
5155 DP_CMN_MOD_IEEE80211_T_EHT_160,
5156 648600, 0, 612600, 551400, 0, 648600,
5157 0x542},
5158 /* 1225 MCS-03 */ { EHT160_LDPC_ONLY_MASKS,
5159 DP_CMN_MOD_IEEE80211_T_EHT_160,
5160 864600, 0, 816600, 735000, 0, 864600,
5161 0x543},
5162 /* 1226 MCS-04 */ { EHT160_LDPC_ONLY_MASKS,
5163 DP_CMN_MOD_IEEE80211_T_EHT_160,
5164 1297200, 0, 1224900, 1102500, 0, 1297200,
5165 0x544},
5166 /* 1227 MCS-05 */ { EHT160_LDPC_ONLY_MASKS,
5167 DP_CMN_MOD_IEEE80211_T_EHT_160,
5168 1729500, 0, 1633200, 1470000, 0, 1729500,
5169 0x545},
5170 /* 1228 MCS-06 */ { EHT160_LDPC_ONLY_MASKS,
5171 DP_CMN_MOD_IEEE80211_T_EHT_160,
5172 1945500, 0, 1837500, 1653899, 0, 1945500,
5173 0x546},
5174 /* 1229 MCS-07 */ { EHT160_LDPC_ONLY_MASKS,
5175 DP_CMN_MOD_IEEE80211_T_EHT_160,
5176 2161800, 0, 2041800, 1837500, 0, 2161800,
5177 0x547},
5178 /* 1230 MCS-08 */ { EHT160_LDPC_ONLY_MASKS,
5179 DP_CMN_MOD_IEEE80211_T_EHT_160,
5180 2594100, 0, 2450100, 2205000, 0, 2594100,
5181 0x548},
5182 /* 1231 MCS-09 */ { EHT160_LDPC_ONLY_MASKS,
5183 DP_CMN_MOD_IEEE80211_T_EHT_160,
5184 2882400, 0, 2722200, 2450100, 0, 2882400,
5185 0x549},
5186 /* 1232 MCS-10 */ { EHT160_LDPC_ONLY_MASKS,
5187 DP_CMN_MOD_IEEE80211_T_EHT_160,
5188 3242700, 0, 3062400, 2756400, 0, 3242700,
5189 0x54a},
5190 /* 1233 MCS-11 */ { EHT160_LDPC_ONLY_MASKS,
5191 DP_CMN_MOD_IEEE80211_T_EHT_160,
5192 3603000, 0, 3402900, 3062400, 0, 3603000,
5193 0x54b},
5194 /* 1234 MCS-12 */ { EHT160_LDPC_ONLY_MASKS,
5195 DP_CMN_MOD_IEEE80211_T_EHT_160,
5196 3891299, 0, 3675000, 3307500, 0, 3891299,
5197 0x54c},
5198 /* 1235 MCS-13 */ { EHT160_LDPC_ONLY_MASKS,
5199 DP_CMN_MOD_IEEE80211_T_EHT_160,
5200 4323600, 0, 4083299, 3675000, 0, 4323600,
5201 0x54d},
5202
5203 /* when number of spatial streams > 3 */
5204 /* 1236 MCS-14 */ { EHT160_LDPC_ONLY_MASKS,
5205 DP_CMN_MOD_IEEE80211_T_EHT_160,
5206 72000, 0, 68000, 61200, 0, 72000,
5207 0x56e},
5208 /* 1237 MCS-15 */ { EHT160_LDPC_ONLY_MASKS,
5209 DP_CMN_MOD_IEEE80211_T_EHT_160,
5210 144000, 0, 136000, 122400, 144000, 144000,
5211 0x56f},
5212 /* 1238 MCS-00 */ { EHT160_LDPC_ONLY_MASKS,
5213 DP_CMN_MOD_IEEE80211_T_EHT_160,
5214 288400, 0, 272400, 245200, 0, 288400,
5215 0x560},
5216 /* 1239 MCS-01 */ { EHT160_LDPC_ONLY_MASKS,
5217 DP_CMN_MOD_IEEE80211_T_EHT_160,
5218 576400, 0, 544400, 490000, 0, 576400,
5219 0x561},
5220 /* 1240 MCS-02 */ { EHT160_LDPC_ONLY_MASKS,
5221 DP_CMN_MOD_IEEE80211_T_EHT_160,
5222 864800, 0, 816800, 735200, 0, 864800,
5223 0x562},
5224 /* 1241 MCS-03 */ { EHT160_LDPC_ONLY_MASKS,
5225 DP_CMN_MOD_IEEE80211_T_EHT_160,
5226 1152800, 0, 1088800, 980000, 0, 1152800,
5227 0x563},
5228 /* 1242 MCS-04 */ { EHT160_LDPC_ONLY_MASKS,
5229 DP_CMN_MOD_IEEE80211_T_EHT_160,
5230 1729600, 0, 1633200, 1470000, 0, 1729600,
5231 0x564},
5232 /* 1243 MCS-05 */ { EHT160_LDPC_ONLY_MASKS,
5233 DP_CMN_MOD_IEEE80211_T_EHT_160,
5234 2306000, 0, 2177600, 1960000, 0, 2306000,
5235 0x565},
5236 /* 1244 MCS-06 */ { EHT160_LDPC_ONLY_MASKS,
5237 DP_CMN_MOD_IEEE80211_T_EHT_160,
5238 2594000, 0, 2450000, 2205200, 0, 2594000,
5239 0x566},
5240 /* 1245 MCS-07 */ { EHT160_LDPC_ONLY_MASKS,
5241 DP_CMN_MOD_IEEE80211_T_EHT_160,
5242 2882400, 0, 2722400, 2450000, 0, 2882400,
5243 0x567},
5244 /* 1246 MCS-08 */ { EHT160_LDPC_ONLY_MASKS,
5245 DP_CMN_MOD_IEEE80211_T_EHT_160,
5246 3458800, 0, 3266800, 2940000, 0, 3458800,
5247 0x568},
5248 /* 1247 MCS-09 */ { EHT160_LDPC_ONLY_MASKS,
5249 DP_CMN_MOD_IEEE80211_T_EHT_160,
5250 3843200, 0, 3629600, 3266800, 0, 3843200,
5251 0x569},
5252 /* 1248 MCS-10 */ { EHT160_LDPC_ONLY_MASKS,
5253 DP_CMN_MOD_IEEE80211_T_EHT_160,
5254 4323600, 0, 4083200, 3675200, 0, 4323600,
5255 0x56a},
5256 /* 1249 MCS-11 */ { EHT160_LDPC_ONLY_MASKS,
5257 DP_CMN_MOD_IEEE80211_T_EHT_160,
5258 4804000, 0, 4537200, 4083200, 0, 4804000,
5259 0x56b},
5260 /* 1250 MCS-12 */ { EHT160_LDPC_ONLY_MASKS,
5261 DP_CMN_MOD_IEEE80211_T_EHT_160,
5262 5188400, 0, 4900000, 4410000, 0, 5188400,
5263 0x56c},
5264 /* 1251 MCS-13 */ { EHT160_LDPC_ONLY_MASKS,
5265 DP_CMN_MOD_IEEE80211_T_EHT_160,
5266 5764800, 0, 5444400, 4900000, 0, 5764800,
5267 0x56d},
5268
5269 /* 1252 MCS-14 */ { EHT320_LDPC_ONLY_MASKS,
5270 DP_CMN_MOD_IEEE80211_T_EHT_200,
5271 22300, 0, 21100, 19000, 0, 22300,
5272 0x50e},
5273 /* 1253 MCS-15 */ { EHT320_LDPC_ONLY_MASKS,
5274 DP_CMN_MOD_IEEE80211_T_EHT_200,
5275 44600, 0, 42200, 37900, 44600, 44600,
5276 0x50f},
5277 /* 1254 MCS-00 */ { EHT320_LDPC_ONLY_MASKS,
5278 DP_CMN_MOD_IEEE80211_T_EHT_200,
5279 89300, 0, 84300, 75900, 0, 89300,
5280 0x500},
5281 /* 1255 MCS-01 */ { EHT320_LDPC_ONLY_MASKS,
5282 DP_CMN_MOD_IEEE80211_T_EHT_200,
5283 178500, 0, 168600, 151800, 0, 178500,
5284 0x501},
5285 /* 1256 MCS-02 */ { EHT320_LDPC_ONLY_MASKS,
5286 DP_CMN_MOD_IEEE80211_T_EHT_200,
5287 267800, 0, 252900, 227600, 0, 267800,
5288 0x502},
5289 /* 1257 MCS-03 */ { EHT320_LDPC_ONLY_MASKS,
5290 DP_CMN_MOD_IEEE80211_T_EHT_200,
5291 357100, 0, 337200, 303500, 0, 357100,
5292 0x503},
5293 /* 1258 MCS-04 */ { EHT320_LDPC_ONLY_MASKS,
5294 DP_CMN_MOD_IEEE80211_T_EHT_200,
5295 535600, 0, 505800, 455300, 0, 535600,
5296 0x504},
5297 /* 1259 MCS-05 */ { EHT320_LDPC_ONLY_MASKS,
5298 DP_CMN_MOD_IEEE80211_T_EHT_200,
5299 714100, 0, 674400, 607000, 0, 714100,
5300 0x505},
5301 /* 1260 MCS-06 */ { EHT320_LDPC_ONLY_MASKS,
5302 DP_CMN_MOD_IEEE80211_T_EHT_200,
5303 803400, 0, 758800, 682900, 0, 803400,
5304 0x506},
5305 /* 1261 MCS-07 */ { EHT320_LDPC_ONLY_MASKS,
5306 DP_CMN_MOD_IEEE80211_T_EHT_200,
5307 892600, 0, 843100, 758800, 0, 892600,
5308 0x507},
5309 /* 1262 MCS-08 */ { EHT320_LDPC_ONLY_MASKS,
5310 DP_CMN_MOD_IEEE80211_T_EHT_200,
5311 1071200, 0, 1011700, 910500, 0, 1071200,
5312 0x508},
5313 /* 1263 MCS-09 */ { EHT320_LDPC_ONLY_MASKS,
5314 DP_CMN_MOD_IEEE80211_T_EHT_200,
5315 1190200, 0, 1124100, 1011700, 0, 1190200,
5316 0x509},
5317 /* 1264 MCS-10 */ { EHT320_LDPC_ONLY_MASKS,
5318 DP_CMN_MOD_IEEE80211_T_EHT_200,
5319 1339000, 0, 1264600, 1138100, 0, 1339000,
5320 0x50a},
5321 /* 1265 MCS-11 */ { EHT320_LDPC_ONLY_MASKS,
5322 DP_CMN_MOD_IEEE80211_T_EHT_200,
5323 1487700, 0, 1405100, 1264600, 0, 1487700,
5324 0x50b},
5325 /* 1266 MCS-12 */ { EHT320_LDPC_ONLY_MASKS,
5326 DP_CMN_MOD_IEEE80211_T_EHT_200,
5327 1606800, 0, 1517500, 1365800, 0, 1606800,
5328 0x50c},
5329 /* 1267 MCS-13 */ { EHT320_LDPC_ONLY_MASKS,
5330 DP_CMN_MOD_IEEE80211_T_EHT_200,
5331 1785300, 0, 1686100, 1517500, 0, 1785300,
5332 0x50d},
5333
5334 /* when number of spatial streams > 1 */
5335 /* 1268 MCS-14 */ { EHT320_LDPC_ONLY_MASKS,
5336 DP_CMN_MOD_IEEE80211_T_EHT_200,
5337 44600, 0, 42200, 38000, 0, 44600,
5338 0x52e},
5339 /* 1269 MCS-15 */ { EHT320_LDPC_ONLY_MASKS,
5340 DP_CMN_MOD_IEEE80211_T_EHT_200,
5341 89200, 0, 84400, 75800, 89200, 89200,
5342 0x52f},
5343 /* 1270 MCS-00 */ { EHT320_LDPC_ONLY_MASKS,
5344 DP_CMN_MOD_IEEE80211_T_EHT_200,
5345 178600, 0, 168600, 151800, 0, 178600,
5346 0x520},
5347 /* 1271 MCS-01 */ { EHT320_LDPC_ONLY_MASKS,
5348 DP_CMN_MOD_IEEE80211_T_EHT_200,
5349 357000, 0, 337200, 303600, 0, 357000,
5350 0x521},
5351 /* 1272 MCS-02 */ { EHT320_LDPC_ONLY_MASKS,
5352 DP_CMN_MOD_IEEE80211_T_EHT_200,
5353 535600, 0, 505800, 455200, 0, 535600,
5354 0x522},
5355 /* 1273 MCS-03 */ { EHT320_LDPC_ONLY_MASKS,
5356 DP_CMN_MOD_IEEE80211_T_EHT_200,
5357 714200, 0, 674400, 607000, 0, 714200,
5358 0x523},
5359 /* 1274 MCS-04 */ { EHT320_LDPC_ONLY_MASKS,
5360 DP_CMN_MOD_IEEE80211_T_EHT_200,
5361 1071200, 0, 1011600, 910600, 0, 1071200,
5362 0x524},
5363 /* 1275 MCS-05 */ { EHT320_LDPC_ONLY_MASKS,
5364 DP_CMN_MOD_IEEE80211_T_EHT_200,
5365 1428200, 0, 1348800, 1214000, 0, 1428200,
5366 0x525},
5367 /* 1276 MCS-06 */ { EHT320_LDPC_ONLY_MASKS,
5368 DP_CMN_MOD_IEEE80211_T_EHT_200,
5369 1606800, 0, 1517600, 1365800, 0, 1606800,
5370 0x526},
5371 /* 1277 MCS-07 */ { EHT320_LDPC_ONLY_MASKS,
5372 DP_CMN_MOD_IEEE80211_T_EHT_200,
5373 1785200, 0, 1686200, 1517600, 0, 1785200,
5374 0x527},
5375 /* 1278 MCS-08 */ { EHT320_LDPC_ONLY_MASKS,
5376 DP_CMN_MOD_IEEE80211_T_EHT_200,
5377 2142400, 0, 2023400, 1821000, 0, 2142400,
5378 0x528},
5379 /* 1279 MCS-09 */ { EHT320_LDPC_ONLY_MASKS,
5380 DP_CMN_MOD_IEEE80211_T_EHT_200,
5381 2380400, 0, 2248200, 2023400, 0, 2380400,
5382 0x529},
5383 /* 1280 MCS-10 */ { EHT320_LDPC_ONLY_MASKS,
5384 DP_CMN_MOD_IEEE80211_T_EHT_200,
5385 2678000, 0, 2529200, 2276200, 0, 2678000,
5386 0x52a},
5387 /* 1281 MCS-11 */ { EHT320_LDPC_ONLY_MASKS,
5388 DP_CMN_MOD_IEEE80211_T_EHT_200,
5389 2975400, 0, 2810200, 2529200, 0, 2975400,
5390 0x52b},
5391 /* 1282 MCS-12 */ { EHT320_LDPC_ONLY_MASKS,
5392 DP_CMN_MOD_IEEE80211_T_EHT_200,
5393 3213600, 0, 3035000, 2731600, 0, 3213600,
5394 0x52c},
5395 /* 1283 MCS-13 */ { EHT320_LDPC_ONLY_MASKS,
5396 DP_CMN_MOD_IEEE80211_T_EHT_200,
5397 3570600, 0, 3372200, 3035000, 0, 3570600,
5398 0x52d},
5399
5400 /* when number of spatial streams > 2 */
5401 /* 1284 MCS-14 */ { EHT320_LDPC_ONLY_MASKS,
5402 DP_CMN_MOD_IEEE80211_T_EHT_200,
5403 66900, 0, 63300, 57000, 0, 66900,
5404 0x54e},
5405 /* 1285 MCS-15 */ { EHT320_LDPC_ONLY_MASKS,
5406 DP_CMN_MOD_IEEE80211_T_EHT_200,
5407 133800, 0, 126600, 113700, 133800, 133800,
5408 0x54f},
5409 /* 1286 MCS-00 */ { EHT320_LDPC_ONLY_MASKS,
5410 DP_CMN_MOD_IEEE80211_T_EHT_200,
5411 267900, 0, 252900, 227700, 0, 267900,
5412 0x540},
5413 /* 1287 MCS-01 */ { EHT320_LDPC_ONLY_MASKS,
5414 DP_CMN_MOD_IEEE80211_T_EHT_200,
5415 535500, 0, 505800, 455400, 0, 535500,
5416 0x541},
5417 /* 1288 MCS-02 */ { EHT320_LDPC_ONLY_MASKS,
5418 DP_CMN_MOD_IEEE80211_T_EHT_200,
5419 803400, 0, 758700, 682800, 0, 803400,
5420 0x542},
5421 /* 1289 MCS-03 */ { EHT320_LDPC_ONLY_MASKS,
5422 DP_CMN_MOD_IEEE80211_T_EHT_200,
5423 1071300, 0, 1011600, 910500, 0, 1071300,
5424 0x543},
5425 /* 1290 MCS-04 */ { EHT320_LDPC_ONLY_MASKS,
5426 DP_CMN_MOD_IEEE80211_T_EHT_200,
5427 1606800, 0, 1517400, 1365900, 0, 1606800,
5428 0x544},
5429 /* 1291 MCS-05 */ { EHT320_LDPC_ONLY_MASKS,
5430 DP_CMN_MOD_IEEE80211_T_EHT_200,
5431 2142300, 0, 2023200, 1821000, 0, 2142300,
5432 0x545},
5433 /* 1292 MCS-06 */ { EHT320_LDPC_ONLY_MASKS,
5434 DP_CMN_MOD_IEEE80211_T_EHT_200,
5435 2410200, 0, 2276400, 2048700, 0, 2410200,
5436 0x546},
5437 /* 1293 MCS-07 */ { EHT320_LDPC_ONLY_MASKS,
5438 DP_CMN_MOD_IEEE80211_T_EHT_200,
5439 2677800, 0, 2529300, 2276400, 0, 2677800,
5440 0x547},
5441 /* 1294 MCS-08 */ { EHT320_LDPC_ONLY_MASKS,
5442 DP_CMN_MOD_IEEE80211_T_EHT_200,
5443 3213600, 0, 3035100, 2731500, 0, 3213600,
5444 0x548},
5445 /* 1295 MCS-09 */ { EHT320_LDPC_ONLY_MASKS,
5446 DP_CMN_MOD_IEEE80211_T_EHT_200,
5447 3570600, 0, 3372299, 3035100, 0, 3570600,
5448 0x549},
5449 /* 1296 MCS-10 */ { EHT320_LDPC_ONLY_MASKS,
5450 DP_CMN_MOD_IEEE80211_T_EHT_200,
5451 4017000, 0, 3793799, 3414299, 0, 4017000,
5452 0x54a},
5453 /* 1297 MCS-11 */ { EHT320_LDPC_ONLY_MASKS,
5454 DP_CMN_MOD_IEEE80211_T_EHT_200,
5455 4463100, 0, 4215300, 3793799, 0, 4463100,
5456 0x54b},
5457 /* 1298 MCS-12 */ { EHT320_LDPC_ONLY_MASKS,
5458 DP_CMN_MOD_IEEE80211_T_EHT_200,
5459 4820400, 0, 4552500, 4097400, 0, 4820400,
5460 0x54c},
5461 /* 1299 MCS-13 */ { EHT320_LDPC_ONLY_MASKS,
5462 DP_CMN_MOD_IEEE80211_T_EHT_200,
5463 5355900, 0, 5058300, 4552500, 0, 5355900,
5464 0x54d},
5465
5466 /* when number of spatial streams > 3 */
5467 /* 1300 MCS-14 */ { EHT320_LDPC_ONLY_MASKS,
5468 DP_CMN_MOD_IEEE80211_T_EHT_200,
5469 89200, 0, 84400, 76000, 0, 89200,
5470 0x56e},
5471 /* 1301 MCS-15 */ { EHT320_LDPC_ONLY_MASKS,
5472 DP_CMN_MOD_IEEE80211_T_EHT_200,
5473 178400, 0, 168800, 151600, 178400, 178400,
5474 0x56f},
5475 /* 1302 MCS-00 */ { EHT320_LDPC_ONLY_MASKS,
5476 DP_CMN_MOD_IEEE80211_T_EHT_200,
5477 357200, 0, 337200, 303600, 0, 357200,
5478 0x560},
5479 /* 1303 MCS-01 */ { EHT320_LDPC_ONLY_MASKS,
5480 DP_CMN_MOD_IEEE80211_T_EHT_200,
5481 714000, 0, 674400, 607200, 0, 714000,
5482 0x561},
5483 /* 1304 MCS-02 */ { EHT320_LDPC_ONLY_MASKS,
5484 DP_CMN_MOD_IEEE80211_T_EHT_200,
5485 1071200, 0, 1011600, 910400, 0, 1071200,
5486 0x562},
5487 /* 1305 MCS-03 */ { EHT320_LDPC_ONLY_MASKS,
5488 DP_CMN_MOD_IEEE80211_T_EHT_200,
5489 1428400, 0, 1348800, 1214000, 0, 1428400,
5490 0x563},
5491 /* 1306 MCS-04 */ { EHT320_LDPC_ONLY_MASKS,
5492 DP_CMN_MOD_IEEE80211_T_EHT_200,
5493 2142400, 0, 2023200, 1821200, 0, 2142400,
5494 0x564},
5495 /* 1307 MCS-05 */ { EHT320_LDPC_ONLY_MASKS,
5496 DP_CMN_MOD_IEEE80211_T_EHT_200,
5497 2856400, 0, 2697600, 2428000, 0, 2856400,
5498 0x565},
5499 /* 1308 MCS-06 */ { EHT320_LDPC_ONLY_MASKS,
5500 DP_CMN_MOD_IEEE80211_T_EHT_200,
5501 3213600, 0, 3035200, 2731600, 0, 3213600,
5502 0x566},
5503 /* 1309 MCS-07 */ { EHT320_LDPC_ONLY_MASKS,
5504 DP_CMN_MOD_IEEE80211_T_EHT_200,
5505 3570400, 0, 3372400, 3035200, 0, 3570400,
5506 0x567},
5507 /* 1310 MCS-08 */ { EHT320_LDPC_ONLY_MASKS,
5508 DP_CMN_MOD_IEEE80211_T_EHT_200,
5509 4284800, 0, 4046800, 3642000, 0, 4284800,
5510 0x568},
5511 /* 1311 MCS-09 */ { EHT320_LDPC_ONLY_MASKS,
5512 DP_CMN_MOD_IEEE80211_T_EHT_200,
5513 4760800, 0, 4496400, 4046800, 0, 4760800,
5514 0x569},
5515 /* 1312 MCS-10 */ { EHT320_LDPC_ONLY_MASKS,
5516 DP_CMN_MOD_IEEE80211_T_EHT_200,
5517 5356000, 0, 5058400, 4552400, 0, 5356000,
5518 0x56a},
5519 /* 1313 MCS-11 */ { EHT320_LDPC_ONLY_MASKS,
5520 DP_CMN_MOD_IEEE80211_T_EHT_200,
5521 5950800, 0, 5620400, 5058400, 0, 5950800,
5522 0x56b},
5523 /* 1314 MCS-12 */ { EHT320_LDPC_ONLY_MASKS,
5524 DP_CMN_MOD_IEEE80211_T_EHT_200,
5525 6427200, 0, 6070000, 5463200, 0, 6427200,
5526 0x56c},
5527 /* 1315 MCS-13 */ { EHT320_LDPC_ONLY_MASKS,
5528 DP_CMN_MOD_IEEE80211_T_EHT_200,
5529 7141200, 0, 6744400, 6070000, 0, 7141200,
5530 0x56d},
5531
5532 /* 1316 MCS-14 */ { EHT320_LDPC_ONLY_MASKS,
5533 DP_CMN_MOD_IEEE80211_T_EHT_240,
5534 27000, 0, 25500, 23000, 0, 27000,
5535 0x50e},
5536 /* 1317 MCS-15 */ { EHT320_LDPC_ONLY_MASKS,
5537 DP_CMN_MOD_IEEE80211_T_EHT_240,
5538 54000, 0, 51000, 45900, 54000, 54000,
5539 0x50f},
5540 /* 1318 MCS-00 */ { EHT320_LDPC_ONLY_MASKS,
5541 DP_CMN_MOD_IEEE80211_T_EHT_240,
5542 108100, 0, 102100, 91900, 0, 108100,
5543 0x500},
5544 /* 1319 MCS-01 */ { EHT320_LDPC_ONLY_MASKS,
5545 DP_CMN_MOD_IEEE80211_T_EHT_240,
5546 216200, 0, 204200, 183800, 0, 216200,
5547 0x501},
5548 /* 1320 MCS-02 */ { EHT320_LDPC_ONLY_MASKS,
5549 DP_CMN_MOD_IEEE80211_T_EHT_240,
5550 324300, 0, 306300, 275600, 0, 324300,
5551 0x502},
5552 /* 1321 MCS-03 */ { EHT320_LDPC_ONLY_MASKS,
5553 DP_CMN_MOD_IEEE80211_T_EHT_240,
5554 432400, 0, 408300, 367500, 0, 432400,
5555 0x503},
5556 /* 1322 MCS-04 */ { EHT320_LDPC_ONLY_MASKS,
5557 DP_CMN_MOD_IEEE80211_T_EHT_240,
5558 648500, 0, 612500, 551300, 0, 648500,
5559 0x504},
5560 /* 1323 MCS-05 */ { EHT320_LDPC_ONLY_MASKS,
5561 DP_CMN_MOD_IEEE80211_T_EHT_240,
5562 864700, 0, 816700, 735000, 0, 864700,
5563 0x505},
5564 /* 1324 MCS-06 */ { EHT320_LDPC_ONLY_MASKS,
5565 DP_CMN_MOD_IEEE80211_T_EHT_240,
5566 972800, 0, 918800, 826900, 0, 972800,
5567 0x506},
5568 /* 1325 MCS-07 */ { EHT320_LDPC_ONLY_MASKS,
5569 DP_CMN_MOD_IEEE80211_T_EHT_240,
5570 1080900, 0, 1020800, 918800, 0, 1080900,
5571 0x507},
5572 /* 1326 MCS-08 */ { EHT320_LDPC_ONLY_MASKS,
5573 DP_CMN_MOD_IEEE80211_T_EHT_240,
5574 1297100, 0, 1225000, 1102500, 0, 1297100,
5575 0x508},
5576 /* 1327 MCS-09 */ { EHT320_LDPC_ONLY_MASKS,
5577 DP_CMN_MOD_IEEE80211_T_EHT_240,
5578 1441200, 0, 1361100, 1225000, 0, 1441200,
5579 0x509},
5580 /* 1328 MCS-10 */ { EHT320_LDPC_ONLY_MASKS,
5581 DP_CMN_MOD_IEEE80211_T_EHT_240,
5582 1621300, 0, 1531300, 1378100, 0, 1621300,
5583 0x50a},
5584 /* 1329 MCS-11 */ { EHT320_LDPC_ONLY_MASKS,
5585 DP_CMN_MOD_IEEE80211_T_EHT_240,
5586 1801500, 0, 1701400, 1531300, 0, 1801500,
5587 0x50b},
5588 /* 1330 MCS-12 */ { EHT320_LDPC_ONLY_MASKS,
5589 DP_CMN_MOD_IEEE80211_T_EHT_240,
5590 1945600, 0, 1837500, 1653800, 0, 1945600,
5591 0x50c},
5592 /* 1331 MCS-13 */ { EHT320_LDPC_ONLY_MASKS,
5593 DP_CMN_MOD_IEEE80211_T_EHT_240,
5594 2161800, 0, 2041700, 1837500, 0, 2161800,
5595 0x50d},
5596
5597 /* when number of spatial streams > 1 */
5598 /* 1332 MCS-14 */ { EHT320_LDPC_ONLY_MASKS,
5599 DP_CMN_MOD_IEEE80211_T_EHT_240,
5600 54000, 0, 51000, 46000, 0, 54000,
5601 0x52e},
5602 /* 1333 MCS-15 */ { EHT320_LDPC_ONLY_MASKS,
5603 DP_CMN_MOD_IEEE80211_T_EHT_240,
5604 108000, 0, 102000, 91800, 108000, 108000,
5605 0x52f},
5606 /* 1334 MCS-00 */ { EHT320_LDPC_ONLY_MASKS,
5607 DP_CMN_MOD_IEEE80211_T_EHT_240,
5608 216200, 0, 204200, 183800, 0, 216200,
5609 0x520},
5610 /* 1335 MCS-01 */ { EHT320_LDPC_ONLY_MASKS,
5611 DP_CMN_MOD_IEEE80211_T_EHT_240,
5612 432400, 0, 408400, 367600, 0, 432400,
5613 0x521},
5614 /* 1336 MCS-02 */ { EHT320_LDPC_ONLY_MASKS,
5615 DP_CMN_MOD_IEEE80211_T_EHT_240,
5616 648600, 0, 612600, 551200, 0, 648600,
5617 0x522},
5618 /* 1337 MCS-03 */ { EHT320_LDPC_ONLY_MASKS,
5619 DP_CMN_MOD_IEEE80211_T_EHT_240,
5620 864800, 0, 816600, 735000, 0, 864800,
5621 0x523},
5622 /* 1338 MCS-04 */ { EHT320_LDPC_ONLY_MASKS,
5623 DP_CMN_MOD_IEEE80211_T_EHT_240,
5624 1297000, 0, 1225000, 1102600, 0, 1297000,
5625 0x524},
5626 /* 1339 MCS-05 */ { EHT320_LDPC_ONLY_MASKS,
5627 DP_CMN_MOD_IEEE80211_T_EHT_240,
5628 1729400, 0, 1633400, 1470000, 0, 1729400,
5629 0x525},
5630 /* 1340 MCS-06 */ { EHT320_LDPC_ONLY_MASKS,
5631 DP_CMN_MOD_IEEE80211_T_EHT_240,
5632 1945600, 0, 1837600, 1653800, 0, 1945600,
5633 0x526},
5634 /* 1341 MCS-07 */ { EHT320_LDPC_ONLY_MASKS,
5635 DP_CMN_MOD_IEEE80211_T_EHT_240,
5636 2161800, 0, 2041600, 1837600, 0, 2161800,
5637 0x527},
5638 /* 1342 MCS-08 */ { EHT320_LDPC_ONLY_MASKS,
5639 DP_CMN_MOD_IEEE80211_T_EHT_240,
5640 2594200, 0, 2450000, 2205000, 0, 2594200,
5641 0x528},
5642 /* 1343 MCS-09 */ { EHT320_LDPC_ONLY_MASKS,
5643 DP_CMN_MOD_IEEE80211_T_EHT_240,
5644 2882400, 0, 2722200, 2450000, 0, 2882400,
5645 0x529},
5646 /* 1344 MCS-10 */ { EHT320_LDPC_ONLY_MASKS,
5647 DP_CMN_MOD_IEEE80211_T_EHT_240,
5648 3242600, 0, 3062600, 2756200, 0, 3242600,
5649 0x52a},
5650 /* 1345 MCS-11 */ { EHT320_LDPC_ONLY_MASKS,
5651 DP_CMN_MOD_IEEE80211_T_EHT_240,
5652 3603000, 0, 3402800, 3062600, 0, 3603000,
5653 0x52b},
5654 /* 1346 MCS-12 */ { EHT320_LDPC_ONLY_MASKS,
5655 DP_CMN_MOD_IEEE80211_T_EHT_240,
5656 3891200, 0, 3675000, 3307600, 0, 3891200,
5657 0x52c},
5658 /* 1347 MCS-13 */ { EHT320_LDPC_ONLY_MASKS,
5659 DP_CMN_MOD_IEEE80211_T_EHT_240,
5660 4323600, 0, 4083400, 3675000, 0, 4323600,
5661 0x52d},
5662
5663 /* when number of spatial streams > 2 */
5664 /* 1348 MCS-14 */ { EHT320_LDPC_ONLY_MASKS,
5665 DP_CMN_MOD_IEEE80211_T_EHT_240,
5666 81000, 0, 76500, 69000, 0, 81000,
5667 0x54e},
5668 /* 1349 MCS-15 */ { EHT320_LDPC_ONLY_MASKS,
5669 DP_CMN_MOD_IEEE80211_T_EHT_240,
5670 162000, 0, 153000, 137700, 162000, 162000,
5671 0x54f},
5672 /* 1350 MCS-00 */ { EHT320_LDPC_ONLY_MASKS,
5673 DP_CMN_MOD_IEEE80211_T_EHT_240,
5674 324300, 0, 306300, 275700, 0, 324300,
5675 0x540},
5676 /* 1351 MCS-01 */ { EHT320_LDPC_ONLY_MASKS,
5677 DP_CMN_MOD_IEEE80211_T_EHT_240,
5678 648600, 0, 612600, 551400, 0, 648600,
5679 0x541},
5680 /* 1352 MCS-02 */ { EHT320_LDPC_ONLY_MASKS,
5681 DP_CMN_MOD_IEEE80211_T_EHT_240,
5682 972900, 0, 918900, 826800, 0, 972900,
5683 0x542},
5684 /* 1353 MCS-03 */ { EHT320_LDPC_ONLY_MASKS,
5685 DP_CMN_MOD_IEEE80211_T_EHT_240,
5686 1297200, 0, 1224900, 1102500, 0, 1297200,
5687 0x543},
5688 /* 1354 MCS-04 */ { EHT320_LDPC_ONLY_MASKS,
5689 DP_CMN_MOD_IEEE80211_T_EHT_240,
5690 1945500, 0, 1837500, 1653899, 0, 1945500,
5691 0x544},
5692 /* 1355 MCS-05 */ { EHT320_LDPC_ONLY_MASKS,
5693 DP_CMN_MOD_IEEE80211_T_EHT_240,
5694 2594100, 0, 2450100, 2205000, 0, 2594100,
5695 0x545},
5696 /* 1356 MCS-06 */ { EHT320_LDPC_ONLY_MASKS,
5697 DP_CMN_MOD_IEEE80211_T_EHT_240,
5698 2918400, 0, 2756400, 2480700, 0, 2918400,
5699 0x546},
5700 /* 1357 MCS-07 */ { EHT320_LDPC_ONLY_MASKS,
5701 DP_CMN_MOD_IEEE80211_T_EHT_240,
5702 3242700, 0, 3062400, 2756400, 0, 3242700,
5703 0x547},
5704 /* 1358 MCS-08 */ { EHT320_LDPC_ONLY_MASKS,
5705 DP_CMN_MOD_IEEE80211_T_EHT_240,
5706 3891299, 0, 3675000, 3307500, 0, 3891299,
5707 0x548},
5708 /* 1359 MCS-09 */ { EHT320_LDPC_ONLY_MASKS,
5709 DP_CMN_MOD_IEEE80211_T_EHT_240,
5710 4323600, 0, 4083299, 3675000, 0, 4323600,
5711 0x549},
5712 /* 1360 MCS-10 */ { EHT320_LDPC_ONLY_MASKS,
5713 DP_CMN_MOD_IEEE80211_T_EHT_240,
5714 4863900, 0, 4593900, 4134299, 0, 4863900,
5715 0x54a},
5716 /* 1361 MCS-11 */ { EHT320_LDPC_ONLY_MASKS,
5717 DP_CMN_MOD_IEEE80211_T_EHT_240,
5718 5404500, 0, 5104200, 4593900, 0, 5404500,
5719 0x54b},
5720 /* 1362 MCS-12 */ { EHT320_LDPC_ONLY_MASKS,
5721 DP_CMN_MOD_IEEE80211_T_EHT_240,
5722 5836800, 0, 5512500, 4961400, 0, 5836800,
5723 0x54c},
5724 /* 1363 MCS-13 */ { EHT320_LDPC_ONLY_MASKS,
5725 DP_CMN_MOD_IEEE80211_T_EHT_240,
5726 6485400, 0, 6125100, 5512500, 0, 6485400,
5727 0x54d},
5728
5729 /* when number of spatial streams > 3 */
5730 /* 1364 MCS-14 */ { EHT320_LDPC_ONLY_MASKS,
5731 DP_CMN_MOD_IEEE80211_T_EHT_240,
5732 108000, 0, 102000, 92000, 0, 108000,
5733 0x56e},
5734 /* 1365 MCS-15 */ { EHT320_LDPC_ONLY_MASKS,
5735 DP_CMN_MOD_IEEE80211_T_EHT_240,
5736 216000, 0, 204000, 183600, 216000, 216000,
5737 0x56f},
5738 /* 1366 MCS-00 */ { EHT320_LDPC_ONLY_MASKS,
5739 DP_CMN_MOD_IEEE80211_T_EHT_240,
5740 432400, 0, 408400, 367600, 0, 432400,
5741 0x560},
5742 /* 1367 MCS-01 */ { EHT320_LDPC_ONLY_MASKS,
5743 DP_CMN_MOD_IEEE80211_T_EHT_240,
5744 864800, 0, 816800, 735200, 0, 864800,
5745 0x561},
5746 /* 1368 MCS-02 */ { EHT320_LDPC_ONLY_MASKS,
5747 DP_CMN_MOD_IEEE80211_T_EHT_240,
5748 1297200, 0, 1225200, 1102400, 0, 1297200,
5749 0x562},
5750 /* 1369 MCS-03 */ { EHT320_LDPC_ONLY_MASKS,
5751 DP_CMN_MOD_IEEE80211_T_EHT_240,
5752 1729600, 0, 1633200, 1470000, 0, 1729600,
5753 0x563},
5754 /* 1370 MCS-04 */ { EHT320_LDPC_ONLY_MASKS,
5755 DP_CMN_MOD_IEEE80211_T_EHT_240,
5756 2594000, 0, 2450000, 2205200, 0, 2594000,
5757 0x564},
5758 /* 1371 MCS-05 */ { EHT320_LDPC_ONLY_MASKS,
5759 DP_CMN_MOD_IEEE80211_T_EHT_240,
5760 3458800, 0, 3266800, 2940000, 0, 3458800,
5761 0x565},
5762 /* 1372 MCS-06 */ { EHT320_LDPC_ONLY_MASKS,
5763 DP_CMN_MOD_IEEE80211_T_EHT_240,
5764 3891200, 0, 3675200, 3307600, 0, 3891200,
5765 0x566},
5766 /* 1373 MCS-07 */ { EHT320_LDPC_ONLY_MASKS,
5767 DP_CMN_MOD_IEEE80211_T_EHT_240,
5768 4323600, 0, 4083200, 3675200, 0, 4323600,
5769 0x567},
5770 /* 1374 MCS-08 */ { EHT320_LDPC_ONLY_MASKS,
5771 DP_CMN_MOD_IEEE80211_T_EHT_240,
5772 5188400, 0, 4900000, 4410000, 0, 5188400,
5773 0x568},
5774 /* 1375 MCS-09 */ { EHT320_LDPC_ONLY_MASKS,
5775 DP_CMN_MOD_IEEE80211_T_EHT_240,
5776 5764800, 0, 5444400, 4900000, 0, 5764800,
5777 0x569},
5778 /* 1376 MCS-10 */ { EHT320_LDPC_ONLY_MASKS,
5779 DP_CMN_MOD_IEEE80211_T_EHT_240,
5780 6485200, 0, 6125200, 5512400, 0, 6485200,
5781 0x56a},
5782 /* 1377 MCS-11 */ { EHT320_LDPC_ONLY_MASKS,
5783 DP_CMN_MOD_IEEE80211_T_EHT_240,
5784 7206000, 0, 6805600, 6125200, 0, 7206000,
5785 0x56b},
5786 /* 1378 MCS-12 */ { EHT320_LDPC_ONLY_MASKS,
5787 DP_CMN_MOD_IEEE80211_T_EHT_240,
5788 7782400, 0, 7350000, 6615200, 0, 7782400,
5789 0x56c},
5790 /* 1379 MCS-13 */ { EHT320_LDPC_ONLY_MASKS,
5791 DP_CMN_MOD_IEEE80211_T_EHT_240,
5792 8647200, 0, 8166800, 7350000, 0, 8647200,
5793 0x56d},
5794
5795 /* 1380 MCS-14 */ { EHT320_LDPC_ONLY_MASKS,
5796 DP_CMN_MOD_IEEE80211_T_EHT_280,
5797 31300, 0, 29600, 26600, 0, 31300,
5798 0x50e},
5799 /* 1381 MCS-15 */ { EHT320_LDPC_ONLY_MASKS,
5800 DP_CMN_MOD_IEEE80211_T_EHT_280,
5801 62600, 0, 59200, 53300, 62600, 62600,
5802 0x50f},
5803 /* 1382 MCS-00 */ { EHT320_LDPC_ONLY_MASKS,
5804 DP_CMN_MOD_IEEE80211_T_EHT_280,
5805 125300, 0, 118300, 106500, 0, 125300,
5806 0x500},
5807 /* 1383 MCS-01 */ { EHT320_LDPC_ONLY_MASKS,
5808 DP_CMN_MOD_IEEE80211_T_EHT_280,
5809 250600, 0, 236700, 213000, 0, 250600,
5810 0x501},
5811 /* 1384 MCS-02 */ { EHT320_LDPC_ONLY_MASKS,
5812 DP_CMN_MOD_IEEE80211_T_EHT_280,
5813 375900, 0, 355000, 319500, 0, 375900,
5814 0x502},
5815 /* 1385 MCS-03 */ { EHT320_LDPC_ONLY_MASKS,
5816 DP_CMN_MOD_IEEE80211_T_EHT_280,
5817 501200, 0, 473300, 426000, 0, 501200,
5818 0x503},
5819 /* 1386 MCS-04 */ { EHT320_LDPC_ONLY_MASKS,
5820 DP_CMN_MOD_IEEE80211_T_EHT_280,
5821 751800, 0, 710000, 639000, 0, 751800,
5822 0x504},
5823 /* 1387 MCS-05 */ { EHT320_LDPC_ONLY_MASKS,
5824 DP_CMN_MOD_IEEE80211_T_EHT_280,
5825 1002400, 0, 946700, 852000, 0, 1002400,
5826 0x505},
5827 /* 1388 MCS-06 */ { EHT320_LDPC_ONLY_MASKS,
5828 DP_CMN_MOD_IEEE80211_T_EHT_280,
5829 1127600, 0, 1065000, 958500, 0, 1127600,
5830 0x506},
5831 /* 1389 MCS-07 */ { EHT320_LDPC_ONLY_MASKS,
5832 DP_CMN_MOD_IEEE80211_T_EHT_280,
5833 1252900, 0, 1183300, 1065000, 0, 1252900,
5834 0x507},
5835 /* 1390 MCS-08 */ { EHT320_LDPC_ONLY_MASKS,
5836 DP_CMN_MOD_IEEE80211_T_EHT_280,
5837 1503500, 0, 1420000, 1278000, 0, 1503500,
5838 0x508},
5839 /* 1391 MCS-09 */ { EHT320_LDPC_ONLY_MASKS,
5840 DP_CMN_MOD_IEEE80211_T_EHT_280,
5841 1670600, 0, 1577800, 1420000, 0, 1670600,
5842 0x509},
5843 /* 1392 MCS-10 */ { EHT320_LDPC_ONLY_MASKS,
5844 DP_CMN_MOD_IEEE80211_T_EHT_280,
5845 1879400, 0, 1775000, 1597500, 0, 1879400,
5846 0x50a},
5847 /* 1393 MCS-11 */ { EHT320_LDPC_ONLY_MASKS,
5848 DP_CMN_MOD_IEEE80211_T_EHT_280,
5849 2088199, 0, 1972200, 1775000, 0, 2088199,
5850 0x50b},
5851 /* 1394 MCS-12 */ { EHT320_LDPC_ONLY_MASKS,
5852 DP_CMN_MOD_IEEE80211_T_EHT_280,
5853 2255300, 0, 2130000, 1917000, 0, 2255300,
5854 0x50c},
5855 /* 1395 MCS-13 */ { EHT320_LDPC_ONLY_MASKS,
5856 DP_CMN_MOD_IEEE80211_T_EHT_280,
5857 2505900, 0, 2366700, 2130000, 0, 2505900,
5858 0x50d},
5859
5860 /* when number of spatial streams > 1 */
5861 /* 1396 MCS-14 */ { EHT320_LDPC_ONLY_MASKS,
5862 DP_CMN_MOD_IEEE80211_T_EHT_280,
5863 62600, 0, 59200, 53200, 0, 62600,
5864 0x52e},
5865 /* 1397 MCS-15 */ { EHT320_LDPC_ONLY_MASKS,
5866 DP_CMN_MOD_IEEE80211_T_EHT_280,
5867 125200, 0, 118400, 106600, 125200, 125200,
5868 0x52f},
5869 /* 1398 MCS-00 */ { EHT320_LDPC_ONLY_MASKS,
5870 DP_CMN_MOD_IEEE80211_T_EHT_280,
5871 250600, 0, 236600, 213000, 0, 250600,
5872 0x520},
5873 /* 1399 MCS-01 */ { EHT320_LDPC_ONLY_MASKS,
5874 DP_CMN_MOD_IEEE80211_T_EHT_280,
5875 501200, 0, 473400, 426000, 0, 501200,
5876 0x521},
5877 /* 1400 MCS-02 */ { EHT320_LDPC_ONLY_MASKS,
5878 DP_CMN_MOD_IEEE80211_T_EHT_280,
5879 751800, 0, 710000, 639000, 0, 751800,
5880 0x522},
5881 /* 1401 MCS-03 */ { EHT320_LDPC_ONLY_MASKS,
5882 DP_CMN_MOD_IEEE80211_T_EHT_280,
5883 1002400, 0, 946600, 852000, 0, 1002400,
5884 0x523},
5885 /* 1402 MCS-04 */ { EHT320_LDPC_ONLY_MASKS,
5886 DP_CMN_MOD_IEEE80211_T_EHT_280,
5887 1503600, 0, 1420000, 1278000, 0, 1503600,
5888 0x524},
5889 /* 1403 MCS-05 */ { EHT320_LDPC_ONLY_MASKS,
5890 DP_CMN_MOD_IEEE80211_T_EHT_280,
5891 2004800, 0, 1893400, 1704000, 0, 2004800,
5892 0x525},
5893 /* 1404 MCS-06 */ { EHT320_LDPC_ONLY_MASKS,
5894 DP_CMN_MOD_IEEE80211_T_EHT_280,
5895 2255200, 0, 2130000, 1917000, 0, 2255200,
5896 0x526},
5897 /* 1405 MCS-07 */ { EHT320_LDPC_ONLY_MASKS,
5898 DP_CMN_MOD_IEEE80211_T_EHT_280,
5899 2505800, 0, 2366600, 2130000, 0, 2505800,
5900 0x527},
5901 /* 1406 MCS-08 */ { EHT320_LDPC_ONLY_MASKS,
5902 DP_CMN_MOD_IEEE80211_T_EHT_280,
5903 3007000, 0, 2840000, 2556000, 0, 3007000,
5904 0x528},
5905 /* 1407 MCS-09 */ { EHT320_LDPC_ONLY_MASKS,
5906 DP_CMN_MOD_IEEE80211_T_EHT_280,
5907 3341200, 0, 3155600, 2840000, 0, 3341200,
5908 0x529},
5909 /* 1408 MCS-10 */ { EHT320_LDPC_ONLY_MASKS,
5910 DP_CMN_MOD_IEEE80211_T_EHT_280,
5911 3758800, 0, 3550000, 3195000, 0, 3758800,
5912 0x52a},
5913 /* 1409 MCS-11 */ { EHT320_LDPC_ONLY_MASKS,
5914 DP_CMN_MOD_IEEE80211_T_EHT_280,
5915 4176399, 0, 3944400, 3550000, 0, 4176399,
5916 0x52b},
5917 /* 1410 MCS-12 */ { EHT320_LDPC_ONLY_MASKS,
5918 DP_CMN_MOD_IEEE80211_T_EHT_280,
5919 4510600, 0, 4260000, 3834000, 0, 4510600,
5920 0x52c},
5921 /* 1411 MCS-13 */ { EHT320_LDPC_ONLY_MASKS,
5922 DP_CMN_MOD_IEEE80211_T_EHT_280,
5923 5011800, 0, 4733400, 4260000, 0, 5011800,
5924 0x52d},
5925
5926 /* when number of spatial streams > 2 */
5927 /* 1412 MCS-14 */ { EHT320_LDPC_ONLY_MASKS,
5928 DP_CMN_MOD_IEEE80211_T_EHT_280,
5929 93900, 0, 88800, 79800, 0, 93900,
5930 0x54e},
5931 /* 1413 MCS-15 */ { EHT320_LDPC_ONLY_MASKS,
5932 DP_CMN_MOD_IEEE80211_T_EHT_280,
5933 187800, 0, 177600, 159900, 187800, 187800,
5934 0x54f},
5935 /* 1414 MCS-00 */ { EHT320_LDPC_ONLY_MASKS,
5936 DP_CMN_MOD_IEEE80211_T_EHT_280,
5937 375900, 0, 354900, 319500, 0, 375900,
5938 0x540},
5939 /* 1415 MCS-01 */ { EHT320_LDPC_ONLY_MASKS,
5940 DP_CMN_MOD_IEEE80211_T_EHT_280,
5941 751800, 0, 710100, 639000, 0, 751800,
5942 0x541},
5943 /* 1416 MCS-02 */ { EHT320_LDPC_ONLY_MASKS,
5944 DP_CMN_MOD_IEEE80211_T_EHT_280,
5945 1127700, 0, 1065000, 958500, 0, 1127700,
5946 0x542},
5947 /* 1417 MCS-03 */ { EHT320_LDPC_ONLY_MASKS,
5948 DP_CMN_MOD_IEEE80211_T_EHT_280,
5949 1503600, 0, 1419900, 1278000, 0, 1503600,
5950 0x543},
5951 /* 1418 MCS-04 */ { EHT320_LDPC_ONLY_MASKS,
5952 DP_CMN_MOD_IEEE80211_T_EHT_280,
5953 2255400, 0, 2130000, 1917000, 0, 2255400,
5954 0x544},
5955 /* 1419 MCS-05 */ { EHT320_LDPC_ONLY_MASKS,
5956 DP_CMN_MOD_IEEE80211_T_EHT_280,
5957 3007200, 0, 2840100, 2556000, 0, 3007200,
5958 0x545},
5959 /* 1420 MCS-06 */ { EHT320_LDPC_ONLY_MASKS,
5960 DP_CMN_MOD_IEEE80211_T_EHT_280,
5961 3382799, 0, 3195000, 2875500, 0, 3382799,
5962 0x546},
5963 /* 1421 MCS-07 */ { EHT320_LDPC_ONLY_MASKS,
5964 DP_CMN_MOD_IEEE80211_T_EHT_280,
5965 3758700, 0, 3549900, 3195000, 0, 3758700,
5966 0x547},
5967 /* 1422 MCS-08 */ { EHT320_LDPC_ONLY_MASKS,
5968 DP_CMN_MOD_IEEE80211_T_EHT_280,
5969 4510500, 0, 4260000, 3834000, 0, 4510500,
5970 0x548},
5971 /* 1423 MCS-09 */ { EHT320_LDPC_ONLY_MASKS,
5972 DP_CMN_MOD_IEEE80211_T_EHT_280,
5973 5011800, 0, 4733400, 4260000, 0, 5011800,
5974 0x549},
5975 /* 1424 MCS-10 */ { EHT320_LDPC_ONLY_MASKS,
5976 DP_CMN_MOD_IEEE80211_T_EHT_280,
5977 5638200, 0, 5325000, 4792500, 0, 5638200,
5978 0x54a},
5979 /* 1425 MCS-11 */ { EHT320_LDPC_ONLY_MASKS,
5980 DP_CMN_MOD_IEEE80211_T_EHT_280,
5981 6264599, 0, 5916600, 5325000, 0, 6264599,
5982 0x54b},
5983 /* 1426 MCS-12 */ { EHT320_LDPC_ONLY_MASKS,
5984 DP_CMN_MOD_IEEE80211_T_EHT_280,
5985 6765900, 0, 6390000, 5751000, 0, 6765900,
5986 0x54c},
5987 /* 1427 MCS-13 */ { EHT320_LDPC_ONLY_MASKS,
5988 DP_CMN_MOD_IEEE80211_T_EHT_280,
5989 7517700, 0, 7100099, 6390000, 0, 7517700,
5990 0x54d},
5991
5992 /* when number of spatial streams > 3 */
5993 /* 1428 MCS-14 */ { EHT320_LDPC_ONLY_MASKS,
5994 DP_CMN_MOD_IEEE80211_T_EHT_280,
5995 125200, 0, 118400, 106400, 0, 125200,
5996 0x56e},
5997 /* 1429 MCS-15 */ { EHT320_LDPC_ONLY_MASKS,
5998 DP_CMN_MOD_IEEE80211_T_EHT_280,
5999 250400, 0, 236800, 213200, 250400, 250400,
6000 0x56f},
6001 /* 1430 MCS-00 */ { EHT320_LDPC_ONLY_MASKS,
6002 DP_CMN_MOD_IEEE80211_T_EHT_280,
6003 501200, 0, 473200, 426000, 0, 501200,
6004 0x560},
6005 /* 1431 MCS-01 */ { EHT320_LDPC_ONLY_MASKS,
6006 DP_CMN_MOD_IEEE80211_T_EHT_280,
6007 1002400, 0, 946800, 852000, 0, 1002400,
6008 0x561},
6009 /* 1432 MCS-02 */ { EHT320_LDPC_ONLY_MASKS,
6010 DP_CMN_MOD_IEEE80211_T_EHT_280,
6011 1503600, 0, 1420000, 1278000, 0, 1503600,
6012 0x562},
6013 /* 1433 MCS-03 */ { EHT320_LDPC_ONLY_MASKS,
6014 DP_CMN_MOD_IEEE80211_T_EHT_280,
6015 2004800, 0, 1893200, 1704000, 0, 2004800,
6016 0x563},
6017 /* 1434 MCS-04 */ { EHT320_LDPC_ONLY_MASKS,
6018 DP_CMN_MOD_IEEE80211_T_EHT_280,
6019 3007200, 0, 2840000, 2556000, 0, 3007200,
6020 0x564},
6021 /* 1435 MCS-05 */ { EHT320_LDPC_ONLY_MASKS,
6022 DP_CMN_MOD_IEEE80211_T_EHT_280,
6023 4009600, 0, 3786800, 3408000, 0, 4009600,
6024 0x565},
6025 /* 1436 MCS-06 */ { EHT320_LDPC_ONLY_MASKS,
6026 DP_CMN_MOD_IEEE80211_T_EHT_280,
6027 4510400, 0, 4260000, 3834000, 0, 4510400,
6028 0x566},
6029 /* 1437 MCS-07 */ { EHT320_LDPC_ONLY_MASKS,
6030 DP_CMN_MOD_IEEE80211_T_EHT_280,
6031 5011600, 0, 4733200, 4260000, 0, 5011600,
6032 0x567},
6033 /* 1438 MCS-08 */ { EHT320_LDPC_ONLY_MASKS,
6034 DP_CMN_MOD_IEEE80211_T_EHT_280,
6035 6014000, 0, 5680000, 5112000, 0, 6014000,
6036 0x568},
6037 /* 1439 MCS-09 */ { EHT320_LDPC_ONLY_MASKS,
6038 DP_CMN_MOD_IEEE80211_T_EHT_280,
6039 6682400, 0, 6311200, 5680000, 0, 6682400,
6040 0x569},
6041 /* 1440 MCS-10 */ { EHT320_LDPC_ONLY_MASKS,
6042 DP_CMN_MOD_IEEE80211_T_EHT_280,
6043 7517600, 0, 7100000, 6390000, 0, 7517600,
6044 0x56a},
6045 /* 1441 MCS-11 */ { EHT320_LDPC_ONLY_MASKS,
6046 DP_CMN_MOD_IEEE80211_T_EHT_280,
6047 8352799, 0, 7888800, 7100000, 0, 8352799,
6048 0x56b},
6049 /* 1442 MCS-12 */ { EHT320_LDPC_ONLY_MASKS,
6050 DP_CMN_MOD_IEEE80211_T_EHT_280,
6051 9021200, 0, 8520000, 7668000, 0, 9021200,
6052 0x56c},
6053 /* 1443 MCS-13 */ { EHT320_LDPC_ONLY_MASKS,
6054 DP_CMN_MOD_IEEE80211_T_EHT_280,
6055 10023600, 0, 9466800, 8520000, 0, 10023600,
6056 0x56d},
6057
6058 /* 1444 MCS-14 */ { EHT320_LDPC_ONLY_MASKS,
6059 DP_CMN_MOD_IEEE80211_T_EHT_320,
6060 36000, 0, 34000, 30600, 0, 36000,
6061 0x50e},
6062 /* 1445 MCS-15 */ { EHT320_LDPC_ONLY_MASKS,
6063 DP_CMN_MOD_IEEE80211_T_EHT_320,
6064 72100, 0, 68100, 61300, 72100, 72100,
6065 0x50f},
6066 /* 1446 MCS-00 */ { EHT320_LDPC_ONLY_MASKS,
6067 DP_CMN_MOD_IEEE80211_T_EHT_320,
6068 144100, 0, 136100, 122500, 0, 144100,
6069 0x500},
6070 /* 1447 MCS-01 */ { EHT320_LDPC_ONLY_MASKS,
6071 DP_CMN_MOD_IEEE80211_T_EHT_320,
6072 288200, 0, 272200, 245000, 0, 288200,
6073 0x501},
6074 /* 1448 MCS-02 */ { EHT320_LDPC_ONLY_MASKS,
6075 DP_CMN_MOD_IEEE80211_T_EHT_320,
6076 432400, 0, 408300, 367500, 0, 432400,
6077 0x502},
6078 /* 1449 MCS-03 */ { EHT320_LDPC_ONLY_MASKS,
6079 DP_CMN_MOD_IEEE80211_T_EHT_320,
6080 576500, 0, 544400, 490000, 0, 576500,
6081 0x503},
6082 /* 1450 MCS-04 */ { EHT320_LDPC_ONLY_MASKS,
6083 DP_CMN_MOD_IEEE80211_T_EHT_320,
6084 864700, 0, 816700, 735000, 0, 864700,
6085 0x504},
6086 /* 1451 MCS-05 */ { EHT320_LDPC_ONLY_MASKS,
6087 DP_CMN_MOD_IEEE80211_T_EHT_320,
6088 1152900, 0, 1088900, 980000, 0, 1152900,
6089 0x505},
6090 /* 1452 MCS-06 */ { EHT320_LDPC_ONLY_MASKS,
6091 DP_CMN_MOD_IEEE80211_T_EHT_320,
6092 1297100, 0, 1225000, 1102500, 0, 1297100,
6093 0x506},
6094 /* 1453 MCS-07 */ { EHT320_LDPC_ONLY_MASKS,
6095 DP_CMN_MOD_IEEE80211_T_EHT_320,
6096 1441200, 0, 1361100, 1225000, 0, 1441200,
6097 0x507},
6098 /* 1454 MCS-08 */ { EHT320_LDPC_ONLY_MASKS,
6099 DP_CMN_MOD_IEEE80211_T_EHT_320,
6100 1729400, 0, 1633300, 1470000, 0, 1729400,
6101 0x508},
6102 /* 1455 MCS-09 */ { EHT320_LDPC_ONLY_MASKS,
6103 DP_CMN_MOD_IEEE80211_T_EHT_320,
6104 1921600, 0, 1814800, 1633300, 0, 1921600,
6105 0x509},
6106 /* 1456 MCS-10 */ { EHT320_LDPC_ONLY_MASKS,
6107 DP_CMN_MOD_IEEE80211_T_EHT_320,
6108 2161800, 0, 2041700, 1837500, 0, 2161800,
6109 0x50a},
6110 /* 1457 MCS-11 */ { EHT320_LDPC_ONLY_MASKS,
6111 DP_CMN_MOD_IEEE80211_T_EHT_320,
6112 2402000, 0, 2268500, 2041700, 0, 2402000,
6113 0x50b},
6114 /* 1458 MCS-12 */ { EHT320_LDPC_ONLY_MASKS,
6115 DP_CMN_MOD_IEEE80211_T_EHT_320,
6116 2594100, 0, 2450000, 2205000, 0, 2594100,
6117 0x50c},
6118 /* 1459 MCS-13 */ { EHT320_LDPC_ONLY_MASKS,
6119 DP_CMN_MOD_IEEE80211_T_EHT_320,
6120 2882400, 0, 2722200, 2450000, 0, 2882400,
6121 0x50d},
6122
6123 /* when number of spatial streams > 1 */
6124 /* 1460 MCS-14 */ { EHT320_LDPC_ONLY_MASKS,
6125 DP_CMN_MOD_IEEE80211_T_EHT_320,
6126 72000, 0, 68000, 61200, 0, 72000,
6127 0x52e},
6128 /* 1461 MCS-15 */ { EHT320_LDPC_ONLY_MASKS,
6129 DP_CMN_MOD_IEEE80211_T_EHT_320,
6130 144200, 0, 136200, 122600, 144200, 144200,
6131 0x52f},
6132 /* 1462 MCS-00 */ { EHT320_LDPC_ONLY_MASKS,
6133 DP_CMN_MOD_IEEE80211_T_EHT_320,
6134 288200, 0, 272200, 245000, 0, 288200,
6135 0x520},
6136 /* 1463 MCS-01 */ { EHT320_LDPC_ONLY_MASKS,
6137 DP_CMN_MOD_IEEE80211_T_EHT_320,
6138 576400, 0, 544400, 490000, 0, 576400,
6139 0x521},
6140 /* 1464 MCS-02 */ { EHT320_LDPC_ONLY_MASKS,
6141 DP_CMN_MOD_IEEE80211_T_EHT_320,
6142 864800, 0, 816600, 735000, 0, 864800,
6143 0x522},
6144 /* 1465 MCS-03 */ { EHT320_LDPC_ONLY_MASKS,
6145 DP_CMN_MOD_IEEE80211_T_EHT_320,
6146 1153000, 0, 1088800, 980000, 0, 1153000,
6147 0x523},
6148 /* 1466 MCS-04 */ { EHT320_LDPC_ONLY_MASKS,
6149 DP_CMN_MOD_IEEE80211_T_EHT_320,
6150 1729400, 0, 1633400, 1470000, 0, 1729400,
6151 0x524},
6152 /* 1467 MCS-05 */ { EHT320_LDPC_ONLY_MASKS,
6153 DP_CMN_MOD_IEEE80211_T_EHT_320,
6154 2305800, 0, 2177800, 1960000, 0, 2305800,
6155 0x525},
6156 /* 1468 MCS-06 */ { EHT320_LDPC_ONLY_MASKS,
6157 DP_CMN_MOD_IEEE80211_T_EHT_320,
6158 2594200, 0, 2450000, 2205000, 0, 2594200,
6159 0x526},
6160 /* 1469 MCS-07 */ { EHT320_LDPC_ONLY_MASKS,
6161 DP_CMN_MOD_IEEE80211_T_EHT_320,
6162 2882400, 0, 2722200, 2450000, 0, 2882400,
6163 0x527},
6164 /* 1470 MCS-08 */ { EHT320_LDPC_ONLY_MASKS,
6165 DP_CMN_MOD_IEEE80211_T_EHT_320,
6166 3458800, 0, 3266600, 2940000, 0, 3458800,
6167 0x528},
6168 /* 1471 MCS-09 */ { EHT320_LDPC_ONLY_MASKS,
6169 DP_CMN_MOD_IEEE80211_T_EHT_320,
6170 3843200, 0, 3629600, 3266600, 0, 3843200,
6171 0x529},
6172 /* 1472 MCS-10 */ { EHT320_LDPC_ONLY_MASKS,
6173 DP_CMN_MOD_IEEE80211_T_EHT_320,
6174 4323600, 0, 4083400, 3675000, 0, 4323600,
6175 0x52a},
6176 /* 1473 MCS-11 */ { EHT320_LDPC_ONLY_MASKS,
6177 DP_CMN_MOD_IEEE80211_T_EHT_320,
6178 4804000, 0, 4537000, 4083400, 0, 4804000,
6179 0x52b},
6180 /* 1474 MCS-12 */ { EHT320_LDPC_ONLY_MASKS,
6181 DP_CMN_MOD_IEEE80211_T_EHT_320,
6182 5188200, 0, 4900000, 4410000, 0, 5188200,
6183 0x52c},
6184 /* 1475 MCS-13 */ { EHT320_LDPC_ONLY_MASKS,
6185 DP_CMN_MOD_IEEE80211_T_EHT_320,
6186 5764800, 0, 5444400, 4900000, 0, 5764800,
6187 0x52d},
6188
6189 /* when number of spatial streams > 2 */
6190 /* 1476 MCS-14 */ { EHT320_LDPC_ONLY_MASKS,
6191 DP_CMN_MOD_IEEE80211_T_EHT_320,
6192 108000, 0, 102000, 91800, 0, 108000,
6193 0x54e},
6194 /* 1477 MCS-15 */ { EHT320_LDPC_ONLY_MASKS,
6195 DP_CMN_MOD_IEEE80211_T_EHT_320,
6196 216299, 0, 204299, 183900, 216299, 216299,
6197 0x54f},
6198 /* 1478 MCS-00 */ { EHT320_LDPC_ONLY_MASKS,
6199 DP_CMN_MOD_IEEE80211_T_EHT_320,
6200 432300, 0, 408300, 367500, 0, 432300,
6201 0x540},
6202 /* 1479 MCS-01 */ { EHT320_LDPC_ONLY_MASKS,
6203 DP_CMN_MOD_IEEE80211_T_EHT_320,
6204 864600, 0, 816600, 735000, 0, 864600,
6205 0x541},
6206 /* 1480 MCS-02 */ { EHT320_LDPC_ONLY_MASKS,
6207 DP_CMN_MOD_IEEE80211_T_EHT_320,
6208 1297200, 0, 1224900, 1102500, 0, 1297200,
6209 0x542},
6210 /* 1481 MCS-03 */ { EHT320_LDPC_ONLY_MASKS,
6211 DP_CMN_MOD_IEEE80211_T_EHT_320,
6212 1729500, 0, 1633200, 1470000, 0, 1729500,
6213 0x543},
6214 /* 1482 MCS-04 */ { EHT320_LDPC_ONLY_MASKS,
6215 DP_CMN_MOD_IEEE80211_T_EHT_320,
6216 2594100, 0, 2450100, 2205000, 0, 2594100,
6217 0x544},
6218 /* 1483 MCS-05 */ { EHT320_LDPC_ONLY_MASKS,
6219 DP_CMN_MOD_IEEE80211_T_EHT_320,
6220 3458700, 0, 3266700, 2940000, 0, 3458700,
6221 0x545},
6222 /* 1484 MCS-06 */ { EHT320_LDPC_ONLY_MASKS,
6223 DP_CMN_MOD_IEEE80211_T_EHT_320,
6224 3891299, 0, 3675000, 3307500, 0, 3891299,
6225 0x546},
6226 /* 1485 MCS-07 */ { EHT320_LDPC_ONLY_MASKS,
6227 DP_CMN_MOD_IEEE80211_T_EHT_320,
6228 4323600, 0, 4083299, 3675000, 0, 4323600,
6229 0x547},
6230 /* 1486 MCS-08 */ { EHT320_LDPC_ONLY_MASKS,
6231 DP_CMN_MOD_IEEE80211_T_EHT_320,
6232 5188200, 0, 4899900, 4410000, 0, 5188200,
6233 0x548},
6234 /* 1487 MCS-09 */ { EHT320_LDPC_ONLY_MASKS,
6235 DP_CMN_MOD_IEEE80211_T_EHT_320,
6236 5764800, 0, 5444400, 4899900, 0, 5764800,
6237 0x549},
6238 /* 1488 MCS-10 */ { EHT320_LDPC_ONLY_MASKS,
6239 DP_CMN_MOD_IEEE80211_T_EHT_320,
6240 6485400, 0, 6125100, 5512500, 0, 6485400,
6241 0x54a},
6242 /* 1489 MCS-11 */ { EHT320_LDPC_ONLY_MASKS,
6243 DP_CMN_MOD_IEEE80211_T_EHT_320,
6244 7206000, 0, 6805500, 6125100, 0, 7206000,
6245 0x54b},
6246 /* 1490 MCS-12 */ { EHT320_LDPC_ONLY_MASKS,
6247 DP_CMN_MOD_IEEE80211_T_EHT_320,
6248 7782300, 0, 7350000, 6615000, 0, 7782300,
6249 0x54c},
6250 /* 1491 MCS-13 */ { EHT320_LDPC_ONLY_MASKS,
6251 DP_CMN_MOD_IEEE80211_T_EHT_320,
6252 8647200, 0, 8166599, 7350000, 0, 8647200,
6253 0x54d},
6254
6255 /* when number of spatial streams > 3 */
6256 /* 1492 MCS-14 */ { EHT320_LDPC_ONLY_MASKS,
6257 DP_CMN_MOD_IEEE80211_T_EHT_320,
6258 144000, 0, 136000, 122400, 0, 144000,
6259 0x56e},
6260 /* 1493 MCS-15 */ { EHT320_LDPC_ONLY_MASKS,
6261 DP_CMN_MOD_IEEE80211_T_EHT_320,
6262 288400, 0, 272400, 245200, 288400, 288400,
6263 0x56f},
6264 /* 1494 MCS-00 */ { EHT320_LDPC_ONLY_MASKS,
6265 DP_CMN_MOD_IEEE80211_T_EHT_320,
6266 576400, 0, 544400, 490000, 0, 576400,
6267 0x560},
6268 /* 1495 MCS-01 */ { EHT320_LDPC_ONLY_MASKS,
6269 DP_CMN_MOD_IEEE80211_T_EHT_320,
6270 1152800, 0, 1088800, 980000, 0, 1152800,
6271 0x561},
6272 /* 1496 MCS-02 */ { EHT320_LDPC_ONLY_MASKS,
6273 DP_CMN_MOD_IEEE80211_T_EHT_320,
6274 1729600, 0, 1633200, 1470000, 0, 1729600,
6275 0x562},
6276 /* 1497 MCS-03 */ { EHT320_LDPC_ONLY_MASKS,
6277 DP_CMN_MOD_IEEE80211_T_EHT_320,
6278 2306000, 0, 2177600, 1960000, 0, 2306000,
6279 0x563},
6280 /* 1498 MCS-04 */ { EHT320_LDPC_ONLY_MASKS,
6281 DP_CMN_MOD_IEEE80211_T_EHT_320,
6282 3458800, 0, 3266800, 2940000, 0, 3458800,
6283 0x564},
6284 /* 1499 MCS-05 */ { EHT320_LDPC_ONLY_MASKS,
6285 DP_CMN_MOD_IEEE80211_T_EHT_320,
6286 4611600, 0, 4355600, 3920000, 0, 4611600,
6287 0x565},
6288 /* 1500 MCS-06 */ { EHT320_LDPC_ONLY_MASKS,
6289 DP_CMN_MOD_IEEE80211_T_EHT_320,
6290 5188400, 0, 4900000, 4410000, 0, 5188400,
6291 0x566},
6292 /* 1501 MCS-07 */ { EHT320_LDPC_ONLY_MASKS,
6293 DP_CMN_MOD_IEEE80211_T_EHT_320,
6294 5764800, 0, 5444400, 4900000, 0, 5764800,
6295 0x567},
6296 /* 1502 MCS-08 */ { EHT320_LDPC_ONLY_MASKS,
6297 DP_CMN_MOD_IEEE80211_T_EHT_320,
6298 6917600, 0, 6533200, 5880000, 0, 6917600,
6299 0x568},
6300 /* 1503 MCS-09 */ { EHT320_LDPC_ONLY_MASKS,
6301 DP_CMN_MOD_IEEE80211_T_EHT_320,
6302 7686400, 0, 7259200, 6533200, 0, 7686400,
6303 0x569},
6304 /* 1504 MCS-10 */ { EHT320_LDPC_ONLY_MASKS,
6305 DP_CMN_MOD_IEEE80211_T_EHT_320,
6306 8647200, 0, 8166800, 7350000, 0, 8647200,
6307 0x56a},
6308 /* 1505 MCS-11 */ { EHT320_LDPC_ONLY_MASKS,
6309 DP_CMN_MOD_IEEE80211_T_EHT_320,
6310 9608000, 0, 9074000, 8166800, 0, 9608000,
6311 0x56b},
6312 /* 1506 MCS-12 */ { EHT320_LDPC_ONLY_MASKS,
6313 DP_CMN_MOD_IEEE80211_T_EHT_320,
6314 10376400, 0, 9800000, 8820000, 0, 10376400,
6315 0x56c},
6316 /* 1507 MCS-13 */ { EHT320_LDPC_ONLY_MASKS,
6317 DP_CMN_MOD_IEEE80211_T_EHT_320,
6318 11529600, 0, 10888800, 9800000, 0, 11529600,
6319 0x56d}
6320 #endif /* WLAN_FEATURE_11BE */
6321 },
6322 };
6323
6324 static const uint16_t _rc_idx[DP_CMN_MOD_IEEE80211_T_MAX_PHY] = {
6325 CCK_RATE_TABLE_INDEX,
6326 OFDM_RATE_TABLE_INDEX,
6327 HT_20_RATE_TABLE_INDEX,
6328 HT_40_RATE_TABLE_INDEX,
6329 VHT_20_RATE_TABLE_INDEX,
6330 VHT_40_RATE_TABLE_INDEX,
6331 VHT_80_RATE_TABLE_INDEX,
6332 VHT_160_RATE_TABLE_INDEX,
6333 HE_20_RATE_TABLE_INDEX,
6334 HE_40_RATE_TABLE_INDEX,
6335 HE_80_RATE_TABLE_INDEX,
6336 HE_160_RATE_TABLE_INDEX,
6337 #ifdef WLAN_FEATURE_11BE
6338 EHT_20_RATE_TABLE_INDEX,
6339 EHT_40_RATE_TABLE_INDEX,
6340 EHT_60_RATE_TABLE_INDEX,
6341 EHT_80_RATE_TABLE_INDEX,
6342 EHT_120_RATE_TABLE_INDEX,
6343 EHT_140_RATE_TABLE_INDEX,
6344 EHT_160_RATE_TABLE_INDEX,
6345 EHT_200_RATE_TABLE_INDEX,
6346 EHT_240_RATE_TABLE_INDEX,
6347 EHT_280_RATE_TABLE_INDEX,
6348 EHT_320_RATE_TABLE_INDEX,
6349 #endif
6350 };
6351
6352 #ifdef WLAN_FEATURE_11BE
6353 static inline
dp_get_bw_fp_from_full_bw_pmode(uint8_t bw,uint8_t punc_mode)6354 enum BW_TYPES_FP dp_get_bw_fp_from_full_bw_pmode(uint8_t bw,
6355 uint8_t punc_mode)
6356 {
6357 CMN_DP_ASSERT(punc_mode < PUNCTURED_MODE_CNT);
6358
6359 switch (bw) {
6360 case CMN_BW_80MHZ:
6361 if (punc_mode == PUNCTURED_20MHZ)
6362 return BW_60MHZ_P;
6363 else
6364 return BW_80MHZ_F;
6365 case CMN_BW_160MHZ:
6366 if (punc_mode == PUNCTURED_40MHZ)
6367 return BW_120MHZ_P;
6368 else if (punc_mode == PUNCTURED_20MHZ)
6369 return BW_140MHZ_P;
6370 else
6371 return BW_160MHZ_F;
6372 case CMN_BW_320MHZ:
6373 if (punc_mode == PUNCTURED_120MHZ)
6374 return BW_200MHZ_P;
6375 else if (punc_mode == PUNCTURED_80MHZ)
6376 return BW_240MHZ_P;
6377 else if (punc_mode == PUNCTURED_40MHZ)
6378 return BW_280MHZ_P;
6379 else
6380 return BW_320MHZ_F;
6381 default:
6382 return (enum BW_TYPES_FP)bw;
6383 }
6384 }
6385 #endif
6386
6387 /*
6388 * dp_getmodulation - return rate modulation given code spatial width
6389 * @pream_type - preamble type
6390 * @width - bandwidth
6391 * @punc_mode - punctered bandwidth
6392 *
6393 * return - modulation type
6394 */
6395 #ifdef WLAN_FEATURE_11BE
dp_getmodulation(uint16_t pream_type,uint8_t width,uint8_t punc_mode)6396 enum DP_CMN_MODULATION_TYPE dp_getmodulation(uint16_t pream_type,
6397 uint8_t width,
6398 uint8_t punc_mode)
6399 {
6400 static const enum DP_CMN_MODULATION_TYPE _vht_bw_mod[] = {
6401 DP_CMN_MOD_IEEE80211_T_VHT_20,
6402 DP_CMN_MOD_IEEE80211_T_VHT_40,
6403 DP_CMN_MOD_IEEE80211_T_VHT_80,
6404 DP_CMN_MOD_IEEE80211_T_VHT_160
6405 };
6406
6407 static const enum DP_CMN_MODULATION_TYPE _he_bw_mod[] = {
6408 DP_CMN_MOD_IEEE80211_T_HE_20,
6409 DP_CMN_MOD_IEEE80211_T_HE_40,
6410 DP_CMN_MOD_IEEE80211_T_HE_80,
6411 DP_CMN_MOD_IEEE80211_T_HE_160
6412 };
6413
6414 static const enum DP_CMN_MODULATION_TYPE _eht_bw_mod[] = {
6415 DP_CMN_MOD_IEEE80211_T_EHT_20,
6416 DP_CMN_MOD_IEEE80211_T_EHT_40,
6417 DP_CMN_MOD_IEEE80211_T_EHT_60,
6418 DP_CMN_MOD_IEEE80211_T_EHT_80,
6419 DP_CMN_MOD_IEEE80211_T_EHT_120,
6420 DP_CMN_MOD_IEEE80211_T_EHT_140,
6421 DP_CMN_MOD_IEEE80211_T_EHT_160,
6422 DP_CMN_MOD_IEEE80211_T_EHT_200,
6423 DP_CMN_MOD_IEEE80211_T_EHT_240,
6424 DP_CMN_MOD_IEEE80211_T_EHT_280,
6425 DP_CMN_MOD_IEEE80211_T_EHT_320,
6426 };
6427
6428 enum DP_CMN_MODULATION_TYPE modulation;
6429
6430 CMN_DP_ASSERT(width < CMN_BW_CNT);
6431
6432 switch (pream_type) {
6433 case DP_CMN_RATECODE_PREAM_HT:
6434 if (width)
6435 modulation = DP_CMN_MOD_IEEE80211_T_HT_40;
6436 else
6437 modulation = DP_CMN_MOD_IEEE80211_T_HT_20;
6438 break;
6439
6440 case DP_CMN_RATECODE_PREAM_CCK:
6441 modulation = DP_CMN_MOD_IEEE80211_T_CCK;
6442 break;
6443
6444 case DP_CMN_RATECODE_PREAM_VHT:
6445 modulation = _vht_bw_mod[width];
6446 break;
6447
6448 case DP_CMN_RATECODE_PREAM_HE:
6449 modulation = _he_bw_mod[width];
6450 break;
6451
6452 case DP_CMN_RATECODE_PREAM_EHT:
6453 {
6454 enum BW_TYPES_FP bw_fp =
6455 dp_get_bw_fp_from_full_bw_pmode(width,
6456 punc_mode);
6457 modulation = _eht_bw_mod[bw_fp];
6458 break;
6459 }
6460
6461 default:
6462 modulation = DP_CMN_MOD_IEEE80211_T_OFDM;
6463 }
6464
6465 return modulation;
6466 }
6467 #else
dp_getmodulation(uint16_t pream_type,uint8_t width,uint8_t punc_mode)6468 enum DP_CMN_MODULATION_TYPE dp_getmodulation(uint16_t pream_type,
6469 uint8_t width,
6470 uint8_t punc_mode)
6471 {
6472 static const enum DP_CMN_MODULATION_TYPE _vht_bw_mod[] = {
6473 DP_CMN_MOD_IEEE80211_T_VHT_20,
6474 DP_CMN_MOD_IEEE80211_T_VHT_40,
6475 DP_CMN_MOD_IEEE80211_T_VHT_80,
6476 DP_CMN_MOD_IEEE80211_T_VHT_160
6477 };
6478
6479 static const enum DP_CMN_MODULATION_TYPE _he_bw_mod[] = {
6480 DP_CMN_MOD_IEEE80211_T_HE_20,
6481 DP_CMN_MOD_IEEE80211_T_HE_40,
6482 DP_CMN_MOD_IEEE80211_T_HE_80,
6483 DP_CMN_MOD_IEEE80211_T_HE_160
6484 };
6485
6486 enum DP_CMN_MODULATION_TYPE modulation;
6487
6488 CMN_DP_ASSERT(width < CMN_BW_CNT);
6489
6490 switch (pream_type) {
6491 case DP_CMN_RATECODE_PREAM_HT:
6492 if (width)
6493 modulation = DP_CMN_MOD_IEEE80211_T_HT_40;
6494 else
6495 modulation = DP_CMN_MOD_IEEE80211_T_HT_20;
6496 break;
6497
6498 case DP_CMN_RATECODE_PREAM_CCK:
6499 modulation = DP_CMN_MOD_IEEE80211_T_CCK;
6500 break;
6501
6502 case DP_CMN_RATECODE_PREAM_VHT:
6503 modulation = _vht_bw_mod[width];
6504 break;
6505
6506 case DP_CMN_RATECODE_PREAM_HE:
6507 modulation = _he_bw_mod[width];
6508 break;
6509
6510 default:
6511 modulation = DP_CMN_MOD_IEEE80211_T_OFDM;
6512 }
6513
6514 return modulation;
6515 }
6516 #endif /* WLAN_FEATURE_11BE */
6517
6518 /* dp_getrateindex - calculate ratekbps
6519 * @mcs - MCS index
6520 * @nss - NSS 1...8
6521 * preamble - preamble
6522 * @bw - Transmission Bandwidth
6523 * @rix: rate index to be populated
6524 * @ratecode: ratecode
6525 *
6526 * return - rate in kbps
6527 */
6528 #ifdef WLAN_FEATURE_11BE
6529 uint32_t
dp_getrateindex(uint32_t gi,uint16_t mcs,uint8_t nss,uint8_t preamble,uint8_t bw,uint8_t punc_bw,uint32_t * rix,uint16_t * ratecode)6530 dp_getrateindex(uint32_t gi, uint16_t mcs, uint8_t nss, uint8_t preamble,
6531 uint8_t bw, uint8_t punc_bw, uint32_t *rix, uint16_t *ratecode)
6532 {
6533 uint32_t ratekbps = 0, res = RT_INVALID_INDEX; /* represents failure */
6534 uint16_t rc;
6535 enum DP_CMN_MODULATION_TYPE mod;
6536
6537 /* For error case, where idx exceeds boundary limit */
6538 *ratecode = 0;
6539 mod = dp_getmodulation(preamble, bw, punc_bw);
6540 rc = mcs;
6541
6542 /* get the base of corresponding rate table entry */
6543 res = _rc_idx[mod];
6544
6545 switch (preamble) {
6546 case DP_CMN_RATECODE_PREAM_EHT:
6547 res += ((rc + 2) % NUM_EHT_MCS) + nss * NUM_EHT_MCS;
6548 break;
6549
6550 case DP_CMN_RATECODE_PREAM_HE:
6551 res += rc + nss * NUM_HE_MCS;
6552 break;
6553
6554 case DP_CMN_RATECODE_PREAM_VHT:
6555 res += rc + nss * NUM_VHT_MCS;
6556 break;
6557
6558 case DP_CMN_RATECODE_PREAM_HT:
6559 res += rc + nss * NUM_HT_MCS;
6560 break;
6561
6562 case DP_CMN_RATECODE_PREAM_CCK:
6563 rc &= ~HW_RATECODE_CCK_SHORT_PREAM_MASK;
6564 res += rc;
6565 break;
6566
6567 case DP_CMN_RATECODE_PREAM_OFDM:
6568 res += rc;
6569 break;
6570
6571 default:
6572 break;
6573 }
6574 if (res >= DP_RATE_TABLE_SIZE)
6575 goto done;
6576
6577 if (!gi) {
6578 ratekbps = dp_11abgnratetable.info[res].userratekbps;
6579 } else {
6580 switch (gi) {
6581 case CDP_SGI_0_4_US:
6582 ratekbps = dp_11abgnratetable.info[res].ratekbpssgi;
6583 break;
6584 case CDP_SGI_1_6_US:
6585 ratekbps = dp_11abgnratetable.info[res].ratekbpsdgi;
6586 break;
6587 case CDP_SGI_3_2_US:
6588 ratekbps = dp_11abgnratetable.info[res].ratekbpsqgi;
6589 break;
6590 }
6591 }
6592 *ratecode = dp_11abgnratetable.info[res].ratecode;
6593 done:
6594 *rix = res;
6595
6596 return ratekbps;
6597 }
6598 #else
6599 uint32_t
dp_getrateindex(uint32_t gi,uint16_t mcs,uint8_t nss,uint8_t preamble,uint8_t bw,uint8_t punc_bw,uint32_t * rix,uint16_t * ratecode)6600 dp_getrateindex(uint32_t gi, uint16_t mcs, uint8_t nss, uint8_t preamble,
6601 uint8_t bw, uint8_t punc_bw, uint32_t *rix, uint16_t *ratecode)
6602 {
6603 uint32_t ratekbps = 0, res = RT_INVALID_INDEX; /* represents failure */
6604 uint16_t rc;
6605 enum DP_CMN_MODULATION_TYPE mod;
6606
6607 /* For error case, where idx exceeds boundary limit */
6608 *ratecode = 0;
6609 mod = dp_getmodulation(preamble, bw, punc_bw);
6610 rc = mcs;
6611
6612 /* get the base of corresponding rate table entry */
6613 res = _rc_idx[mod];
6614
6615 switch (preamble) {
6616 case DP_CMN_RATECODE_PREAM_HE:
6617 res += rc + nss * NUM_HE_MCS;
6618 break;
6619
6620 case DP_CMN_RATECODE_PREAM_VHT:
6621 res += rc + nss * NUM_VHT_MCS;
6622 break;
6623
6624 case DP_CMN_RATECODE_PREAM_HT:
6625 res += rc + nss * NUM_HT_MCS;
6626 break;
6627
6628 case DP_CMN_RATECODE_PREAM_CCK:
6629 rc &= ~HW_RATECODE_CCK_SHORT_PREAM_MASK;
6630 res += rc;
6631 break;
6632
6633 case DP_CMN_RATECODE_PREAM_OFDM:
6634 res += rc;
6635 break;
6636
6637 default:
6638 break;
6639 }
6640 if (res >= DP_RATE_TABLE_SIZE)
6641 goto done;
6642
6643 if (!gi) {
6644 ratekbps = dp_11abgnratetable.info[res].userratekbps;
6645 } else {
6646 switch (gi) {
6647 case CDP_SGI_0_4_US:
6648 ratekbps = dp_11abgnratetable.info[res].ratekbpssgi;
6649 break;
6650 case CDP_SGI_1_6_US:
6651 ratekbps = dp_11abgnratetable.info[res].ratekbpsdgi;
6652 break;
6653 case CDP_SGI_3_2_US:
6654 ratekbps = dp_11abgnratetable.info[res].ratekbpsqgi;
6655 break;
6656 }
6657 }
6658 *ratecode = dp_11abgnratetable.info[res].ratecode;
6659 done:
6660 *rix = res;
6661
6662 return ratekbps;
6663 }
6664 #endif
6665 qdf_export_symbol(dp_getrateindex);
6666
6667 /* dp_rate_idx_to_kbps - get rate kbps from index
6668 * @rate_idx - rate index
6669 * @gintval - guard interval
6670 *
6671 * return - rate index in kbps with help of ratetable
6672 */
dp_rate_idx_to_kbps(uint8_t rate_idx,uint8_t gintval)6673 int dp_rate_idx_to_kbps(uint8_t rate_idx, uint8_t gintval)
6674 {
6675 if (rate_idx >= DP_RATE_TABLE_SIZE)
6676 return 0;
6677
6678 if (!gintval)
6679 return RT_GET_RAW_KBPS(&dp_11abgnratetable, rate_idx);
6680 else
6681 return RT_GET_SGI_KBPS(&dp_11abgnratetable, rate_idx);
6682 return 0;
6683 }
6684
6685 qdf_export_symbol(dp_rate_idx_to_kbps);
6686
6687 /* dp_get_start_index - get start index as per bw, mode and nss
6688 * @ch_width - channel bandwidth
6689 * @mode - operating mode
6690 * @nss - no. of spatial streams
6691 *
6692 * return - start index
6693 */
dp_get_start_index(int ch_width,int mode,int nss)6694 static int dp_get_start_index(int ch_width, int mode, int nss)
6695 {
6696 if (mode == HW_RATECODE_PREAM_HT) {
6697 if (nss >= NUM_HT_SPATIAL_STREAM)
6698 nss = NUM_HT_SPATIAL_STREAM;
6699
6700 if (ch_width == CMN_BW_20MHZ)
6701 return HT_20_RATE_TABLE_INDEX + (nss - 1) * NUM_HT_MCS;
6702 else if (ch_width == CMN_BW_40MHZ)
6703 return HT_40_RATE_TABLE_INDEX + (nss - 1) * NUM_HT_MCS;
6704 } else if (mode == HW_RATECODE_PREAM_VHT) {
6705 if (nss >= NUM_SPATIAL_STREAMS)
6706 nss = NUM_SPATIAL_STREAMS;
6707
6708 if (ch_width == CMN_BW_20MHZ) {
6709 return VHT_20_RATE_TABLE_INDEX + (nss - 1) * NUM_VHT_MCS;
6710 } else if (ch_width == CMN_BW_40MHZ) {
6711 return VHT_40_RATE_TABLE_INDEX + (nss - 1) * NUM_VHT_MCS;
6712 } else if (ch_width == CMN_BW_80MHZ) {
6713 return VHT_80_RATE_TABLE_INDEX + (nss - 1) * NUM_VHT_MCS;
6714 } else if ((ch_width == CMN_BW_160MHZ) ||
6715 (ch_width == CMN_BW_80_80MHZ)) {
6716 if (nss >= MAX_SPATIAL_STREAMS_SUPPORTED_AT_160MHZ)
6717 nss = MAX_SPATIAL_STREAMS_SUPPORTED_AT_160MHZ;
6718
6719 return VHT_160_RATE_TABLE_INDEX + (nss - 1) * NUM_VHT_MCS;
6720 }
6721 } else if (mode == HW_RATECODE_PREAM_HE) {
6722 if (nss >= NUM_SPATIAL_STREAMS)
6723 nss = NUM_SPATIAL_STREAMS;
6724
6725 if (ch_width == CMN_BW_20MHZ) {
6726 return HE_20_RATE_TABLE_INDEX + (nss - 1) * NUM_HE_MCS;
6727 } else if (ch_width == CMN_BW_40MHZ) {
6728 return HE_40_RATE_TABLE_INDEX + (nss - 1) * NUM_HE_MCS;
6729 } else if (ch_width == CMN_BW_80MHZ) {
6730 return HE_80_RATE_TABLE_INDEX + (nss - 1) * NUM_HE_MCS;
6731 } else if ((ch_width == CMN_BW_160MHZ) ||
6732 (ch_width == CMN_BW_80_80MHZ)) {
6733 if (nss >= MAX_SPATIAL_STREAMS_SUPPORTED_AT_160MHZ)
6734 nss = MAX_SPATIAL_STREAMS_SUPPORTED_AT_160MHZ;
6735
6736 return HE_160_RATE_TABLE_INDEX + (nss - 1) * NUM_HE_MCS;
6737 }
6738 }
6739
6740 return -1;
6741 }
6742
6743 /* dp_get_end_index - get end index as per bw, mode and nss
6744 * @ch_width - channel bandwidth
6745 * @mode - operating mode
6746 * @nss - no. of spatial streams
6747 *
6748 * return - end index
6749 */
dp_get_end_index(int ch_width,int mode,int nss)6750 static int dp_get_end_index(int ch_width, int mode, int nss)
6751 {
6752 if (mode == HW_RATECODE_PREAM_HT) {
6753 if (nss >= NUM_HT_SPATIAL_STREAM)
6754 nss = NUM_HT_SPATIAL_STREAM;
6755
6756 if (ch_width == CMN_BW_20MHZ)
6757 return HT_20_RATE_TABLE_INDEX + nss * NUM_HT_MCS - 1;
6758 else if (ch_width == CMN_BW_40MHZ)
6759 return HT_40_RATE_TABLE_INDEX + nss * NUM_HT_MCS - 1;
6760 } else if (mode == HW_RATECODE_PREAM_VHT) {
6761 if (nss >= NUM_SPATIAL_STREAMS)
6762 nss = NUM_SPATIAL_STREAMS;
6763
6764 if (ch_width == CMN_BW_20MHZ) {
6765 return VHT_20_RATE_TABLE_INDEX + nss * NUM_VHT_MCS - 1;
6766 } else if (ch_width == CMN_BW_40MHZ) {
6767 return VHT_40_RATE_TABLE_INDEX + nss * NUM_VHT_MCS - 1;
6768 } else if (ch_width == CMN_BW_80MHZ) {
6769 return VHT_80_RATE_TABLE_INDEX + nss * NUM_VHT_MCS - 1;
6770 } else if ((ch_width == CMN_BW_160MHZ) ||
6771 (ch_width == CMN_BW_80_80MHZ)) {
6772 if (nss >= MAX_SPATIAL_STREAMS_SUPPORTED_AT_160MHZ)
6773 nss = MAX_SPATIAL_STREAMS_SUPPORTED_AT_160MHZ;
6774
6775 return VHT_160_RATE_TABLE_INDEX + nss * NUM_VHT_MCS - 1;
6776 }
6777 } else if (mode == HW_RATECODE_PREAM_HE) {
6778 if (nss >= NUM_SPATIAL_STREAMS)
6779 nss = NUM_SPATIAL_STREAMS;
6780
6781 if (ch_width == CMN_BW_20MHZ) {
6782 return HE_20_RATE_TABLE_INDEX + nss * NUM_HE_MCS - 1;
6783 } else if (ch_width == CMN_BW_40MHZ) {
6784 return HE_40_RATE_TABLE_INDEX + nss * NUM_HE_MCS - 1;
6785 } else if (ch_width == CMN_BW_80MHZ) {
6786 return HE_80_RATE_TABLE_INDEX + nss * NUM_HE_MCS - 1;
6787 } else if ((ch_width == CMN_BW_160MHZ) ||
6788 (ch_width == CMN_BW_80_80MHZ)) {
6789 if (nss >= MAX_SPATIAL_STREAMS_SUPPORTED_AT_160MHZ)
6790 nss = MAX_SPATIAL_STREAMS_SUPPORTED_AT_160MHZ;
6791
6792 return HE_160_RATE_TABLE_INDEX + nss * NUM_HE_MCS - 1;
6793 }
6794 }
6795
6796 return -1;
6797 }
6798
6799 /* __dp_get_supported_rates - get supported rates as per start and end index
6800 * @shortgi - gi setting
6801 * @start_index - starting index
6802 * @end_index - ending index
6803 * @rates - array to copy the rates into
6804 *
6805 * return - no. of rate entries copied
6806 */
__dp_get_supported_rates(int shortgi,int start_index,int end_index,int ** rates)6807 static int __dp_get_supported_rates(int shortgi, int start_index,
6808 int end_index, int **rates)
6809 {
6810 int i, j = 1;
6811 int *ratelist = *rates;
6812
6813 /* Check if the index calculation is out of array bounds */
6814 if (start_index < 0 || start_index >= DP_RATE_TABLE_SIZE ||
6815 end_index < 0 || end_index >= DP_RATE_TABLE_SIZE)
6816 return 0;
6817
6818 if (!shortgi) {
6819 for (i = start_index; i <= end_index; i++) {
6820 if (dp_11abgnratetable.info[i].validmodemask) {
6821 ratelist[j] = dp_11abgnratetable.info[i].
6822 ratekbps;
6823 j++;
6824 }
6825 }
6826 } else {
6827 switch (shortgi) {
6828 case CDP_SGI_0_4_US:
6829 for (i = start_index; i <= end_index; i++) {
6830 if (dp_11abgnratetable.info[i].validmodemask) {
6831 ratelist[j] = dp_11abgnratetable.
6832 info[i].ratekbpssgi;
6833 j++;
6834 }
6835 }
6836 break;
6837
6838 case CDP_SGI_1_6_US:
6839 for (i = start_index; i <= end_index; i++) {
6840 if (dp_11abgnratetable.info[i].validmodemask) {
6841 ratelist[j] = dp_11abgnratetable.
6842 info[i].ratekbpsdgi;
6843 j++;
6844 }
6845 }
6846 break;
6847
6848 case CDP_SGI_3_2_US:
6849 for (i = start_index; i <= end_index; i++) {
6850 if (dp_11abgnratetable.info[i].validmodemask) {
6851 ratelist[j] = dp_11abgnratetable.
6852 info[i].ratekbpsqgi;
6853 j++;
6854 }
6855 }
6856 break;
6857 }
6858 }
6859
6860 ratelist[0] = j;
6861 return j;
6862 }
6863
6864 #if ALL_POSSIBLE_RATES_SUPPORTED
6865 /* dp_get_supported_rates -get all supported rates as per mode and gi setting
6866 * @mode - operating mode
6867 * @shortgi - gi setting
6868 * @rates - array to copy the rate entries into
6869 *
6870 * return - no. of rate entries copied
6871 */
dp_get_supported_rates(int mode,int shortgi,int ** rates)6872 int dp_get_supported_rates(int mode, int shortgi, int **rates)
6873 {
6874 int start_index = -1, end_index = -1;
6875
6876 switch (mode) {
6877 /* 11b CCK Rates */
6878 case CMN_IEEE80211_MODE_B:
6879 start_index = CCK_RATE_TABLE_INDEX;
6880 end_index = CCK_RATE_TABLE_END_INDEX;
6881 break;
6882
6883 /* 11a OFDM Rates */
6884 case CMN_IEEE80211_MODE_A:
6885 start_index = OFDM_RATE_TABLE_INDEX;
6886 end_index = OFDMA_RATE_TABLE_END_INDEX;
6887 break;
6888
6889 /* 11g CCK/OFDM Rates */
6890 case CMN_IEEE80211_MODE_G:
6891 start_index = CCK_RATE_TABLE_INDEX;
6892 end_index = OFDMA_RATE_TABLE_END_INDEX;
6893 break;
6894
6895 /* HT rates only */
6896 case CMN_IEEE80211_MODE_NA:
6897 case CMN_IEEE80211_MODE_NG:
6898 start_index = dp_get_start_index(CMN_BW_20MHZ,
6899 HW_RATECODE_PREAM_HT, 1);
6900 end_index = dp_get_end_index(CMN_BW_40MHZ,
6901 HW_RATECODE_PREAM_HT,
6902 NUM_HT_SPATIAL_STREAM);
6903 break;
6904
6905 /* VHT rates only */
6906 case CMN_IEEE80211_MODE_AC:
6907 start_index = dp_get_start_index(CMN_BW_20MHZ,
6908 HW_RATECODE_PREAM_VHT, 1);
6909 end_index = dp_get_end_index(CMN_BW_160MHZ,
6910 HW_RATECODE_PREAM_VHT,
6911 MAX_SPATIAL_STREAMS_SUPPORTED_AT_160MHZ);
6912 break;
6913
6914 /* HE rates only */
6915 case CMN_IEEE80211_MODE_AXA:
6916 case CMN_IEEE80211_MODE_AXG:
6917 start_index = dp_get_start_index(CMN_BW_20MHZ,
6918 HW_RATECODE_PREAM_HE, 1);
6919 end_index = dp_get_end_index(CMN_BW_160MHZ,
6920 HW_RATECODE_PREAM_HE,
6921 MAX_SPATIAL_STREAMS_SUPPORTED_AT_160MHZ);
6922 break;
6923 }
6924
6925 return __dp_get_supported_rates(shortgi, start_index, end_index, rates);
6926 }
6927 #else
6928 /* dp_get_supported_rates - get all supported rates as per mode, bw, gi and nss
6929 * @mode - operating mode
6930 * @shortgi - gi setting
6931 * @nss - no. of spatial streams
6932 * @ch_width - channel bandwidth
6933 * @rates - array to copy the rates into
6934 *
6935 * return - no. of rate entries copied
6936 */
dp_get_supported_rates(int mode,int shortgi,int nss,int ch_width,int ** rates)6937 int dp_get_supported_rates(int mode, int shortgi, int nss,
6938 int ch_width, int **rates)
6939 {
6940 int start_index = -1, end_index = -1;
6941
6942 switch (mode) {
6943 /* 11b CCK Rates */
6944 case CMN_IEEE80211_MODE_B:
6945 start_index = CCK_RATE_TABLE_INDEX;
6946 end_index = CCK_RATE_TABLE_END_INDEX;
6947 break;
6948
6949 /* 11a OFDM Rates */
6950 case CMN_IEEE80211_MODE_A:
6951 start_index = OFDM_RATE_TABLE_INDEX;
6952 end_index = OFDMA_RATE_TABLE_END_INDEX;
6953 break;
6954
6955 /* 11g CCK/OFDM Rates */
6956 case CMN_IEEE80211_MODE_G:
6957 start_index = CCK_RATE_TABLE_INDEX;
6958 end_index = OFDMA_RATE_TABLE_END_INDEX;
6959 break;
6960
6961 /* HT rates only */
6962 case CMN_IEEE80211_MODE_NA:
6963 case CMN_IEEE80211_MODE_NG:
6964 start_index = dp_get_start_index(ch_width,
6965 HW_RATECODE_PREAM_HT, nss);
6966 end_index = dp_get_end_index(ch_width,
6967 HW_RATECODE_PREAM_HT, nss);
6968 break;
6969
6970 /* VHT rates only */
6971 case CMN_IEEE80211_MODE_AC:
6972 start_index = dp_get_start_index(ch_width,
6973 HW_RATECODE_PREAM_VHT, nss);
6974 end_index = dp_get_end_index(ch_width,
6975 HW_RATECODE_PREAM_VHT, nss);
6976 break;
6977
6978 /* HE rates only */
6979 case CMN_IEEE80211_MODE_AXA:
6980 case CMN_IEEE80211_MODE_AXG:
6981 start_index = dp_get_start_index(ch_width,
6982 HW_RATECODE_PREAM_HE, nss);
6983 end_index = dp_get_end_index(ch_width,
6984 HW_RATECODE_PREAM_HE, nss);
6985 break;
6986 }
6987
6988 return __dp_get_supported_rates(shortgi, start_index, end_index, rates);
6989 }
6990 #endif
6991
6992 qdf_export_symbol(dp_get_supported_rates);
6993
6994 #if ALL_POSSIBLE_RATES_SUPPORTED
6995 /* dp_get_kbps_to_mcs - Identify the mcs value based on the rate
6996 * @kbps_rate - rate in kbps
6997 * @shortgi - gi setting
6998 * @htflag - The type of standard configured
6999 *
7000 * return - MCS value identified with help of the rate
7001 */
dp_get_kbps_to_mcs(int kbps_rate,int shortgi,int htflag)7002 int dp_get_kbps_to_mcs(int kbps_rate, int shortgi, int htflag)
7003 {
7004 int i = 0, nss = 0, num_mcs = NUM_LEGACY_MCS;
7005 int start_index = -1, end_index = -1;
7006 int ratekbpssgi = 0, ratekbps = 0;
7007
7008 /* Convert kbps to mbps for comparison */
7009 kbps_rate *= 1000;
7010
7011 switch (htflag) {
7012 /* 11b CCK Rates */
7013 case DP_11B_CCK_RATE:
7014 fallthrough;
7015 /* 11a OFDM Rates */
7016 case DP_11A_OFDM_RATE:
7017 fallthrough;
7018 /* 11g CCK/OFDM Rates */
7019 case DP_11G_CCK_OFDM_RATE:
7020 /* These rates dont have corresponding MCS, hence return 0 */
7021 return 0;
7022
7023 /* HT rates only */
7024 case DP_HT_RATE:
7025 nss = NUM_HT_SPATIAL_STREAM;
7026 start_index = dp_get_start_index(CMN_BW_20MHZ,
7027 HW_RATECODE_PREAM_HT, 1);
7028 end_index = dp_get_end_index(CMN_BW_40MHZ,
7029 HW_RATECODE_PREAM_HT, nss);
7030 num_mcs = NUM_HT_MCS;
7031 break;
7032
7033 /* VHT rates only */
7034 case DP_VHT_RATE:
7035 nss = MAX_SPATIAL_STREAMS_SUPPORTED_AT_160MHZ;
7036 start_index = dp_get_start_index(CMN_BW_20MHZ,
7037 HW_RATECODE_PREAM_VHT, 1);
7038 end_index = dp_get_end_index(CMN_BW_160MHZ,
7039 HW_RATECODE_PREAM_VHT, nss);
7040 num_mcs = NUM_VHT_MCS;
7041 break;
7042
7043 /* HE rates only */
7044 case DP_HE_RATE:
7045 nss = MAX_SPATIAL_STREAMS_SUPPORTED_AT_160MHZ;
7046 start_index = dp_get_start_index(CMN_BW_20MHZ,
7047 HW_RATECODE_PREAM_HE, 1);
7048 end_index = dp_get_end_index(CMN_BW_160MHZ,
7049 HW_RATECODE_PREAM_HE, nss);
7050 num_mcs = NUM_HE_MCS;
7051 break;
7052 }
7053
7054 /* Check if the index calculation is out of array bounds */
7055 if (start_index < 0 ||
7056 start_index >= DP_RATE_TABLE_SIZE ||
7057 end_index < 0 ||
7058 end_index >= DP_RATE_TABLE_SIZE) {
7059 return 0;
7060 }
7061
7062 if (shortgi) {
7063 i = OFDM_RATE_TABLE_INDEX;
7064 for ( ; i >= CCK_RATE_TABLE_INDEX; i--) {
7065 if (dp_11abgnratetable.info[i].validmodemask
7066 != HE_INVALID_RATES_MASK) {
7067 ratekbpssgi = RATE_ROUNDOUT(DP_RATEKBPS_SGI(i));
7068 if (ratekbpssgi == kbps_rate)
7069 return (i - start_index) % num_mcs;
7070 }
7071 }
7072
7073 /*
7074 * The below loop is to find the MCS value for the rate
7075 * passed which will be between:
7076 * For HT: 7200 and 600000 kbps
7077 * For VHT: 7200 and 4333300 kbps
7078 * For HE: 8900 and 5939400 kbps
7079 */
7080 for (i = end_index; i >= start_index; i--) {
7081 if (dp_11abgnratetable.info[i].validmodemask
7082 != HE_INVALID_RATES_MASK) {
7083 ratekbpssgi = RATE_ROUNDOUT(DP_RATEKBPS_SGI(i));
7084 if (ratekbpssgi == kbps_rate)
7085 return (i - start_index) % num_mcs;
7086 }
7087 }
7088
7089 /*
7090 * The below loop is to find the MCS value for the rate
7091 * passed which will be between:
7092 * For HT: 6500 and 540000 kbps
7093 * For VHT: 6500 and 3900000 kbps
7094 * For HE: 8600 and 5764700 kbps
7095 */
7096 for (i = end_index; i >= start_index; i--) {
7097 if (dp_11abgnratetable.info[i].validmodemask
7098 != HE_INVALID_RATES_MASK) {
7099 ratekbps = RATE_ROUNDOUT(DP_RATEKBPS(i));
7100 if (ratekbps == kbps_rate)
7101 return (i - start_index) % num_mcs;
7102 }
7103 }
7104 } else {
7105 i = OFDM_RATE_TABLE_INDEX;
7106 for ( ; i >= CCK_RATE_TABLE_INDEX; i--) {
7107 if (dp_11abgnratetable.info[i].validmodemask
7108 != HE_INVALID_RATES_MASK) {
7109 ratekbps = RATE_ROUNDOUT(DP_RATEKBPS(i));
7110 if (ratekbps == kbps_rate)
7111 return (i - start_index) % num_mcs;
7112 }
7113 }
7114
7115 /*
7116 * The below loop is to find the MCS value for the rate
7117 * passed which will be between:
7118 * For HT: 6500 and 540000 kbps
7119 * For VHT: 6500 and 3900000 kbps
7120 * For HE: 8600 and 5764700 kbps
7121 */
7122 for (i = end_index; i >= start_index; i--) {
7123 if (dp_11abgnratetable.info[i].validmodemask
7124 != HE_INVALID_RATES_MASK) {
7125 ratekbps = RATE_ROUNDOUT(DP_RATEKBPS(i));
7126 if (ratekbps == kbps_rate)
7127 return (i - start_index) % num_mcs;
7128 }
7129 }
7130 }
7131
7132 return INVALID_RATE_ERR;
7133 }
7134 #else
7135 /* dp_get_kbps_to_mcs - Identify the mcs value based on the rate
7136 * @kbps_rate - rate in kbps
7137 * @shortgi - gi setting
7138 * @htflag - The type of standard configured
7139 * @nss - no. of spatial streams
7140 * @ch_width - channel bandwidth
7141 *
7142 * return - MCS value identified with help of the rate
7143 */
7144 int dp_get_kbps_to_mcs(int kbps_rate, int shortgi, int htflag,
7145 int nss, int ch_width);
7146 {
7147 int i = 0, num_mcs = NUM_LEGACY_MCS;
7148 int start_index = -1, end_index = -1;
7149 int ratekbpssgi = 0, ratekbps = 0;
7150
7151 /* Convert kbps to mbps for comparison */
7152 kbps_rate *= 1000;
7153
7154 switch (htflag) {
7155 /* 11b CCK Rates */
7156 case DP_11B_CCK_RATE:
7157 start_index = CCK_RATE_TABLE_INDEX;
7158 end_index = CCK_RATE_TABLE_END_INDEX;
7159 break;
7160
7161 /* 11a OFDM Rates */
7162 case DP_11A_OFDM_RATE:
7163 start_index = OFDM_RATE_TABLE_INDEX;
7164 end_index = OFDMA_RATE_TABLE_END_INDEX;
7165 break;
7166
7167 /* 11g CCK/OFDM Rates */
7168 case DP_11G_CCK_OFDM_RATE:
7169 start_index = CCK_RATE_TABLE_INDEX;
7170 end_index = OFDMA_RATE_TABLE_END_INDEX;
7171 break;
7172
7173 /* HT rates only */
7174 case DP_HT_RATE:
7175 start_index = dp_get_start_index(ch_width,
7176 HW_RATECODE_PREAM_HT, nss);
7177 end_index = dp_get_end_index(ch_width,
7178 HW_RATECODE_PREAM_HT, nss);
7179 num_mcs = NUM_HT_MCS;
7180 break;
7181
7182 /* VHT rates only */
7183 case DP_VHT_RATE:
7184 start_index = dp_get_start_index(ch_width,
7185 HW_RATECODE_PREAM_VHT, nss);
7186 end_index = dp_get_end_index(ch_width,
7187 HW_RATECODE_PREAM_VHT, nss);
7188 num_mcs = NUM_VHT_MCS;
7189 break;
7190
7191 /* HE rates only */
7192 case DP_HE_RATE:
7193 start_index = dp_get_start_index(ch_width,
7194 HW_RATECODE_PREAM_HE, nss);
7195 end_index = dp_get_end_index(ch_width,
7196 HW_RATECODE_PREAM_HE, nss);
7197 num_mcs = NUM_HE_MCS;
7198 break;
7199 }
7200
7201 /* Check if the index calculation is out of array bounds */
7202 if (start_index < 0 ||
7203 start_index >= DP_RATE_TABLE_SIZE ||
7204 end_index < 0 ||
7205 end_index >= DP_RATE_TABLE_SIZE) {
7206 return 0;
7207 }
7208
7209 if (shortgi) {
7210 i = OFDM_RATE_TABLE_INDEX;
7211 for ( ; i >= CCK_RATE_TABLE_INDEX; i--) {
7212 if (dp_11abgnratetable.info[i].validmodemask
7213 != HE_INVALID_RATES_MASK) {
7214 ratekbpssgi = RATE_ROUNDOUT(DP_RATEKBPS_SGI(i));
7215 if (ratekbpssgi == kbps_rate)
7216 return (i - start_index) % num_mcs;
7217 }
7218 }
7219
7220 /*
7221 * The below loop is to find the MCS value for the rate
7222 * passed which will be between:
7223 * For HT: 7200 and 600000 kbps
7224 * For VHT: 7200 and 4333300 kbps
7225 * For HE: 8900 and 5939400 kbps
7226 * and is also based on the channel bandwidth and nss
7227 * passed.
7228 */
7229 for (i = end_index; i >= start_index; i--) {
7230 if (dp_11abgnratetable.info[i].validmodemask
7231 != HE_INVALID_RATES_MASK) {
7232 ratekbpssgi = RATE_ROUNDOUT(DP_RATEKBPS_SGI(i));
7233 if (ratekbpssgi == kbps_rate)
7234 return (i - start_index) % num_mcs;
7235 }
7236 }
7237
7238 /*
7239 * The below loop is to find the MCS value for the rate
7240 * passed which will be between:
7241 * For HT: 6500 and 540000 kbps
7242 * For VHT: 6500 and 3900000 kbps
7243 * For HE: 8600 and 5764700 kbps
7244 * and is also based on the channel bandwidth and nss
7245 * passed.
7246 */
7247 for (i = end_index; i >= start_index; i--) {
7248 if (dp_11abgnratetable.info[i].validmodemask
7249 != HE_INVALID_RATES_MASK) {
7250 ratekbps = RATE_ROUNDOUT(DP_RATEKBPS(i));
7251 if (ratekbps == kbps_rate)
7252 return (i - start_index) % num_mcs;
7253 }
7254 }
7255 } else {
7256 i = OFDM_RATE_TABLE_INDEX;
7257 for ( ; i >= CCK_RATE_TABLE_INDEX; i--) {
7258 if (dp_11abgnratetable.info[i].validmodemask
7259 != HE_INVALID_RATES_MASK) {
7260 ratekbps = RATE_ROUNDOUT(DP_RATEKBPS(i));
7261 if (ratekbps == kbps_rate)
7262 return (i - start_index) % num_mcs;
7263 }
7264 }
7265
7266 /*
7267 * The below loop is to find the MCS value for the rate
7268 * passed which will be between:
7269 * For HT: 6500 and 540000 kbps
7270 * For VHT: 6500 and 3900000 kbps
7271 * For HE: 8600 and 5764700 kbps
7272 * and is also based on the channel bandwidth and nss
7273 * passed.
7274 */
7275 for (i = end_index; i >= start_index; i--) {
7276 if (dp_11abgnratetable.info[i].validmodemask
7277 != HE_INVALID_RATES_MASK) {
7278 ratekbps = RATE_ROUNDOUT(DP_RATEKBPS(i));
7279 if (ratekbps == kbps_rate)
7280 return (i - start_index) % num_mcs;
7281 }
7282 }
7283 }
7284
7285 return INVALID_RATE_ERR;
7286 }
7287 #endif
7288
7289 qdf_export_symbol(dp_get_kbps_to_mcs);
7290