summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeewan Jung <keewanjung@google.com>2023-07-17 20:58:31 +0000
committerKeewan Jung <keewanjung@google.com>2023-07-20 17:46:44 +0000
commit4da10b32114067c119c375a74953ef82339b413a (patch)
tree113cb1bb0b8ec3971901dc3f844e7b8e862fa42b
parente82b72e70d681b13d29e34e116c651927cdec3f2 (diff)
downloadbms-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.c36
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 */