summaryrefslogtreecommitdiff
path: root/sound
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2011-11-01 13:36:10 +0000
committerMark Brown <broonie@opensource.wolfsonmicro.com>2011-11-01 18:44:55 +0000
commit4f4488abc97c1c27ff029f887944e6a6da1f5733 (patch)
tree53889d491108f22ab76b703a3da3a84a548d5d0e /sound
parent64964e82644e9f809dc83019186c21ed5b70aa56 (diff)
downloadlinux-3.10-4f4488abc97c1c27ff029f887944e6a6da1f5733.tar.gz
linux-3.10-4f4488abc97c1c27ff029f887944e6a6da1f5733.tar.bz2
linux-3.10-4f4488abc97c1c27ff029f887944e6a6da1f5733.zip
ASoC: Ensure WM8962 PLL registers are reset
The WM8962 has a separate software reset for the PLL registers. Ensure that these are reset also on startup. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@kernel.org
Diffstat (limited to 'sound')
-rw-r--r--sound/soc/codecs/wm8962.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/sound/soc/codecs/wm8962.c b/sound/soc/codecs/wm8962.c
index f60dfa16545..32d931f1122 100644
--- a/sound/soc/codecs/wm8962.c
+++ b/sound/soc/codecs/wm8962.c
@@ -1961,7 +1961,13 @@ static int wm8962_readable_register(struct snd_soc_codec *codec, unsigned int re
static int wm8962_reset(struct snd_soc_codec *codec)
{
- return snd_soc_write(codec, WM8962_SOFTWARE_RESET, 0x6243);
+ int ret;
+
+ ret = snd_soc_write(codec, WM8962_SOFTWARE_RESET, 0x6243);
+ if (ret != 0)
+ return ret;
+
+ return snd_soc_write(codec, WM8962_PLL_SOFTWARE_RESET, 0);
}
static const DECLARE_TLV_DB_SCALE(inpga_tlv, -2325, 75, 0);