summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Dmitri Plotnikov <dplotnikov@google.com> 2024-06-18 17:38:48 -0700
committer Dmitri Plotnikov <dplotnikov@google.com> 2024-06-18 17:38:48 -0700
commit1dc38be0c66ad0a9a492477b752a2001f5614eff (patch)
tree53dcd38bbdf0ff9f318b5755aefef4746a30c331
parent43ef074d7a37256eb868fdcfcb1b6df38d36e7d6 (diff)
Fix DivisionByZero error when battery voltage is unknown
Bug: 348041735 Test: atest PowerStatsTests; atest PowerStatsTestsRavenwood Flag: com.android.server.power.optimization.streamlined_misc_battery_stats Change-Id: I267013dca784d542ee53eb6c899fae67398ff894
-rw-r--r--services/core/java/com/android/server/power/stats/EnergyConsumerPowerStatsCollector.java19
1 files changed, 10 insertions, 9 deletions
diff --git a/services/core/java/com/android/server/power/stats/EnergyConsumerPowerStatsCollector.java b/services/core/java/com/android/server/power/stats/EnergyConsumerPowerStatsCollector.java
index 7f2f729c88db..cace94114aa0 100644
--- a/services/core/java/com/android/server/power/stats/EnergyConsumerPowerStatsCollector.java
+++ b/services/core/java/com/android/server/power/stats/EnergyConsumerPowerStatsCollector.java
@@ -128,6 +128,16 @@ public class EnergyConsumerPowerStatsCollector extends PowerStatsCollector {
return null;
}
+ int voltageMv = mVoltageSupplier.getAsInt();
+ int averageVoltage = mLastVoltageMv != 0 ? (mLastVoltageMv + voltageMv) / 2 : voltageMv;
+ if (averageVoltage <= 0) {
+ Slog.wtf(TAG, "Unexpected battery voltage (" + voltageMv
+ + " mV) when querying energy consumers");
+ return null;
+ }
+
+ mLastVoltageMv = voltageMv;
+
EnergyConsumerResult[] energy =
mConsumedEnergyRetriever.getConsumedEnergy(mEnergyConsumerIds);
long consumedEnergy = 0;
@@ -151,15 +161,6 @@ public class EnergyConsumerPowerStatsCollector extends PowerStatsCollector {
return null;
}
- int voltageMv = mVoltageSupplier.getAsInt();
- if (voltageMv <= 0) {
- Slog.wtf(TAG, "Unexpected battery voltage (" + voltageMv
- + " mV) when querying energy consumers");
- voltageMv = 0;
- }
-
- int averageVoltage = mLastVoltageMv != 0 ? (mLastVoltageMv + voltageMv) / 2 : voltageMv;
- mLastVoltageMv = voltageMv;
mLayout.setConsumedEnergy(mPowerStats.stats, 0, uJtoUc(energyDelta, averageVoltage));
for (int i = mPowerStats.uidStats.size() - 1; i >= 0; i--) {