Message ID | 20190904091527.27260-1-john@phrozen.org (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Kalle Valo |
Headers | show |
Series | ath11k: Disable SU support in meshpoint mode | expand |
On Wednesday, 4 September 2019 11:15:27 CEST John Crispin wrote: > From: Sven Eckelmann <seckelmann@datto.com> > > The firmware WLAN.HK.2.1.0.1-00629-QCAHKSWPL_SILICONZ-1 often stops sending > data on 5GHz when SU support is advertised. A simple throughput benchmark > will end up at only a couple hundred kilobytes per second (when finishing > at all). > > Disabling SU related flags works around this problem and allowed a maximum > throughput of ~450 MBit/s in a simple test setup with an HK01 over air. > > Signed-off-by: Sven Eckelmann <seckelmann@datto.com> > --- > drivers/net/wireless/ath/ath11k/mac.c | 11 ++++++----- > 1 file changed, 6 insertions(+), 5 deletions(-) This is the incorrect patch. The correct version can be found at https://patchwork.kernel.org/project/ath11k/list/?series=159083 > diff --git a/drivers/net/wireless/ath/ath11k/mac.c b/drivers/net/wireless/ath/ath11k/mac.c > index 4d40c9635a4a..0869900d7e18 100644 > --- a/drivers/net/wireless/ath/ath11k/mac.c > +++ b/drivers/net/wireless/ath/ath11k/mac.c > @@ -3365,19 +3365,20 @@ static int ath11k_mac_copy_he_cap(struct ath11k *ar, > he_cap_elem->phy_cap_info[3] &= > ~(IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA | > IEEE80211_HE_PHY_CAP3_DCM_MAX_CONST_TX_MASK | > - IEEE80211_HE_PHY_CAP3_DCM_MAX_CONST_RX_MASK); > - he_cap_elem->phy_cap_info[4] &= > - ~IEEE80211_HE_PHY_CAP4_MU_BEAMFORMER; > - he_cap_elem->phy_cap_info[5] &= > - ~IEEE80211_HE_PHY_CAP5_NG16_MU_FEEDBACK; > + IEEE80211_HE_PHY_CAP3_DCM_MAX_CONST_RX_MASK | > + IEEE80211_HE_PHY_CAP3_SU_BEAMFORMER); > + he_cap_elem->phy_cap_info[4] = 0; > + he_cap_elem->phy_cap_info[5] = 0; > he_cap_elem->phy_cap_info[6] &= > ~(IEEE80211_HE_PHY_CAP6_CODEBOOK_SIZE_75_MU | > + IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB | > IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB | > IEEE80211_HE_PHY_CAP6_TRIG_CQI_FB | > IEEE80211_HE_PHY_CAP6_PARTIAL_BANDWIDTH_DL_MUMIMO); > he_cap_elem->phy_cap_info[7] &= > ~(IEEE80211_HE_PHY_CAP7_SRP_BASED_SR | > IEEE80211_HE_PHY_CAP7_POWER_BOOST_FACTOR_AR | > + IEEE80211_HE_PHY_CAP7_HE_SU_MU_PPDU_4XLTF_AND_08_US_GI | > IEEE80211_HE_PHY_CAP7_STBC_TX_ABOVE_80MHZ | > IEEE80211_HE_PHY_CAP7_STBC_RX_ABOVE_80MHZ); > he_cap_elem->phy_cap_info[8] &= >
diff --git a/drivers/net/wireless/ath/ath11k/mac.c b/drivers/net/wireless/ath/ath11k/mac.c index 4d40c9635a4a..0869900d7e18 100644 --- a/drivers/net/wireless/ath/ath11k/mac.c +++ b/drivers/net/wireless/ath/ath11k/mac.c @@ -3365,19 +3365,20 @@ static int ath11k_mac_copy_he_cap(struct ath11k *ar, he_cap_elem->phy_cap_info[3] &= ~(IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA | IEEE80211_HE_PHY_CAP3_DCM_MAX_CONST_TX_MASK | - IEEE80211_HE_PHY_CAP3_DCM_MAX_CONST_RX_MASK); - he_cap_elem->phy_cap_info[4] &= - ~IEEE80211_HE_PHY_CAP4_MU_BEAMFORMER; - he_cap_elem->phy_cap_info[5] &= - ~IEEE80211_HE_PHY_CAP5_NG16_MU_FEEDBACK; + IEEE80211_HE_PHY_CAP3_DCM_MAX_CONST_RX_MASK | + IEEE80211_HE_PHY_CAP3_SU_BEAMFORMER); + he_cap_elem->phy_cap_info[4] = 0; + he_cap_elem->phy_cap_info[5] = 0; he_cap_elem->phy_cap_info[6] &= ~(IEEE80211_HE_PHY_CAP6_CODEBOOK_SIZE_75_MU | + IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB | IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB | IEEE80211_HE_PHY_CAP6_TRIG_CQI_FB | IEEE80211_HE_PHY_CAP6_PARTIAL_BANDWIDTH_DL_MUMIMO); he_cap_elem->phy_cap_info[7] &= ~(IEEE80211_HE_PHY_CAP7_SRP_BASED_SR | IEEE80211_HE_PHY_CAP7_POWER_BOOST_FACTOR_AR | + IEEE80211_HE_PHY_CAP7_HE_SU_MU_PPDU_4XLTF_AND_08_US_GI | IEEE80211_HE_PHY_CAP7_STBC_TX_ABOVE_80MHZ | IEEE80211_HE_PHY_CAP7_STBC_RX_ABOVE_80MHZ); he_cap_elem->phy_cap_info[8] &=