power_status: Fix weighted average calculation

In incremental stat, time_in_state sysfs file
contains log since boot. When calculating weighted
average, data before test start need to be subtracted.

BUG=b:170955211
TEST=power_Speedometer2 on lazor

Change-Id: I5716d03818d7f2460cfc6f4c6fb568befadccefe
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/autotest/+/2476353
Reviewed-by: Mengqi Guo <mqg@chromium.org>
Tested-by: Puthikorn Voravootivat <puthik@chromium.org>
Commit-Queue: Puthikorn Voravootivat <puthik@chromium.org>
diff --git a/client/cros/power/power_status.py b/client/cros/power/power_status.py
index ed17541..681506e 100644
--- a/client/cros/power/power_status.py
+++ b/client/cros/power/power_status.py
@@ -717,7 +717,7 @@
         self.name = name
         self.incremental = incremental
         self._stats = self._read_stats()
-
+        self._first_stats = self._stats.copy()
 
     def refresh(self):
         """
@@ -735,12 +735,15 @@
         Turns a dict with absolute times (or percentages) into a weighted
         average value.
         """
-        total = sum(self._stats.itervalues())
+        stats = self._stats
+        if self.incremental:
+            stats = self.do_diff(stats, self._first_stats)
+
+        total = sum(stats.itervalues())
         if total == 0:
             return None
 
-        return sum((float(k)*v) / total for (k, v) in self._stats.iteritems())
-
+        return sum(float(k) * v / total for k, v in stats.iteritems())
 
     def _supports_automatic_weighted_average(self):
         """