summaryrefslogtreecommitdiff
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-04-18 13:15:07 +0530
commit553691687440344ddfd73f11c65d420a91a0ea2f (patch)
tree84fc9e8ca62dd3af0fb307e76fe3188ec3ac067e
parentfa19742b0abcd07881f6fc3a22461286316a2e37 (diff)
drivers: genpd: let platform code to register devices into disabled domainstracking-samslt-pd-3.4-rc3-2012.04-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;