From 9bf29fd9a2f62f7aa0849034e0f61df9bd1e043e Mon Sep 17 00:00:00 2001 From: Johannes Stezenbach Date: Mon, 11 Jul 2011 17:01:24 +0200 Subject: [PATCH] --- yaml --- r: 257590 b: refs/heads/master c: 889ebae537f5cd3adfd149160b8092217de3cff0 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/sound/soc/codecs/sta32x.c | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index f4adee95f747..78930342b6ba 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 796884391504426e9da15bdf76f73c5f4eda3714 +refs/heads/master: 889ebae537f5cd3adfd149160b8092217de3cff0 diff --git a/trunk/sound/soc/codecs/sta32x.c b/trunk/sound/soc/codecs/sta32x.c index 9bf944ca43a1..409d89d1f34c 100644 --- a/trunk/sound/soc/codecs/sta32x.c +++ b/trunk/sound/soc/codecs/sta32x.c @@ -756,6 +756,22 @@ static int sta32x_probe(struct snd_soc_codec *codec) for (i = 0; i < STA32X_REGISTER_COUNT; i++) snd_soc_cache_write(codec, i, sta32x_regs[i]); + /* preserve reset values of reserved register bits */ + snd_soc_cache_write(codec, STA32X_CONFC, + codec->hw_read(codec, STA32X_CONFC)); + snd_soc_cache_write(codec, STA32X_CONFE, + codec->hw_read(codec, STA32X_CONFE)); + snd_soc_cache_write(codec, STA32X_CONFF, + codec->hw_read(codec, STA32X_CONFF)); + snd_soc_cache_write(codec, STA32X_MMUTE, + codec->hw_read(codec, STA32X_MMUTE)); + snd_soc_cache_write(codec, STA32X_AUTO1, + codec->hw_read(codec, STA32X_AUTO1)); + snd_soc_cache_write(codec, STA32X_AUTO3, + codec->hw_read(codec, STA32X_AUTO3)); + snd_soc_cache_write(codec, STA32X_C3CFG, + codec->hw_read(codec, STA32X_C3CFG)); + /* FIXME enable thermal warning adjustment and recovery */ snd_soc_update_bits(codec, STA32X_CONFA, STA32X_CONFA_TWAB | STA32X_CONFA_TWRB, 0);