summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWai-Hong Tam <waihong@google.com>2020-08-03 16:06:05 -0700
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-09-13 17:33:25 +0000
commita7d87f78e4efcbf2158a1a69be1327d6e727a4db (patch)
tree68fa0bc69fb944ed71b26812dd4a38ba55a94759
parentac063ff4df03f23ab06d6c7275321b1fdcfaae86 (diff)
downloadchrome-ec-a7d87f78e4efcbf2158a1a69be1327d6e727a4db.tar.gz
battery: Simplify the compensation logic by using pointers
Simplify the logic by using pointers, instead of copying the values from and to other variables. No behavior changes. BRANCH=None BUG=b:162604872 TEST=Checked the sysfs battery info. Change-Id: I2dafd0c774354bbf563be121a8bf9d65f1d4dfd3 Signed-off-by: Wai-Hong Tam <waihong@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2335884 Reviewed-by: Jett Rink <jettrink@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3872705 Commit-Queue: Daisuke Nojiri <dnojiri@chromium.org> Auto-Submit: Daisuke Nojiri <dnojiri@chromium.org> Tested-by: Daisuke Nojiri <dnojiri@chromium.org>
-rw-r--r--common/battery.c18
1 files changed, 8 insertions, 10 deletions
diff --git a/common/battery.c b/common/battery.c
index 621bb14c0f..ab9a1a359b 100644
--- a/common/battery.c
+++ b/common/battery.c
@@ -565,15 +565,15 @@ DECLARE_HOOK(HOOK_INIT, battery_init, HOOK_PRIO_DEFAULT);
void battery_compensate_params(struct batt_params *batt)
{
int numer, denom;
- int remain = batt->remaining_capacity;
- int full = batt->full_capacity;
+ int *remain = &(batt->remaining_capacity);
+ int *full = &(batt->full_capacity);
int lfcc = *(int *)host_get_memmap(EC_MEMMAP_BATT_LFCC);
if ((batt->flags & BATT_FLAG_BAD_FULL_CAPACITY) ||
(batt->flags & BATT_FLAG_BAD_REMAINING_CAPACITY))
return;
- if (remain <= 0 || full <= 0)
+ if (*remain <= 0 || *full <= 0)
return;
/* full_factor != 100 isn't supported. EC and host are not able to
@@ -582,21 +582,19 @@ void battery_compensate_params(struct batt_params *batt)
return;
/* full_factor is effectively disabled in powerd. */
- batt->full_capacity = full * batt_full_factor / 100;
+ *full = *full * batt_full_factor / 100;
if (lfcc == 0)
/* EC just reset. Assume host full is equal. */
- lfcc = batt->full_capacity;
- if (remain > lfcc) {
- batt->remaining_capacity = lfcc;
- remain = batt->remaining_capacity;
- }
+ lfcc = *full;
+ if (*remain > lfcc)
+ *remain = lfcc;
/*
* Powerd uses the following equation to calculate display percentage:
* charge = 100 * remain/full;
* 100 * (charge - shutdown_pct) / (full_factor - shutdown_pct);
*/
- numer = (100 * remain - lfcc * batt_host_shutdown_pct) * 1000;
+ numer = (100 * *remain - lfcc * batt_host_shutdown_pct) * 1000;
denom = lfcc * (100 - batt_host_shutdown_pct);
/* Rounding (instead of truncating) */
batt->display_charge = (numer + denom / 2) / denom;