]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
ASoC: rockchip: add workaround for silence of rk3288 ACODEC
authorKatsuhiro Suzuki <katsuhiro@katsuster.net>
Thu, 20 Dec 2018 15:36:36 +0000 (00:36 +0900)
committerMark Brown <broonie@kernel.org>
Thu, 3 Jan 2019 16:34:36 +0000 (16:34 +0000)
This patch adds reset and precharge in shutdown of PCM device.

ACODEC goes to silence if we change Fs to 44.1kHz from 48kHz. This
workaround seems to work but I don't know this workaround is correct
sequence or not for ACODEC.

Signed-off-by: Katsuhiro Suzuki <katsuhiro@katsuster.net>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/rk3328_codec.c

index 71f3fc2d970c9980c11a8557120563d2d58712ea..f3442a2283ea15d46765134fb2d594b2f231ec29 100644 (file)
@@ -261,9 +261,12 @@ static int rk3328_codec_close_playback(struct rk3328_codec_priv *rk3328)
                mdelay(1);
        }
 
+       /* Workaround for silence when changed Fs 48 -> 44.1kHz */
+       rk3328_codec_reset(rk3328);
+
        regmap_update_bits(rk3328->regmap, DAC_PRECHARGE_CTRL,
                           DAC_CHARGE_CURRENT_ALL_MASK,
-                          DAC_CHARGE_CURRENT_I);
+                          DAC_CHARGE_CURRENT_ALL_ON);
 
        return 0;
 }