From 88bbe4e6c91dcee5bac6c37b28441a8d4f4a0872 Mon Sep 17 00:00:00 2001 From: Vic Yang Date: Fri, 3 Aug 2012 11:30:15 +0800 Subject: Notify kernel when charge_full changes This way kernel always know the current value of charge_full. BUG=chrome-os-partner:11248 TEST=Check charge_full is updated when it changes Original-Change-Id: I623d84a4d6e556097b9214672e016b0c2e6cfdb9 (cherry picked from commit 0083ce5bea953e7b29519585e6ee13d395e64354) Change-Id: Ia3e78aaa058cd470cc914c9586869edd94a1dc6e Signed-off-by: Randall Spangler Reviewed-on: https://gerrit.chromium.org/gerrit/29220 --- common/charge_state.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/common/charge_state.c b/common/charge_state.c index ba666e965e..177eaeedba 100644 --- a/common/charge_state.c +++ b/common/charge_state.c @@ -202,6 +202,15 @@ static int state_common(struct power_state_context *ctx) if (rv) curr->error |= F_BATTERY_STATE_OF_CHARGE; + if (batt->state_of_charge != prev->batt.state_of_charge) { + rv = battery_full_charge_capacity(&d); + if (!rv && d != *(int*)host_get_memmap(EC_MEMMAP_BATT_LFCC)) { + *(int*)host_get_memmap(EC_MEMMAP_BATT_LFCC) = d; + /* Notify host to re-read battery information */ + host_set_single_event(EC_HOST_EVENT_BATTERY); + } + } + /* Prevent deep discharging */ if (!curr->ac) if ((batt->state_of_charge < BATTERY_LEVEL_SHUTDOWN && -- cgit v1.2.1