diff options
| author | 2024-06-18 17:38:48 -0700 | |
|---|---|---|
| committer | 2024-06-18 17:38:48 -0700 | |
| commit | 1dc38be0c66ad0a9a492477b752a2001f5614eff (patch) | |
| tree | 53dcd38bbdf0ff9f318b5755aefef4746a30c331 | |
| parent | 43ef074d7a37256eb868fdcfcb1b6df38d36e7d6 (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.java | 19 |
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--) { |