summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Assmann <sassmann@kpanic.de>2019-03-11 17:09:49 +0100
committerStefan Assmann <sassmann@kpanic.de>2019-03-11 18:44:06 +0100
commit4783d3f17060b5b7f43dc3ab759b3e250247aeb5 (patch)
treec36d1ca51b2a0e81516dfa0c127936f65f83baeb
parent6724d8686fb9c19a2aa807eb93a803a4f3e77458 (diff)
downloadandroid_frameworks_opt_net_wifi-4783d3f17060b5b7f43dc3ab759b3e250247aeb5.tar.gz
android_frameworks_opt_net_wifi-4783d3f17060b5b7f43dc3ab759b3e250247aeb5.tar.bz2
android_frameworks_opt_net_wifi-4783d3f17060b5b7f43dc3ab759b3e250247aeb5.zip
resurrect mWifiLinkLayerStatsSupported counter
On devices with broken/not implemented LinkLayerStats the counter mWifiLinkLayerStatsSupported prevents the following error messages from appearing every 3 seconds. 03-08 10:43:02.616 389 389 E WifiHAL : wifi_get_link_stats: requestResponse Error:-3 03-08 10:43:02.617 2030 2206 E WifiVendorHal: getWifiLinkLayerStats(l.937) failed {.code = ERROR_NOT_SUPPORTED, .description = } This partially reverts commit 1ba5b5858ffc04acbd317dc1f6789f1777d375e6. Change-Id: I840f9d1304bf0a31e7a6b65db00a37dc3651e4b8
-rw-r--r--service/java/com/android/server/wifi/WifiStateMachine.java29
1 files changed, 18 insertions, 11 deletions
diff --git a/service/java/com/android/server/wifi/WifiStateMachine.java b/service/java/com/android/server/wifi/WifiStateMachine.java
index d0f77d670..2c42cd277 100644
--- a/service/java/com/android/server/wifi/WifiStateMachine.java
+++ b/service/java/com/android/server/wifi/WifiStateMachine.java
@@ -313,6 +313,8 @@ public class WifiStateMachine extends StateMachine {
private final NetworkCapabilities mDfltNetworkCapabilities;
private SupplicantStateTracker mSupplicantStateTracker;
+ private int mWifiLinkLayerStatsSupported = 4; // Temporary disable
+
// Indicates that framework is attempting to roam, set true on CMD_START_ROAM, set false when
// wifi connects or fails to connect
private boolean mIsAutoRoaming = false;
@@ -1249,18 +1251,23 @@ public class WifiStateMachine extends StateMachine {
loge("getWifiLinkLayerStats called without an interface");
return null;
}
+ WifiLinkLayerStats stats = null;
lastLinkLayerStatsUpdate = mClock.getWallClockMillis();
- WifiLinkLayerStats stats = mWifiNative.getWifiLinkLayerStats(mInterfaceName);
- if (stats != null) {
- mOnTime = stats.on_time;
- mTxTime = stats.tx_time;
- mRxTime = stats.rx_time;
- mRunningBeaconCount = stats.beacon_rx;
- mWifiInfo.updatePacketRates(stats, lastLinkLayerStatsUpdate);
- } else {
- long mTxPkts = mFacade.getTxPackets(mInterfaceName);
- long mRxPkts = mFacade.getRxPackets(mInterfaceName);
- mWifiInfo.updatePacketRates(mTxPkts, mRxPkts, lastLinkLayerStatsUpdate);
+ if (mWifiLinkLayerStatsSupported > 0) {
+ stats = mWifiNative.getWifiLinkLayerStats(mInterfaceName);
+ if (stats == null) {
+ mWifiLinkLayerStatsSupported -= 1;
+ } else {
+ mOnTime = stats.on_time;
+ mTxTime = stats.tx_time;
+ mRxTime = stats.rx_time;
+ mRunningBeaconCount = stats.beacon_rx;
+ mWifiInfo.updatePacketRates(stats, lastLinkLayerStatsUpdate);
+ }
+ } else { // LinkLayerStats are broken or unsupported
+ long mTxPkts = mFacade.getTxPackets(mInterfaceName);
+ long mRxPkts = mFacade.getRxPackets(mInterfaceName);
+ mWifiInfo.updatePacketRates(mTxPkts, mRxPkts, lastLinkLayerStatsUpdate);
}
return stats;
}