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