diff options
| author | Taniya Das <tdas@codeaurora.org> | 2018-07-13 11:51:02 +0530 |
|---|---|---|
| committer | Siddhartha Agrawal <agrawals@codeaurora.org> | 2018-12-19 17:20:54 -0800 |
| commit | 56ebcfcaca063f8cedf59a6e053fe687d419bae0 (patch) | |
| tree | cd99d7bc8ea904608de81d95182b9925063fae4b /drivers/clk | |
| parent | 361feeef4f86ebcedf04c8c43484bf72d3997f71 (diff) | |
clk: msm: mmss: Add dev_pm_ops for MMSS PLL for 8996
Support early resume and late suspend for MMPLLs
to support hibernation. Without this change, the mmplls
were not getting restored to a sane state on the
hibernate resume.
Change-Id: I7edb7219149d2e96a9487cdaf19a0bc4b9ec709f
Signed-off-by: Taniya Das <tdas@codeaurora.org>
Signed-off-by: Siddhartha Agrawal <agrawals@codeaurora.org>
Diffstat (limited to 'drivers/clk')
| -rw-r--r-- | drivers/clk/msm/clock-mmss-8996.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/drivers/clk/msm/clock-mmss-8996.c b/drivers/clk/msm/clock-mmss-8996.c index 30169d3f3a98..339ae1622005 100644 --- a/drivers/clk/msm/clock-mmss-8996.c +++ b/drivers/clk/msm/clock-mmss-8996.c @@ -3648,6 +3648,21 @@ void __iomem *gpu_base; u64 efuse; int gpu_speed_bin; +static int mmss_pll_suspend(struct device *dev) +{ + return 0; +} + +static int mmss_pll_resume(struct device *dev) +{ +#ifdef CONFIG_HIBERNATION + mmpll9.c.ops->set_rate(&mmpll9.c, 1248000000); + mmpll8.c.ops->set_rate(&mmpll8.c, 510000); + mmpll2.c.ops->set_rate(&mmpll2.c, 510000); +#endif + return 0; +} + int msm_mmsscc_8996_probe(struct platform_device *pdev) { struct resource *res; @@ -3810,11 +3825,19 @@ static struct of_device_id msm_clock_mmss_match_table[] = { {}, }; +static const struct dev_pm_ops msm_clock_mmss_pm_ops = { + .freeze_late = mmss_pll_suspend, + .thaw_early = mmss_pll_resume, + .poweroff_late = mmss_pll_suspend, + .restore_early = mmss_pll_resume, +}; + static struct platform_driver msm_clock_mmss_driver = { .probe = msm_mmsscc_8996_probe, .driver = { .name = "qcom,mmsscc-8996", .of_match_table = msm_clock_mmss_match_table, + .pm = &msm_clock_mmss_pm_ops, .owner = THIS_MODULE, }, }; |
