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 <oleksandr.suvo...@toradex.com>
---

 sound/soc/codecs/sgtl5000.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/sound/soc/codecs/sgtl5000.c b/sound/soc/codecs/sgtl5000.c
index bb58c997c6914..e813a37910af4 100644
--- a/sound/soc/codecs/sgtl5000.c
+++ b/sound/soc/codecs/sgtl5000.c
@@ -1289,6 +1289,7 @@ static int sgtl5000_probe(struct snd_soc_component 
*component)
        int ret;
        u16 reg;
        struct sgtl5000_priv *sgtl5000 = 
snd_soc_component_get_drvdata(component);
+       unsigned int zcd_mask = SGTL5000_HP_ZCD_EN | SGTL5000_ADC_ZCD_EN;
 
        /* power up sgtl5000 */
        ret = sgtl5000_set_power_regs(component);
@@ -1316,9 +1317,8 @@ static int sgtl5000_probe(struct snd_soc_component 
*component)
               0x1f);
        snd_soc_component_write(component, SGTL5000_CHIP_PAD_STRENGTH, reg);
 
-       snd_soc_component_write(component, SGTL5000_CHIP_ANA_CTRL,
-                       SGTL5000_HP_ZCD_EN |
-                       SGTL5000_ADC_ZCD_EN);
+       snd_soc_component_update_bits(component, SGTL5000_CHIP_ANA_CTRL,
+               zcd_mask, zcd_mask);
 
        snd_soc_component_update_bits(component, SGTL5000_CHIP_MIC_CTRL,
                        SGTL5000_BIAS_R_MASK,
-- 
2.20.1

Reply via email to