summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLiam Girdwood <liam.r.girdwood@linux.intel.com>2014-05-16 16:55:20 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-06-26 15:12:40 -0400
commit7f8954f5340870cc7b0040da2103f1fcbf730050 (patch)
tree0dcdfc193599a0acc0903df0e8d04a7eb893fe9f
parent72d1e4f6c1530d2c9c8e0d82b2c2e2ab9bf7034a (diff)
downloadlwn-7f8954f5340870cc7b0040da2103f1fcbf730050.tar.gz
lwn-7f8954f5340870cc7b0040da2103f1fcbf730050.zip
ASoC: max98090: Fix reset at resume time
commit 25b4ab430f8e166c9b63f4db28e7e812d5a59396 upstream. 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: Liam Girdwood <liam.r.girdwood@linux.intel.com> Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> Signed-off-by: Mark Brown <broonie@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--sound/soc/codecs/max98090.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sound/soc/codecs/max98090.c b/sound/soc/codecs/max98090.c
index 4fdcc1cefc25..9b7746c9546f 100644
--- a/sound/soc/codecs/max98090.c
+++ b/sound/soc/codecs/max98090.c
@@ -255,6 +255,7 @@ static struct reg_default max98090_reg[] = {
static bool max98090_volatile_register(struct device *dev, unsigned int reg)
{
switch (reg) {
+ case M98090_REG_SOFTWARE_RESET:
case M98090_REG_DEVICE_STATUS:
case M98090_REG_JACK_STATUS:
case M98090_REG_REVISION_ID:
@@ -2343,6 +2344,8 @@ static int max98090_runtime_resume(struct device *dev)
regcache_cache_only(max98090->regmap, false);
+ max98090_reset(max98090);
+
regcache_sync(max98090->regmap);
return 0;