Hi, Oleksandr, ... They unmute with standard sound controls: static const struct snd_kcontrol_new sgtl5000_snd_controls[] = { ... SOC_SINGLE("Capture Switch", SGTL5000_CHIP_ANA_CTRL, 0, 1, 1), ... SOC_SINGLE("Headphone Playback Switch", SGTL5000_CHIP_ANA_CTRL, 4, 1, 1), ... SOC_SINGLE("Lineout Playback Switch", SGTL5000_CHIP_ANA_CTRL, 8, 1, 1), ... We tested this standard solution using gstreamer and standard ALSA tools like aplay, arecord and all these tools unmute needed blocks successfully. [Alison Wang] I am using aplay. Do you mean I need to add some parameters for aplay or others to unmute the outputs? Best Regards, Alison Wang On Thu, Dec 12, 2019 at 12:08 PM Alison Wang <alison.wang@xxxxxxx> wrote: > > Hi, Oleksandr, > > In your patch, outputs and ADC are muted on driver probing. I don't know when and > where they can be unmuted in the kernel before playing in the application. > > Could you please give me some ideas? > > > Best Regards, > Alison Wang > > > -----Original Message----- > > From: Alison Wang > > Sent: Thursday, December 12, 2019 5:25 PM > > To: Oleksandr Suvorov <oleksandr.suvorov@xxxxxxxxxxx> > > Cc: Marcel Ziswiler <marcel.ziswiler@xxxxxxxxxxx>; Igor Opaniuk > > <igor.opaniuk@xxxxxxxxxxx>; festevam@xxxxxxxxx; broonie@xxxxxxxxxx; > > lgirdwood@xxxxxxxxx; alsa-devel@xxxxxxxxxxxxxxxx; > > linux-kernel@xxxxxxxxxxxxxxx > > Subject: RE: [EXT] Re: [PATCH] ASoC: sgtl5000: Revert "ASoC: sgtl5000: Fix of > > unmute outputs on probe" > > > > Hi, Oleksandr, > > > > I think I have explained the reason in my email which sent to you yesterday. I > > attached it too. > > According to my test on the boards, MUTE_LO, MUTE_HP and MUTE_ADC are > > all muted when playing the sound. > > > > Could you give me some ideas about this issue? > > > > > > Best Regards,I > > Alison Wang > > > > > > > -----Original Message----- > > > From: Oleksandr Suvorov <oleksandr.suvorov@xxxxxxxxxxx> > > > Sent: Thursday, December 12, 2019 5:11 PM > > > To: Alison Wang <alison.wang@xxxxxxx> > > > Cc: Marcel Ziswiler <marcel.ziswiler@xxxxxxxxxxx>; Igor Opaniuk > > > <igor.opaniuk@xxxxxxxxxxx>; festevam@xxxxxxxxx; broonie@xxxxxxxxxx; > > > lgirdwood@xxxxxxxxx; Oleksandr Suvorov > > <oleksandr.suvorov@xxxxxxxxxxx>; > > > alsa-devel@xxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx > > > Subject: [EXT] Re: [PATCH] ASoC: sgtl5000: Revert "ASoC: sgtl5000: Fix of > > > unmute outputs on probe" > > > > > > Caution: EXT Email > > > > > > Alison, could you please explain, what reason to revert this fix? All these > > blocks > > > have their own control and unmute on demand. > > > Why do you stand on unconditional unmuting of outputs and ADC on driver > > > probing? > > > > > > On Thu, Dec 12, 2019 at 9:20 AM Alison Wang <alison.wang@xxxxxxx> > > > wrote: > > > > > > > > This reverts commit 631bc8f0134ae9620d86a96b8c5f9445d91a2dca. > > > > > > > > In commit 631bc8f0134a, snd_soc_component_update_bits is used instead > > > > of snd_soc_component_write. Although EN_HP_ZCD and EN_ADC_ZCD are > > > > enabled in ANA_CTRL register, MUTE_LO, MUTE_HP and MUTE_ADC bits > > are > > > > remained as the default value. It causes LO, HP and ADC are all muted > > > > after driver probe. > > > > > > > > The patch is to revert this commit, snd_soc_component_write is still > > > > used and MUTE_LO, MUTE_HP and MUTE_ADC are set as zero (unmuted). > > > > > > > > Signed-off-by: Alison Wang <alison.wang@xxxxxxx> > > > > --- > > > > 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 aa1f963..0b35fca 100644 > > > > --- a/sound/soc/codecs/sgtl5000.c > > > > +++ b/sound/soc/codecs/sgtl5000.c > > > > @@ -1458,7 +1458,6 @@ 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); > > > > @@ -1486,8 +1485,9 @@ static int sgtl5000_probe(struct > > > snd_soc_component *component) > > > > 0x1f); > > > > snd_soc_component_write(component, > > > SGTL5000_CHIP_PAD_STRENGTH, > > > > reg); > > > > > > > > - snd_soc_component_update_bits(component, > > > SGTL5000_CHIP_ANA_CTRL, > > > > - zcd_mask, zcd_mask); > > > > + 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_MIC_CTRL, > > > > SGTL5000_BIAS_R_MASK, > > > > -- > > > > 2.9.5 > > > > > > > > > > > > > -- > > > Best regards > > > Oleksandr Suvorov > > > > > > Toradex AG > > > Altsagenstrasse 5 | 6048 Horw/Luzern | Switzerland | T: +41 41 500 > > > 4800 (main line) -- Best regards Oleksandr Suvorov Toradex AG Altsagenstrasse 5 | 6048 Horw/Luzern | Switzerland | T: +41 41 500 4800 (main line) _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx https://mailman.alsa-project.org/mailman/listinfo/alsa-devel