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 0dfeae8..d31fa1c 100644
--- a/drivers/net/wireless/ath/ath10k/mac.c
+++ b/drivers/net/wireless/ath/ath10k/mac.c
@@ -2534,6 +2534,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;
@@ -2574,16 +2575,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

Reply via email to