summaryrefslogtreecommitdiff
path: root/sound/soc/codecs/wm8962.c
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2012-07-11 18:03:48 (GMT)
committerMark Brown <broonie@opensource.wolfsonmicro.com>2012-07-12 17:41:02 (GMT)
commite4dd76788c7e5b27165890d712c8c4f6f0abd645 (patch)
treef6122cd8a021069b700fc7531f6b60f027a2e15a /sound/soc/codecs/wm8962.c
parentb761c0ca2e964a240d74e50da9e27dc0b3be0649 (diff)
downloadlinux-fsl-qoriq-e4dd76788c7e5b27165890d712c8c4f6f0abd645.tar.xz
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
Diffstat (limited to 'sound/soc/codecs/wm8962.c')
-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 beb709b..eaf6586 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,