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