]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
power: supply: rk817: stop updating info in suspend
authorChris Morgan <macromorgan@hotmail.com>
Thu, 26 Sep 2024 14:43:45 +0000 (09:43 -0500)
committerSebastian Reichel <sebastian.reichel@collabora.com>
Wed, 16 Oct 2024 21:40:02 +0000 (23:40 +0200)
The driver has a thread that checks the battery every 8 seconds. Stop
this thread during device suspend as while the device is suspended not
all values seem to be read correctly (such as battery voltage). The
resume function triggers the thread to start again.

Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
Link: https://lore.kernel.org/r/20240926144346.94630-2-macroalpha82@gmail.com
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
drivers/power/supply/rk817_charger.c

index a3d377a32b497b294917d8ad510d37e1281edd46..d81fc7bd1cd2b0c3496126c3255f55fd4b547456 100644 (file)
@@ -1202,6 +1202,15 @@ static int rk817_charger_probe(struct platform_device *pdev)
        return 0;
 }
 
+static int __maybe_unused rk817_suspend(struct device *dev)
+{
+       struct rk817_charger *charger = dev_get_drvdata(dev);
+
+       cancel_delayed_work_sync(&charger->work);
+
+       return 0;
+}
+
 static int __maybe_unused rk817_resume(struct device *dev)
 {
 
@@ -1213,7 +1222,7 @@ static int __maybe_unused rk817_resume(struct device *dev)
        return 0;
 }
 
-static SIMPLE_DEV_PM_OPS(rk817_charger_pm, NULL, rk817_resume);
+static SIMPLE_DEV_PM_OPS(rk817_charger_pm, rk817_suspend, rk817_resume);
 
 static struct platform_driver rk817_charger_driver = {
        .probe    = rk817_charger_probe,