Browse Source

qcacmn: Fix invalid rate info. in monitor mode

Fix NSS value is not filled in VHT monitor mode.

Change-Id: I9a3edd48d677b61c14503a5a55d8d177b5c92629
CRs-Fixed: 3368014
Yu Tian 2 years ago
parent
commit
70c9b142e8
1 changed files with 14 additions and 2 deletions
  1. 14 2
      hal/wifi3.0/be/hal_be_api_mon.h

+ 14 - 2
hal/wifi3.0/be/hal_be_api_mon.h

@@ -2367,10 +2367,22 @@ hal_rx_status_get_tlv_info_generic_be(void *rx_tlv_hdr, void *ppduinfo,
 			ppdu_info->rx_status.nss = 0;
 #endif
 			break;
-		case TARGET_TYPE_QCA6490:
-		case TARGET_TYPE_QCA6750:
 		case TARGET_TYPE_KIWI:
 		case TARGET_TYPE_MANGO:
+			ppdu_info->rx_status.is_stbc =
+				HAL_RX_GET(vht_sig_a_info,
+					   VHT_SIG_A_INFO, STBC);
+			value =  HAL_RX_GET(vht_sig_a_info,
+					    VHT_SIG_A_INFO, N_STS);
+			value = value & VHT_SIG_SU_NSS_MASK;
+			if (ppdu_info->rx_status.is_stbc && (value > 0))
+				value = ((value + 1) >> 1) - 1;
+			ppdu_info->rx_status.nss =
+				((value & VHT_SIG_SU_NSS_MASK) + 1);
+
+			break;
+		case TARGET_TYPE_QCA6490:
+		case TARGET_TYPE_QCA6750:
 			ppdu_info->rx_status.nss = 0;
 			break;
 		default: