• Hans de Goede's avatar
    ACPI / battery: Use design-cap for capacity calculations if full-cap is not available · 5b74d1d1
    Hans de Goede authored
    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: b41901a2 ("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: default avatarHans de Goede <hdegoede@redhat.com>
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    5b74d1d1
battery.c 44.6 KB