]> git.baikalelectronics.ru Git - kernel.git/commit
ACPI / battery: Use design-cap for capacity calculations if full-cap is not available
authorHans de Goede <hdegoede@redhat.com>
Tue, 10 Dec 2019 09:57:51 +0000 (10:57 +0100)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Mon, 16 Dec 2019 10:16:57 +0000 (11:16 +0100)
commit639eab96a2b509a7b6715a7adab875961b1e04d2
tree3ffd5e697c8941f0e79ed851435d33f6ae554519
parenta98fe340422dd5797abba2219cb08dca0418abec
ACPI / battery: Use design-cap for capacity calculations if full-cap is not available

The ThunderSoft TS178 tablet's _BIX implementation reports design_capacity
but not full_charge_capacity.

Before this commit this would cause us to return -ENODEV for the capacity
attribute, which userspace does not like. Specifically upower does this:

        if (sysfs_file_exists (native_path, "capacity")) {
                percentage = sysfs_get_double (native_path, "capacity");

Where the sysfs_get_double() helper returns 0 when we return -ENODEV,
so the battery always reads 0% if we return -ENODEV.

This commit fixes this by using the design-capacity instead of the
full-charge-capacity when the full-charge-capacity is not available.

Fixes: 43778d030f56 ("ACPI / battery: Do not export energy_full[_design] on devices without full_charge_capacity")
Cc: 4.19+ <stable@vger.kernel.org> # 4.19+
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/battery.c