소스 검색

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);