summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaximilian Weigand <mweigand@mweigand.net>2023-06-14 20:10:43 +0200
committerSebastian Reichel <sebastian.reichel@collabora.com>2023-09-14 17:42:36 +0200
commit1769142a14c34a8acd67657bc3e637f22f75e026 (patch)
treebca10ef45c31f9042407d5a4d890a7a553aa4876
parent814755c48f8b2c3e83b3c11535c48ab416128978 (diff)
power: supply: rk817: query battery properties right after resume
The driver reads battery properties every 8 seconds. In order to prevent problems with wrong property values right after resume, trigger an update of those properties on resuming the system and restart the 8-second interval from there. Signed-off-by: Maximilian Weigand <mweigand@mweigand.net> Link: https://lore.kernel.org/r/20230601-rk817_query_at_resume-v1-1-630b0adefbd9@mweigand.net Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
-rw-r--r--drivers/power/supply/rk817_charger.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/power/supply/rk817_charger.c b/drivers/power/supply/rk817_charger.c
index 8328bcea1a29..393de49b010b 100644
--- a/drivers/power/supply/rk817_charger.c
+++ b/drivers/power/supply/rk817_charger.c
@@ -1198,11 +1198,24 @@ static int rk817_charger_probe(struct platform_device *pdev)
return 0;
}
+static int __maybe_unused rk817_resume(struct device *dev)
+{
+
+ struct rk817_charger *charger = dev_get_drvdata(dev);
+
+ /* force an immediate update */
+ mod_delayed_work(system_wq, &charger->work, 0);
+
+ return 0;
+}
+
+static SIMPLE_DEV_PM_OPS(rk817_charger_pm, NULL, rk817_resume);
static struct platform_driver rk817_charger_driver = {
.probe = rk817_charger_probe,
.driver = {
.name = "rk817-charger",
+ .pm = &rk817_charger_pm,
},
};
module_platform_driver(rk817_charger_driver);