Message ID | 1570622373-16413-1-git-send-email-yong.wu@mediatek.com (mailing list archive) |
---|---|
State | Mainlined |
Commit | fb03082a54acd66c61535edfefe96b2ff88ce7e2 |
Headers | show |
Series | memory: mtk-smi: Add PM suspend and resume ops | expand |
On Wed, Oct 09, 2019 at 07:59:33PM +0800, Yong Wu wrote: > In the commit 4f0a1a1ae351 ("memory: mtk-smi: Invoke pm runtime_callback > to enable clocks"), we use pm_runtime callback to enable/disable the smi > larb clocks. It will cause the larb's clock may not be disabled when > suspend. That is because device_prepare will call pm_runtime_get_noresume > which will keep the larb's PM runtime status still is active when suspend, > then it won't enter our pm_runtime suspend callback to disable the > corresponding clocks. > > This patch adds suspend pm_ops to force disable the clocks, Use "LATE" to > make sure it disable the larb's clocks after the multimedia devices. > > Fixes: 4f0a1a1ae351 ("memory: mtk-smi: Invoke pm runtime_callback to enable clocks") > Signed-off-by: Anan Sun <anan.sun@mediatek.com> > Signed-off-by: Yong Wu <yong.wu@mediatek.com> > --- > base on v5.4-rc1. > --- > drivers/memory/mtk-smi.c | 4 ++++ > 1 file changed, 4 insertions(+) Applied, thanks.
diff --git a/drivers/memory/mtk-smi.c b/drivers/memory/mtk-smi.c index 439d7d8..a113e81 100644 --- a/drivers/memory/mtk-smi.c +++ b/drivers/memory/mtk-smi.c @@ -366,6 +366,8 @@ static int __maybe_unused mtk_smi_larb_suspend(struct device *dev) static const struct dev_pm_ops smi_larb_pm_ops = { SET_RUNTIME_PM_OPS(mtk_smi_larb_suspend, mtk_smi_larb_resume, NULL) + SET_LATE_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, + pm_runtime_force_resume) }; static struct platform_driver mtk_smi_larb_driver = { @@ -507,6 +509,8 @@ static int __maybe_unused mtk_smi_common_suspend(struct device *dev) static const struct dev_pm_ops smi_common_pm_ops = { SET_RUNTIME_PM_OPS(mtk_smi_common_suspend, mtk_smi_common_resume, NULL) + SET_LATE_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, + pm_runtime_force_resume) }; static struct platform_driver mtk_smi_common_driver = {