|
|
deb259 |
From 5a532e3f0a2790c193a2e83e5ea7b32a43a4770d Mon Sep 17 00:00:00 2001
|
|
|
deb259 |
From: Eugene Syromiatnikov <esyr@redhat.com>
|
|
|
deb259 |
Date: Mon, 5 Aug 2019 22:54:17 +0200
|
|
|
deb259 |
Subject: [PATCH 2/2] Revert "iwlwifi: split HE capabilities between AP and
|
|
|
deb259 |
STA"
|
|
|
deb259 |
|
|
|
deb259 |
This reverts commit 57a3a454f30368f9b52ef406feff09571448e84e.
|
|
|
deb259 |
---
|
|
|
deb259 |
drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c | 290 +++++++--------------
|
|
|
deb259 |
1 file changed, 101 insertions(+), 189 deletions(-)
|
|
|
deb259 |
|
|
|
deb259 |
diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c b/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c
|
|
|
deb259 |
index 6d14689b8ff6..bc122d88b423 100644
|
|
|
deb259 |
--- a/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c
|
|
|
deb259 |
+++ b/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c
|
|
|
deb259 |
@@ -480,185 +480,101 @@ static void iwl_init_vht_hw_capab(const struct iwl_cfg *cfg,
|
|
|
deb259 |
vht_cap->vht_mcs.tx_mcs_map = vht_cap->vht_mcs.rx_mcs_map;
|
|
|
deb259 |
}
|
|
|
deb259 |
|
|
|
deb259 |
-static struct ieee80211_sband_iftype_data iwl_he_capa[] = {
|
|
|
deb259 |
- {
|
|
|
deb259 |
- .types_mask = BIT(NL80211_IFTYPE_STATION),
|
|
|
deb259 |
- .he_cap = {
|
|
|
deb259 |
- .has_he = true,
|
|
|
deb259 |
- .he_cap_elem = {
|
|
|
deb259 |
- .mac_cap_info[0] =
|
|
|
deb259 |
- IEEE80211_HE_MAC_CAP0_HTC_HE |
|
|
|
deb259 |
- IEEE80211_HE_MAC_CAP0_TWT_REQ,
|
|
|
deb259 |
- .mac_cap_info[1] =
|
|
|
deb259 |
- IEEE80211_HE_MAC_CAP1_TF_MAC_PAD_DUR_16US |
|
|
|
deb259 |
- IEEE80211_HE_MAC_CAP1_MULTI_TID_AGG_RX_QOS_8,
|
|
|
deb259 |
- .mac_cap_info[2] =
|
|
|
deb259 |
- IEEE80211_HE_MAC_CAP2_32BIT_BA_BITMAP |
|
|
|
deb259 |
- IEEE80211_HE_MAC_CAP2_MU_CASCADING |
|
|
|
deb259 |
- IEEE80211_HE_MAC_CAP2_ACK_EN,
|
|
|
deb259 |
- .mac_cap_info[3] =
|
|
|
deb259 |
- IEEE80211_HE_MAC_CAP3_OMI_CONTROL |
|
|
|
deb259 |
- IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_VHT_2,
|
|
|
deb259 |
- .mac_cap_info[4] =
|
|
|
deb259 |
- IEEE80211_HE_MAC_CAP4_AMDSU_IN_AMPDU |
|
|
|
deb259 |
- IEEE80211_HE_MAC_CAP4_MULTI_TID_AGG_TX_QOS_B39,
|
|
|
deb259 |
- .mac_cap_info[5] =
|
|
|
deb259 |
- IEEE80211_HE_MAC_CAP5_MULTI_TID_AGG_TX_QOS_B40 |
|
|
|
deb259 |
- IEEE80211_HE_MAC_CAP5_MULTI_TID_AGG_TX_QOS_B41 |
|
|
|
deb259 |
- IEEE80211_HE_MAC_CAP5_UL_2x996_TONE_RU,
|
|
|
deb259 |
- .phy_cap_info[0] =
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_IN_2G |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_80MHZ_IN_5G |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_160MHZ_IN_5G,
|
|
|
deb259 |
- .phy_cap_info[1] =
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP1_PREAMBLE_PUNC_RX_MASK |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP1_DEVICE_CLASS_A |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP1_LDPC_CODING_IN_PAYLOAD |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP1_MIDAMBLE_RX_TX_MAX_NSTS,
|
|
|
deb259 |
- .phy_cap_info[2] =
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP2_NDP_4x_LTF_AND_3_2US |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP2_STBC_TX_UNDER_80MHZ |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP2_STBC_RX_UNDER_80MHZ |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP2_UL_MU_FULL_MU_MIMO |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP2_UL_MU_PARTIAL_MU_MIMO,
|
|
|
deb259 |
- .phy_cap_info[3] =
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP3_DCM_MAX_CONST_TX_BPSK |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP3_DCM_MAX_TX_NSS_1 |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP3_DCM_MAX_CONST_RX_BPSK |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP3_DCM_MAX_RX_NSS_1,
|
|
|
deb259 |
- .phy_cap_info[4] =
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP4_SU_BEAMFORMEE |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP4_BEAMFORMEE_MAX_STS_ABOVE_80MHZ_8 |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP4_BEAMFORMEE_MAX_STS_UNDER_80MHZ_8,
|
|
|
deb259 |
- .phy_cap_info[5] =
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP5_BEAMFORMEE_NUM_SND_DIM_UNDER_80MHZ_2 |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP5_BEAMFORMEE_NUM_SND_DIM_ABOVE_80MHZ_2 |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP5_NG16_SU_FEEDBACK |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP5_NG16_MU_FEEDBACK,
|
|
|
deb259 |
- .phy_cap_info[6] =
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP6_CODEBOOK_SIZE_42_SU |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP6_CODEBOOK_SIZE_75_MU |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP6_TRIG_CQI_FB |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP6_PARTIAL_BANDWIDTH_DL_MUMIMO |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP6_PPE_THRESHOLD_PRESENT,
|
|
|
deb259 |
- .phy_cap_info[7] =
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP7_POWER_BOOST_FACTOR_AR |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP7_HE_SU_MU_PPDU_4XLTF_AND_08_US_GI |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP7_MAX_NC_1,
|
|
|
deb259 |
- .phy_cap_info[8] =
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP8_HE_ER_SU_PPDU_4XLTF_AND_08_US_GI |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP8_20MHZ_IN_40MHZ_HE_PPDU_IN_2G |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP8_20MHZ_IN_160MHZ_HE_PPDU |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP8_80MHZ_IN_160MHZ_HE_PPDU |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP8_DCM_MAX_BW_160_OR_80P80_MHZ,
|
|
|
deb259 |
- .phy_cap_info[9] =
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP9_NON_TRIGGERED_CQI_FEEDBACK |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP9_RX_FULL_BW_SU_USING_MU_WITH_COMP_SIGB |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP9_RX_FULL_BW_SU_USING_MU_WITH_NON_COMP_SIGB,
|
|
|
deb259 |
- },
|
|
|
deb259 |
- /*
|
|
|
deb259 |
- * Set default Tx/Rx HE MCS NSS Support field.
|
|
|
deb259 |
- * Indicate support for up to 2 spatial streams and all
|
|
|
deb259 |
- * MCS, without any special cases
|
|
|
deb259 |
- */
|
|
|
deb259 |
- .he_mcs_nss_supp = {
|
|
|
deb259 |
- .rx_mcs_80 = cpu_to_le16(0xfffa),
|
|
|
deb259 |
- .tx_mcs_80 = cpu_to_le16(0xfffa),
|
|
|
deb259 |
- .rx_mcs_160 = cpu_to_le16(0xfffa),
|
|
|
deb259 |
- .tx_mcs_160 = cpu_to_le16(0xfffa),
|
|
|
deb259 |
- .rx_mcs_80p80 = cpu_to_le16(0xffff),
|
|
|
deb259 |
- .tx_mcs_80p80 = cpu_to_le16(0xffff),
|
|
|
deb259 |
- },
|
|
|
deb259 |
- /*
|
|
|
deb259 |
- * Set default PPE thresholds, with PPET16 set to 0,
|
|
|
deb259 |
- * PPET8 set to 7
|
|
|
deb259 |
- */
|
|
|
deb259 |
- .ppe_thres = {0x61, 0x1c, 0xc7, 0x71},
|
|
|
deb259 |
+static struct ieee80211_sband_iftype_data iwl_he_capa = {
|
|
|
deb259 |
+ .types_mask = BIT(NL80211_IFTYPE_STATION) | BIT(NL80211_IFTYPE_AP),
|
|
|
deb259 |
+ .he_cap = {
|
|
|
deb259 |
+ .has_he = true,
|
|
|
deb259 |
+ .he_cap_elem = {
|
|
|
deb259 |
+ .mac_cap_info[0] =
|
|
|
deb259 |
+ IEEE80211_HE_MAC_CAP0_HTC_HE |
|
|
|
deb259 |
+ IEEE80211_HE_MAC_CAP0_TWT_REQ,
|
|
|
deb259 |
+ .mac_cap_info[1] =
|
|
|
deb259 |
+ IEEE80211_HE_MAC_CAP1_TF_MAC_PAD_DUR_16US |
|
|
|
deb259 |
+ IEEE80211_HE_MAC_CAP1_MULTI_TID_AGG_RX_QOS_8,
|
|
|
deb259 |
+ .mac_cap_info[2] =
|
|
|
deb259 |
+ IEEE80211_HE_MAC_CAP2_32BIT_BA_BITMAP |
|
|
|
deb259 |
+ IEEE80211_HE_MAC_CAP2_MU_CASCADING |
|
|
|
deb259 |
+ IEEE80211_HE_MAC_CAP2_ACK_EN,
|
|
|
deb259 |
+ .mac_cap_info[3] =
|
|
|
deb259 |
+ IEEE80211_HE_MAC_CAP3_OMI_CONTROL |
|
|
|
deb259 |
+ IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_VHT_2,
|
|
|
deb259 |
+ .mac_cap_info[4] =
|
|
|
deb259 |
+ IEEE80211_HE_MAC_CAP4_AMDSU_IN_AMPDU |
|
|
|
deb259 |
+ IEEE80211_HE_MAC_CAP4_MULTI_TID_AGG_TX_QOS_B39,
|
|
|
deb259 |
+ .mac_cap_info[5] =
|
|
|
deb259 |
+ IEEE80211_HE_MAC_CAP5_MULTI_TID_AGG_TX_QOS_B40 |
|
|
|
deb259 |
+ IEEE80211_HE_MAC_CAP5_MULTI_TID_AGG_TX_QOS_B41 |
|
|
|
deb259 |
+ IEEE80211_HE_MAC_CAP5_UL_2x996_TONE_RU,
|
|
|
deb259 |
+ .phy_cap_info[0] =
|
|
|
deb259 |
+ IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_IN_2G |
|
|
|
deb259 |
+ IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_80MHZ_IN_5G |
|
|
|
deb259 |
+ IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_160MHZ_IN_5G,
|
|
|
deb259 |
+ .phy_cap_info[1] =
|
|
|
deb259 |
+ IEEE80211_HE_PHY_CAP1_PREAMBLE_PUNC_RX_MASK |
|
|
|
deb259 |
+ IEEE80211_HE_PHY_CAP1_DEVICE_CLASS_A |
|
|
|
deb259 |
+ IEEE80211_HE_PHY_CAP1_LDPC_CODING_IN_PAYLOAD |
|
|
|
deb259 |
+ IEEE80211_HE_PHY_CAP1_MIDAMBLE_RX_TX_MAX_NSTS,
|
|
|
deb259 |
+ .phy_cap_info[2] =
|
|
|
deb259 |
+ IEEE80211_HE_PHY_CAP2_NDP_4x_LTF_AND_3_2US |
|
|
|
deb259 |
+ IEEE80211_HE_PHY_CAP2_STBC_TX_UNDER_80MHZ |
|
|
|
deb259 |
+ IEEE80211_HE_PHY_CAP2_STBC_RX_UNDER_80MHZ |
|
|
|
deb259 |
+ IEEE80211_HE_PHY_CAP2_UL_MU_FULL_MU_MIMO |
|
|
|
deb259 |
+ IEEE80211_HE_PHY_CAP2_UL_MU_PARTIAL_MU_MIMO,
|
|
|
deb259 |
+ .phy_cap_info[3] =
|
|
|
deb259 |
+ IEEE80211_HE_PHY_CAP3_DCM_MAX_CONST_TX_BPSK |
|
|
|
deb259 |
+ IEEE80211_HE_PHY_CAP3_DCM_MAX_TX_NSS_1 |
|
|
|
deb259 |
+ IEEE80211_HE_PHY_CAP3_DCM_MAX_CONST_RX_BPSK |
|
|
|
deb259 |
+ IEEE80211_HE_PHY_CAP3_DCM_MAX_RX_NSS_1,
|
|
|
deb259 |
+ .phy_cap_info[4] =
|
|
|
deb259 |
+ IEEE80211_HE_PHY_CAP4_SU_BEAMFORMEE |
|
|
|
deb259 |
+ IEEE80211_HE_PHY_CAP4_BEAMFORMEE_MAX_STS_ABOVE_80MHZ_8 |
|
|
|
deb259 |
+ IEEE80211_HE_PHY_CAP4_BEAMFORMEE_MAX_STS_UNDER_80MHZ_8,
|
|
|
deb259 |
+ .phy_cap_info[5] =
|
|
|
deb259 |
+ IEEE80211_HE_PHY_CAP5_BEAMFORMEE_NUM_SND_DIM_UNDER_80MHZ_2 |
|
|
|
deb259 |
+ IEEE80211_HE_PHY_CAP5_BEAMFORMEE_NUM_SND_DIM_ABOVE_80MHZ_2 |
|
|
|
deb259 |
+ IEEE80211_HE_PHY_CAP5_NG16_SU_FEEDBACK |
|
|
|
deb259 |
+ IEEE80211_HE_PHY_CAP5_NG16_MU_FEEDBACK,
|
|
|
deb259 |
+ .phy_cap_info[6] =
|
|
|
deb259 |
+ IEEE80211_HE_PHY_CAP6_CODEBOOK_SIZE_42_SU |
|
|
|
deb259 |
+ IEEE80211_HE_PHY_CAP6_CODEBOOK_SIZE_75_MU |
|
|
|
deb259 |
+ IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB |
|
|
|
deb259 |
+ IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB |
|
|
|
deb259 |
+ IEEE80211_HE_PHY_CAP6_TRIG_CQI_FB |
|
|
|
deb259 |
+ IEEE80211_HE_PHY_CAP6_PARTIAL_BANDWIDTH_DL_MUMIMO |
|
|
|
deb259 |
+ IEEE80211_HE_PHY_CAP6_PPE_THRESHOLD_PRESENT,
|
|
|
deb259 |
+ .phy_cap_info[7] =
|
|
|
deb259 |
+ IEEE80211_HE_PHY_CAP7_POWER_BOOST_FACTOR_AR |
|
|
|
deb259 |
+ IEEE80211_HE_PHY_CAP7_HE_SU_MU_PPDU_4XLTF_AND_08_US_GI |
|
|
|
deb259 |
+ IEEE80211_HE_PHY_CAP7_MAX_NC_1,
|
|
|
deb259 |
+ .phy_cap_info[8] =
|
|
|
deb259 |
+ IEEE80211_HE_PHY_CAP8_HE_ER_SU_PPDU_4XLTF_AND_08_US_GI |
|
|
|
deb259 |
+ IEEE80211_HE_PHY_CAP8_20MHZ_IN_40MHZ_HE_PPDU_IN_2G |
|
|
|
deb259 |
+ IEEE80211_HE_PHY_CAP8_20MHZ_IN_160MHZ_HE_PPDU |
|
|
|
deb259 |
+ IEEE80211_HE_PHY_CAP8_80MHZ_IN_160MHZ_HE_PPDU |
|
|
|
deb259 |
+ IEEE80211_HE_PHY_CAP8_DCM_MAX_BW_160_OR_80P80_MHZ,
|
|
|
deb259 |
+ .phy_cap_info[9] =
|
|
|
deb259 |
+ IEEE80211_HE_PHY_CAP9_NON_TRIGGERED_CQI_FEEDBACK |
|
|
|
deb259 |
+ IEEE80211_HE_PHY_CAP9_RX_FULL_BW_SU_USING_MU_WITH_COMP_SIGB |
|
|
|
deb259 |
+ IEEE80211_HE_PHY_CAP9_RX_FULL_BW_SU_USING_MU_WITH_NON_COMP_SIGB,
|
|
|
deb259 |
},
|
|
|
deb259 |
- },
|
|
|
deb259 |
- {
|
|
|
deb259 |
- .types_mask = BIT(NL80211_IFTYPE_AP),
|
|
|
deb259 |
- .he_cap = {
|
|
|
deb259 |
- .has_he = true,
|
|
|
deb259 |
- .he_cap_elem = {
|
|
|
deb259 |
- .mac_cap_info[0] =
|
|
|
deb259 |
- IEEE80211_HE_MAC_CAP0_HTC_HE |
|
|
|
deb259 |
- IEEE80211_HE_MAC_CAP0_TWT_RES,
|
|
|
deb259 |
- .mac_cap_info[1] =
|
|
|
deb259 |
- IEEE80211_HE_MAC_CAP1_TF_MAC_PAD_DUR_16US |
|
|
|
deb259 |
- IEEE80211_HE_MAC_CAP1_MULTI_TID_AGG_RX_QOS_8,
|
|
|
deb259 |
- .mac_cap_info[2] =
|
|
|
deb259 |
- IEEE80211_HE_MAC_CAP2_BSR |
|
|
|
deb259 |
- IEEE80211_HE_MAC_CAP2_MU_CASCADING |
|
|
|
deb259 |
- IEEE80211_HE_MAC_CAP2_ACK_EN,
|
|
|
deb259 |
- .mac_cap_info[3] =
|
|
|
deb259 |
- IEEE80211_HE_MAC_CAP3_OMI_CONTROL |
|
|
|
deb259 |
- IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_VHT_2,
|
|
|
deb259 |
- .mac_cap_info[4] =
|
|
|
deb259 |
- IEEE80211_HE_MAC_CAP4_AMDSU_IN_AMPDU,
|
|
|
deb259 |
- .phy_cap_info[0] =
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_IN_2G |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_80MHZ_IN_5G |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_160MHZ_IN_5G,
|
|
|
deb259 |
- .phy_cap_info[1] =
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP1_LDPC_CODING_IN_PAYLOAD |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP1_MIDAMBLE_RX_TX_MAX_NSTS,
|
|
|
deb259 |
- .phy_cap_info[2] =
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP2_NDP_4x_LTF_AND_3_2US |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP2_STBC_TX_UNDER_80MHZ |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP2_STBC_RX_UNDER_80MHZ,
|
|
|
deb259 |
- .phy_cap_info[3] =
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP3_DCM_MAX_CONST_TX_BPSK |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP3_DCM_MAX_TX_NSS_1 |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP3_DCM_MAX_CONST_RX_BPSK |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP3_DCM_MAX_RX_NSS_1,
|
|
|
deb259 |
- .phy_cap_info[4] =
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP4_SU_BEAMFORMEE |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP4_BEAMFORMEE_MAX_STS_ABOVE_80MHZ_8 |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP4_BEAMFORMEE_MAX_STS_UNDER_80MHZ_8,
|
|
|
deb259 |
- .phy_cap_info[5] =
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP5_BEAMFORMEE_NUM_SND_DIM_UNDER_80MHZ_2 |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP5_BEAMFORMEE_NUM_SND_DIM_ABOVE_80MHZ_2 |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP5_NG16_SU_FEEDBACK |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP5_NG16_MU_FEEDBACK,
|
|
|
deb259 |
- .phy_cap_info[6] =
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP6_CODEBOOK_SIZE_42_SU |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP6_CODEBOOK_SIZE_75_MU |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP6_PPE_THRESHOLD_PRESENT,
|
|
|
deb259 |
- .phy_cap_info[7] =
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP7_HE_SU_MU_PPDU_4XLTF_AND_08_US_GI |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP7_MAX_NC_1,
|
|
|
deb259 |
- .phy_cap_info[8] =
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP8_HE_ER_SU_PPDU_4XLTF_AND_08_US_GI |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP8_20MHZ_IN_40MHZ_HE_PPDU_IN_2G |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP8_20MHZ_IN_160MHZ_HE_PPDU |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP8_80MHZ_IN_160MHZ_HE_PPDU |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP8_DCM_MAX_BW_160_OR_80P80_MHZ,
|
|
|
deb259 |
- .phy_cap_info[9] =
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP9_RX_FULL_BW_SU_USING_MU_WITH_COMP_SIGB |
|
|
|
deb259 |
- IEEE80211_HE_PHY_CAP9_RX_FULL_BW_SU_USING_MU_WITH_NON_COMP_SIGB,
|
|
|
deb259 |
- },
|
|
|
deb259 |
- /*
|
|
|
deb259 |
- * Set default Tx/Rx HE MCS NSS Support field.
|
|
|
deb259 |
- * Indicate support for up to 2 spatial streams and all
|
|
|
deb259 |
- * MCS, without any special cases
|
|
|
deb259 |
- */
|
|
|
deb259 |
- .he_mcs_nss_supp = {
|
|
|
deb259 |
- .rx_mcs_80 = cpu_to_le16(0xfffa),
|
|
|
deb259 |
- .tx_mcs_80 = cpu_to_le16(0xfffa),
|
|
|
deb259 |
- .rx_mcs_160 = cpu_to_le16(0xfffa),
|
|
|
deb259 |
- .tx_mcs_160 = cpu_to_le16(0xfffa),
|
|
|
deb259 |
- .rx_mcs_80p80 = cpu_to_le16(0xffff),
|
|
|
deb259 |
- .tx_mcs_80p80 = cpu_to_le16(0xffff),
|
|
|
deb259 |
- },
|
|
|
deb259 |
- /*
|
|
|
deb259 |
- * Set default PPE thresholds, with PPET16 set to 0,
|
|
|
deb259 |
- * PPET8 set to 7
|
|
|
deb259 |
- */
|
|
|
deb259 |
- .ppe_thres = {0x61, 0x1c, 0xc7, 0x71},
|
|
|
deb259 |
+ /*
|
|
|
deb259 |
+ * Set default Tx/Rx HE MCS NSS Support field. Indicate support
|
|
|
deb259 |
+ * for up to 2 spatial streams and all MCS, without any special
|
|
|
deb259 |
+ * cases
|
|
|
deb259 |
+ */
|
|
|
deb259 |
+ .he_mcs_nss_supp = {
|
|
|
deb259 |
+ .rx_mcs_80 = cpu_to_le16(0xfffa),
|
|
|
deb259 |
+ .tx_mcs_80 = cpu_to_le16(0xfffa),
|
|
|
deb259 |
+ .rx_mcs_160 = cpu_to_le16(0xfffa),
|
|
|
deb259 |
+ .tx_mcs_160 = cpu_to_le16(0xfffa),
|
|
|
deb259 |
+ .rx_mcs_80p80 = cpu_to_le16(0xffff),
|
|
|
deb259 |
+ .tx_mcs_80p80 = cpu_to_le16(0xffff),
|
|
|
deb259 |
},
|
|
|
deb259 |
+ /*
|
|
|
deb259 |
+ * Set default PPE thresholds, with PPET16 set to 0, PPET8 set
|
|
|
deb259 |
+ * to 7
|
|
|
deb259 |
+ */
|
|
|
deb259 |
+ .ppe_thres = {0x61, 0x1c, 0xc7, 0x71},
|
|
|
deb259 |
},
|
|
|
deb259 |
};
|
|
|
deb259 |
|
|
|
deb259 |
@@ -667,24 +583,20 @@ static void iwl_init_he_hw_capab(struct ieee80211_supported_band *sband,
|
|
|
deb259 |
{
|
|
|
deb259 |
if (sband->band == NL80211_BAND_2GHZ ||
|
|
|
deb259 |
sband->band == NL80211_BAND_5GHZ)
|
|
|
deb259 |
- sband->iftype_data = iwl_he_capa;
|
|
|
deb259 |
+ sband->iftype_data = &iwl_he_capa;
|
|
|
deb259 |
else
|
|
|
deb259 |
return;
|
|
|
deb259 |
|
|
|
deb259 |
- sband->n_iftype_data = ARRAY_SIZE(iwl_he_capa);
|
|
|
deb259 |
+ sband->n_iftype_data = 1;
|
|
|
deb259 |
|
|
|
deb259 |
/* If not 2x2, we need to indicate 1x1 in the Midamble RX Max NSTS */
|
|
|
deb259 |
if ((tx_chains & rx_chains) != ANT_AB) {
|
|
|
deb259 |
- int i;
|
|
|
deb259 |
-
|
|
|
deb259 |
- for (i = 0; i < sband->n_iftype_data; i++) {
|
|
|
deb259 |
- iwl_he_capa[i].he_cap.he_cap_elem.phy_cap_info[1] &=
|
|
|
deb259 |
- ~IEEE80211_HE_PHY_CAP1_MIDAMBLE_RX_TX_MAX_NSTS;
|
|
|
deb259 |
- iwl_he_capa[i].he_cap.he_cap_elem.phy_cap_info[2] &=
|
|
|
deb259 |
- ~IEEE80211_HE_PHY_CAP2_MIDAMBLE_RX_TX_MAX_NSTS;
|
|
|
deb259 |
- iwl_he_capa[i].he_cap.he_cap_elem.phy_cap_info[7] &=
|
|
|
deb259 |
- ~IEEE80211_HE_PHY_CAP7_MAX_NC_MASK;
|
|
|
deb259 |
- }
|
|
|
deb259 |
+ iwl_he_capa.he_cap.he_cap_elem.phy_cap_info[1] &=
|
|
|
deb259 |
+ ~IEEE80211_HE_PHY_CAP1_MIDAMBLE_RX_TX_MAX_NSTS;
|
|
|
deb259 |
+ iwl_he_capa.he_cap.he_cap_elem.phy_cap_info[2] &=
|
|
|
deb259 |
+ ~IEEE80211_HE_PHY_CAP2_MIDAMBLE_RX_TX_MAX_NSTS;
|
|
|
deb259 |
+ iwl_he_capa.he_cap.he_cap_elem.phy_cap_info[7] &=
|
|
|
deb259 |
+ ~IEEE80211_HE_PHY_CAP7_MAX_NC_MASK;
|
|
|
deb259 |
}
|
|
|
deb259 |
}
|
|
|
deb259 |
|
|
|
deb259 |
--
|
|
|
deb259 |
2.13.6
|
|
|
deb259 |
|