| /* |
| * Indices for 802.11 a/b/g/n/ac 1-3 chain symmetric transmit rates |
| * |
| * Copyright (C) 2020, Broadcom. |
| * |
| * Unless you and Broadcom execute a separate written software license |
| * agreement governing use of this software, this software is licensed to you |
| * under the terms of the GNU General Public License version 2 (the "GPL"), |
| * available at http://www.broadcom.com/licenses/GPLv2.php, with the |
| * following added to such license: |
| * |
| * As a special exception, the copyright holders of this software give you |
| * permission to link this software with independent modules, and to copy and |
| * distribute the resulting executable under terms of your choice, provided that |
| * you also meet, for each linked independent module, the terms and conditions of |
| * the license of that module. An independent module is a module which is not |
| * derived from this software. The special exception does not apply to any |
| * modifications of the software. |
| * |
| * |
| * <<Broadcom-WL-IPTag/Dual:>> |
| */ |
| |
| #ifndef _bcmwifi_rates_h_ |
| #define _bcmwifi_rates_h_ |
| |
| #include <typedefs.h> |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif /* __cplusplus */ |
| |
| #define WL_RATESET_SZ_DSSS 4 |
| #define WL_RATESET_SZ_OFDM 8 |
| #define WL_RATESET_SZ_VHT_MCS 10 |
| #define WL_RATESET_SZ_VHT_MCS_P 12 /* 10 VHT rates + 2 proprietary rates */ |
| #define WL_RATESET_SZ_HE_MCS 12 /* 12 HE rates (mcs 0-11) */ |
| |
| typedef enum wl_he_rates { |
| HE_RATE_MCS0 = 0, |
| HE_RATE_MCS1, |
| HE_RATE_MCS2, |
| HE_RATE_MCS3, |
| HE_RATE_MCS4, |
| HE_RATE_MCS5, |
| HE_RATE_MCS6, |
| HE_RATE_MCS7, |
| HE_RATE_MCS8, |
| HE_RATE_MCS9, |
| HE_RATE_MCS10, |
| HE_RATE_MCS11 |
| } wl_he_rates_t; |
| |
| #define WL_RATESET_SZ_HT_MCS 8 |
| |
| #define WL_RATESET_SZ_HT_IOCTL 8 /* MAC histogram, compatibility with wl utility */ |
| |
| #define WL_TX_CHAINS_MAX 4 |
| |
| #define WL_RATE_DISABLED (-128) /* Power value corresponding to unsupported rate */ |
| |
| /* Transmit channel bandwidths */ |
| typedef enum wl_tx_bw { |
| WL_TX_BW_20, |
| WL_TX_BW_40, |
| WL_TX_BW_80, |
| WL_TX_BW_20IN40, |
| WL_TX_BW_20IN80, |
| WL_TX_BW_40IN80, |
| WL_TX_BW_160, |
| WL_TX_BW_20IN160, |
| WL_TX_BW_40IN160, |
| WL_TX_BW_80IN160, |
| WL_TX_BW_ALL |
| } wl_tx_bw_t; |
| |
| /* |
| * Transmit modes. |
| * Not all modes are listed here, only those required for disambiguation. e.g. SPEXP is not listed |
| */ |
| typedef enum wl_tx_mode { |
| WL_TX_MODE_NONE, |
| WL_TX_MODE_STBC, |
| WL_TX_MODE_CDD, |
| WL_TX_MODE_TXBF, |
| WL_NUM_TX_MODES |
| } wl_tx_mode_t; |
| |
| /* Number of transmit chains */ |
| typedef enum wl_tx_chains { |
| WL_TX_CHAINS_1 = 1, |
| WL_TX_CHAINS_2, |
| WL_TX_CHAINS_3, |
| WL_TX_CHAINS_4 |
| } wl_tx_chains_t; |
| |
| /* Number of transmit streams */ |
| typedef enum wl_tx_nss { |
| WL_TX_NSS_1 = 1, |
| WL_TX_NSS_2, |
| WL_TX_NSS_3, |
| WL_TX_NSS_4 |
| } wl_tx_nss_t; |
| |
| /* 802.11ax rate types */ |
| typedef enum wl_he_rate_type { |
| WL_HE_RT_SU = 0, |
| WL_HE_RT_RU26 = 1, |
| WL_HE_RT_RU52 = 2, |
| WL_HE_RT_RU106 = 3, |
| WL_HE_RT_UB = 4, |
| WL_HE_RT_LUB = 5, |
| WL_HE_RT_RU242 = 6, |
| WL_HE_RT_RU484 = 7, |
| WL_HE_RT_RU996 = 8 |
| } wl_he_rate_type_t; |
| |
| #define WL_NUM_HE_RT 9u |
| |
| /* This enum maps each rate to a CLM index |
| * 802.11ax OFDMA (RU) rates are in separate enum |
| */ |
| |
| typedef enum clm_rates { |
| /************ |
| * 1 chain * |
| ************ |
| */ |
| |
| /* 1 Stream */ |
| WL_RATE_1X1_DSSS_1 = 0, |
| WL_RATE_1X1_DSSS_2 = 1, |
| WL_RATE_1X1_DSSS_5_5 = 2, |
| WL_RATE_1X1_DSSS_11 = 3, |
| |
| WL_RATE_1X1_OFDM_6 = 4, |
| WL_RATE_1X1_OFDM_9 = 5, |
| WL_RATE_1X1_OFDM_12 = 6, |
| WL_RATE_1X1_OFDM_18 = 7, |
| WL_RATE_1X1_OFDM_24 = 8, |
| WL_RATE_1X1_OFDM_36 = 9, |
| WL_RATE_1X1_OFDM_48 = 10, |
| WL_RATE_1X1_OFDM_54 = 11, |
| |
| WL_RATE_1X1_MCS0 = 12, |
| WL_RATE_1X1_MCS1 = 13, |
| WL_RATE_1X1_MCS2 = 14, |
| WL_RATE_1X1_MCS3 = 15, |
| WL_RATE_1X1_MCS4 = 16, |
| WL_RATE_1X1_MCS5 = 17, |
| WL_RATE_1X1_MCS6 = 18, |
| WL_RATE_1X1_MCS7 = 19, |
| WL_RATE_P_1X1_MCS87 = 20, |
| WL_RATE_P_1X1_MCS88 = 21, |
| |
| WL_RATE_1X1_VHT0SS1 = 12, |
| WL_RATE_1X1_VHT1SS1 = 13, |
| WL_RATE_1X1_VHT2SS1 = 14, |
| WL_RATE_1X1_VHT3SS1 = 15, |
| WL_RATE_1X1_VHT4SS1 = 16, |
| WL_RATE_1X1_VHT5SS1 = 17, |
| WL_RATE_1X1_VHT6SS1 = 18, |
| WL_RATE_1X1_VHT7SS1 = 19, |
| WL_RATE_1X1_VHT8SS1 = 20, |
| WL_RATE_1X1_VHT9SS1 = 21, |
| WL_RATE_P_1X1_VHT10SS1 = 22, |
| WL_RATE_P_1X1_VHT11SS1 = 23, |
| |
| WL_RATE_1X1_HE0SS1 = 24, |
| WL_RATE_1X1_HE1SS1 = 25, |
| WL_RATE_1X1_HE2SS1 = 26, |
| WL_RATE_1X1_HE3SS1 = 27, |
| WL_RATE_1X1_HE4SS1 = 28, |
| WL_RATE_1X1_HE5SS1 = 29, |
| WL_RATE_1X1_HE6SS1 = 30, |
| WL_RATE_1X1_HE7SS1 = 31, |
| WL_RATE_1X1_HE8SS1 = 32, |
| WL_RATE_1X1_HE9SS1 = 33, |
| WL_RATE_1X1_HE10SS1 = 34, |
| WL_RATE_1X1_HE11SS1 = 35, |
| |
| /************ |
| * 2 chains * |
| ************ |
| */ |
| |
| /* 1 Stream expanded + 1 */ |
| WL_RATE_1X2_DSSS_1 = 36, |
| WL_RATE_1X2_DSSS_2 = 37, |
| WL_RATE_1X2_DSSS_5_5 = 38, |
| WL_RATE_1X2_DSSS_11 = 39, |
| |
| WL_RATE_1X2_CDD_OFDM_6 = 40, |
| WL_RATE_1X2_CDD_OFDM_9 = 41, |
| WL_RATE_1X2_CDD_OFDM_12 = 42, |
| WL_RATE_1X2_CDD_OFDM_18 = 43, |
| WL_RATE_1X2_CDD_OFDM_24 = 44, |
| WL_RATE_1X2_CDD_OFDM_36 = 45, |
| WL_RATE_1X2_CDD_OFDM_48 = 46, |
| WL_RATE_1X2_CDD_OFDM_54 = 47, |
| |
| WL_RATE_1X2_CDD_MCS0 = 48, |
| WL_RATE_1X2_CDD_MCS1 = 49, |
| WL_RATE_1X2_CDD_MCS2 = 50, |
| WL_RATE_1X2_CDD_MCS3 = 51, |
| WL_RATE_1X2_CDD_MCS4 = 52, |
| WL_RATE_1X2_CDD_MCS5 = 53, |
| WL_RATE_1X2_CDD_MCS6 = 54, |
| WL_RATE_1X2_CDD_MCS7 = 55, |
| WL_RATE_P_1X2_CDD_MCS87 = 56, |
| WL_RATE_P_1X2_CDD_MCS88 = 57, |
| |
| WL_RATE_1X2_VHT0SS1 = 48, |
| WL_RATE_1X2_VHT1SS1 = 49, |
| WL_RATE_1X2_VHT2SS1 = 50, |
| WL_RATE_1X2_VHT3SS1 = 51, |
| WL_RATE_1X2_VHT4SS1 = 52, |
| WL_RATE_1X2_VHT5SS1 = 53, |
| WL_RATE_1X2_VHT6SS1 = 54, |
| WL_RATE_1X2_VHT7SS1 = 55, |
| WL_RATE_1X2_VHT8SS1 = 56, |
| WL_RATE_1X2_VHT9SS1 = 57, |
| WL_RATE_P_1X2_VHT10SS1 = 58, |
| WL_RATE_P_1X2_VHT11SS1 = 59, |
| |
| WL_RATE_1X2_HE0SS1 = 60, |
| WL_RATE_1X2_HE1SS1 = 61, |
| WL_RATE_1X2_HE2SS1 = 62, |
| WL_RATE_1X2_HE3SS1 = 63, |
| WL_RATE_1X2_HE4SS1 = 64, |
| WL_RATE_1X2_HE5SS1 = 65, |
| WL_RATE_1X2_HE6SS1 = 66, |
| WL_RATE_1X2_HE7SS1 = 67, |
| WL_RATE_1X2_HE8SS1 = 68, |
| WL_RATE_1X2_HE9SS1 = 69, |
| WL_RATE_1X2_HE10SS1 = 70, |
| WL_RATE_1X2_HE11SS1 = 71, |
| |
| /* 2 Streams */ |
| WL_RATE_2X2_STBC_MCS0 = 72, |
| WL_RATE_2X2_STBC_MCS1 = 73, |
| WL_RATE_2X2_STBC_MCS2 = 74, |
| WL_RATE_2X2_STBC_MCS3 = 75, |
| WL_RATE_2X2_STBC_MCS4 = 76, |
| WL_RATE_2X2_STBC_MCS5 = 77, |
| WL_RATE_2X2_STBC_MCS6 = 78, |
| WL_RATE_2X2_STBC_MCS7 = 79, |
| WL_RATE_P_2X2_STBC_MCS87 = 80, |
| WL_RATE_P_2X2_STBC_MCS88 = 81, |
| |
| WL_RATE_2X2_STBC_VHT0SS1 = 72, |
| WL_RATE_2X2_STBC_VHT1SS1 = 73, |
| WL_RATE_2X2_STBC_VHT2SS1 = 74, |
| WL_RATE_2X2_STBC_VHT3SS1 = 75, |
| WL_RATE_2X2_STBC_VHT4SS1 = 76, |
| WL_RATE_2X2_STBC_VHT5SS1 = 77, |
| WL_RATE_2X2_STBC_VHT6SS1 = 78, |
| WL_RATE_2X2_STBC_VHT7SS1 = 79, |
| WL_RATE_2X2_STBC_VHT8SS1 = 80, |
| WL_RATE_2X2_STBC_VHT9SS1 = 81, |
| WL_RATE_P_2X2_STBC_VHT10SS1 = 82, |
| WL_RATE_P_2X2_STBC_VHT11SS1 = 83, |
| |
| WL_RATE_2X2_SDM_MCS8 = 84, |
| WL_RATE_2X2_SDM_MCS9 = 85, |
| WL_RATE_2X2_SDM_MCS10 = 86, |
| WL_RATE_2X2_SDM_MCS11 = 87, |
| WL_RATE_2X2_SDM_MCS12 = 88, |
| WL_RATE_2X2_SDM_MCS13 = 89, |
| WL_RATE_2X2_SDM_MCS14 = 90, |
| WL_RATE_2X2_SDM_MCS15 = 91, |
| WL_RATE_P_2X2_SDM_MCS99 = 92, |
| WL_RATE_P_2X2_SDM_MCS100 = 93, |
| |
| WL_RATE_2X2_VHT0SS2 = 84, |
| WL_RATE_2X2_VHT1SS2 = 85, |
| WL_RATE_2X2_VHT2SS2 = 86, |
| WL_RATE_2X2_VHT3SS2 = 87, |
| WL_RATE_2X2_VHT4SS2 = 88, |
| WL_RATE_2X2_VHT5SS2 = 89, |
| WL_RATE_2X2_VHT6SS2 = 90, |
| WL_RATE_2X2_VHT7SS2 = 91, |
| WL_RATE_2X2_VHT8SS2 = 92, |
| WL_RATE_2X2_VHT9SS2 = 93, |
| WL_RATE_P_2X2_VHT10SS2 = 94, |
| WL_RATE_P_2X2_VHT11SS2 = 95, |
| |
| WL_RATE_2X2_HE0SS2 = 96, |
| WL_RATE_2X2_HE1SS2 = 97, |
| WL_RATE_2X2_HE2SS2 = 98, |
| WL_RATE_2X2_HE3SS2 = 99, |
| WL_RATE_2X2_HE4SS2 = 100, |
| WL_RATE_2X2_HE5SS2 = 101, |
| WL_RATE_2X2_HE6SS2 = 102, |
| WL_RATE_2X2_HE7SS2 = 103, |
| WL_RATE_2X2_HE8SS2 = 104, |
| WL_RATE_2X2_HE9SS2 = 105, |
| WL_RATE_2X2_HE10SS2 = 106, |
| WL_RATE_2X2_HE11SS2 = 107, |
| |
| /**************************** |
| * TX Beamforming, 2 chains * |
| **************************** |
| */ |
| |
| /* 1 Stream expanded + 1 */ |
| WL_RATE_1X2_TXBF_OFDM_6 = 108, |
| WL_RATE_1X2_TXBF_OFDM_9 = 109, |
| WL_RATE_1X2_TXBF_OFDM_12 = 110, |
| WL_RATE_1X2_TXBF_OFDM_18 = 111, |
| WL_RATE_1X2_TXBF_OFDM_24 = 112, |
| WL_RATE_1X2_TXBF_OFDM_36 = 113, |
| WL_RATE_1X2_TXBF_OFDM_48 = 114, |
| WL_RATE_1X2_TXBF_OFDM_54 = 115, |
| |
| WL_RATE_1X2_TXBF_MCS0 = 116, |
| WL_RATE_1X2_TXBF_MCS1 = 117, |
| WL_RATE_1X2_TXBF_MCS2 = 118, |
| WL_RATE_1X2_TXBF_MCS3 = 119, |
| WL_RATE_1X2_TXBF_MCS4 = 120, |
| WL_RATE_1X2_TXBF_MCS5 = 121, |
| WL_RATE_1X2_TXBF_MCS6 = 122, |
| WL_RATE_1X2_TXBF_MCS7 = 123, |
| WL_RATE_P_1X2_TXBF_MCS87 = 124, |
| WL_RATE_P_1X2_TXBF_MCS88 = 125, |
| |
| WL_RATE_1X2_TXBF_VHT0SS1 = 116, |
| WL_RATE_1X2_TXBF_VHT1SS1 = 117, |
| WL_RATE_1X2_TXBF_VHT2SS1 = 118, |
| WL_RATE_1X2_TXBF_VHT3SS1 = 119, |
| WL_RATE_1X2_TXBF_VHT4SS1 = 120, |
| WL_RATE_1X2_TXBF_VHT5SS1 = 121, |
| WL_RATE_1X2_TXBF_VHT6SS1 = 122, |
| WL_RATE_1X2_TXBF_VHT7SS1 = 123, |
| WL_RATE_1X2_TXBF_VHT8SS1 = 124, |
| WL_RATE_1X2_TXBF_VHT9SS1 = 125, |
| WL_RATE_P_1X2_TXBF_VHT10SS1 = 126, |
| WL_RATE_P_1X2_TXBF_VHT11SS1 = 127, |
| |
| WL_RATE_1X2_TXBF_HE0SS1 = 128, |
| WL_RATE_1X2_TXBF_HE1SS1 = 129, |
| WL_RATE_1X2_TXBF_HE2SS1 = 130, |
| WL_RATE_1X2_TXBF_HE3SS1 = 131, |
| WL_RATE_1X2_TXBF_HE4SS1 = 132, |
| WL_RATE_1X2_TXBF_HE5SS1 = 133, |
| WL_RATE_1X2_TXBF_HE6SS1 = 134, |
| WL_RATE_1X2_TXBF_HE7SS1 = 135, |
| WL_RATE_1X2_TXBF_HE8SS1 = 136, |
| WL_RATE_1X2_TXBF_HE9SS1 = 137, |
| WL_RATE_1X2_TXBF_HE10SS1 = 138, |
| WL_RATE_1X2_TXBF_HE11SS1 = 139, |
| |
| /* 2 Streams */ |
| WL_RATE_2X2_TXBF_SDM_MCS8 = 140, |
| WL_RATE_2X2_TXBF_SDM_MCS9 = 141, |
| WL_RATE_2X2_TXBF_SDM_MCS10 = 142, |
| WL_RATE_2X2_TXBF_SDM_MCS11 = 143, |
| WL_RATE_2X2_TXBF_SDM_MCS12 = 144, |
| WL_RATE_2X2_TXBF_SDM_MCS13 = 145, |
| WL_RATE_2X2_TXBF_SDM_MCS14 = 146, |
| WL_RATE_2X2_TXBF_SDM_MCS15 = 147, |
| WL_RATE_P_2X2_TXBF_SDM_MCS99 = 148, |
| WL_RATE_P_2X2_TXBF_SDM_MCS100 = 149, |
| |
| WL_RATE_2X2_TXBF_VHT0SS2 = 140, |
| WL_RATE_2X2_TXBF_VHT1SS2 = 141, |
| WL_RATE_2X2_TXBF_VHT2SS2 = 142, |
| WL_RATE_2X2_TXBF_VHT3SS2 = 143, |
| WL_RATE_2X2_TXBF_VHT4SS2 = 144, |
| WL_RATE_2X2_TXBF_VHT5SS2 = 145, |
| WL_RATE_2X2_TXBF_VHT6SS2 = 146, |
| WL_RATE_2X2_TXBF_VHT7SS2 = 147, |
| WL_RATE_2X2_TXBF_VHT8SS2 = 148, |
| WL_RATE_2X2_TXBF_VHT9SS2 = 149, |
| WL_RATE_P_2X2_TXBF_VHT10SS2 = 150, |
| WL_RATE_P_2X2_TXBF_VHT11SS2 = 151, |
| |
| WL_RATE_2X2_TXBF_HE0SS2 = 152, |
| WL_RATE_2X2_TXBF_HE1SS2 = 153, |
| WL_RATE_2X2_TXBF_HE2SS2 = 154, |
| WL_RATE_2X2_TXBF_HE3SS2 = 155, |
| WL_RATE_2X2_TXBF_HE4SS2 = 156, |
| WL_RATE_2X2_TXBF_HE5SS2 = 157, |
| WL_RATE_2X2_TXBF_HE6SS2 = 158, |
| WL_RATE_2X2_TXBF_HE7SS2 = 159, |
| WL_RATE_2X2_TXBF_HE8SS2 = 160, |
| WL_RATE_2X2_TXBF_HE9SS2 = 161, |
| WL_RATE_2X2_TXBF_HE10SS2 = 162, |
| WL_RATE_2X2_TXBF_HE11SS2 = 163, |
| |
| /************ |
| * 3 chains * |
| ************ |
| */ |
| |
| /* 1 Stream expanded + 2 */ |
| WL_RATE_1X3_DSSS_1 = 164, |
| WL_RATE_1X3_DSSS_2 = 165, |
| WL_RATE_1X3_DSSS_5_5 = 166, |
| WL_RATE_1X3_DSSS_11 = 167, |
| |
| WL_RATE_1X3_CDD_OFDM_6 = 168, |
| WL_RATE_1X3_CDD_OFDM_9 = 169, |
| WL_RATE_1X3_CDD_OFDM_12 = 170, |
| WL_RATE_1X3_CDD_OFDM_18 = 171, |
| WL_RATE_1X3_CDD_OFDM_24 = 172, |
| WL_RATE_1X3_CDD_OFDM_36 = 173, |
| WL_RATE_1X3_CDD_OFDM_48 = 174, |
| WL_RATE_1X3_CDD_OFDM_54 = 175, |
| |
| WL_RATE_1X3_CDD_MCS0 = 176, |
| WL_RATE_1X3_CDD_MCS1 = 177, |
| WL_RATE_1X3_CDD_MCS2 = 178, |
| WL_RATE_1X3_CDD_MCS3 = 179, |
| WL_RATE_1X3_CDD_MCS4 = 180, |
| WL_RATE_1X3_CDD_MCS5 = 181, |
| WL_RATE_1X3_CDD_MCS6 = 182, |
| WL_RATE_1X3_CDD_MCS7 = 183, |
| WL_RATE_P_1X3_CDD_MCS87 = 184, |
| WL_RATE_P_1X3_CDD_MCS88 = 185, |
| |
| WL_RATE_1X3_VHT0SS1 = 176, |
| WL_RATE_1X3_VHT1SS1 = 177, |
| WL_RATE_1X3_VHT2SS1 = 178, |
| WL_RATE_1X3_VHT3SS1 = 179, |
| WL_RATE_1X3_VHT4SS1 = 180, |
| WL_RATE_1X3_VHT5SS1 = 181, |
| WL_RATE_1X3_VHT6SS1 = 182, |
| WL_RATE_1X3_VHT7SS1 = 183, |
| WL_RATE_1X3_VHT8SS1 = 184, |
| WL_RATE_1X3_VHT9SS1 = 185, |
| WL_RATE_P_1X3_VHT10SS1 = 186, |
| WL_RATE_P_1X3_VHT11SS1 = 187, |
| |
| WL_RATE_1X3_HE0SS1 = 188, |
| WL_RATE_1X3_HE1SS1 = 189, |
| WL_RATE_1X3_HE2SS1 = 190, |
| WL_RATE_1X3_HE3SS1 = 191, |
| WL_RATE_1X3_HE4SS1 = 192, |
| WL_RATE_1X3_HE5SS1 = 193, |
| WL_RATE_1X3_HE6SS1 = 194, |
| WL_RATE_1X3_HE7SS1 = 195, |
| WL_RATE_1X3_HE8SS1 = 196, |
| WL_RATE_1X3_HE9SS1 = 197, |
| WL_RATE_1X3_HE10SS1 = 198, |
| WL_RATE_1X3_HE11SS1 = 199, |
| |
| /* 2 Streams expanded + 1 */ |
| WL_RATE_2X3_STBC_MCS0 = 200, |
| WL_RATE_2X3_STBC_MCS1 = 201, |
| WL_RATE_2X3_STBC_MCS2 = 202, |
| WL_RATE_2X3_STBC_MCS3 = 203, |
| WL_RATE_2X3_STBC_MCS4 = 204, |
| WL_RATE_2X3_STBC_MCS5 = 205, |
| WL_RATE_2X3_STBC_MCS6 = 206, |
| WL_RATE_2X3_STBC_MCS7 = 207, |
| WL_RATE_P_2X3_STBC_MCS87 = 208, |
| WL_RATE_P_2X3_STBC_MCS88 = 209, |
| |
| WL_RATE_2X3_STBC_VHT0SS1 = 200, |
| WL_RATE_2X3_STBC_VHT1SS1 = 201, |
| WL_RATE_2X3_STBC_VHT2SS1 = 202, |
| WL_RATE_2X3_STBC_VHT3SS1 = 203, |
| WL_RATE_2X3_STBC_VHT4SS1 = 204, |
| WL_RATE_2X3_STBC_VHT5SS1 = 205, |
| WL_RATE_2X3_STBC_VHT6SS1 = 206, |
| WL_RATE_2X3_STBC_VHT7SS1 = 207, |
| WL_RATE_2X3_STBC_VHT8SS1 = 208, |
| WL_RATE_2X3_STBC_VHT9SS1 = 209, |
| WL_RATE_P_2X3_STBC_VHT10SS1 = 210, |
| WL_RATE_P_2X3_STBC_VHT11SS1 = 211, |
| |
| WL_RATE_2X3_SDM_MCS8 = 212, |
| WL_RATE_2X3_SDM_MCS9 = 213, |
| WL_RATE_2X3_SDM_MCS10 = 214, |
| WL_RATE_2X3_SDM_MCS11 = 215, |
| WL_RATE_2X3_SDM_MCS12 = 216, |
| WL_RATE_2X3_SDM_MCS13 = 217, |
| WL_RATE_2X3_SDM_MCS14 = 218, |
| WL_RATE_2X3_SDM_MCS15 = 219, |
| WL_RATE_P_2X3_SDM_MCS99 = 220, |
| WL_RATE_P_2X3_SDM_MCS100 = 221, |
| |
| WL_RATE_2X3_VHT0SS2 = 212, |
| WL_RATE_2X3_VHT1SS2 = 213, |
| WL_RATE_2X3_VHT2SS2 = 214, |
| WL_RATE_2X3_VHT3SS2 = 215, |
| WL_RATE_2X3_VHT4SS2 = 216, |
| WL_RATE_2X3_VHT5SS2 = 217, |
| WL_RATE_2X3_VHT6SS2 = 218, |
| WL_RATE_2X3_VHT7SS2 = 219, |
| WL_RATE_2X3_VHT8SS2 = 220, |
| WL_RATE_2X3_VHT9SS2 = 221, |
| WL_RATE_P_2X3_VHT10SS2 = 222, |
| WL_RATE_P_2X3_VHT11SS2 = 223, |
| |
| WL_RATE_2X3_HE0SS2 = 224, |
| WL_RATE_2X3_HE1SS2 = 225, |
| WL_RATE_2X3_HE2SS2 = 226, |
| WL_RATE_2X3_HE3SS2 = 227, |
| WL_RATE_2X3_HE4SS2 = 228, |
| WL_RATE_2X3_HE5SS2 = 229, |
| WL_RATE_2X3_HE6SS2 = 230, |
| WL_RATE_2X3_HE7SS2 = 231, |
| WL_RATE_2X3_HE8SS2 = 232, |
| WL_RATE_2X3_HE9SS2 = 233, |
| WL_RATE_2X3_HE10SS2 = 234, |
| WL_RATE_2X3_HE11SS2 = 235, |
| |
| /* 3 Streams */ |
| WL_RATE_3X3_SDM_MCS16 = 236, |
| WL_RATE_3X3_SDM_MCS17 = 237, |
| WL_RATE_3X3_SDM_MCS18 = 238, |
| WL_RATE_3X3_SDM_MCS19 = 239, |
| WL_RATE_3X3_SDM_MCS20 = 240, |
| WL_RATE_3X3_SDM_MCS21 = 241, |
| WL_RATE_3X3_SDM_MCS22 = 242, |
| WL_RATE_3X3_SDM_MCS23 = 243, |
| WL_RATE_P_3X3_SDM_MCS101 = 244, |
| WL_RATE_P_3X3_SDM_MCS102 = 245, |
| |
| WL_RATE_3X3_VHT0SS3 = 236, |
| WL_RATE_3X3_VHT1SS3 = 237, |
| WL_RATE_3X3_VHT2SS3 = 238, |
| WL_RATE_3X3_VHT3SS3 = 239, |
| WL_RATE_3X3_VHT4SS3 = 240, |
| WL_RATE_3X3_VHT5SS3 = 241, |
| WL_RATE_3X3_VHT6SS3 = 242, |
| WL_RATE_3X3_VHT7SS3 = 243, |
| WL_RATE_3X3_VHT8SS3 = 244, |
| WL_RATE_3X3_VHT9SS3 = 245, |
| WL_RATE_P_3X3_VHT10SS3 = 246, |
| WL_RATE_P_3X3_VHT11SS3 = 247, |
| |
| WL_RATE_3X3_HE0SS3 = 248, |
| WL_RATE_3X3_HE1SS3 = 249, |
| WL_RATE_3X3_HE2SS3 = 250, |
| WL_RATE_3X3_HE3SS3 = 251, |
| WL_RATE_3X3_HE4SS3 = 252, |
| WL_RATE_3X3_HE5SS3 = 253, |
| WL_RATE_3X3_HE6SS3 = 254, |
| WL_RATE_3X3_HE7SS3 = 255, |
| WL_RATE_3X3_HE8SS3 = 256, |
| WL_RATE_3X3_HE9SS3 = 257, |
| WL_RATE_3X3_HE10SS3 = 258, |
| WL_RATE_3X3_HE11SS3 = 259, |
| |
| /**************************** |
| * TX Beamforming, 3 chains * |
| **************************** |
| */ |
| |
| /* 1 Stream expanded + 2 */ |
| WL_RATE_1X3_TXBF_OFDM_6 = 260, |
| WL_RATE_1X3_TXBF_OFDM_9 = 261, |
| WL_RATE_1X3_TXBF_OFDM_12 = 262, |
| WL_RATE_1X3_TXBF_OFDM_18 = 263, |
| WL_RATE_1X3_TXBF_OFDM_24 = 264, |
| WL_RATE_1X3_TXBF_OFDM_36 = 265, |
| WL_RATE_1X3_TXBF_OFDM_48 = 266, |
| WL_RATE_1X3_TXBF_OFDM_54 = 267, |
| |
| WL_RATE_1X3_TXBF_MCS0 = 268, |
| WL_RATE_1X3_TXBF_MCS1 = 269, |
| WL_RATE_1X3_TXBF_MCS2 = 270, |
| WL_RATE_1X3_TXBF_MCS3 = 271, |
| WL_RATE_1X3_TXBF_MCS4 = 272, |
| WL_RATE_1X3_TXBF_MCS5 = 273, |
| WL_RATE_1X3_TXBF_MCS6 = 274, |
| WL_RATE_1X3_TXBF_MCS7 = 275, |
| WL_RATE_P_1X3_TXBF_MCS87 = 276, |
| WL_RATE_P_1X3_TXBF_MCS88 = 277, |
| |
| WL_RATE_1X3_TXBF_VHT0SS1 = 268, |
| WL_RATE_1X3_TXBF_VHT1SS1 = 269, |
| WL_RATE_1X3_TXBF_VHT2SS1 = 270, |
| WL_RATE_1X3_TXBF_VHT3SS1 = 271, |
| WL_RATE_1X3_TXBF_VHT4SS1 = 272, |
| WL_RATE_1X3_TXBF_VHT5SS1 = 273, |
| WL_RATE_1X3_TXBF_VHT6SS1 = 274, |
| WL_RATE_1X3_TXBF_VHT7SS1 = 275, |
| WL_RATE_1X3_TXBF_VHT8SS1 = 276, |
| WL_RATE_1X3_TXBF_VHT9SS1 = 277, |
| WL_RATE_P_1X3_TXBF_VHT10SS1 = 278, |
| WL_RATE_P_1X3_TXBF_VHT11SS1 = 279, |
| |
| WL_RATE_1X3_TXBF_HE0SS1 = 280, |
| WL_RATE_1X3_TXBF_HE1SS1 = 281, |
| WL_RATE_1X3_TXBF_HE2SS1 = 282, |
| WL_RATE_1X3_TXBF_HE3SS1 = 283, |
| WL_RATE_1X3_TXBF_HE4SS1 = 284, |
| WL_RATE_1X3_TXBF_HE5SS1 = 285, |
| WL_RATE_1X3_TXBF_HE6SS1 = 286, |
| WL_RATE_1X3_TXBF_HE7SS1 = 287, |
| WL_RATE_1X3_TXBF_HE8SS1 = 288, |
| WL_RATE_1X3_TXBF_HE9SS1 = 289, |
| WL_RATE_1X3_TXBF_HE10SS1 = 290, |
| WL_RATE_1X3_TXBF_HE11SS1 = 291, |
| |
| /* 2 Streams expanded + 1 */ |
| WL_RATE_2X3_TXBF_SDM_MCS8 = 292, |
| WL_RATE_2X3_TXBF_SDM_MCS9 = 293, |
| WL_RATE_2X3_TXBF_SDM_MCS10 = 294, |
| WL_RATE_2X3_TXBF_SDM_MCS11 = 295, |
| WL_RATE_2X3_TXBF_SDM_MCS12 = 296, |
| WL_RATE_2X3_TXBF_SDM_MCS13 = 297, |
| WL_RATE_2X3_TXBF_SDM_MCS14 = 298, |
| WL_RATE_2X3_TXBF_SDM_MCS15 = 299, |
| WL_RATE_P_2X3_TXBF_SDM_MCS99 = 300, |
| WL_RATE_P_2X3_TXBF_SDM_MCS100 = 301, |
| |
| WL_RATE_2X3_TXBF_VHT0SS2 = 292, |
| WL_RATE_2X3_TXBF_VHT1SS2 = 293, |
| WL_RATE_2X3_TXBF_VHT2SS2 = 294, |
| WL_RATE_2X3_TXBF_VHT3SS2 = 295, |
| WL_RATE_2X3_TXBF_VHT4SS2 = 296, |
| WL_RATE_2X3_TXBF_VHT5SS2 = 297, |
| WL_RATE_2X3_TXBF_VHT6SS2 = 298, |
| WL_RATE_2X3_TXBF_VHT7SS2 = 299, |
| WL_RATE_2X3_TXBF_VHT8SS2 = 300, |
| WL_RATE_2X3_TXBF_VHT9SS2 = 301, |
| WL_RATE_P_2X3_TXBF_VHT10SS2 = 302, |
| WL_RATE_P_2X3_TXBF_VHT11SS2 = 303, |
| |
| WL_RATE_2X3_TXBF_HE0SS2 = 304, |
| WL_RATE_2X3_TXBF_HE1SS2 = 305, |
| WL_RATE_2X3_TXBF_HE2SS2 = 306, |
| WL_RATE_2X3_TXBF_HE3SS2 = 307, |
| WL_RATE_2X3_TXBF_HE4SS2 = 308, |
| WL_RATE_2X3_TXBF_HE5SS2 = 309, |
| WL_RATE_2X3_TXBF_HE6SS2 = 310, |
| WL_RATE_2X3_TXBF_HE7SS2 = 311, |
| WL_RATE_2X3_TXBF_HE8SS2 = 312, |
| WL_RATE_2X3_TXBF_HE9SS2 = 313, |
| WL_RATE_2X3_TXBF_HE10SS2 = 314, |
| WL_RATE_2X3_TXBF_HE11SS2 = 315, |
| |
| /* 3 Streams */ |
| WL_RATE_3X3_TXBF_SDM_MCS16 = 316, |
| WL_RATE_3X3_TXBF_SDM_MCS17 = 317, |
| WL_RATE_3X3_TXBF_SDM_MCS18 = 318, |
| WL_RATE_3X3_TXBF_SDM_MCS19 = 319, |
| WL_RATE_3X3_TXBF_SDM_MCS20 = 320, |
| WL_RATE_3X3_TXBF_SDM_MCS21 = 321, |
| WL_RATE_3X3_TXBF_SDM_MCS22 = 322, |
| WL_RATE_3X3_TXBF_SDM_MCS23 = 323, |
| WL_RATE_P_3X3_TXBF_SDM_MCS101 = 324, |
| WL_RATE_P_3X3_TXBF_SDM_MCS102 = 325, |
| |
| WL_RATE_3X3_TXBF_VHT0SS3 = 316, |
| WL_RATE_3X3_TXBF_VHT1SS3 = 317, |
| WL_RATE_3X3_TXBF_VHT2SS3 = 318, |
| WL_RATE_3X3_TXBF_VHT3SS3 = 319, |
| WL_RATE_3X3_TXBF_VHT4SS3 = 320, |
| WL_RATE_3X3_TXBF_VHT5SS3 = 321, |
| WL_RATE_3X3_TXBF_VHT6SS3 = 322, |
| WL_RATE_3X3_TXBF_VHT7SS3 = 323, |
| WL_RATE_3X3_TXBF_VHT8SS3 = 324, |
| WL_RATE_3X3_TXBF_VHT9SS3 = 325, |
| WL_RATE_P_3X3_TXBF_VHT10SS3 = 326, |
| WL_RATE_P_3X3_TXBF_VHT11SS3 = 327, |
| |
| WL_RATE_3X3_TXBF_HE0SS3 = 328, |
| WL_RATE_3X3_TXBF_HE1SS3 = 329, |
| WL_RATE_3X3_TXBF_HE2SS3 = 330, |
| WL_RATE_3X3_TXBF_HE3SS3 = 331, |
| WL_RATE_3X3_TXBF_HE4SS3 = 332, |
| WL_RATE_3X3_TXBF_HE5SS3 = 333, |
| WL_RATE_3X3_TXBF_HE6SS3 = 334, |
| WL_RATE_3X3_TXBF_HE7SS3 = 335, |
| WL_RATE_3X3_TXBF_HE8SS3 = 336, |
| WL_RATE_3X3_TXBF_HE9SS3 = 337, |
| WL_RATE_3X3_TXBF_HE10SS3 = 338, |
| WL_RATE_3X3_TXBF_HE11SS3 = 339, |
| |
| /************ |
| * 4 chains * |
| ************ |
| */ |
| |
| /* 1 Stream expanded + 3 */ |
| WL_RATE_1X4_DSSS_1 = 340, |
| WL_RATE_1X4_DSSS_2 = 341, |
| WL_RATE_1X4_DSSS_5_5 = 342, |
| WL_RATE_1X4_DSSS_11 = 343, |
| |
| WL_RATE_1X4_CDD_OFDM_6 = 344, |
| WL_RATE_1X4_CDD_OFDM_9 = 345, |
| WL_RATE_1X4_CDD_OFDM_12 = 346, |
| WL_RATE_1X4_CDD_OFDM_18 = 347, |
| WL_RATE_1X4_CDD_OFDM_24 = 348, |
| WL_RATE_1X4_CDD_OFDM_36 = 349, |
| WL_RATE_1X4_CDD_OFDM_48 = 350, |
| WL_RATE_1X4_CDD_OFDM_54 = 351, |
| |
| WL_RATE_1X4_CDD_MCS0 = 352, |
| WL_RATE_1X4_CDD_MCS1 = 353, |
| WL_RATE_1X4_CDD_MCS2 = 354, |
| WL_RATE_1X4_CDD_MCS3 = 355, |
| WL_RATE_1X4_CDD_MCS4 = 356, |
| WL_RATE_1X4_CDD_MCS5 = 357, |
| WL_RATE_1X4_CDD_MCS6 = 358, |
| WL_RATE_1X4_CDD_MCS7 = 359, |
| WL_RATE_P_1X4_CDD_MCS87 = 360, |
| WL_RATE_P_1X4_CDD_MCS88 = 361, |
| |
| WL_RATE_1X4_VHT0SS1 = 352, |
| WL_RATE_1X4_VHT1SS1 = 353, |
| WL_RATE_1X4_VHT2SS1 = 354, |
| WL_RATE_1X4_VHT3SS1 = 355, |
| WL_RATE_1X4_VHT4SS1 = 356, |
| WL_RATE_1X4_VHT5SS1 = 357, |
| WL_RATE_1X4_VHT6SS1 = 358, |
| WL_RATE_1X4_VHT7SS1 = 359, |
| WL_RATE_1X4_VHT8SS1 = 360, |
| WL_RATE_1X4_VHT9SS1 = 361, |
| WL_RATE_P_1X4_VHT10SS1 = 362, |
| WL_RATE_P_1X4_VHT11SS1 = 363, |
| |
| WL_RATE_1X4_HE0SS1 = 364, |
| WL_RATE_1X4_HE1SS1 = 365, |
| WL_RATE_1X4_HE2SS1 = 366, |
| WL_RATE_1X4_HE3SS1 = 367, |
| WL_RATE_1X4_HE4SS1 = 368, |
| WL_RATE_1X4_HE5SS1 = 369, |
| WL_RATE_1X4_HE6SS1 = 370, |
| WL_RATE_1X4_HE7SS1 = 371, |
| WL_RATE_1X4_HE8SS1 = 372, |
| WL_RATE_1X4_HE9SS1 = 373, |
| WL_RATE_1X4_HE10SS1 = 374, |
| WL_RATE_1X4_HE11SS1 = 375, |
| |
| /* 2 Streams expanded + 2 */ |
| WL_RATE_2X4_STBC_MCS0 = 376, |
| WL_RATE_2X4_STBC_MCS1 = 377, |
| WL_RATE_2X4_STBC_MCS2 = 378, |
| WL_RATE_2X4_STBC_MCS3 = 379, |
| WL_RATE_2X4_STBC_MCS4 = 380, |
| WL_RATE_2X4_STBC_MCS5 = 381, |
| WL_RATE_2X4_STBC_MCS6 = 382, |
| WL_RATE_2X4_STBC_MCS7 = 383, |
| WL_RATE_P_2X4_STBC_MCS87 = 384, |
| WL_RATE_P_2X4_STBC_MCS88 = 385, |
| |
| WL_RATE_2X4_STBC_VHT0SS1 = 376, |
| WL_RATE_2X4_STBC_VHT1SS1 = 377, |
| WL_RATE_2X4_STBC_VHT2SS1 = 378, |
| WL_RATE_2X4_STBC_VHT3SS1 = 379, |
| WL_RATE_2X4_STBC_VHT4SS1 = 380, |
| WL_RATE_2X4_STBC_VHT5SS1 = 381, |
| WL_RATE_2X4_STBC_VHT6SS1 = 382, |
| WL_RATE_2X4_STBC_VHT7SS1 = 383, |
| WL_RATE_2X4_STBC_VHT8SS1 = 384, |
| WL_RATE_2X4_STBC_VHT9SS1 = 385, |
| WL_RATE_P_2X4_STBC_VHT10SS1 = 386, |
| WL_RATE_P_2X4_STBC_VHT11SS1 = 387, |
| |
| WL_RATE_2X4_SDM_MCS8 = 388, |
| WL_RATE_2X4_SDM_MCS9 = 389, |
| WL_RATE_2X4_SDM_MCS10 = 390, |
| WL_RATE_2X4_SDM_MCS11 = 391, |
| WL_RATE_2X4_SDM_MCS12 = 392, |
| WL_RATE_2X4_SDM_MCS13 = 393, |
| WL_RATE_2X4_SDM_MCS14 = 394, |
| WL_RATE_2X4_SDM_MCS15 = 395, |
| WL_RATE_P_2X4_SDM_MCS99 = 396, |
| WL_RATE_P_2X4_SDM_MCS100 = 397, |
| |
| WL_RATE_2X4_VHT0SS2 = 388, |
| WL_RATE_2X4_VHT1SS2 = 389, |
| WL_RATE_2X4_VHT2SS2 = 390, |
| WL_RATE_2X4_VHT3SS2 = 391, |
| WL_RATE_2X4_VHT4SS2 = 392, |
| WL_RATE_2X4_VHT5SS2 = 393, |
| WL_RATE_2X4_VHT6SS2 = 394, |
| WL_RATE_2X4_VHT7SS2 = 395, |
| WL_RATE_2X4_VHT8SS2 = 396, |
| WL_RATE_2X4_VHT9SS2 = 397, |
| WL_RATE_P_2X4_VHT10SS2 = 398, |
| WL_RATE_P_2X4_VHT11SS2 = 399, |
| |
| WL_RATE_2X4_HE0SS2 = 400, |
| WL_RATE_2X4_HE1SS2 = 401, |
| WL_RATE_2X4_HE2SS2 = 402, |
| WL_RATE_2X4_HE3SS2 = 403, |
| WL_RATE_2X4_HE4SS2 = 404, |
| WL_RATE_2X4_HE5SS2 = 405, |
| WL_RATE_2X4_HE6SS2 = 406, |
| WL_RATE_2X4_HE7SS2 = 407, |
| WL_RATE_2X4_HE8SS2 = 408, |
| WL_RATE_2X4_HE9SS2 = 409, |
| WL_RATE_2X4_HE10SS2 = 410, |
| WL_RATE_2X4_HE11SS2 = 411, |
| |
| /* 3 Streams expanded + 1 */ |
| WL_RATE_3X4_SDM_MCS16 = 412, |
| WL_RATE_3X4_SDM_MCS17 = 413, |
| WL_RATE_3X4_SDM_MCS18 = 414, |
| WL_RATE_3X4_SDM_MCS19 = 415, |
| WL_RATE_3X4_SDM_MCS20 = 416, |
| WL_RATE_3X4_SDM_MCS21 = 417, |
| WL_RATE_3X4_SDM_MCS22 = 418, |
| WL_RATE_3X4_SDM_MCS23 = 419, |
| WL_RATE_P_3X4_SDM_MCS101 = 420, |
| WL_RATE_P_3X4_SDM_MCS102 = 421, |
| |
| WL_RATE_3X4_VHT0SS3 = 412, |
| WL_RATE_3X4_VHT1SS3 = 413, |
| WL_RATE_3X4_VHT2SS3 = 414, |
| WL_RATE_3X4_VHT3SS3 = 415, |
| WL_RATE_3X4_VHT4SS3 = 416, |
| WL_RATE_3X4_VHT5SS3 = 417, |
| WL_RATE_3X4_VHT6SS3 = 418, |
| WL_RATE_3X4_VHT7SS3 = 419, |
| WL_RATE_3X4_VHT8SS3 = 420, |
| WL_RATE_3X4_VHT9SS3 = 421, |
| WL_RATE_P_3X4_VHT10SS3 = 422, |
| WL_RATE_P_3X4_VHT11SS3 = 423, |
| |
| WL_RATE_3X4_HE0SS3 = 424, |
| WL_RATE_3X4_HE1SS3 = 425, |
| WL_RATE_3X4_HE2SS3 = 426, |
| WL_RATE_3X4_HE3SS3 = 427, |
| WL_RATE_3X4_HE4SS3 = 428, |
| WL_RATE_3X4_HE5SS3 = 429, |
| WL_RATE_3X4_HE6SS3 = 430, |
| WL_RATE_3X4_HE7SS3 = 431, |
| WL_RATE_3X4_HE8SS3 = 432, |
| WL_RATE_3X4_HE9SS3 = 433, |
| WL_RATE_3X4_HE10SS3 = 434, |
| WL_RATE_3X4_HE11SS3 = 435, |
| |
| /* 4 Streams */ |
| WL_RATE_4X4_SDM_MCS24 = 436, |
| WL_RATE_4X4_SDM_MCS25 = 437, |
| WL_RATE_4X4_SDM_MCS26 = 438, |
| WL_RATE_4X4_SDM_MCS27 = 439, |
| WL_RATE_4X4_SDM_MCS28 = 440, |
| WL_RATE_4X4_SDM_MCS29 = 441, |
| WL_RATE_4X4_SDM_MCS30 = 442, |
| WL_RATE_4X4_SDM_MCS31 = 443, |
| WL_RATE_P_4X4_SDM_MCS103 = 444, |
| WL_RATE_P_4X4_SDM_MCS104 = 445, |
| |
| WL_RATE_4X4_VHT0SS4 = 436, |
| WL_RATE_4X4_VHT1SS4 = 437, |
| WL_RATE_4X4_VHT2SS4 = 438, |
| WL_RATE_4X4_VHT3SS4 = 439, |
| WL_RATE_4X4_VHT4SS4 = 440, |
| WL_RATE_4X4_VHT5SS4 = 441, |
| WL_RATE_4X4_VHT6SS4 = 442, |
| WL_RATE_4X4_VHT7SS4 = 443, |
| WL_RATE_4X4_VHT8SS4 = 444, |
| WL_RATE_4X4_VHT9SS4 = 445, |
| WL_RATE_P_4X4_VHT10SS4 = 446, |
| WL_RATE_P_4X4_VHT11SS4 = 447, |
| |
| WL_RATE_4X4_HE0SS4 = 448, |
| WL_RATE_4X4_HE1SS4 = 449, |
| WL_RATE_4X4_HE2SS4 = 450, |
| WL_RATE_4X4_HE3SS4 = 451, |
| WL_RATE_4X4_HE4SS4 = 452, |
| WL_RATE_4X4_HE5SS4 = 453, |
| WL_RATE_4X4_HE6SS4 = 454, |
| WL_RATE_4X4_HE7SS4 = 455, |
| WL_RATE_4X4_HE8SS4 = 456, |
| WL_RATE_4X4_HE9SS4 = 457, |
| WL_RATE_4X4_HE10SS4 = 458, |
| WL_RATE_4X4_HE11SS4 = 459, |
| |
| /**************************** |
| * TX Beamforming, 4 chains * |
| **************************** |
| */ |
| |
| /* 1 Stream expanded + 3 */ |
| WL_RATE_1X4_TXBF_OFDM_6 = 460, |
| WL_RATE_1X4_TXBF_OFDM_9 = 461, |
| WL_RATE_1X4_TXBF_OFDM_12 = 462, |
| WL_RATE_1X4_TXBF_OFDM_18 = 463, |
| WL_RATE_1X4_TXBF_OFDM_24 = 464, |
| WL_RATE_1X4_TXBF_OFDM_36 = 465, |
| WL_RATE_1X4_TXBF_OFDM_48 = 466, |
| WL_RATE_1X4_TXBF_OFDM_54 = 467, |
| |
| WL_RATE_1X4_TXBF_MCS0 = 468, |
| WL_RATE_1X4_TXBF_MCS1 = 469, |
| WL_RATE_1X4_TXBF_MCS2 = 470, |
| WL_RATE_1X4_TXBF_MCS3 = 471, |
| WL_RATE_1X4_TXBF_MCS4 = 472, |
| WL_RATE_1X4_TXBF_MCS5 = 473, |
| WL_RATE_1X4_TXBF_MCS6 = 474, |
| WL_RATE_1X4_TXBF_MCS7 = 475, |
| WL_RATE_P_1X4_TXBF_MCS87 = 476, |
| WL_RATE_P_1X4_TXBF_MCS88 = 477, |
| |
| WL_RATE_1X4_TXBF_VHT0SS1 = 468, |
| WL_RATE_1X4_TXBF_VHT1SS1 = 469, |
| WL_RATE_1X4_TXBF_VHT2SS1 = 470, |
| WL_RATE_1X4_TXBF_VHT3SS1 = 471, |
| WL_RATE_1X4_TXBF_VHT4SS1 = 472, |
| WL_RATE_1X4_TXBF_VHT5SS1 = 473, |
| WL_RATE_1X4_TXBF_VHT6SS1 = 474, |
| WL_RATE_1X4_TXBF_VHT7SS1 = 475, |
| WL_RATE_1X4_TXBF_VHT8SS1 = 476, |
| WL_RATE_1X4_TXBF_VHT9SS1 = 477, |
| WL_RATE_P_1X4_TXBF_VHT10SS1 = 478, |
| WL_RATE_P_1X4_TXBF_VHT11SS1 = 479, |
| |
| WL_RATE_1X4_TXBF_HE0SS1 = 480, |
| WL_RATE_1X4_TXBF_HE1SS1 = 481, |
| WL_RATE_1X4_TXBF_HE2SS1 = 482, |
| WL_RATE_1X4_TXBF_HE3SS1 = 483, |
| WL_RATE_1X4_TXBF_HE4SS1 = 484, |
| WL_RATE_1X4_TXBF_HE5SS1 = 485, |
| WL_RATE_1X4_TXBF_HE6SS1 = 486, |
| WL_RATE_1X4_TXBF_HE7SS1 = 487, |
| WL_RATE_1X4_TXBF_HE8SS1 = 488, |
| WL_RATE_1X4_TXBF_HE9SS1 = 489, |
| WL_RATE_1X4_TXBF_HE10SS1 = 490, |
| WL_RATE_1X4_TXBF_HE11SS1 = 491, |
| |
| /* 2 Streams expanded + 2 */ |
| WL_RATE_2X4_TXBF_SDM_MCS8 = 492, |
| WL_RATE_2X4_TXBF_SDM_MCS9 = 493, |
| WL_RATE_2X4_TXBF_SDM_MCS10 = 494, |
| WL_RATE_2X4_TXBF_SDM_MCS11 = 495, |
| WL_RATE_2X4_TXBF_SDM_MCS12 = 496, |
| WL_RATE_2X4_TXBF_SDM_MCS13 = 497, |
| WL_RATE_2X4_TXBF_SDM_MCS14 = 498, |
| WL_RATE_2X4_TXBF_SDM_MCS15 = 499, |
| WL_RATE_P_2X4_TXBF_SDM_MCS99 = 500, |
| WL_RATE_P_2X4_TXBF_SDM_MCS100 = 501, |
| |
| WL_RATE_2X4_TXBF_VHT0SS2 = 492, |
| WL_RATE_2X4_TXBF_VHT1SS2 = 493, |
| WL_RATE_2X4_TXBF_VHT2SS2 = 494, |
| WL_RATE_2X4_TXBF_VHT3SS2 = 495, |
| WL_RATE_2X4_TXBF_VHT4SS2 = 496, |
| WL_RATE_2X4_TXBF_VHT5SS2 = 497, |
| WL_RATE_2X4_TXBF_VHT6SS2 = 498, |
| WL_RATE_2X4_TXBF_VHT7SS2 = 499, |
| WL_RATE_2X4_TXBF_VHT8SS2 = 500, |
| WL_RATE_2X4_TXBF_VHT9SS2 = 501, |
| WL_RATE_P_2X4_TXBF_VHT10SS2 = 502, |
| WL_RATE_P_2X4_TXBF_VHT11SS2 = 503, |
| |
| WL_RATE_2X4_TXBF_HE0SS2 = 504, |
| WL_RATE_2X4_TXBF_HE1SS2 = 505, |
| WL_RATE_2X4_TXBF_HE2SS2 = 506, |
| WL_RATE_2X4_TXBF_HE3SS2 = 507, |
| WL_RATE_2X4_TXBF_HE4SS2 = 508, |
| WL_RATE_2X4_TXBF_HE5SS2 = 509, |
| WL_RATE_2X4_TXBF_HE6SS2 = 510, |
| WL_RATE_2X4_TXBF_HE7SS2 = 511, |
| WL_RATE_2X4_TXBF_HE8SS2 = 512, |
| WL_RATE_2X4_TXBF_HE9SS2 = 513, |
| WL_RATE_2X4_TXBF_HE10SS2 = 514, |
| WL_RATE_2X4_TXBF_HE11SS2 = 515, |
| |
| /* 3 Streams expanded + 1 */ |
| WL_RATE_3X4_TXBF_SDM_MCS16 = 516, |
| WL_RATE_3X4_TXBF_SDM_MCS17 = 517, |
| WL_RATE_3X4_TXBF_SDM_MCS18 = 518, |
| WL_RATE_3X4_TXBF_SDM_MCS19 = 519, |
| WL_RATE_3X4_TXBF_SDM_MCS20 = 520, |
| WL_RATE_3X4_TXBF_SDM_MCS21 = 521, |
| WL_RATE_3X4_TXBF_SDM_MCS22 = 522, |
| WL_RATE_3X4_TXBF_SDM_MCS23 = 523, |
| WL_RATE_P_3X4_TXBF_SDM_MCS101 = 524, |
| WL_RATE_P_3X4_TXBF_SDM_MCS102 = 525, |
| |
| WL_RATE_3X4_TXBF_VHT0SS3 = 516, |
| WL_RATE_3X4_TXBF_VHT1SS3 = 517, |
| WL_RATE_3X4_TXBF_VHT2SS3 = 518, |
| WL_RATE_3X4_TXBF_VHT3SS3 = 519, |
| WL_RATE_3X4_TXBF_VHT4SS3 = 520, |
| WL_RATE_3X4_TXBF_VHT5SS3 = 521, |
| WL_RATE_3X4_TXBF_VHT6SS3 = 522, |
| WL_RATE_3X4_TXBF_VHT7SS3 = 523, |
| WL_RATE_P_3X4_TXBF_VHT8SS3 = 524, |
| WL_RATE_P_3X4_TXBF_VHT9SS3 = 525, |
| WL_RATE_P_3X4_TXBF_VHT10SS3 = 526, |
| WL_RATE_P_3X4_TXBF_VHT11SS3 = 527, |
| |
| WL_RATE_3X4_TXBF_HE0SS3 = 528, |
| WL_RATE_3X4_TXBF_HE1SS3 = 529, |
| WL_RATE_3X4_TXBF_HE2SS3 = 530, |
| WL_RATE_3X4_TXBF_HE3SS3 = 531, |
| WL_RATE_3X4_TXBF_HE4SS3 = 532, |
| WL_RATE_3X4_TXBF_HE5SS3 = 533, |
| WL_RATE_3X4_TXBF_HE6SS3 = 534, |
| WL_RATE_3X4_TXBF_HE7SS3 = 535, |
| WL_RATE_3X4_TXBF_HE8SS3 = 536, |
| WL_RATE_3X4_TXBF_HE9SS3 = 537, |
| WL_RATE_3X4_TXBF_HE10SS3 = 538, |
| WL_RATE_3X4_TXBF_HE11SS3 = 539, |
| |
| /* 4 Streams */ |
| WL_RATE_4X4_TXBF_SDM_MCS24 = 540, |
| WL_RATE_4X4_TXBF_SDM_MCS25 = 541, |
| WL_RATE_4X4_TXBF_SDM_MCS26 = 542, |
| WL_RATE_4X4_TXBF_SDM_MCS27 = 543, |
| WL_RATE_4X4_TXBF_SDM_MCS28 = 544, |
| WL_RATE_4X4_TXBF_SDM_MCS29 = 545, |
| WL_RATE_4X4_TXBF_SDM_MCS30 = 546, |
| WL_RATE_4X4_TXBF_SDM_MCS31 = 547, |
| WL_RATE_P_4X4_TXBF_SDM_MCS103 = 548, |
| WL_RATE_P_4X4_TXBF_SDM_MCS104 = 549, |
| |
| WL_RATE_4X4_TXBF_VHT0SS4 = 540, |
| WL_RATE_4X4_TXBF_VHT1SS4 = 541, |
| WL_RATE_4X4_TXBF_VHT2SS4 = 542, |
| WL_RATE_4X4_TXBF_VHT3SS4 = 543, |
| WL_RATE_4X4_TXBF_VHT4SS4 = 544, |
| WL_RATE_4X4_TXBF_VHT5SS4 = 545, |
| WL_RATE_4X4_TXBF_VHT6SS4 = 546, |
| WL_RATE_4X4_TXBF_VHT7SS4 = 547, |
| WL_RATE_P_4X4_TXBF_VHT8SS4 = 548, |
| WL_RATE_P_4X4_TXBF_VHT9SS4 = 549, |
| WL_RATE_P_4X4_TXBF_VHT10SS4 = 550, |
| WL_RATE_P_4X4_TXBF_VHT11SS4 = 551, |
| |
| WL_RATE_4X4_TXBF_HE0SS4 = 552, |
| WL_RATE_4X4_TXBF_HE1SS4 = 553, |
| WL_RATE_4X4_TXBF_HE2SS4 = 554, |
| WL_RATE_4X4_TXBF_HE3SS4 = 555, |
| WL_RATE_4X4_TXBF_HE4SS4 = 556, |
| WL_RATE_4X4_TXBF_HE5SS4 = 557, |
| WL_RATE_4X4_TXBF_HE6SS4 = 558, |
| WL_RATE_4X4_TXBF_HE7SS4 = 559, |
| WL_RATE_4X4_TXBF_HE8SS4 = 560, |
| WL_RATE_4X4_TXBF_HE9SS4 = 561, |
| WL_RATE_4X4_TXBF_HE10SS4 = 562, |
| WL_RATE_4X4_TXBF_HE11SS4 = 563 |
| } clm_rates_t; |
| |
| /* Number of rate codes */ |
| #define WL_NUMRATES 564 |
| |
| /* This enum maps 802.11ax OFDMA (RU) 'rates' to a CLM index */ |
| |
| typedef enum clm_ru_rates { |
| /* RU26 OFDMA UL rates */ |
| WL_RU_RATE_1X1_26SS1 = 0, |
| WL_RU_RATE_1X2_26SS1 = 1, |
| WL_RU_RATE_2X2_26SS2 = 2, |
| WL_RU_RATE_1X2_TXBF_26SS1 = 3, |
| WL_RU_RATE_2X2_TXBF_26SS2 = 4, |
| WL_RU_RATE_1X3_26SS1 = 5, |
| WL_RU_RATE_2X3_26SS2 = 6, |
| WL_RU_RATE_3X3_26SS3 = 7, |
| WL_RU_RATE_1X3_TXBF_26SS1 = 8, |
| WL_RU_RATE_2X3_TXBF_26SS2 = 9, |
| WL_RU_RATE_3X3_TXBF_26SS3 = 10, |
| WL_RU_RATE_1X4_26SS1 = 11, |
| WL_RU_RATE_2X4_26SS2 = 12, |
| WL_RU_RATE_3X4_26SS3 = 13, |
| WL_RU_RATE_4X4_26SS4 = 14, |
| WL_RU_RATE_1X4_TXBF_26SS1 = 15, |
| WL_RU_RATE_2X4_TXBF_26SS2 = 16, |
| WL_RU_RATE_3X4_TXBF_26SS3 = 17, |
| WL_RU_RATE_4X4_TXBF_26SS4 = 18, |
| |
| /* RU52 OFDMA UL rates */ |
| WL_RU_RATE_1X1_52SS1 = 19, |
| WL_RU_RATE_1X2_52SS1 = 20, |
| WL_RU_RATE_2X2_52SS2 = 21, |
| WL_RU_RATE_1X2_TXBF_52SS1 = 22, |
| WL_RU_RATE_2X2_TXBF_52SS2 = 23, |
| WL_RU_RATE_1X3_52SS1 = 24, |
| WL_RU_RATE_2X3_52SS2 = 25, |
| WL_RU_RATE_3X3_52SS3 = 26, |
| WL_RU_RATE_1X3_TXBF_52SS1 = 27, |
| WL_RU_RATE_2X3_TXBF_52SS2 = 28, |
| WL_RU_RATE_3X3_TXBF_52SS3 = 29, |
| WL_RU_RATE_1X4_52SS1 = 30, |
| WL_RU_RATE_2X4_52SS2 = 31, |
| WL_RU_RATE_3X4_52SS3 = 32, |
| WL_RU_RATE_4X4_52SS4 = 33, |
| WL_RU_RATE_1X4_TXBF_52SS1 = 34, |
| WL_RU_RATE_2X4_TXBF_52SS2 = 35, |
| WL_RU_RATE_3X4_TXBF_52SS3 = 36, |
| WL_RU_RATE_4X4_TXBF_52SS4 = 37, |
| |
| /* RU106 OFDMA UL rates */ |
| WL_RU_RATE_1X1_106SS1 = 38, |
| WL_RU_RATE_1X2_106SS1 = 39, |
| WL_RU_RATE_2X2_106SS2 = 40, |
| WL_RU_RATE_1X2_TXBF_106SS1 = 41, |
| WL_RU_RATE_2X2_TXBF_106SS2 = 42, |
| WL_RU_RATE_1X3_106SS1 = 43, |
| WL_RU_RATE_2X3_106SS2 = 44, |
| WL_RU_RATE_3X3_106SS3 = 45, |
| WL_RU_RATE_1X3_TXBF_106SS1 = 46, |
| WL_RU_RATE_2X3_TXBF_106SS2 = 47, |
| WL_RU_RATE_3X3_TXBF_106SS3 = 48, |
| WL_RU_RATE_1X4_106SS1 = 49, |
| WL_RU_RATE_2X4_106SS2 = 50, |
| WL_RU_RATE_3X4_106SS3 = 51, |
| WL_RU_RATE_4X4_106SS4 = 52, |
| WL_RU_RATE_1X4_TXBF_106SS1 = 53, |
| WL_RU_RATE_2X4_TXBF_106SS2 = 54, |
| WL_RU_RATE_3X4_TXBF_106SS3 = 55, |
| WL_RU_RATE_4X4_TXBF_106SS4 = 56, |
| |
| /* Upper Bound OFDMA DL 'rates' */ |
| WL_RU_RATE_1X1_UBSS1 = 57, |
| WL_RU_RATE_1X2_UBSS1 = 58, |
| WL_RU_RATE_2X2_UBSS2 = 59, |
| WL_RU_RATE_1X2_TXBF_UBSS1 = 60, |
| WL_RU_RATE_2X2_TXBF_UBSS2 = 61, |
| WL_RU_RATE_1X3_UBSS1 = 62, |
| WL_RU_RATE_2X3_UBSS2 = 63, |
| WL_RU_RATE_3X3_UBSS3 = 64, |
| WL_RU_RATE_1X3_TXBF_UBSS1 = 65, |
| WL_RU_RATE_2X3_TXBF_UBSS2 = 66, |
| WL_RU_RATE_3X3_TXBF_UBSS3 = 67, |
| WL_RU_RATE_1X4_UBSS1 = 68, |
| WL_RU_RATE_2X4_UBSS2 = 69, |
| WL_RU_RATE_3X4_UBSS3 = 70, |
| WL_RU_RATE_4X4_UBSS4 = 71, |
| WL_RU_RATE_1X4_TXBF_UBSS1 = 72, |
| WL_RU_RATE_2X4_TXBF_UBSS2 = 73, |
| WL_RU_RATE_3X4_TXBF_UBSS3 = 74, |
| WL_RU_RATE_4X4_TXBF_UBSS4 = 75, |
| |
| /* Less Upper Bound OFDMA DL 'rates' */ |
| WL_RU_RATE_1X1_LUBSS1 = 76, |
| WL_RU_RATE_1X2_LUBSS1 = 77, |
| WL_RU_RATE_2X2_LUBSS2 = 78, |
| WL_RU_RATE_1X2_TXBF_LUBSS1 = 79, |
| WL_RU_RATE_2X2_TXBF_LUBSS2 = 80, |
| WL_RU_RATE_1X3_LUBSS1 = 81, |
| WL_RU_RATE_2X3_LUBSS2 = 82, |
| WL_RU_RATE_3X3_LUBSS3 = 83, |
| WL_RU_RATE_1X3_TXBF_LUBSS1 = 84, |
| WL_RU_RATE_2X3_TXBF_LUBSS2 = 85, |
| WL_RU_RATE_3X3_TXBF_LUBSS3 = 86, |
| WL_RU_RATE_1X4_LUBSS1 = 87, |
| WL_RU_RATE_2X4_LUBSS2 = 88, |
| WL_RU_RATE_3X4_LUBSS3 = 89, |
| WL_RU_RATE_4X4_LUBSS4 = 90, |
| WL_RU_RATE_1X4_TXBF_LUBSS1 = 91, |
| WL_RU_RATE_2X4_TXBF_LUBSS2 = 92, |
| WL_RU_RATE_3X4_TXBF_LUBSS3 = 93, |
| WL_RU_RATE_4X4_TXBF_LUBSS4 = 94, |
| |
| /* RU242 OFDMA UL rates */ |
| WL_RU_RATE_1X1_242SS1 = 95, |
| WL_RU_RATE_1X2_242SS1 = 96, |
| WL_RU_RATE_2X2_242SS2 = 97, |
| WL_RU_RATE_1X2_TXBF_242SS1 = 98, |
| WL_RU_RATE_2X2_TXBF_242SS2 = 99, |
| WL_RU_RATE_1X3_242SS1 = 100, |
| WL_RU_RATE_2X3_242SS2 = 101, |
| WL_RU_RATE_3X3_242SS3 = 102, |
| WL_RU_RATE_1X3_TXBF_242SS1 = 103, |
| WL_RU_RATE_2X3_TXBF_242SS2 = 104, |
| WL_RU_RATE_3X3_TXBF_242SS3 = 105, |
| WL_RU_RATE_1X4_242SS1 = 106, |
| WL_RU_RATE_2X4_242SS2 = 107, |
| WL_RU_RATE_3X4_242SS3 = 108, |
| WL_RU_RATE_4X4_242SS4 = 109, |
| WL_RU_RATE_1X4_TXBF_242SS1 = 110, |
| WL_RU_RATE_2X4_TXBF_242SS2 = 111, |
| WL_RU_RATE_3X4_TXBF_242SS3 = 112, |
| WL_RU_RATE_4X4_TXBF_242SS4 = 113, |
| |
| /* RU484 OFDMA UL rates */ |
| WL_RU_RATE_1X1_484SS1 = 114, |
| WL_RU_RATE_1X2_484SS1 = 115, |
| WL_RU_RATE_2X2_484SS2 = 116, |
| WL_RU_RATE_1X2_TXBF_484SS1 = 117, |
| WL_RU_RATE_2X2_TXBF_484SS2 = 118, |
| WL_RU_RATE_1X3_484SS1 = 119, |
| WL_RU_RATE_2X3_484SS2 = 120, |
| WL_RU_RATE_3X3_484SS3 = 121, |
| WL_RU_RATE_1X3_TXBF_484SS1 = 122, |
| WL_RU_RATE_2X3_TXBF_484SS2 = 123, |
| WL_RU_RATE_3X3_TXBF_484SS3 = 124, |
| WL_RU_RATE_1X4_484SS1 = 125, |
| WL_RU_RATE_2X4_484SS2 = 126, |
| WL_RU_RATE_3X4_484SS3 = 127, |
| WL_RU_RATE_4X4_484SS4 = 128, |
| WL_RU_RATE_1X4_TXBF_484SS1 = 129, |
| WL_RU_RATE_2X4_TXBF_484SS2 = 130, |
| WL_RU_RATE_3X4_TXBF_484SS3 = 131, |
| WL_RU_RATE_4X4_TXBF_484SS4 = 132, |
| |
| /* RU996 OFDMA UL rates */ |
| WL_RU_RATE_1X1_996SS1 = 133, |
| WL_RU_RATE_1X2_996SS1 = 134, |
| WL_RU_RATE_2X2_996SS2 = 135, |
| WL_RU_RATE_1X2_TXBF_996SS1 = 136, |
| WL_RU_RATE_2X2_TXBF_996SS2 = 137, |
| WL_RU_RATE_1X3_996SS1 = 138, |
| WL_RU_RATE_2X3_996SS2 = 139, |
| WL_RU_RATE_3X3_996SS3 = 140, |
| WL_RU_RATE_1X3_TXBF_996SS1 = 141, |
| WL_RU_RATE_2X3_TXBF_996SS2 = 142, |
| WL_RU_RATE_3X3_TXBF_996SS3 = 143, |
| WL_RU_RATE_1X4_996SS1 = 144, |
| WL_RU_RATE_2X4_996SS2 = 145, |
| WL_RU_RATE_3X4_996SS3 = 146, |
| WL_RU_RATE_4X4_996SS4 = 147, |
| WL_RU_RATE_1X4_TXBF_996SS1 = 148, |
| WL_RU_RATE_2X4_TXBF_996SS2 = 149, |
| WL_RU_RATE_3X4_TXBF_996SS3 = 150, |
| WL_RU_RATE_4X4_TXBF_996SS4 = 151 |
| } clm_ru_rates_t; |
| |
| /* Number of OFDMA rate codes */ |
| #define WL_RU_NUMRATES 152 |
| |
| /* MCS rates */ |
| #define WLC_MAX_VHT_MCS 11 /**< Std VHT MCS 0-9 plus prop VHT MCS 10-11 */ |
| #define WLC_MAX_HE_MCS 11 /**< Std HE MCS 0-11 */ |
| |
| /* Convert encoded rate value in plcp header to numerical rates in 500 KHz increments */ |
| #define OFDM_PHY2MAC_RATE(rlpt) plcp_ofdm_rate_tbl[(rlpt) & 0x7] |
| #define CCK_PHY2MAC_RATE(signal) ((signal)/5) |
| |
| /* 'proprietary' string should not exist in open source(OEM_ANDROID) */ |
| /* given a proprietary MCS, get number of spatial streams */ |
| #define GET_PROPRIETARY_11N_MCS_NSS(mcs) (1 + ((mcs) - 85) / 8) |
| |
| #define GET_11N_MCS_NSS(mcs) ((mcs) < 32 ? (1 + ((mcs) / 8)) : \ |
| ((mcs) == 32 ? 1 : GET_PROPRIETARY_11N_MCS_NSS(mcs))) |
| |
| #define IS_PROPRIETARY_11N_MCS(mcs) FALSE |
| #define IS_PROPRIETARY_11N_SS_MCS(mcs) FALSE /**< is proprietary HT single stream MCS */ |
| |
| /* Macros to be used for calculating rate from PLCP (wf_he_plcp_to_rate) */ |
| #define HE_SU_PLCP2RATE_MCS_MASK 0x0F |
| #define HE_SU_PLCP2RATE_MCS_SHIFT 0 |
| #define HE_SU_PLCP2RATE_NSS_MASK 0x70 |
| #define HE_SU_PLCP2RATE_NSS_SHIFT 4 |
| #define HE_MU_PLCP2RATE_LTF_GI_MASK 0x30 |
| #define HE_MU_PLCP2RATE_LTF_GI_SHIFT 4 |
| #define HE_MU_PLCP2RATE_STBC_MASK 0x40 |
| #define HE_MU_PLCP2RATE_STBC_SHIFT 6 |
| |
| /* Macros for HE LTF and GI */ |
| #define HE_IS_1X_LTF(gi) ((gi) == WL_RSPEC_HE_1x_LTF_GI_0_8us) |
| #define HE_IS_2X_LTF(gi) (((gi) == WL_RSPEC_HE_2x_LTF_GI_0_8us) || \ |
| ((gi) == WL_RSPEC_HE_2x_LTF_GI_1_6us)) |
| #define HE_IS_4X_LTF(gi) ((gi) == WL_RSPEC_HE_4x_LTF_GI_3_2us) |
| |
| #define HE_IS_GI_0_8us(gi) (((gi) == WL_RSPEC_HE_1x_LTF_GI_0_8us) || \ |
| ((gi) == WL_RSPEC_HE_2x_LTF_GI_0_8us)) |
| #define HE_IS_GI_1_6us(gi) ((gi) == WL_RSPEC_HE_2x_LTF_GI_1_6us) |
| #define HE_IS_GI_3_2us(gi) ((gi) == WL_RSPEC_HE_4x_LTF_GI_3_2us) |
| |
| extern const uint8 plcp_ofdm_rate_tbl[]; |
| |
| uint8 wf_get_single_stream_mcs(uint mcs); |
| |
| /* extract NSS:MCS portions of the rspec */ |
| #define WF_NON_HT_MCS 0x80 |
| uint8 wf_vht_plcp_to_rate(uint8 *plcp); |
| uint8 wf_he_plcp_to_rate(uint8 *plcp, bool is_mu); |
| |
| /* convert rate from mcs to Kbps */ |
| uint wf_mcs_to_rate(uint mcs, uint nss, uint bw, int sgi); |
| uint wf_he_mcs_to_rate(uint mcs, uint nss, uint bw, uint gi, bool dcm); |
| |
| uint wf_mcs_to_Ndbps(uint mcs, uint nss, uint bw); |
| uint wf_he_mcs_to_Ndbps(uint mcs, uint nss, uint bw, bool dcm); |
| uint32 wf_he_mcs_ru_to_ndbps(uint8 mcs, uint8 nss, bool dcm, uint8 ru_index); |
| #ifdef __cplusplus |
| } |
| #endif /* __cplusplus */ |
| #endif /* _bcmwifi_rates_h_ */ |