wlan: Return valid rssi value to upper layer
When IOCTL(GET_RSSI)/CFG API(get_station) is called make sure to get
updated RSSI value from firmware, so that HOST will return updated
rssi value to upper layer, instead of stale value.
Change-Id: Ib508a8b5a1e7ad1a0ed90944f4684245cc9f52e1
CRs-Fixed: 896203
diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c
index b036882..41c3865 100644
--- a/CORE/HDD/src/wlan_hdd_cfg80211.c
+++ b/CORE/HDD/src/wlan_hdd_cfg80211.c
@@ -13404,13 +13404,12 @@
return status;
}
+ wlan_hdd_get_station_stats(pAdapter);
+ rate_flags = pAdapter->hdd_stats.ClassA_stat.tx_rate_flags;
wlan_hdd_get_rssi(pAdapter, &sinfo->signal);
sinfo->filled |= STATION_INFO_SIGNAL;
- wlan_hdd_get_station_stats(pAdapter);
- rate_flags = pAdapter->hdd_stats.ClassA_stat.tx_rate_flags;
-
/*overwrite rate_flags if MAX link-speed need to be reported*/
if ((eHDD_LINK_SPEED_REPORT_MAX == pCfg->reportMaxLinkSpeed) ||
(eHDD_LINK_SPEED_REPORT_MAX_SCALED == pCfg->reportMaxLinkSpeed &&
diff --git a/CORE/HDD/src/wlan_hdd_wext.c b/CORE/HDD/src/wlan_hdd_wext.c
index 1ae105e..abd4027 100644
--- a/CORE/HDD/src/wlan_hdd_wext.c
+++ b/CORE/HDD/src/wlan_hdd_wext.c
@@ -6618,6 +6618,7 @@
case WE_GET_RSSI:
{
v_S7_t s7Rssi = 0;
+ wlan_hdd_get_station_stats(pAdapter);
wlan_hdd_get_rssi(pAdapter, &s7Rssi);
snprintf(extra, WE_MAX_STR_LEN, "rssi=%d",s7Rssi);
wrqu->data.length = strlen(extra)+1;