From 7e3605cbad161878370bf11e7de47b56fa55ce00 Mon Sep 17 00:00:00 2001 From: marks Date: Wed, 14 Jul 2004 19:31:31 +0000 Subject: Some laptops report the "design-capacity" instead of the "real-capacity" when the battery is fully charged. That breaks some of the arithmetic in calculating the remaining capacity (ends up with more than 100%). This commit makes sure the max is 100. Approved by: njl --- sys/dev/acpica/acpi_cmbat.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'sys/dev/acpica') diff --git a/sys/dev/acpica/acpi_cmbat.c b/sys/dev/acpica/acpi_cmbat.c index ec6730e..bf859e8 100644 --- a/sys/dev/acpica/acpi_cmbat.c +++ b/sys/dev/acpica/acpi_cmbat.c @@ -519,6 +519,15 @@ acpi_cmbat_get_total_battinfo(struct acpi_battinfo *battinfo) valid_units++; bat[i]->cap = 100 * bat[i]->bst.cap / bat[i]->bif.lfcap; + + /* + * Some laptops report the "design-capacity" instead of the + * "real-capacity" when the battery is fully charged. + * That breaks the above arithmetic as it needs to be 100% maximum. + */ + if (bat[i]->cap > 100) + bat[i]->cap = 100; + batt_stat |= bat[i]->bst.state; if (bat[i]->bst.rate > 0) { -- cgit v1.1