Hi
On Thu, Apr 18, 2019 at 03:29:09AM +0000, S.j. Wang wrote:
In imx8 when systerm enter suspend state, the power of subsystem will be off, the clock enable state will be lost and register configuration
Just for curiosity, we had similar situation on imx6sx, so we added suspend/resume with regcache. Why will the clock enable state be lost too? Does CCM on imx8 (might not be called CCM though) have any difference? What about clock rate settings?
will be lost. So the driver need to enter runtime suspend state in suspend.
With this implementation the suspend function almost same as runtime suspend function, so remove the suspend function, just use pm_runtime_force_suspend instead, and same for the resume function.
And also need to move clock enablement to runtime resume and clock disablement to runtime suspend.
-static int fsl_esai_suspend(struct device *dev)
regcache_cache_only(esai->regmap, true);
regcache_mark_dirty(esai->regmap);
+static int fsl_esai_runtime_resume(struct device *dev) regcache_cache_only(esai->regmap, false);
regcache_mark_dirty(esai->regmap);
Why move the regcache_mark_dirty from suspend to resume? (I am not saying it's wrong but wondering if this is the preferable way.)
Seems I should not do this change. I will remain regcache_mark_dirty(esai->regmap); at its old place.
Best regards Wang shengjiu