[PATCH] acpi: battery: Always read fresh battery state on update

From: Mathew King
Date: Thu Jun 04 2020 - 15:57:30 EST


When the ACPI battery receives a notification event it should always
read the battery state fresh from the ACPI device and not use the cached
state. Currently the cached state stays valid and the new state may not
be read when a notification occurs. This can lead to a udev event
showing that the battery has changed but the sysfs state will still have
the cached state values. This change invalidates the update time forcing
the state to be updated before notifying the power_supply subsystem of
the change.

Signed-off-by: Mathew King <mathewk@xxxxxxxxxxxx>
---
drivers/acpi/battery.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c
index 366c389175d8..ab7fa4879fbe 100644
--- a/drivers/acpi/battery.c
+++ b/drivers/acpi/battery.c
@@ -981,6 +981,7 @@ static int acpi_battery_update(struct acpi_battery *battery, bool resume)
acpi_battery_init_alarm(battery);
}

+ battery->update_time = 0;
result = acpi_battery_get_state(battery);
if (result)
return result;
--
2.27.0.rc2.251.g90737beb825-goog