summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Parker <dparker@chromium.org>2013-08-01 14:57:09 -0700
committerChromeBot <chrome-bot@google.com>2013-08-02 12:16:43 -0700
commit33f8086c90b8ecc3289c4c144103eb5c6dc0eea8 (patch)
treee98e9cbdda17e6ed45b2881f5e62a5bcaed30a98
parent150f175609ceea03a4da2eafb737484790ac8931 (diff)
downloadchrome-ec-33f8086c90b8ecc3289c4c144103eb5c6dc0eea8.tar.gz
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: I25f04db56bf62394b5bb2e0d56edbda3a0bb5e25 Signed-off-by: Dave Parker <dparker@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/64280
-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;