浏览代码

ath10k: use station's current operating mode from assoc request

The current number of spatial streams used by the client is advertised
as a separate IE in assoc request. Use this information to set
the NSS operating mode.

Fixes: 45c9abc059fa ("ath10k: implement more versatile set_bitrate_mask").
Signed-off-by: Vivek Natarajan <nataraja@qti.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
Vivek Natarajan 9 年之前
父节点
当前提交
72f8cef5d1
共有 1 个文件被更改,包括 3 次插入2 次删除
  1. 3 2
      drivers/net/wireless/ath/ath10k/mac.c

+ 3 - 2
drivers/net/wireless/ath/ath10k/mac.c

@@ -2084,7 +2084,8 @@ static void ath10k_peer_assoc_h_ht(struct ath10k *ar,
 	enum ieee80211_band band;
 	enum ieee80211_band band;
 	const u8 *ht_mcs_mask;
 	const u8 *ht_mcs_mask;
 	const u16 *vht_mcs_mask;
 	const u16 *vht_mcs_mask;
-	int i, n, max_nss;
+	int i, n;
+	u8 max_nss;
 	u32 stbc;
 	u32 stbc;
 
 
 	lockdep_assert_held(&ar->conf_mutex);
 	lockdep_assert_held(&ar->conf_mutex);
@@ -2169,7 +2170,7 @@ static void ath10k_peer_assoc_h_ht(struct ath10k *ar,
 			arg->peer_ht_rates.rates[i] = i;
 			arg->peer_ht_rates.rates[i] = i;
 	} else {
 	} else {
 		arg->peer_ht_rates.num_rates = n;
 		arg->peer_ht_rates.num_rates = n;
-		arg->peer_num_spatial_streams = max_nss;
+		arg->peer_num_spatial_streams = min(sta->rx_nss, max_nss);
 	}
 	}
 
 
 	ath10k_dbg(ar, ATH10K_DBG_MAC, "mac ht peer %pM mcs cnt %d nss %d\n",
 	ath10k_dbg(ar, ATH10K_DBG_MAC, "mac ht peer %pM mcs cnt %d nss %d\n",