linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] ASoC: sgtl5000: Revert "ASoC: sgtl5000: Fix of unmute outputs on probe"
@ 2019-12-12  7:19 Alison Wang
  2019-12-12  9:16 ` Oleksandr Suvorov
  0 siblings, 1 reply; 12+ messages in thread
From: Alison Wang @ 2019-12-12  7:19 UTC (permalink / raw)
  To: Marcel Ziswiler, igor.opaniuk, festevam, broonie, lgirdwood,
	oleksandr.suvorov, alsa-devel, linux-kernel
  Cc: Alison Wang

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@nxp.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 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


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [PATCH] ASoC: sgtl5000: Revert "ASoC: sgtl5000: Fix of unmute outputs on probe"
  2019-12-12  7:19 [PATCH] ASoC: sgtl5000: Revert "ASoC: sgtl5000: Fix of unmute outputs on probe" Alison Wang
@ 2019-12-12  9:16 ` Oleksandr Suvorov
  2019-12-12  9:24   ` [EXT] " Alison Wang
  0 siblings, 1 reply; 12+ messages in thread
From: Oleksandr Suvorov @ 2019-12-12  9:16 UTC (permalink / raw)
  To: Alison Wang
  Cc: Marcel Ziswiler, Igor Opaniuk, festevam, broonie, lgirdwood,
	Oleksandr Suvorov, alsa-devel, linux-kernel

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@nxp.com> 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@nxp.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 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)

^ permalink raw reply	[flat|nested] 12+ messages in thread

* RE: [EXT] Re: [PATCH] ASoC: sgtl5000: Revert "ASoC: sgtl5000: Fix of unmute outputs on probe"
  2019-12-12  9:16 ` Oleksandr Suvorov
@ 2019-12-12  9:24   ` Alison Wang
  2019-12-12 10:07     ` Alison Wang
  0 siblings, 1 reply; 12+ messages in thread
From: Alison Wang @ 2019-12-12  9:24 UTC (permalink / raw)
  To: Oleksandr Suvorov
  Cc: Marcel Ziswiler, Igor Opaniuk, festevam, broonie, lgirdwood,
	alsa-devel, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 3346 bytes --]

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@toradex.com>
> Sent: Thursday, December 12, 2019 5:11 PM
> To: Alison Wang <alison.wang@nxp.com>
> Cc: Marcel Ziswiler <marcel.ziswiler@toradex.com>; Igor Opaniuk
> <igor.opaniuk@toradex.com>; festevam@gmail.com; broonie@kernel.org;
> lgirdwood@gmail.com; Oleksandr Suvorov <oleksandr.suvorov@toradex.com>;
> alsa-devel@alsa-project.org; linux-kernel@vger.kernel.org
> 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@nxp.com>
> 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@nxp.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 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)

[-- Attachment #2: Type: message/rfc822, Size: 3534 bytes --]

From: Alison Wang <alison.wang@nxp.com>
To: "oleksandr.suvorov@toradex.com" <oleksandr.suvorov@toradex.com>, Marcel Ziswiler <marcel.ziswiler@toradex.com>, "igor.opaniuk@toradex.com" <igor.opaniuk@toradex.com>, Fabio Estevam <festevam@gmail.com>, "broonie@kernel.org" <broonie@kernel.org>, "lgirdwood@gmail.com" <lgirdwood@gmail.com>
Cc: "alsa-devel@alsa-project.org" <alsa-devel@alsa-project.org>
Subject: RE: [v6,5/6] ASoC: sgtl5000: Fix of unmute outputs on probe
Date: Wed, 11 Dec 2019 07:59:23 +0000
Message-ID: <VI1PR04MB4062BD2BB10ADE4EB0DF9C37F45A0@VI1PR04MB4062.eurprd04.prod.outlook.com>

Hi, Oleksandr,

I have a question about this patch. Could you give me some ideas? Thanks.

In this patch, 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. BTW, in the original code, snd_soc_component_write is used and MUTE_LO, MUTE_HP and MUTE_ADC are all set as zero (unmute).

I saw the above phenomenon on the latest linux-next. For LO and HP are muted, no sound can be heard.


Best Regards,
Alison Wang

> Subject: [v6,5/6] ASoC: sgtl5000: Fix of unmute outputs on probe
> 
> 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>
> Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com>
> Reviewed-by: Fabio Estevam <festevam@gmail.com>
> 
> ---
> 
> Changes in v6: None
> Changes in v5: None
> Changes in v4: None
> Changes in v3: None
> Changes in v2:
> - Fix patch formatting
> 
>  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
> b65232521ea8..23f4ae2f0723 100644
> --- a/sound/soc/codecs/sgtl5000.c
> +++ b/sound/soc/codecs/sgtl5000.c
> @@ -1453,6 +1453,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);
> @@ -1480,9 +1481,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,
> 


^ permalink raw reply	[flat|nested] 12+ messages in thread

* RE: [EXT] Re: [PATCH] ASoC: sgtl5000: Revert "ASoC: sgtl5000: Fix of unmute outputs on probe"
  2019-12-12  9:24   ` [EXT] " Alison Wang
@ 2019-12-12 10:07     ` Alison Wang
  2019-12-12 10:23       ` Oleksandr Suvorov
  0 siblings, 1 reply; 12+ messages in thread
From: Alison Wang @ 2019-12-12 10:07 UTC (permalink / raw)
  To: Oleksandr Suvorov
  Cc: Marcel Ziswiler, Igor Opaniuk, festevam, broonie, lgirdwood,
	alsa-devel, linux-kernel

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@toradex.com>
> Cc: Marcel Ziswiler <marcel.ziswiler@toradex.com>; Igor Opaniuk
> <igor.opaniuk@toradex.com>; festevam@gmail.com; broonie@kernel.org;
> lgirdwood@gmail.com; alsa-devel@alsa-project.org;
> linux-kernel@vger.kernel.org
> 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@toradex.com>
> > Sent: Thursday, December 12, 2019 5:11 PM
> > To: Alison Wang <alison.wang@nxp.com>
> > Cc: Marcel Ziswiler <marcel.ziswiler@toradex.com>; Igor Opaniuk
> > <igor.opaniuk@toradex.com>; festevam@gmail.com; broonie@kernel.org;
> > lgirdwood@gmail.com; Oleksandr Suvorov
> <oleksandr.suvorov@toradex.com>;
> > alsa-devel@alsa-project.org; linux-kernel@vger.kernel.org
> > 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@nxp.com>
> > 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@nxp.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 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)

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [EXT] Re: [PATCH] ASoC: sgtl5000: Revert "ASoC: sgtl5000: Fix of unmute outputs on probe"
  2019-12-12 10:07     ` Alison Wang
@ 2019-12-12 10:23       ` Oleksandr Suvorov
       [not found]         ` <VI1PR04MB40620DD55D5ED0FDC3E94C2BF4550@VI1PR04MB4062.eurprd04.prod.outlook.com>
  0 siblings, 1 reply; 12+ messages in thread
From: Oleksandr Suvorov @ 2019-12-12 10:23 UTC (permalink / raw)
  To: Alison Wang
  Cc: Oleksandr Suvorov, Marcel Ziswiler, Igor Opaniuk, festevam,
	broonie, lgirdwood, alsa-devel, linux-kernel

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.

On Thu, Dec 12, 2019 at 12:08 PM Alison Wang <alison.wang@nxp.com> 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@toradex.com>
> > Cc: Marcel Ziswiler <marcel.ziswiler@toradex.com>; Igor Opaniuk
> > <igor.opaniuk@toradex.com>; festevam@gmail.com; broonie@kernel.org;
> > lgirdwood@gmail.com; alsa-devel@alsa-project.org;
> > linux-kernel@vger.kernel.org
> > 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@toradex.com>
> > > Sent: Thursday, December 12, 2019 5:11 PM
> > > To: Alison Wang <alison.wang@nxp.com>
> > > Cc: Marcel Ziswiler <marcel.ziswiler@toradex.com>; Igor Opaniuk
> > > <igor.opaniuk@toradex.com>; festevam@gmail.com; broonie@kernel.org;
> > > lgirdwood@gmail.com; Oleksandr Suvorov
> > <oleksandr.suvorov@toradex.com>;
> > > alsa-devel@alsa-project.org; linux-kernel@vger.kernel.org
> > > 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@nxp.com>
> > > 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@nxp.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 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)

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [EXT] Re: [PATCH] ASoC: sgtl5000: Revert "ASoC: sgtl5000: Fix of unmute outputs on probe"
       [not found]         ` <VI1PR04MB40620DD55D5ED0FDC3E94C2BF4550@VI1PR04MB4062.eurprd04.prod.outlook.com>
@ 2019-12-12 12:23           ` Mark Brown
  2020-03-19 20:49             ` [alsa-devel] " Tim Harvey
  0 siblings, 1 reply; 12+ messages in thread
From: Mark Brown @ 2019-12-12 12:23 UTC (permalink / raw)
  To: Alison Wang
  Cc: Oleksandr Suvorov, Marcel Ziswiler, Igor Opaniuk, festevam,
	lgirdwood, alsa-devel, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 349 bytes --]

On Thu, Dec 12, 2019 at 10:46:31AM +0000, Alison Wang wrote:

> 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?

Use amixer.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [alsa-devel] [EXT] Re: [PATCH] ASoC: sgtl5000: Revert "ASoC: sgtl5000: Fix of unmute outputs on probe"
  2019-12-12 12:23           ` Mark Brown
@ 2020-03-19 20:49             ` Tim Harvey
  2020-03-20  7:26               ` Marcel Ziswiler
  2020-03-20 12:15               ` Mark Brown
  0 siblings, 2 replies; 12+ messages in thread
From: Tim Harvey @ 2020-03-19 20:49 UTC (permalink / raw)
  To: Mark Brown, Oleksandr Suvorov
  Cc: Alison Wang, Igor Opaniuk, alsa-devel, Marcel Ziswiler,
	lgirdwood, linux-kernel, festevam

On Thu, Dec 12, 2019 at 4:24 AM Mark Brown <broonie@kernel.org> wrote:
>
> On Thu, Dec 12, 2019 at 10:46:31AM +0000, Alison Wang wrote:
>
> > 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?
>
> Use amixer.

Marc / Oleksandr,

I can't seem to find the original patch in my mailbox for 631bc8f:
('ASoC: sgtl5000: Fix of unmute outputs on probe') however I find it
breaks sgtl5000 audio output on the Gateworks boards which is still
broken on 5.6-rc6. Was there some follow-up patches that haven't made
it into mainline yet regarding this?

The response above indicates maybe there was an additional ALSA
control perhaps added as a resolution but I don't see any differences
there.

Best Regards,

Tim

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [alsa-devel] [EXT] Re: [PATCH] ASoC: sgtl5000: Revert "ASoC: sgtl5000: Fix of unmute outputs on probe"
  2020-03-19 20:49             ` [alsa-devel] " Tim Harvey
@ 2020-03-20  7:26               ` Marcel Ziswiler
  2020-03-20 15:51                 ` Tim Harvey
  2020-03-20 12:15               ` Mark Brown
  1 sibling, 1 reply; 12+ messages in thread
From: Marcel Ziswiler @ 2020-03-20  7:26 UTC (permalink / raw)
  To: broonie, tharvey, Oleksandr Suvorov
  Cc: alison.wang, lgirdwood, festevam, Igor Opanyuk, linux-kernel, alsa-devel

Hi Tim

On Thu, 2020-03-19 at 13:49 -0700, Tim Harvey wrote:
> On Thu, Dec 12, 2019 at 4:24 AM Mark Brown <broonie@kernel.org>
> wrote:
> > On Thu, Dec 12, 2019 at 10:46:31AM +0000, Alison Wang wrote:
> > 
> > > 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?
> > 
> > Use amixer.
> 
> Marc / Oleksandr,
> 
> I can't seem to find the original patch in my mailbox for 631bc8f:
> ('ASoC: sgtl5000: Fix of unmute outputs on probe')

I forwarded you that one again. OK?

> however I find it
> breaks sgtl5000 audio output on the Gateworks boards which is still
> broken on 5.6-rc6.

What exactly do you mean by "breaks"? Isn't it that you just need to
unmute stuff e.g. using amixer or using a proper updated asound.state
file with default states for your controls?

> Was there some follow-up patches that haven't made
> it into mainline yet regarding this?

I don't think so. It all works perfectly, not?

> The response above indicates maybe there was an additional ALSA
> control perhaps added as a resolution but I don't see any differences
> there.

Not that I am aware of, no.

> Best Regards,
> 
> Tim

Cheers

Marcel

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [alsa-devel] [EXT] Re: [PATCH] ASoC: sgtl5000: Revert "ASoC: sgtl5000: Fix of unmute outputs on probe"
  2020-03-19 20:49             ` [alsa-devel] " Tim Harvey
  2020-03-20  7:26               ` Marcel Ziswiler
@ 2020-03-20 12:15               ` Mark Brown
  1 sibling, 0 replies; 12+ messages in thread
From: Mark Brown @ 2020-03-20 12:15 UTC (permalink / raw)
  To: Tim Harvey
  Cc: Oleksandr Suvorov, Alison Wang, Igor Opaniuk, alsa-devel,
	Marcel Ziswiler, lgirdwood, linux-kernel, festevam

[-- Attachment #1: Type: text/plain, Size: 289 bytes --]

On Thu, Mar 19, 2020 at 01:49:37PM -0700, Tim Harvey wrote:

> The response above indicates maybe there was an additional ALSA
> control perhaps added as a resolution but I don't see any differences
> there.

The response is talking about existing controls that are already in the
driver.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [alsa-devel] [EXT] Re: [PATCH] ASoC: sgtl5000: Revert "ASoC: sgtl5000: Fix of unmute outputs on probe"
  2020-03-20  7:26               ` Marcel Ziswiler
@ 2020-03-20 15:51                 ` Tim Harvey
  2020-03-20 17:05                   ` Oleksandr Suvorov
  0 siblings, 1 reply; 12+ messages in thread
From: Tim Harvey @ 2020-03-20 15:51 UTC (permalink / raw)
  To: Marcel Ziswiler
  Cc: broonie, Oleksandr Suvorov, alison.wang, lgirdwood, festevam,
	Igor Opanyuk, linux-kernel, alsa-devel

On Fri, Mar 20, 2020 at 12:26 AM Marcel Ziswiler
<marcel.ziswiler@toradex.com> wrote:
>
> Hi Tim
>
> On Thu, 2020-03-19 at 13:49 -0700, Tim Harvey wrote:
> > On Thu, Dec 12, 2019 at 4:24 AM Mark Brown <broonie@kernel.org>
> > wrote:
> > > On Thu, Dec 12, 2019 at 10:46:31AM +0000, Alison Wang wrote:
> > >
> > > > 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?
> > >
> > > Use amixer.
> >
> > Marc / Oleksandr,
> >
> > I can't seem to find the original patch in my mailbox for 631bc8f:
> > ('ASoC: sgtl5000: Fix of unmute outputs on probe')
>
> I forwarded you that one again. OK?
>
> > however I find it
> > breaks sgtl5000 audio output on the Gateworks boards which is still
> > broken on 5.6-rc6.
>
> What exactly do you mean by "breaks"? Isn't it that you just need to
> unmute stuff e.g. using amixer or using a proper updated asound.state
> file with default states for your controls?

the audio device is in /proc/asound/cards but when I send audio to it
I 'hear' nothing out the normal line-out output.

>
> > Was there some follow-up patches that haven't made
> > it into mainline yet regarding this?
>
> I don't think so. It all works perfectly, not?
>
> > The response above indicates maybe there was an additional ALSA
> > control perhaps added as a resolution but I don't see any differences
> > there.
>
> Not that I am aware of, no.
>

The output of 'amixer' shows nothing different than before this patch
where audio out worked (same controls, same settings on them). I'm
testing this with a buildroot rootfs with no asound.conf (or at least
none that I know of... i'm honestly not clear where all they can be).

Tim

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [alsa-devel] [EXT] Re: [PATCH] ASoC: sgtl5000: Revert "ASoC: sgtl5000: Fix of unmute outputs on probe"
  2020-03-20 15:51                 ` Tim Harvey
@ 2020-03-20 17:05                   ` Oleksandr Suvorov
  2020-03-20 22:51                     ` Tim Harvey
  0 siblings, 1 reply; 12+ messages in thread
From: Oleksandr Suvorov @ 2020-03-20 17:05 UTC (permalink / raw)
  To: Tim Harvey
  Cc: Marcel Ziswiler, broonie, alison.wang, lgirdwood, festevam,
	Igor Opanyuk, linux-kernel, alsa-devel

On Fri, Mar 20, 2020 at 5:51 PM Tim Harvey <tharvey@gateworks.com> wrote:
>
> On Fri, Mar 20, 2020 at 12:26 AM Marcel Ziswiler
> <marcel.ziswiler@toradex.com> wrote:
> >
> > Hi Tim
> >
> > On Thu, 2020-03-19 at 13:49 -0700, Tim Harvey wrote:
> > > On Thu, Dec 12, 2019 at 4:24 AM Mark Brown <broonie@kernel.org>
> > > wrote:
> > > > On Thu, Dec 12, 2019 at 10:46:31AM +0000, Alison Wang wrote:
> > > >
> > > > > 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?
> > > >
> > > > Use amixer.
> > >
> > > Marc / Oleksandr,
> > >
> > > I can't seem to find the original patch in my mailbox for 631bc8f:
> > > ('ASoC: sgtl5000: Fix of unmute outputs on probe')
> >
> > I forwarded you that one again. OK?
> >
> > > however I find it
> > > breaks sgtl5000 audio output on the Gateworks boards which is still
> > > broken on 5.6-rc6.
> >
> > What exactly do you mean by "breaks"? Isn't it that you just need to
> > unmute stuff e.g. using amixer or using a proper updated asound.state
> > file with default states for your controls?
>
> the audio device is in /proc/asound/cards but when I send audio to it
> I 'hear' nothing out the normal line-out output.
>
> >
> > > Was there some follow-up patches that haven't made
> > > it into mainline yet regarding this?
> >
> > I don't think so. It all works perfectly, not?
> >
> > > The response above indicates maybe there was an additional ALSA
> > > control perhaps added as a resolution but I don't see any differences
> > > there.
> >
> > Not that I am aware of, no.
> >
>
> The output of 'amixer' shows nothing different than before this patch
> where audio out worked (same controls, same settings on them). I'm
> testing this with a buildroot rootfs with no asound.conf (or at least
> none that I know of... i'm honestly not clear where all they can be).

Tim, did you try to unmute the output with amixer?

Could you provide the output of your amixer with and without this patch?

Before this patch, the driver unmuted HP, LO, and ADC unconditionally
on load (while it just had to set up ZCD bits).
Now HP, LO, ADC remain muted until one unmutes them using standard
ALSA tools/interfaces.
ALSA mute/unmute controls for these outputs have been presenting in
the kernel for a long time. Please, just use them.

>
> Tim
--
Best regards
Oleksandr Suvorov

Toradex AG
Ebenaustrasse 10 | 6048 Horw | Switzerland | T: +41 41 500 48 00

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [alsa-devel] [EXT] Re: [PATCH] ASoC: sgtl5000: Revert "ASoC: sgtl5000: Fix of unmute outputs on probe"
  2020-03-20 17:05                   ` Oleksandr Suvorov
@ 2020-03-20 22:51                     ` Tim Harvey
  0 siblings, 0 replies; 12+ messages in thread
From: Tim Harvey @ 2020-03-20 22:51 UTC (permalink / raw)
  To: Oleksandr Suvorov
  Cc: Marcel Ziswiler, broonie, alison.wang, lgirdwood, festevam,
	Igor Opanyuk, linux-kernel, alsa-devel

On Fri, Mar 20, 2020 at 10:06 AM Oleksandr Suvorov
<oleksandr.suvorov@toradex.com> wrote:
>
> On Fri, Mar 20, 2020 at 5:51 PM Tim Harvey <tharvey@gateworks.com> wrote:
> >
> > On Fri, Mar 20, 2020 at 12:26 AM Marcel Ziswiler
> > <marcel.ziswiler@toradex.com> wrote:
> > >
> > > Hi Tim
> > >
> > > On Thu, 2020-03-19 at 13:49 -0700, Tim Harvey wrote:
> > > > On Thu, Dec 12, 2019 at 4:24 AM Mark Brown <broonie@kernel.org>
> > > > wrote:
> > > > > On Thu, Dec 12, 2019 at 10:46:31AM +0000, Alison Wang wrote:
> > > > >
> > > > > > 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?
> > > > >
> > > > > Use amixer.
> > > >
> > > > Marc / Oleksandr,
> > > >
> > > > I can't seem to find the original patch in my mailbox for 631bc8f:
> > > > ('ASoC: sgtl5000: Fix of unmute outputs on probe')
> > >
> > > I forwarded you that one again. OK?
> > >
> > > > however I find it
> > > > breaks sgtl5000 audio output on the Gateworks boards which is still
> > > > broken on 5.6-rc6.
> > >
> > > What exactly do you mean by "breaks"? Isn't it that you just need to
> > > unmute stuff e.g. using amixer or using a proper updated asound.state
> > > file with default states for your controls?
> >
> > the audio device is in /proc/asound/cards but when I send audio to it
> > I 'hear' nothing out the normal line-out output.
> >
> > >
> > > > Was there some follow-up patches that haven't made
> > > > it into mainline yet regarding this?
> > >
> > > I don't think so. It all works perfectly, not?
> > >
> > > > The response above indicates maybe there was an additional ALSA
> > > > control perhaps added as a resolution but I don't see any differences
> > > > there.
> > >
> > > Not that I am aware of, no.
> > >
> >
> > The output of 'amixer' shows nothing different than before this patch
> > where audio out worked (same controls, same settings on them). I'm
> > testing this with a buildroot rootfs with no asound.conf (or at least
> > none that I know of... i'm honestly not clear where all they can be).
>
> Tim, did you try to unmute the output with amixer?
>
> Could you provide the output of your amixer with and without this patch?
>
> Before this patch, the driver unmuted HP, LO, and ADC unconditionally
> on load (while it just had to set up ZCD bits).
> Now HP, LO, ADC remain muted until one unmutes them using standard
> ALSA tools/interfaces.
> ALSA mute/unmute controls for these outputs have been presenting in
> the kernel for a long time. Please, just use them.
>

Oleksandr,

When I first bisected to this I must have done something wrong as I
thought amixer settings showed the same before and after - I see that
I'm wrong about that. I see the differences now with HP, LO, and ADC
muted by default. I agree using amixer controls is fine.

Sorry for the noise!

Tim

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2020-03-20 22:51 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-12-12  7:19 [PATCH] ASoC: sgtl5000: Revert "ASoC: sgtl5000: Fix of unmute outputs on probe" Alison Wang
2019-12-12  9:16 ` Oleksandr Suvorov
2019-12-12  9:24   ` [EXT] " Alison Wang
2019-12-12 10:07     ` Alison Wang
2019-12-12 10:23       ` Oleksandr Suvorov
     [not found]         ` <VI1PR04MB40620DD55D5ED0FDC3E94C2BF4550@VI1PR04MB4062.eurprd04.prod.outlook.com>
2019-12-12 12:23           ` Mark Brown
2020-03-19 20:49             ` [alsa-devel] " Tim Harvey
2020-03-20  7:26               ` Marcel Ziswiler
2020-03-20 15:51                 ` Tim Harvey
2020-03-20 17:05                   ` Oleksandr Suvorov
2020-03-20 22:51                     ` Tim Harvey
2020-03-20 12:15               ` Mark Brown

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).