diff options
author | Ahmad Fatoum <a.fatoum@pengutronix.de> | 2024-01-19 17:25:59 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2024-01-22 11:12:02 +0100 |
commit | 9200d8dc5efedcd603dfcfb2b287de86db7ba303 (patch) | |
tree | 80fa4faf5b11f30c81ecf25bcb864b59225af55f /drivers/base | |
parent | 26c0bb95d2552fd36eb035c127dc1065293d13b6 (diff) | |
download | barebox-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.c | 11 |
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; |