From: Sujith Manoharan <c_man...@qca.qualcomm.com> The FW doesn't fill the mpdu density field in the HT capabilities received in the service_ready event and the host driver ends up advertising 0 in its capabilities.
Fix this by hard-coding the spacing time to 8us. Signed-off-by: Sujith Manoharan <c_man...@qca.qualcomm.com> --- drivers/net/wireless/ath/ath10k/mac.c | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c index e654804..93fe03f 100644 --- a/drivers/net/wireless/ath/ath10k/mac.c +++ b/drivers/net/wireless/ath/ath10k/mac.c @@ -2571,6 +2571,7 @@ static struct ieee80211_sta_ht_cap ath10k_get_ht_cap(struct ath10k *ar) ht_cap.ht_supported = 1; ht_cap.ampdu_factor = IEEE80211_HT_MAX_AMPDU_64K; + ht_cap.ampdu_density = IEEE80211_HT_MPDU_DENSITY_8; ht_cap.cap |= IEEE80211_HT_CAP_SUP_WIDTH_20_40; ht_cap.cap |= IEEE80211_HT_CAP_DSSSCCK40; ht_cap.cap |= WLAN_HT_CAP_SM_PS_STATIC << IEEE80211_HT_CAP_SM_PS_SHIFT; @@ -2611,16 +2612,6 @@ static struct ieee80211_sta_ht_cap ath10k_get_ht_cap(struct ath10k *ar) if (ar->ht_cap_info & WMI_HT_CAP_L_SIG_TXOP_PROT) ht_cap.cap |= IEEE80211_HT_CAP_LSIG_TXOP_PROT; - if (ar->ht_cap_info & WMI_HT_CAP_MPDU_DENSITY) { - u32 density; - - density = ar->ht_cap_info; - density &= WMI_HT_CAP_MPDU_DENSITY; - density >>= WMI_HT_CAP_MPDU_DENSITY_MASK_SHIFT; - - ht_cap.ampdu_density = density; - } - /* max AMSDU is implicitly taken from vht_cap_info */ if (ar->vht_cap_info & WMI_VHT_CAP_MAX_MPDU_LEN_MASK) ht_cap.cap |= IEEE80211_HT_CAP_MAX_AMSDU; -- 1.8.2.2 _______________________________________________ ath9k-devel mailing list ath9k-devel@lists.ath9k.org https://lists.ath9k.org/mailman/listinfo/ath9k-devel