Browse Source

qcacmn: Fix get chain rssi stats

Fix chain rssi stats by correcting logic to extract chain
rssi stats.

Change-Id: Ifd8337abaef7f101082131e48f2ec87097317899
CRs-Fixed: 2253043
Naveen Rawat 6 years ago
parent
commit
1883008d4c
2 changed files with 10 additions and 10 deletions
  1. 9 9
      target_if/cp_stats/src/target_if_mc_cp_stats.c
  2. 1 1
      wmi/src/wmi_unified_tlv.c

+ 9 - 9
target_if/cp_stats/src/target_if_mc_cp_stats.c

@@ -230,7 +230,7 @@ static QDF_STATUS target_if_cp_stats_extract_vdev_chain_rssi_stats(
 					wmi_host_stats_event *stats_param,
 					struct stats_event *ev, uint8_t *data)
 {
-	uint32_t i;
+	uint32_t i, j;
 	QDF_STATUS status;
 	int32_t bcn_snr, dat_snr;
 	struct wmi_host_per_chain_rssi_stats rssi_stats;
@@ -252,15 +252,15 @@ static QDF_STATUS target_if_cp_stats_extract_vdev_chain_rssi_stats(
 		if (QDF_IS_STATUS_ERROR(status))
 			continue;
 
-		for (i = 0; i < MAX_NUM_CHAINS; i++) {
-			dat_snr = rssi_stats.rssi_avg_data[i];
-			bcn_snr = rssi_stats.rssi_avg_beacon[i];
-			cp_stats_err("Chain %d SNR bcn: %d data: %d", i,
+		for (j = 0; j < MAX_NUM_CHAINS; j++) {
+			dat_snr = rssi_stats.rssi_avg_data[j];
+			bcn_snr = rssi_stats.rssi_avg_beacon[j];
+			cp_stats_err("Chain %d SNR bcn: %d data: %d", j,
 				     bcn_snr, dat_snr);
 			if (TGT_IS_VALID_SNR(bcn_snr))
-				ev->vdev_chain_rssi[i].chain_rssi[i] = bcn_snr;
+				ev->vdev_chain_rssi[i].chain_rssi[j] = bcn_snr;
 			else if (TGT_IS_VALID_SNR(dat_snr))
-				ev->vdev_chain_rssi[i].chain_rssi[i] = dat_snr;
+				ev->vdev_chain_rssi[i].chain_rssi[j] = dat_snr;
 			else
 				/*
 				 * Firmware sends invalid snr till it sees
@@ -269,14 +269,14 @@ static QDF_STATUS target_if_cp_stats_extract_vdev_chain_rssi_stats(
 				 * duartion Host will return an invalid rssi
 				 * value.
 				 */
-				ev->vdev_chain_rssi[i].chain_rssi[i] =
+				ev->vdev_chain_rssi[i].chain_rssi[j] =
 							TGT_INVALID_SNR;
 			/*
 			 * Get the absolute rssi value from the current rssi
 			 * value the snr value is hardcoded into 0 in the
 			 * qcacld-new/CORE stack
 			 */
-			ev->vdev_chain_rssi[i].chain_rssi[i] +=
+			ev->vdev_chain_rssi[i].chain_rssi[j] +=
 							TGT_NOISE_FLOOR_DBM;
 		}
 	}

+ 1 - 1
wmi/src/wmi_unified_tlv.c

@@ -18303,7 +18303,7 @@ static QDF_STATUS extract_all_stats_counts_tlv(wmi_unified_t wmi_handle,
 		return QDF_STATUS_SUCCESS;
 
 	if (WMITLV_GET_STRUCT_TLVLEN(wmi_per_chain_rssi_stats) !=
-	    WMITLV_GET_TLVTAG(rssi_event->tlv_header))
+	    WMITLV_GET_TLVLEN(rssi_event->tlv_header))
 		return QDF_STATUS_SUCCESS;
 
 	stats_param->num_rssi_stats = rssi_event->num_per_chain_rssi_stats;