diff options
author | Keewan Jung <keewanjung@google.com> | 2023-07-17 20:58:31 +0000 |
---|---|---|
committer | Keewan Jung <keewanjung@google.com> | 2023-07-20 17:46:44 +0000 |
commit | 4da10b32114067c119c375a74953ef82339b413a (patch) | |
tree | 113cb1bb0b8ec3971901dc3f844e7b8e862fa42b | |
parent | e82b72e70d681b13d29e34e116c651927cdec3f2 (diff) | |
download | bms-4da10b32114067c119c375a74953ef82339b413a.tar.gz |
google_battery: Improve csi_stats functionality
1. prevent update when disconnected
2. include logging to logbuffer
Bug: 288443092
Change-Id: Icb19aed40bfb4f880bb5ee45fe50f100a2d54d02
signed-off-by: Keewan Jung <keewanjung@google.com>
(cherry picked from commit c45cde5bc594171c76928684e5e453e988f868b8)
-rw-r--r-- | google_battery.c | 36 |
1 files changed, 27 insertions, 9 deletions
diff --git a/google_battery.c b/google_battery.c index 10833b6..981bb9f 100644 --- a/google_battery.c +++ b/google_battery.c @@ -2489,19 +2489,37 @@ static void batt_update_csi_stat(struct batt_drv *batt_drv) int thermal_level = 0; ktime_t elap; - if (chg_state_is_disconnected(&batt_drv->chg_state) && csi_stats->vol_in != 0) { + if (chg_state_is_disconnected(&batt_drv->chg_state)) { + /* Only update CSI stats when plugged and charging */ + if(csi_stats->time_stat_last_update == 0) + return; + /* update disconnected data */ - const int vol_out = GPSY_GET_PROP(fg_psy, POWER_SUPPLY_PROP_VOLTAGE_NOW); - const int cc_out = GPSY_GET_PROP(fg_psy, POWER_SUPPLY_PROP_CHARGE_COUNTER); + if(csi_stats->vol_in != 0) { + const int vol_out = GPSY_GET_PROP(fg_psy, POWER_SUPPLY_PROP_VOLTAGE_NOW); + const int cc_out = GPSY_GET_PROP(fg_psy, POWER_SUPPLY_PROP_CHARGE_COUNTER); - if (vol_out < 0 || cc_out < 0) - return; + if (vol_out < 0 || cc_out < 0) + return; - csi_stats->vol_out = vol_out / 1000; - csi_stats->cc_out = cc_out / 1000; - csi_stats->ssoc_out = ssoc; + csi_stats->vol_out = vol_out / 1000; + csi_stats->cc_out = cc_out / 1000; + csi_stats->ssoc_out = ssoc; - return; + logbuffer_log(batt_drv->ttf_stats.ttf_log, + "csi_stats: %s,%d,%d,%d,%d,%lld,%d,%d,%lld,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d", + gbms_chg_ev_adapter_s(csi_stats->ad_type), csi_stats->ad_voltage * 100, + csi_stats->ad_amperage * 100, csi_stats->ssoc_in, csi_stats->ssoc_out, + csi_stats->time_sum / 60, csi_stats->aggregate_type, csi_stats->aggregate_status, + csi_stats->time_effective / 60, csi_stats->temp_min, csi_stats->temp_max, + csi_stats->vol_in, csi_stats->vol_out, csi_stats->cc_in, csi_stats->cc_out, + (int)(csi_stats->thermal_severity[0] * 100 / csi_stats->time_sum), + (int)(csi_stats->thermal_severity[1] * 100 / csi_stats->time_sum), + (int)(csi_stats->thermal_severity[2] * 100 / csi_stats->time_sum), + (int)(csi_stats->thermal_severity[3] * 100 / csi_stats->time_sum), + (int)(csi_stats->thermal_severity[4] * 100 / csi_stats->time_sum)); + return; + } } /* initial connected data */ |