提交 25b4ab43 编写于 作者: L Liam Girdwood 提交者: Mark Brown

ASoC: max98090: Fix reset at resume time

Reset needs to wait 20ms before other codec IO is performed. This wait
was not being performed. Fix this by making sure the reset register is not
restored with the cache, but use the manual reset method in resume with
the wait.
Signed-off-by: NLiam Girdwood <liam.r.girdwood@linux.intel.com>
Signed-off-by: NJarkko Nikula <jarkko.nikula@linux.intel.com>
Signed-off-by: NMark Brown <broonie@linaro.org>
Cc: stable@vger.kernel.org
上级 729af1ce
...@@ -255,6 +255,7 @@ static struct reg_default max98090_reg[] = { ...@@ -255,6 +255,7 @@ static struct reg_default max98090_reg[] = {
static bool max98090_volatile_register(struct device *dev, unsigned int reg) static bool max98090_volatile_register(struct device *dev, unsigned int reg)
{ {
switch (reg) { switch (reg) {
case M98090_REG_SOFTWARE_RESET:
case M98090_REG_DEVICE_STATUS: case M98090_REG_DEVICE_STATUS:
case M98090_REG_JACK_STATUS: case M98090_REG_JACK_STATUS:
case M98090_REG_REVISION_ID: case M98090_REG_REVISION_ID:
...@@ -2374,6 +2375,8 @@ static int max98090_runtime_resume(struct device *dev) ...@@ -2374,6 +2375,8 @@ static int max98090_runtime_resume(struct device *dev)
regcache_cache_only(max98090->regmap, false); regcache_cache_only(max98090->regmap, false);
max98090_reset(max98090);
regcache_sync(max98090->regmap); regcache_sync(max98090->regmap);
return 0; return 0;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册