aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/base/power/domain.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c
index 45937f88e77c..295ff7189504 100644
--- a/drivers/base/power/domain.c
+++ b/drivers/base/power/domain.c
@@ -2130,6 +2130,17 @@ static void genpd_dev_pm_detach(struct device *dev, bool power_off)
2130 genpd_queue_power_off_work(pd); 2130 genpd_queue_power_off_work(pd);
2131} 2131}
2132 2132
2133static void genpd_dev_pm_sync(struct device *dev)
2134{
2135 struct generic_pm_domain *pd;
2136
2137 pd = dev_to_genpd(dev);
2138 if (IS_ERR(pd))
2139 return;
2140
2141 genpd_queue_power_off_work(pd);
2142}
2143
2133/** 2144/**
2134 * genpd_dev_pm_attach - Attach a device to its PM domain using DT. 2145 * genpd_dev_pm_attach - Attach a device to its PM domain using DT.
2135 * @dev: Device to attach. 2146 * @dev: Device to attach.
@@ -2196,6 +2207,7 @@ int genpd_dev_pm_attach(struct device *dev)
2196 } 2207 }
2197 2208
2198 dev->pm_domain->detach = genpd_dev_pm_detach; 2209 dev->pm_domain->detach = genpd_dev_pm_detach;
2210 dev->pm_domain->sync = genpd_dev_pm_sync;
2199 pm_genpd_poweron(pd); 2211 pm_genpd_poweron(pd);
2200 2212
2201 return 0; 2213 return 0;