summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2012-07-11 19:03:48 +0100
committerMark Brown <broonie@opensource.wolfsonmicro.com>2012-07-12 18:41:02 +0100
commite4dd76788c7e5b27165890d712c8c4f6f0abd645 (patch)
treef6122cd8a021069b700fc7531f6b60f027a2e15a
parentb761c0ca2e964a240d74e50da9e27dc0b3be0649 (diff)
downloadlinux-3.10-e4dd76788c7e5b27165890d712c8c4f6f0abd645.tar.gz
linux-3.10-e4dd76788c7e5b27165890d712c8c4f6f0abd645.tar.bz2
linux-3.10-e4dd76788c7e5b27165890d712c8c4f6f0abd645.zip
ASoC: wm8962: Redo early init of the part on resume
Ensure robust startup of the part by going through the reset procedure prior to resyncing the full register cache, avoiding potential intermittent faults in some designs. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@vger.kernel.org
-rw-r--r--sound/soc/codecs/wm8962.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sound/soc/codecs/wm8962.c b/sound/soc/codecs/wm8962.c
index beb709bd56c..eaf65863ec2 100644
--- a/sound/soc/codecs/wm8962.c
+++ b/sound/soc/codecs/wm8962.c
@@ -3725,6 +3725,9 @@ static int wm8962_runtime_resume(struct device *dev)
}
regcache_cache_only(wm8962->regmap, false);
+
+ wm8962_reset(wm8962);
+
regcache_sync(wm8962->regmap);
regmap_update_bits(wm8962->regmap, WM8962_ANTI_POP,