From 1883008d4c1f6ebeffa9832008cd592063870c00 Mon Sep 17 00:00:00 2001 From: Naveen Rawat Date: Fri, 1 Jun 2018 17:12:31 -0700 Subject: [PATCH] qcacmn: Fix get chain rssi stats Fix chain rssi stats by correcting logic to extract chain rssi stats. Change-Id: Ifd8337abaef7f101082131e48f2ec87097317899 CRs-Fixed: 2253043 --- target_if/cp_stats/src/target_if_mc_cp_stats.c | 18 +++++++++--------- wmi/src/wmi_unified_tlv.c | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/target_if/cp_stats/src/target_if_mc_cp_stats.c b/target_if/cp_stats/src/target_if_mc_cp_stats.c index 42f945c754f7..3907f2392bf9 100644 --- a/target_if/cp_stats/src/target_if_mc_cp_stats.c +++ b/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; } } diff --git a/wmi/src/wmi_unified_tlv.c b/wmi/src/wmi_unified_tlv.c index 828ce596dca7..62735b06a2fa 100644 --- a/wmi/src/wmi_unified_tlv.c +++ b/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;