ath11k: Fix fw assert by setting proper vht cap
authorRitesh Singh <ritesi@codeaurora.org>
Fri, 10 Apr 2020 17:06:44 +0000 (22:36 +0530)
committerKalle Valo <kvalo@codeaurora.org>
Wed, 15 Apr 2020 07:59:32 +0000 (10:59 +0300)
After setting fixed vht-rate if new station is trying to
assoc with mu_bfee cap, or if a sta is already connected
with mu_bfee cap then set the fixed vht-rate and
reconnecting the sta, FW assert is happening.

So to avoid this, reset the MU_BEAMFORMEE bit in vht->caps,
if mcs_index is invalid for nss 1.

Signed-off-by: Ritesh Singh <ritesi@codeaurora.org>
Signed-off-by: Maharaja Kennadyrajan <mkenna@codeaurora.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/1586538405-16226-2-git-send-email-mkenna@codeaurora.org
drivers/net/wireless/ath/ath11k/mac.c

index 4783394b857574a50182e6ebeea164e8114cb129..0834089a61e778e999f21b7f1e1b6456aac574ca 100644 (file)
@@ -1142,6 +1142,10 @@ static void ath11k_peer_assoc_h_vht(struct ath11k *ar,
        arg->tx_mcs_set &= ~IEEE80211_VHT_MCS_SUPPORT_0_11_MASK;
        arg->tx_mcs_set |= IEEE80211_DISABLE_VHT_MCS_SUPPORT_0_11;
 
+       if ((arg->tx_mcs_set & IEEE80211_VHT_MCS_NOT_SUPPORTED) ==
+                       IEEE80211_VHT_MCS_NOT_SUPPORTED)
+               arg->peer_vht_caps &= ~IEEE80211_VHT_CAP_MU_BEAMFORMEE_CAPABLE;
+
        /* TODO:  Check */
        arg->tx_max_mcs_nss = 0xFF;