diff options
author | Marek Szyprowski <m.szyprowski@samsung.com> | 2012-06-15 10:54:33 +0200 |
---|---|---|
committer | Tushar Behera <tushar.behera@linaro.org> | 2012-06-20 11:41:53 +0530 |
commit | 5f9529a2ad50f6433eb0062ec95ef558587a1c1d (patch) | |
tree | 01dba756e196aa4753ce194819891229f28bb98a | |
parent | 206fd95a5fd3ad9ccf87c0d94c8aa02eb4f0d376 (diff) |
ARM: Exynos4: pm_domains: register devices in 'need_restore' statetracking-samslt-pd-ll-20120716.1tracking-samslt-pd-ll-20120716.0tracking-samslt-pd-ll-20120712.0tracking-samslt-pd-ll-20120711.0tracking-samslt-pd-ll-20120710.0tracking-samslt-pd-ll-20120627.0tracking-samslt-pd-ll-20120625.0tracking-samslt-pd-ll-20120622.0tracking-samslt-pd-ll-20120621.0
Commit ca1d72f033 ('PM / Domains: Make it possible to add devices to
inactive domains') introduced possibility to add devices to inactive
power domains and added pm_genpd_dev_need_restore() function which lets
platform core to notify power domain core that the specified device must
be restored (with its runtime_resume() callback) before first use.
This patch adds the pm_genpd_dev_need_restore() call what brings back
the suspend/resume behaviour for the client devices known from the
previous power domain driver (removed by commit 91cfbd4ee0 - 'ARM:
EXYNOS: Hook up power domains to generic power domain infrastructure').
Client device drivers relay on that suspend/resume behaviour, thus this
patch fixes runtime pm operation for client devices.
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Reviewed-by: Kyungmin Park <kyungmin.park@samsung.com>
-rw-r--r-- | arch/arm/mach-exynos/pm_domains.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/arm/mach-exynos/pm_domains.c b/arch/arm/mach-exynos/pm_domains.c index 0a952a5c45b..373c3c00d24 100644 --- a/arch/arm/mach-exynos/pm_domains.c +++ b/arch/arm/mach-exynos/pm_domains.c @@ -119,7 +119,9 @@ static __init void exynos_pm_add_dev_to_genpd(struct platform_device *pdev, struct exynos_pm_domain *pd) { if (pdev->dev.bus) { - if (pm_genpd_add_device(&pd->pd, &pdev->dev)) + if (!pm_genpd_add_device(&pd->pd, &pdev->dev)) + pm_genpd_dev_need_restore(&pdev->dev, true); + else pr_info("%s: error in adding %s device to %s power" "domain\n", __func__, dev_name(&pdev->dev), pd->name); |