Commit f0447f6c authored by Sugar Zhang's avatar Sugar Zhang Committed by Mark Brown

ASoC: rockchip: i2s: restore register during runtime_suspend/resume cycle

when step into runtime_suspend, i2s pd will be disabled and loss state.
so need to restore register when runtime_resume.
Signed-off-by: default avatarSugar Zhang <sugar.zhang@rock-chips.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent f506513a
...@@ -57,6 +57,7 @@ static int i2s_runtime_suspend(struct device *dev) ...@@ -57,6 +57,7 @@ static int i2s_runtime_suspend(struct device *dev)
{ {
struct rk_i2s_dev *i2s = dev_get_drvdata(dev); struct rk_i2s_dev *i2s = dev_get_drvdata(dev);
regcache_cache_only(i2s->regmap, true);
clk_disable_unprepare(i2s->mclk); clk_disable_unprepare(i2s->mclk);
return 0; return 0;
...@@ -73,7 +74,14 @@ static int i2s_runtime_resume(struct device *dev) ...@@ -73,7 +74,14 @@ static int i2s_runtime_resume(struct device *dev)
return ret; return ret;
} }
return 0; regcache_cache_only(i2s->regmap, false);
regcache_mark_dirty(i2s->regmap);
ret = regcache_sync(i2s->regmap);
if (ret)
clk_disable_unprepare(i2s->mclk);
return ret;
} }
static inline struct rk_i2s_dev *to_info(struct snd_soc_dai *dai) static inline struct rk_i2s_dev *to_info(struct snd_soc_dai *dai)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment