summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Parker <dparker@chromium.org>2013-08-01 14:57:09 -0700
committerDave Parker <dparker@chromium.org>2013-08-13 16:38:38 -0700
commitc6bebfdcca10cffe34e149114a5243f15f2881c3 (patch)
tree0bc0f3308822eb0a28ea337a47f6679d4c7edf42
parent5c9363937b8cc889f20cc83459233323800ea27a (diff)
downloadchrome-ec-c6bebfdcca10cffe34e149114a5243f15f2881c3.tar.gz
CHERRY-PICK:Track the duration of each charge/discharge state.
BUG=chromium:267146 BRANCH=falco,peppy TEST=Manual. Observe charge state messages on the ec console. Change-Id: I287d56b4d7ce52e58bbec32cf0641b66d1779f74 Original-Change-Id: I25f04db56bf62394b5bb2e0d56edbda3a0bb5e25 Signed-off-by: Dave Parker <dparker@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/64280 Reviewed-on: https://gerrit.chromium.org/gerrit/65761
-rw-r--r--common/charge_state.c7
-rw-r--r--include/charge_state.h1
2 files changed, 6 insertions, 2 deletions
diff --git a/common/charge_state.c b/common/charge_state.c
index 3a9cf252ca..f7a644bfe3 100644
--- a/common/charge_state.c
+++ b/common/charge_state.c
@@ -686,9 +686,12 @@ void charger_task(void)
if (new_state) {
ctx->curr.state = new_state;
- CPRINTF("[%T Charge state %s -> %s]\n",
+ CPRINTF("[%T Charge state %s -> %s after %.6ld sec]\n",
state_name[ctx->prev.state],
- state_name[new_state]);
+ state_name[new_state],
+ ctx->curr.ts.val -
+ ctx->power_state_updated_time.val);
+ ctx->power_state_updated_time = ctx->curr.ts;
hook_notify(HOOK_CHARGE_STATE_CHANGE);
}
diff --git a/include/charge_state.h b/include/charge_state.h
index d2dd4aa052..722de8cd4f 100644
--- a/include/charge_state.h
+++ b/include/charge_state.h
@@ -108,6 +108,7 @@ struct power_state_data {
struct power_state_context {
struct power_state_data curr;
struct power_state_data prev;
+ timestamp_t power_state_updated_time;
uint32_t *memmap_batt_volt;
/* TODO(rong): check endianness of EC and memmap*/
uint32_t *memmap_batt_rate;