1 /* 2 * Copyright (c) 2016-2019, 2021 The Linux Foundation. All rights reserved. 3 * Copyright (c) 2022 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 adapation 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 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 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 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 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 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 */ 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 */ 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 */ 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 */ 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 */ 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 */ 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 */ 7002 int dp_get_kbps_to_mcs(int kbps_rate, int shortgi, int htflag) 7003 { 7004 int i = 0, nss = 0, num_mcs = 0; 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 start_index = CCK_RATE_TABLE_INDEX; 7015 end_index = CCK_RATE_TABLE_END_INDEX; 7016 break; 7017 7018 /* 11a OFDM Rates */ 7019 case DP_11A_OFDM_RATE: 7020 start_index = OFDM_RATE_TABLE_INDEX; 7021 end_index = OFDMA_RATE_TABLE_END_INDEX; 7022 break; 7023 7024 /* 11g CCK/OFDM Rates */ 7025 case DP_11G_CCK_OFDM_RATE: 7026 start_index = CCK_RATE_TABLE_INDEX; 7027 end_index = OFDMA_RATE_TABLE_END_INDEX; 7028 break; 7029 7030 /* HT rates only */ 7031 case DP_HT_RATE: 7032 nss = NUM_HT_SPATIAL_STREAM; 7033 start_index = dp_get_start_index(CMN_BW_20MHZ, 7034 HW_RATECODE_PREAM_HT, 1); 7035 end_index = dp_get_end_index(CMN_BW_40MHZ, 7036 HW_RATECODE_PREAM_HT, nss); 7037 num_mcs = NUM_HT_MCS; 7038 break; 7039 7040 /* VHT rates only */ 7041 case DP_VHT_RATE: 7042 nss = MAX_SPATIAL_STREAMS_SUPPORTED_AT_160MHZ; 7043 start_index = dp_get_start_index(CMN_BW_20MHZ, 7044 HW_RATECODE_PREAM_VHT, 1); 7045 end_index = dp_get_end_index(CMN_BW_160MHZ, 7046 HW_RATECODE_PREAM_VHT, nss); 7047 num_mcs = NUM_VHT_MCS; 7048 break; 7049 7050 /* HE rates only */ 7051 case DP_HE_RATE: 7052 nss = MAX_SPATIAL_STREAMS_SUPPORTED_AT_160MHZ; 7053 start_index = dp_get_start_index(CMN_BW_20MHZ, 7054 HW_RATECODE_PREAM_HE, 1); 7055 end_index = dp_get_end_index(CMN_BW_160MHZ, 7056 HW_RATECODE_PREAM_HE, nss); 7057 num_mcs = NUM_HE_MCS; 7058 break; 7059 } 7060 7061 /* Check if the index calculation is out of array bounds */ 7062 if (start_index < 0 || 7063 start_index >= DP_RATE_TABLE_SIZE || 7064 end_index < 0 || 7065 end_index >= DP_RATE_TABLE_SIZE) { 7066 return 0; 7067 } 7068 7069 if (shortgi) { 7070 i = OFDM_RATE_TABLE_INDEX; 7071 for ( ; i >= CCK_RATE_TABLE_INDEX; i--) { 7072 if (dp_11abgnratetable.info[i].validmodemask 7073 != HE_INVALID_RATES_MASK) { 7074 ratekbpssgi = RATE_ROUNDOUT(DP_RATEKBPS_SGI(i)); 7075 if (ratekbpssgi == kbps_rate) 7076 return (i - start_index) % num_mcs; 7077 } 7078 } 7079 7080 /* 7081 * The below loop is to find the MCS value for the rate 7082 * passed which will be between: 7083 * For HT: 7200 and 600000 kbps 7084 * For VHT: 7200 and 4333300 kbps 7085 * For HE: 8900 and 5939400 kbps 7086 */ 7087 for (i = end_index; i >= start_index; i--) { 7088 if (dp_11abgnratetable.info[i].validmodemask 7089 != HE_INVALID_RATES_MASK) { 7090 ratekbpssgi = RATE_ROUNDOUT(DP_RATEKBPS_SGI(i)); 7091 if (ratekbpssgi == kbps_rate) 7092 return (i - start_index) % num_mcs; 7093 } 7094 } 7095 7096 /* 7097 * The below loop is to find the MCS value for the rate 7098 * passed which will be between: 7099 * For HT: 6500 and 540000 kbps 7100 * For VHT: 6500 and 3900000 kbps 7101 * For HE: 8600 and 5764700 kbps 7102 */ 7103 for (i = end_index; i >= start_index; i--) { 7104 if (dp_11abgnratetable.info[i].validmodemask 7105 != HE_INVALID_RATES_MASK) { 7106 ratekbps = RATE_ROUNDOUT(DP_RATEKBPS(i)); 7107 if (ratekbps == kbps_rate) 7108 return (i - start_index) % num_mcs; 7109 } 7110 } 7111 } else { 7112 i = OFDM_RATE_TABLE_INDEX; 7113 for ( ; i >= CCK_RATE_TABLE_INDEX; i--) { 7114 if (dp_11abgnratetable.info[i].validmodemask 7115 != HE_INVALID_RATES_MASK) { 7116 ratekbps = RATE_ROUNDOUT(DP_RATEKBPS(i)); 7117 if (ratekbps == kbps_rate) 7118 return (i - start_index) % num_mcs; 7119 } 7120 } 7121 7122 /* 7123 * The below loop is to find the MCS value for the rate 7124 * passed which will be between: 7125 * For HT: 6500 and 540000 kbps 7126 * For VHT: 6500 and 3900000 kbps 7127 * For HE: 8600 and 5764700 kbps 7128 */ 7129 for (i = end_index; i >= start_index; i--) { 7130 if (dp_11abgnratetable.info[i].validmodemask 7131 != HE_INVALID_RATES_MASK) { 7132 ratekbps = RATE_ROUNDOUT(DP_RATEKBPS(i)); 7133 if (ratekbps == kbps_rate) 7134 return (i - start_index) % num_mcs; 7135 } 7136 } 7137 } 7138 7139 return INVALID_RATE_ERR; 7140 } 7141 #else 7142 /* dp_get_kbps_to_mcs - Identify the mcs value based on the rate 7143 * @kbps_rate - rate in kbps 7144 * @shortgi - gi setting 7145 * @htflag - The type of standard configured 7146 * @nss - no. of spatial streams 7147 * @ch_width - channel bandwidth 7148 * 7149 * return - MCS value identified with help of the rate 7150 */ 7151 int dp_get_kbps_to_mcs(int kbps_rate, int shortgi, int htflag, 7152 int nss, int ch_width); 7153 { 7154 int i = 0, num_mcs = 0; 7155 int start_index = -1, end_index = -1; 7156 int ratekbpssgi = 0, ratekbps = 0; 7157 7158 /* Convert kbps to mbps for comparison */ 7159 kbps_rate *= 1000; 7160 7161 switch (htflag) { 7162 /* 11b CCK Rates */ 7163 case DP_11B_CCK_RATE: 7164 start_index = CCK_RATE_TABLE_INDEX; 7165 end_index = CCK_RATE_TABLE_END_INDEX; 7166 break; 7167 7168 /* 11a OFDM Rates */ 7169 case DP_11A_OFDM_RATE: 7170 start_index = OFDM_RATE_TABLE_INDEX; 7171 end_index = OFDMA_RATE_TABLE_END_INDEX; 7172 break; 7173 7174 /* 11g CCK/OFDM Rates */ 7175 case DP_11G_CCK_OFDM_RATE: 7176 start_index = CCK_RATE_TABLE_INDEX; 7177 end_index = OFDMA_RATE_TABLE_END_INDEX; 7178 break; 7179 7180 /* HT rates only */ 7181 case DP_HT_RATE: 7182 start_index = dp_get_start_index(ch_width, 7183 HW_RATECODE_PREAM_HT, nss); 7184 end_index = dp_get_end_index(ch_width, 7185 HW_RATECODE_PREAM_HT, nss); 7186 num_mcs = NUM_HT_MCS; 7187 break; 7188 7189 /* VHT rates only */ 7190 case DP_VHT_RATE: 7191 start_index = dp_get_start_index(ch_width, 7192 HW_RATECODE_PREAM_VHT, nss); 7193 end_index = dp_get_end_index(ch_width, 7194 HW_RATECODE_PREAM_VHT, nss); 7195 num_mcs = NUM_VHT_MCS; 7196 break; 7197 7198 /* HE rates only */ 7199 case DP_HE_RATE: 7200 start_index = dp_get_start_index(ch_width, 7201 HW_RATECODE_PREAM_HE, nss); 7202 end_index = dp_get_end_index(ch_width, 7203 HW_RATECODE_PREAM_HE, nss); 7204 num_mcs = NUM_HE_MCS; 7205 break; 7206 } 7207 7208 /* Check if the index calculation is out of array bounds */ 7209 if (start_index < 0 || 7210 start_index >= DP_RATE_TABLE_SIZE || 7211 end_index < 0 || 7212 end_index >= DP_RATE_TABLE_SIZE) { 7213 return 0; 7214 } 7215 7216 if (shortgi) { 7217 i = OFDM_RATE_TABLE_INDEX; 7218 for ( ; i >= CCK_RATE_TABLE_INDEX; i--) { 7219 if (dp_11abgnratetable.info[i].validmodemask 7220 != HE_INVALID_RATES_MASK) { 7221 ratekbpssgi = RATE_ROUNDOUT(DP_RATEKBPS_SGI(i)); 7222 if (ratekbpssgi == kbps_rate) 7223 return (i - start_index) % num_mcs; 7224 } 7225 } 7226 7227 /* 7228 * The below loop is to find the MCS value for the rate 7229 * passed which will be between: 7230 * For HT: 7200 and 600000 kbps 7231 * For VHT: 7200 and 4333300 kbps 7232 * For HE: 8900 and 5939400 kbps 7233 * and is also based on the channel bandwidth and nss 7234 * passed. 7235 */ 7236 for (i = end_index; i >= start_index; i--) { 7237 if (dp_11abgnratetable.info[i].validmodemask 7238 != HE_INVALID_RATES_MASK) { 7239 ratekbpssgi = RATE_ROUNDOUT(DP_RATEKBPS_SGI(i)); 7240 if (ratekbpssgi == kbps_rate) 7241 return (i - start_index) % num_mcs; 7242 } 7243 } 7244 7245 /* 7246 * The below loop is to find the MCS value for the rate 7247 * passed which will be between: 7248 * For HT: 6500 and 540000 kbps 7249 * For VHT: 6500 and 3900000 kbps 7250 * For HE: 8600 and 5764700 kbps 7251 * and is also based on the channel bandwidth and nss 7252 * passed. 7253 */ 7254 for (i = end_index; i >= start_index; i--) { 7255 if (dp_11abgnratetable.info[i].validmodemask 7256 != HE_INVALID_RATES_MASK) { 7257 ratekbps = RATE_ROUNDOUT(DP_RATEKBPS(i)); 7258 if (ratekbps == kbps_rate) 7259 return (i - start_index) % num_mcs; 7260 } 7261 } 7262 } else { 7263 i = OFDM_RATE_TABLE_INDEX; 7264 for ( ; i >= CCK_RATE_TABLE_INDEX; i--) { 7265 if (dp_11abgnratetable.info[i].validmodemask 7266 != HE_INVALID_RATES_MASK) { 7267 ratekbps = RATE_ROUNDOUT(DP_RATEKBPS(i)); 7268 if (ratekbps == kbps_rate) 7269 return (i - start_index) % num_mcs; 7270 } 7271 } 7272 7273 /* 7274 * The below loop is to find the MCS value for the rate 7275 * passed which will be between: 7276 * For HT: 6500 and 540000 kbps 7277 * For VHT: 6500 and 3900000 kbps 7278 * For HE: 8600 and 5764700 kbps 7279 * and is also based on the channel bandwidth and nss 7280 * passed. 7281 */ 7282 for (i = end_index; i >= start_index; i--) { 7283 if (dp_11abgnratetable.info[i].validmodemask 7284 != HE_INVALID_RATES_MASK) { 7285 ratekbps = RATE_ROUNDOUT(DP_RATEKBPS(i)); 7286 if (ratekbps == kbps_rate) 7287 return (i - start_index) % num_mcs; 7288 } 7289 } 7290 } 7291 7292 return INVALID_RATE_ERR; 7293 } 7294 #endif 7295 7296 qdf_export_symbol(dp_get_kbps_to_mcs); 7297