ソースを参照

qcacld-3.0: Clear txSTBC capab if number of tx streams is less than 2

Currently tx STBC param sent to FW is taken from peer's response frame, which
is wrong if current hardware does not support 2x2 for given channel width.
Update the driver to check number of tx stream for current vdev and clear txSTBC
if needed.

Change-Id: If05e5de72ba5af95b343817d811db0f413493ee1
CRs-Fixed: 941217
Naveen Rawat 9 年 前
コミット
b14cab349f
1 ファイル変更12 行追加1 行削除
  1. 12 1
      core/wma/src/wma_mgmt.c

+ 12 - 1
core/wma/src/wma_mgmt.c

@@ -1110,7 +1110,18 @@ int32_t wmi_unified_send_peer_assoc(tp_wma_handle wma,
 		       WMITLV_GET_STRUCT_TLVLEN(wmi_vht_rate_set));
 
 	cmd->peer_nss = peer_nss;
-
+	/*
+	 * Because of DBS a vdev may come up in any of the two MACs with
+	 * different capabilities. STBC capab should be fetched for given
+	 * hard_mode->MAC_id combo. It is planned that firmware should provide
+	 * these dev capabilities. But for now number of tx streams can be used
+	 * to identify if Tx STBC needs to be disabled.
+	 */
+	if (intr->tx_streams < 2) {
+		cmd->peer_vht_caps &= ~(1 << SIR_MAC_VHT_CAP_TXSTBC);
+		WMA_LOGD("Num tx_streams: %d, Disabled txSTBC",
+			 intr->tx_streams);
+	}
 	WMA_LOGD("peer_nss %d peer_ht_rates.num_rates %d ", cmd->peer_nss,
 		 peer_ht_rates.num_rates);