summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVarun Reddy Yeturu <varunreddy.yeturu@codeaurora.org>2016-06-29 11:55:41 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2016-07-06 13:34:48 -0700
commit83ccb9b38bb70e675dd1ef37fcd089004e492314 (patch)
tree40748b9c0d86da41e488d6c97d123453c0cf6f5b
parent2a9318a7e983b257a07f2229c77dae475f2e3eee (diff)
qcacld-3.0: Fix the invalid SNR value in Host
qcacld-2.0 to qcacld-3.0 propagation Firmware sends 0x127 as the invalid snr value when it is in a state of unable to get it from either a beacon or data packet CRs-Fixed: 939255 Change-Id: Ia45a8c4acd6a54ff3e56b192c11cea0df97eadaf
-rw-r--r--core/wma/inc/wma.h2
-rw-r--r--core/wma/src/wma_utils.c31
2 files changed, 17 insertions, 16 deletions
diff --git a/core/wma/inc/wma.h b/core/wma/inc/wma.h
index 957af8074d3d..9eb42a5e85f4 100644
--- a/core/wma/inc/wma.h
+++ b/core/wma/inc/wma.h
@@ -231,7 +231,7 @@
#define WMA_VDEV_START_REQUEST_TIMEOUT (3000) /* 3 seconds */
#define WMA_VDEV_STOP_REQUEST_TIMEOUT (3000) /* 3 seconds */
-#define WMA_TGT_INVALID_SNR (-1)
+#define WMA_TGT_INVALID_SNR 0x127
#define WMA_TX_Q_RECHECK_TIMER_WAIT 2 /* 2 ms */
#define WMA_TX_Q_RECHECK_TIMER_MAX_WAIT 20 /* 20 ms */
diff --git a/core/wma/src/wma_utils.c b/core/wma/src/wma_utils.c
index 75b678457b20..8ca54776ab76 100644
--- a/core/wma/src/wma_utils.c
+++ b/core/wma/src/wma_utils.c
@@ -1112,6 +1112,7 @@ static void wma_update_vdev_stats(tp_wma_handle wma,
QDF_STATUS qdf_status;
tAniGetRssiReq *pGetRssiReq = (tAniGetRssiReq *) wma->pGetRssiReq;
cds_msg_t sme_msg = { 0 };
+ int8_t bcn_snr, dat_snr;
node = &wma->interfaces[vdev_stats->vdev_id];
stats_rsp_params = node->stats_rsp;
@@ -1140,14 +1141,15 @@ static void wma_update_vdev_stats(tp_wma_handle wma,
summary_stats->rts_fail_cnt = vdev_stats->rts_fail_cnt;
}
}
+ bcn_snr = vdev_stats->vdev_snr.bcn_snr;
+ dat_snr = vdev_stats->vdev_snr.dat_snr;
- WMA_LOGD("vdev id %d beacon snr %d data snr %d",
- vdev_stats->vdev_id,
- vdev_stats->vdev_snr.bcn_snr, vdev_stats->vdev_snr.dat_snr);
+ WMA_LOGD("vdev id %d beancon snr %d data snr %d",
+ vdev_stats->vdev_id, bcn_snr, dat_snr);
if (pGetRssiReq && pGetRssiReq->sessionId == vdev_stats->vdev_id) {
- if ((vdev_stats->vdev_snr.bcn_snr == WMA_TGT_INVALID_SNR) &&
- (vdev_stats->vdev_snr.dat_snr == WMA_TGT_INVALID_SNR)) {
+ if ((bcn_snr == WMA_TGT_INVALID_SNR) &&
+ (dat_snr == WMA_TGT_INVALID_SNR)) {
/*
* Firmware sends invalid snr till it sees
* Beacon/Data after connection since after
@@ -1158,11 +1160,10 @@ static void wma_update_vdev_stats(tp_wma_handle wma,
WMA_LOGE("Invalid SNR from firmware");
} else {
- if (vdev_stats->vdev_snr.bcn_snr != WMA_TGT_INVALID_SNR) {
- rssi = vdev_stats->vdev_snr.bcn_snr;
- } else if (vdev_stats->vdev_snr.dat_snr !=
- WMA_TGT_INVALID_SNR) {
- rssi = vdev_stats->vdev_snr.dat_snr;
+ if (bcn_snr != WMA_TGT_INVALID_SNR) {
+ rssi = bcn_snr;
+ } else if (dat_snr != WMA_TGT_INVALID_SNR) {
+ rssi = dat_snr;
}
/*
@@ -1189,12 +1190,12 @@ static void wma_update_vdev_stats(tp_wma_handle wma,
if (node->psnr_req) {
tAniGetSnrReq *p_snr_req = node->psnr_req;
- if (vdev_stats->vdev_snr.bcn_snr != WMA_TGT_INVALID_SNR)
- p_snr_req->snr = vdev_stats->vdev_snr.bcn_snr;
- else if (vdev_stats->vdev_snr.dat_snr != WMA_TGT_INVALID_SNR)
- p_snr_req->snr = vdev_stats->vdev_snr.dat_snr;
+ if (bcn_snr != WMA_TGT_INVALID_SNR)
+ p_snr_req->snr = bcn_snr;
+ else if (dat_snr != WMA_TGT_INVALID_SNR)
+ p_snr_req->snr = dat_snr;
else
- p_snr_req->snr = WMA_TGT_INVALID_SNR;
+ p_snr_req->snr = (int8_t)WMA_TGT_INVALID_SNR;
sme_msg.type = eWNI_SME_SNR_IND;
sme_msg.bodyptr = p_snr_req;