diff options
author | Marek Szyprowski <m.szyprowski@samsung.com> | 2012-04-06 10:02:59 +0200 |
---|---|---|
committer | Tushar Behera <tushar.behera@linaro.org> | 2012-05-17 10:43:55 +0530 |
commit | 415f299f432298f08e8b9736ede56a9b960c78bb (patch) | |
tree | 3037c99382110ac1ed04850344a394b2465c0a48 | |
parent | f3dcdcfb66d8de33c465256b579477369de14145 (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.c | 7 |
1 files changed, 1 insertions, 6 deletions
diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c index 73ce9fbe983..05f5799fe04 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; |