mirror of
https://github.com/torvalds/linux.git
synced 2024-12-01 08:31:37 +00:00
clk: samsung: exynos-audss: Replace syscore PM with platform device PM
Exynos AUDSS clock driver has been already converted to platform driver, so remove the dependency on the syscore ops - the last remaining non-platform driver feature. Platform device's system sleep PM provides all needed infrastructure for replacing syscore-based PM, so do it now. Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Reviewed-by: Javier Martinez Canillas <javier@osg.samsung.com> Reviewed-by: Chanwoo Choi <cw00.choi@samsung.com> Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
This commit is contained in:
parent
0cda911812
commit
a5b16dfa5b
@ -44,7 +44,7 @@ static unsigned long reg_save[][2] = {
|
||||
{ ASS_CLK_GATE, 0 },
|
||||
};
|
||||
|
||||
static int exynos_audss_clk_suspend(void)
|
||||
static int exynos_audss_clk_suspend(struct device *dev)
|
||||
{
|
||||
int i;
|
||||
|
||||
@ -54,18 +54,15 @@ static int exynos_audss_clk_suspend(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void exynos_audss_clk_resume(void)
|
||||
static int exynos_audss_clk_resume(struct device *dev)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(reg_save); i++)
|
||||
writel(reg_save[i][1], reg_base + reg_save[i][0]);
|
||||
}
|
||||
|
||||
static struct syscore_ops exynos_audss_clk_syscore_ops = {
|
||||
.suspend = exynos_audss_clk_suspend,
|
||||
.resume = exynos_audss_clk_resume,
|
||||
};
|
||||
return 0;
|
||||
}
|
||||
#endif /* CONFIG_PM_SLEEP */
|
||||
|
||||
struct exynos_audss_clk_drvdata {
|
||||
@ -251,9 +248,6 @@ static int exynos_audss_clk_probe(struct platform_device *pdev)
|
||||
goto unregister;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
register_syscore_ops(&exynos_audss_clk_syscore_ops);
|
||||
#endif
|
||||
return 0;
|
||||
|
||||
unregister:
|
||||
@ -267,10 +261,6 @@ unregister:
|
||||
|
||||
static int exynos_audss_clk_remove(struct platform_device *pdev)
|
||||
{
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
unregister_syscore_ops(&exynos_audss_clk_syscore_ops);
|
||||
#endif
|
||||
|
||||
of_clk_del_provider(pdev->dev.of_node);
|
||||
|
||||
exynos_audss_clk_teardown();
|
||||
@ -281,10 +271,16 @@ static int exynos_audss_clk_remove(struct platform_device *pdev)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct dev_pm_ops exynos_audss_clk_pm_ops = {
|
||||
SET_LATE_SYSTEM_SLEEP_PM_OPS(exynos_audss_clk_suspend,
|
||||
exynos_audss_clk_resume)
|
||||
};
|
||||
|
||||
static struct platform_driver exynos_audss_clk_driver = {
|
||||
.driver = {
|
||||
.name = "exynos-audss-clk",
|
||||
.of_match_table = exynos_audss_clk_of_match,
|
||||
.pm = &exynos_audss_clk_pm_ops,
|
||||
},
|
||||
.probe = exynos_audss_clk_probe,
|
||||
.remove = exynos_audss_clk_remove,
|
||||
|
Loading…
Reference in New Issue
Block a user