* [PATCH v2 1/2] ASoC: codecs: pcm186x: fix wrong usage of DECLARE_TLV_DB_SCALE() @ 2019-02-19 16:29 Codrin.Ciubotariu 2019-02-19 16:29 ` [PATCH v2 2/2] ASoC: codecs: pcm186x: Fix energysense SLEEP bit Codrin.Ciubotariu 2019-02-19 17:05 ` [PATCH v2 1/2] ASoC: codecs: pcm186x: fix wrong usage of DECLARE_TLV_DB_SCALE() Andrew F. Davis 0 siblings, 2 replies; 7+ messages in thread From: Codrin.Ciubotariu @ 2019-02-19 16:29 UTC (permalink / raw) To: lgirdwood, broonie Cc: dannenberg, m-stecklein, afd, alsa-devel, linux-kernel, Codrin.Ciubotariu From: Codrin Ciubotariu <codrin.ciubotariu@microchip.com> According to DS, the gain is between -12 dB and 40 dB, with a 0.5 dB step. Tested on pcm1863. Signed-off-by: Codrin Ciubotariu <codrin.ciubotariu@microchip.com> --- Changes in v2: - fixed title - added correct macro; - revert the removal of a new line; sound/soc/codecs/pcm186x.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sound/soc/codecs/pcm186x.c b/sound/soc/codecs/pcm186x.c index 809b7e9f03ca..c36a391fec8a 100644 --- a/sound/soc/codecs/pcm186x.c +++ b/sound/soc/codecs/pcm186x.c @@ -42,7 +42,7 @@ struct pcm186x_priv { bool is_master_mode; }; -static const DECLARE_TLV_DB_SCALE(pcm186x_pga_tlv, -1200, 4000, 50); +static const DECLARE_TLV_DB_SCALE(pcm186x_pga_tlv, -1200, 50, 0); static const struct snd_kcontrol_new pcm1863_snd_controls[] = { SOC_DOUBLE_R_S_TLV("ADC Capture Volume", PCM186X_PGA_VAL_CH1_L, -- 2.17.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH v2 2/2] ASoC: codecs: pcm186x: Fix energysense SLEEP bit 2019-02-19 16:29 [PATCH v2 1/2] ASoC: codecs: pcm186x: fix wrong usage of DECLARE_TLV_DB_SCALE() Codrin.Ciubotariu @ 2019-02-19 16:29 ` Codrin.Ciubotariu 2019-02-19 16:56 ` Mark Brown 2019-02-19 17:06 ` Andrew F. Davis 2019-02-19 17:05 ` [PATCH v2 1/2] ASoC: codecs: pcm186x: fix wrong usage of DECLARE_TLV_DB_SCALE() Andrew F. Davis 1 sibling, 2 replies; 7+ messages in thread From: Codrin.Ciubotariu @ 2019-02-19 16:29 UTC (permalink / raw) To: lgirdwood, broonie Cc: dannenberg, m-stecklein, afd, alsa-devel, linux-kernel, Codrin.Ciubotariu From: Codrin Ciubotariu <codrin.ciubotariu@microchip.com> The ADCs are sleeping when the SLEEP bit is set and running when it's cleared, so the bit should be inverted. Tested on pcm1863. Signed-off-by: Codrin Ciubotariu <codrin.ciubotariu@microchip.com> --- Changes in v2: - none; sound/soc/codecs/pcm186x.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sound/soc/codecs/pcm186x.c b/sound/soc/codecs/pcm186x.c index c36a391fec8a..c5fcc632f670 100644 --- a/sound/soc/codecs/pcm186x.c +++ b/sound/soc/codecs/pcm186x.c @@ -158,7 +158,7 @@ static const struct snd_soc_dapm_widget pcm1863_dapm_widgets[] = { * Put the codec into SLEEP mode when not in use, allowing the * Energysense mechanism to operate. */ - SND_SOC_DAPM_ADC("ADC", "HiFi Capture", PCM186X_POWER_CTRL, 1, 0), + SND_SOC_DAPM_ADC("ADC", "HiFi Capture", PCM186X_POWER_CTRL, 1, 1), }; static const struct snd_soc_dapm_widget pcm1865_dapm_widgets[] = { @@ -184,8 +184,8 @@ static const struct snd_soc_dapm_widget pcm1865_dapm_widgets[] = { * Put the codec into SLEEP mode when not in use, allowing the * Energysense mechanism to operate. */ - SND_SOC_DAPM_ADC("ADC1", "HiFi Capture 1", PCM186X_POWER_CTRL, 1, 0), - SND_SOC_DAPM_ADC("ADC2", "HiFi Capture 2", PCM186X_POWER_CTRL, 1, 0), + SND_SOC_DAPM_ADC("ADC1", "HiFi Capture 1", PCM186X_POWER_CTRL, 1, 1), + SND_SOC_DAPM_ADC("ADC2", "HiFi Capture 2", PCM186X_POWER_CTRL, 1, 1), }; static const struct snd_soc_dapm_route pcm1863_dapm_routes[] = { -- 2.17.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH v2 2/2] ASoC: codecs: pcm186x: Fix energysense SLEEP bit 2019-02-19 16:29 ` [PATCH v2 2/2] ASoC: codecs: pcm186x: Fix energysense SLEEP bit Codrin.Ciubotariu @ 2019-02-19 16:56 ` Mark Brown 2019-02-19 17:06 ` Andrew F. Davis 1 sibling, 0 replies; 7+ messages in thread From: Mark Brown @ 2019-02-19 16:56 UTC (permalink / raw) To: Codrin.Ciubotariu Cc: lgirdwood, dannenberg, m-stecklein, afd, alsa-devel, linux-kernel [-- Attachment #1: Type: text/plain, Size: 1167 bytes --] On Tue, Feb 19, 2019 at 04:29:28PM +0000, Codrin.Ciubotariu@microchip.com wrote: > The ADCs are sleeping when the SLEEP bit is set and running when it's > cleared, so the bit should be inverted. > Tested on pcm1863. This definitely seems to be the case from the datasheet but... > @@ -184,8 +184,8 @@ static const struct snd_soc_dapm_widget pcm1865_dapm_widgets[] = { > * Put the codec into SLEEP mode when not in use, allowing the > * Energysense mechanism to operate. > */ > - SND_SOC_DAPM_ADC("ADC1", "HiFi Capture 1", PCM186X_POWER_CTRL, 1, 0), > - SND_SOC_DAPM_ADC("ADC2", "HiFi Capture 2", PCM186X_POWER_CTRL, 1, 0), > + SND_SOC_DAPM_ADC("ADC1", "HiFi Capture 1", PCM186X_POWER_CTRL, 1, 1), > + SND_SOC_DAPM_ADC("ADC2", "HiFi Capture 2", PCM186X_POWER_CTRL, 1, 1), > }; ...we still have a bug on pcm1865 as we've got the same register bit for both channels which isn't something that's supposed to happen. Looking at the register description this feels like it'd be better handled in set_bias_level() or as a DAPM supply widget. However that's already an issue without this patch. I am a bit curious how this ever worked for anyone though. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2 2/2] ASoC: codecs: pcm186x: Fix energysense SLEEP bit 2019-02-19 16:29 ` [PATCH v2 2/2] ASoC: codecs: pcm186x: Fix energysense SLEEP bit Codrin.Ciubotariu 2019-02-19 16:56 ` Mark Brown @ 2019-02-19 17:06 ` Andrew F. Davis 2019-02-19 17:18 ` Mark Brown 2019-02-20 10:56 ` Codrin.Ciubotariu 1 sibling, 2 replies; 7+ messages in thread From: Andrew F. Davis @ 2019-02-19 17:06 UTC (permalink / raw) To: Codrin.Ciubotariu, lgirdwood, broonie Cc: dannenberg, alsa-devel, linux-kernel On 2/19/19 10:29 AM, Codrin.Ciubotariu@microchip.com wrote: > From: Codrin Ciubotariu <codrin.ciubotariu@microchip.com> > > The ADCs are sleeping when the SLEEP bit is set and running when it's > cleared, so the bit should be inverted. > Tested on pcm1863. > Did this work for you before? Strange it would if reversed, I wonder if the SLEEP bit is really doing anything here. Can investigate later, for this patch: Acked-by: Andrew F. Davis <afd@ti.com> > Signed-off-by: Codrin Ciubotariu <codrin.ciubotariu@microchip.com> > --- > > Changes in v2: > - none; > > sound/soc/codecs/pcm186x.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/sound/soc/codecs/pcm186x.c b/sound/soc/codecs/pcm186x.c > index c36a391fec8a..c5fcc632f670 100644 > --- a/sound/soc/codecs/pcm186x.c > +++ b/sound/soc/codecs/pcm186x.c > @@ -158,7 +158,7 @@ static const struct snd_soc_dapm_widget pcm1863_dapm_widgets[] = { > * Put the codec into SLEEP mode when not in use, allowing the > * Energysense mechanism to operate. > */ > - SND_SOC_DAPM_ADC("ADC", "HiFi Capture", PCM186X_POWER_CTRL, 1, 0), > + SND_SOC_DAPM_ADC("ADC", "HiFi Capture", PCM186X_POWER_CTRL, 1, 1), > }; > > static const struct snd_soc_dapm_widget pcm1865_dapm_widgets[] = { > @@ -184,8 +184,8 @@ static const struct snd_soc_dapm_widget pcm1865_dapm_widgets[] = { > * Put the codec into SLEEP mode when not in use, allowing the > * Energysense mechanism to operate. > */ > - SND_SOC_DAPM_ADC("ADC1", "HiFi Capture 1", PCM186X_POWER_CTRL, 1, 0), > - SND_SOC_DAPM_ADC("ADC2", "HiFi Capture 2", PCM186X_POWER_CTRL, 1, 0), > + SND_SOC_DAPM_ADC("ADC1", "HiFi Capture 1", PCM186X_POWER_CTRL, 1, 1), > + SND_SOC_DAPM_ADC("ADC2", "HiFi Capture 2", PCM186X_POWER_CTRL, 1, 1), > }; > > static const struct snd_soc_dapm_route pcm1863_dapm_routes[] = { > ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2 2/2] ASoC: codecs: pcm186x: Fix energysense SLEEP bit 2019-02-19 17:06 ` Andrew F. Davis @ 2019-02-19 17:18 ` Mark Brown 2019-02-20 10:56 ` Codrin.Ciubotariu 1 sibling, 0 replies; 7+ messages in thread From: Mark Brown @ 2019-02-19 17:18 UTC (permalink / raw) To: Andrew F. Davis Cc: Codrin.Ciubotariu, lgirdwood, dannenberg, alsa-devel, linux-kernel [-- Attachment #1: Type: text/plain, Size: 412 bytes --] On Tue, Feb 19, 2019 at 11:06:48AM -0600, Andrew F. Davis wrote: > Did this work for you before? Strange it would if reversed, I wonder if > the SLEEP bit is really doing anything here. Can investigate later, for > this patch: Thinking about it some more I'm wondering if it gets overridden by something else (ie, the CODEC actually being asleep requires this being set and some other thing being turned off). [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2 2/2] ASoC: codecs: pcm186x: Fix energysense SLEEP bit 2019-02-19 17:06 ` Andrew F. Davis 2019-02-19 17:18 ` Mark Brown @ 2019-02-20 10:56 ` Codrin.Ciubotariu 1 sibling, 0 replies; 7+ messages in thread From: Codrin.Ciubotariu @ 2019-02-20 10:56 UTC (permalink / raw) To: afd, lgirdwood, broonie; +Cc: dannenberg, alsa-devel, linux-kernel On 19.02.2019 19:06, Andrew F. Davis wrote: > On 2/19/19 10:29 AM, Codrin.Ciubotariu@microchip.com wrote: >> From: Codrin Ciubotariu <codrin.ciubotariu@microchip.com> >> >> The ADCs are sleeping when the SLEEP bit is set and running when it's >> cleared, so the bit should be inverted. >> Tested on pcm1863. >> > > Did this work for you before? Strange it would if reversed, I wonder if > the SLEEP bit is really doing anything here. Can investigate later, for > this patch: The SLEEP bit seems to work. At least STATE from register 114 says the IP is sleeping. Without this change, if pcm1863 is used as master, I can see BCK and LRCK generated while no sound is played. Once I start an audio stream, the clocks stop. Thank you for your ACK. I would really appreciate if you could also test it on your side. Best regards, Codrin > > Acked-by: Andrew F. Davis <afd@ti.com> > >> Signed-off-by: Codrin Ciubotariu <codrin.ciubotariu@microchip.com> >> --- >> >> Changes in v2: >> - none; >> >> sound/soc/codecs/pcm186x.c | 6 +++--- >> 1 file changed, 3 insertions(+), 3 deletions(-) >> >> diff --git a/sound/soc/codecs/pcm186x.c b/sound/soc/codecs/pcm186x.c >> index c36a391fec8a..c5fcc632f670 100644 >> --- a/sound/soc/codecs/pcm186x.c >> +++ b/sound/soc/codecs/pcm186x.c >> @@ -158,7 +158,7 @@ static const struct snd_soc_dapm_widget pcm1863_dapm_widgets[] = { >> * Put the codec into SLEEP mode when not in use, allowing the >> * Energysense mechanism to operate. >> */ >> - SND_SOC_DAPM_ADC("ADC", "HiFi Capture", PCM186X_POWER_CTRL, 1, 0), >> + SND_SOC_DAPM_ADC("ADC", "HiFi Capture", PCM186X_POWER_CTRL, 1, 1), >> }; >> >> static const struct snd_soc_dapm_widget pcm1865_dapm_widgets[] = { >> @@ -184,8 +184,8 @@ static const struct snd_soc_dapm_widget pcm1865_dapm_widgets[] = { >> * Put the codec into SLEEP mode when not in use, allowing the >> * Energysense mechanism to operate. >> */ >> - SND_SOC_DAPM_ADC("ADC1", "HiFi Capture 1", PCM186X_POWER_CTRL, 1, 0), >> - SND_SOC_DAPM_ADC("ADC2", "HiFi Capture 2", PCM186X_POWER_CTRL, 1, 0), >> + SND_SOC_DAPM_ADC("ADC1", "HiFi Capture 1", PCM186X_POWER_CTRL, 1, 1), >> + SND_SOC_DAPM_ADC("ADC2", "HiFi Capture 2", PCM186X_POWER_CTRL, 1, 1), >> }; >> >> static const struct snd_soc_dapm_route pcm1863_dapm_routes[] = { >> ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2 1/2] ASoC: codecs: pcm186x: fix wrong usage of DECLARE_TLV_DB_SCALE() 2019-02-19 16:29 [PATCH v2 1/2] ASoC: codecs: pcm186x: fix wrong usage of DECLARE_TLV_DB_SCALE() Codrin.Ciubotariu 2019-02-19 16:29 ` [PATCH v2 2/2] ASoC: codecs: pcm186x: Fix energysense SLEEP bit Codrin.Ciubotariu @ 2019-02-19 17:05 ` Andrew F. Davis 1 sibling, 0 replies; 7+ messages in thread From: Andrew F. Davis @ 2019-02-19 17:05 UTC (permalink / raw) To: Codrin.Ciubotariu, lgirdwood, broonie Cc: dannenberg, alsa-devel, linux-kernel On 2/19/19 10:29 AM, Codrin.Ciubotariu@microchip.com wrote: > From: Codrin Ciubotariu <codrin.ciubotariu@microchip.com> > > According to DS, the gain is between -12 dB and 40 dB, with a 0.5 dB step. > Tested on pcm1863. > > Signed-off-by: Codrin Ciubotariu <codrin.ciubotariu@microchip.com> > --- Acked-by: Andrew F. Davis <afd@ti.com> > > Changes in v2: > - fixed title - added correct macro; > - revert the removal of a new line; > > sound/soc/codecs/pcm186x.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/sound/soc/codecs/pcm186x.c b/sound/soc/codecs/pcm186x.c > index 809b7e9f03ca..c36a391fec8a 100644 > --- a/sound/soc/codecs/pcm186x.c > +++ b/sound/soc/codecs/pcm186x.c > @@ -42,7 +42,7 @@ struct pcm186x_priv { > bool is_master_mode; > }; > > -static const DECLARE_TLV_DB_SCALE(pcm186x_pga_tlv, -1200, 4000, 50); > +static const DECLARE_TLV_DB_SCALE(pcm186x_pga_tlv, -1200, 50, 0); > > static const struct snd_kcontrol_new pcm1863_snd_controls[] = { > SOC_DOUBLE_R_S_TLV("ADC Capture Volume", PCM186X_PGA_VAL_CH1_L, > ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2019-02-20 11:15 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2019-02-19 16:29 [PATCH v2 1/2] ASoC: codecs: pcm186x: fix wrong usage of DECLARE_TLV_DB_SCALE() Codrin.Ciubotariu 2019-02-19 16:29 ` [PATCH v2 2/2] ASoC: codecs: pcm186x: Fix energysense SLEEP bit Codrin.Ciubotariu 2019-02-19 16:56 ` Mark Brown 2019-02-19 17:06 ` Andrew F. Davis 2019-02-19 17:18 ` Mark Brown 2019-02-20 10:56 ` Codrin.Ciubotariu 2019-02-19 17:05 ` [PATCH v2 1/2] ASoC: codecs: pcm186x: fix wrong usage of DECLARE_TLV_DB_SCALE() Andrew F. Davis
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).