Message ID | 20190521103619.4707-4-oleksandr.suvorov@toradex.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | VAG power control improvement for sgtl5000 codec | expand |
On Tue, 2019-05-21 at 13:36 +0300, Oleksandr Suvorov wrote: > 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.suvorov@toradex.com> Reviewed-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> > --- > > sound/soc/codecs/sgtl5000.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git sound/soc/codecs/sgtl5000.c sound/soc/codecs/sgtl5000.c > index bb58c997c691..e813a37910af 100644 > --- sound/soc/codecs/sgtl5000.c > +++ 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
diff --git sound/soc/codecs/sgtl5000.c sound/soc/codecs/sgtl5000.c index bb58c997c691..e813a37910af 100644 --- sound/soc/codecs/sgtl5000.c +++ 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,
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.suvorov@toradex.com> --- sound/soc/codecs/sgtl5000.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)