ACPI: battery: Round capacity percengate to closest integer

If the difference between capacity_now and full_capacity is
within 0.5%, 100% is arguably a better number to expose than
99% and exposing the latter may confuse the user to think that
there's something wrong with the battery.

Round the capacity percentage to the closest integer value to
avoid the confusion.

Signed-off-by: shitao  <shitao@kylinos.cn>
Link: https://patch.msgid.link/20250407085419.494234-1-shitao@kylinos.cn
[ rjw: Subject and changelog edits ]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
shitao
2025-04-07 16:54:19 +08:00
committed by Rafael J. Wysocki
parent 0af2f6be1b
commit 46d839adcc
+2 -2
View File
@@ -279,8 +279,8 @@ static int acpi_battery_get_property(struct power_supply *psy,
full_capacity == ACPI_BATTERY_VALUE_UNKNOWN)
ret = -ENODEV;
else
val->intval = battery->capacity_now * 100/
full_capacity;
val->intval = DIV_ROUND_CLOSEST_ULL(battery->capacity_now * 100ULL,
full_capacity);
break;
case POWER_SUPPLY_PROP_CAPACITY_LEVEL:
if (battery->state & ACPI_BATTERY_STATE_CRITICAL)