summaryrefslogtreecommitdiffstats
path: root/drivers/base
diff options
context:
space:
mode:
authorAhmad Fatoum <a.fatoum@pengutronix.de>2024-01-19 17:25:59 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2024-01-22 11:12:02 +0100
commit9200d8dc5efedcd603dfcfb2b287de86db7ba303 (patch)
tree80fa4faf5b11f30c81ecf25bcb864b59225af55f /drivers/base
parent26c0bb95d2552fd36eb035c127dc1065293d13b6 (diff)
downloadbarebox-9200d8dc5efedcd603dfcfb2b287de86db7ba303.tar.gz
barebox-9200d8dc5efedcd603dfcfb2b287de86db7ba303.tar.xz
pmdomain: add support for enabling power domains later on
When a single power domain is specified platform driver probe takes care to enable the power domain. When there are multiple power domains however, each Linux driver must itself enable power domains in the correct sequence. In Linux, this is handled by runtime PM. We don't have that in barebox, so we add the enable function with a _genpd suffix to alert users to this fact. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20240119162610.1014870-9-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/base')
-rw-r--r--drivers/base/power.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/base/power.c b/drivers/base/power.c
index 98164431aa..c4318fa1df 100644
--- a/drivers/base/power.c
+++ b/drivers/base/power.c
@@ -289,6 +289,17 @@ static int genpd_power_on(struct generic_pm_domain *genpd)
return 0;
}
+int pm_runtime_resume_and_get_genpd(struct device *dev)
+{
+ struct generic_pm_domain *genpd;
+
+ genpd = dev_to_genpd(dev);
+ if (IS_ERR(genpd))
+ return PTR_ERR(genpd);
+
+ return genpd_power_on(genpd);
+}
+
static void genpd_add_device(struct generic_pm_domain *genpd, struct device *dev)
{
dev->pm_domain = genpd;