From befb3f9ac53a15141c15abaf4a366655115c633e Mon Sep 17 00:00:00 2001 From: Oleksandr Suvorov Date: Mon, 9 Sep 2019 14:42:30 +0300 Subject: ASoC: sgtl5000: Fix of unmute outputs on prob Backported commit 8337f764b45e122bd17b8c84b7ac26da3086fe26 To enable "zero cross detect" for ADC/HP, change HP_ZCD_EN/ADC_ZCD_EN bits only instead of writing the whole CHIP_ANA_CTRL register. Signed-off-by: Oleksandr Suvorov Reviewed-by: Marcel Ziswiler Reviewed-by: Igor Opaniuk Reviewed-by: Fabio Estevam --- sound/soc/codecs/sgtl5000.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/sound/soc/codecs/sgtl5000.c b/sound/soc/codecs/sgtl5000.c index f93440785a4c..f4c8caa30bad 100644 --- a/sound/soc/codecs/sgtl5000.c +++ b/sound/soc/codecs/sgtl5000.c @@ -1530,6 +1530,7 @@ static int sgtl5000_probe(struct snd_soc_codec *codec) { int ret; struct sgtl5000_priv *sgtl5000 = snd_soc_codec_get_drvdata(codec); + unsigned int zcd_mask = SGTL5000_HP_ZCD_EN | SGTL5000_ADC_ZCD_EN; /* setup i2c data ops */ ret = snd_soc_codec_set_cache_io(codec, 16, 16, SND_SOC_I2C); @@ -1579,9 +1580,7 @@ static int sgtl5000_probe(struct snd_soc_codec *codec) snd_soc_write(codec, SGTL5000_CHIP_PAD_STRENGTH, 0x015f); - snd_soc_write(codec, SGTL5000_CHIP_ANA_CTRL, - SGTL5000_HP_ZCD_EN | - SGTL5000_ADC_ZCD_EN); + snd_soc_update_bits(codec, SGTL5000_CHIP_ANA_CTRL, zcd_mask, zcd_mask); snd_soc_write(codec, SGTL5000_CHIP_MIC_CTRL, 2); -- cgit v1.2.3