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 <katsuh...@katsuster.net>
---
 sound/soc/codecs/rk3328_codec.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/sound/soc/codecs/rk3328_codec.c b/sound/soc/codecs/rk3328_codec.c
index 71f3fc2d970c..f3442a2283ea 100644
--- a/sound/soc/codecs/rk3328_codec.c
+++ b/sound/soc/codecs/rk3328_codec.c
@@ -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;
 }
-- 
2.19.2

Reply via email to