ASoC: ak4642: prevent un-necessary changes to SG_SL1
authorPhil Edworthy <phil.edworthy@renesas.com>
Fri, 1 Nov 2013 06:06:17 +0000 (23:06 -0700)
committerBen Hutchings <ben@decadent.org.uk>
Fri, 3 Jan 2014 04:33:16 +0000 (04:33 +0000)
commit 7b5bfb82882b9b1c8423ce0ed6852ca3762d967a upstream.

If you record the sound during playback,
the playback sound becomes silent.
Modify so that the codec driver does not clear
SG_SL1::DACL bit which is controlled under widget

Signed-off-by: Phil Edworthy <phil.edworthy@renesas.com>
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
sound/soc/codecs/ak4642.c

index 1c4999d..f2dac5c 100644 (file)
@@ -214,7 +214,7 @@ static int ak4642_dai_startup(struct snd_pcm_substream *substream,
                 * This operation came from example code of
                 * "ASAHI KASEI AK4642" (japanese) manual p94.
                 */
-               snd_soc_write(codec, SG_SL1, PMMP | MGAIN0);
+               snd_soc_update_bits(codec, SG_SL1, PMMP | MGAIN0, PMMP | MGAIN0);
                snd_soc_write(codec, TIMER, ZTM(0x3) | WTM(0x3));
                snd_soc_write(codec, ALC_CTL1, ALC | LMTH0);
                snd_soc_update_bits(codec, PW_MGMT1, PMVCM | PMADL,