aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Szyprowski <m.szyprowski@samsung.com>2012-04-06 10:02:59 +0200
committerTushar Behera <tushar.behera@linaro.org>2012-05-17 10:43:55 +0530
commit415f299f432298f08e8b9736ede56a9b960c78bb (patch)
tree3037c99382110ac1ed04850344a394b2465c0a48
parentf3dcdcfb66d8de33c465256b579477369de14145 (diff)
drivers: genpd: let platform code to register devices into disabled domainstracking-samslt-pd-3.4-2012.05-1tracking-samslt-pd-3.4-2012.05-0
Some bootloaders disable power domains on boot and the platform startup code registers them in the 'disabled' state. Current gen_pd code assumed that the devices can be registered only to the power domain which is in 'enabled' state and these devices are active at the time of the registration. This is not correct in our case. This patch lets drivers to be registered into 'disabled' power domains and finally solves mysterious freezes and lack of resume/suspend calls on Samsung Exynos4 NURI and UniversalC210 platforms. Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
-rw-r--r--drivers/base/power/domain.c7
1 files changed, 1 insertions, 6 deletions
diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c
index 73ce9fbe9839..05f5799fe043 100644
--- a/drivers/base/power/domain.c
+++ b/drivers/base/power/domain.c
@@ -1211,11 +1211,6 @@ int __pm_genpd_add_device(struct generic_pm_domain *genpd, struct device *dev,
genpd_acquire_lock(genpd);
- if (genpd->status == GPD_STATE_POWER_OFF) {
- ret = -EINVAL;
- goto out;
- }
-
if (genpd->prepared_count > 0) {
ret = -EAGAIN;
goto out;
@@ -1239,7 +1234,7 @@ int __pm_genpd_add_device(struct generic_pm_domain *genpd, struct device *dev,
dev_pm_get_subsys_data(dev);
dev->power.subsys_data->domain_data = &gpd_data->base;
gpd_data->base.dev = dev;
- gpd_data->need_restore = false;
+ gpd_data->need_restore = true;
list_add_tail(&gpd_data->base.list_node, &genpd->dev_list);
if (td)
gpd_data->td = *td;