[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <690423ac-4283-47a0-9250-4c740978ccac@oss.qualcomm.com>
Date: Mon, 8 Sep 2025 16:45:25 +0100
From: Srinivas Kandagatla <srinivas.kandagatla@....qualcomm.com>
To: Alexey Klimov <alexey.klimov@...aro.org>,
Srinivas Kandagatla <srini@...nel.org>
Cc: Liam Girdwood <lgirdwood@...il.com>, Mark Brown <broonie@...nel.org>,
Rob Herring <robh@...nel.org>,
Krzysztof Kozlowski <krzk+dt@...nel.org>,
Conor Dooley <conor+dt@...nel.org>, Stephen Boyd <sboyd@...nel.org>,
Lee Jones <lee@...nel.org>, Jaroslav Kysela <perex@...ex.cz>,
Takashi Iwai <tiwai@...e.com>, linux-arm-msm@...r.kernel.org,
linux-sound@...r.kernel.org, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org,
Dmitry Baryshkov <dmitry.baryshkov@....qualcomm.com>,
christophe.jaillet@...adoo.fr
Subject: Re: [PATCH v3 2/3] ASoC: codecs: add new pm4125 audio codec driver
On 9/8/25 4:26 PM, Alexey Klimov wrote:
> Hi Srini,
>
> On Fri Aug 15, 2025 at 4:36 PM BST, Srinivas Kandagatla wrote:
>>> +static int pm4125_codec_enable_rxclk(struct snd_soc_dapm_widget *w, struct snd_kcontrol *kcontrol,
>>> + int event)
>>> +{
>>> + struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm);
>>> +
>>> + switch (event) {
>>> + case SND_SOC_DAPM_PRE_PMU:
>>>
>>> +static const struct snd_kcontrol_new pm4125_snd_controls[] = {
>>> + SOC_SINGLE_EXT("HPHL_COMP Switch", SND_SOC_NOPM, 0, 1, 0,
>>
>> SOC_SINGLE_EXT("HPHL_COMP Switch", PM4125_COMP_L, 0, 1, 0, ?
>>
>>> + pm4125_get_compander, pm4125_set_compander),
>>> + SOC_SINGLE_EXT("HPHR_COMP Switch", SND_SOC_NOPM, 1, 1, 0,
>>
>> SOC_SINGLE_EXT("HPHR_COMP Switch", PM4125_COMP_R, 1, 1, 0,?
>>
>>> + pm4125_get_compander, pm4125_set_compander),
>>
>> This is same issue in one of the WCD codec, which am going to send fixes
>> along with my original wcd fixes series.
>
> So this was in other codecs for years, right?
only in wcd937x since it was added.
>
>>> +
>>> + SOC_SINGLE_TLV("HPHL Volume", PM4125_ANA_HPHPA_L_GAIN, 0, 20, 1,
>>> + line_gain),
>>> + SOC_SINGLE_TLV("HPHR Volume", PM4125_ANA_HPHPA_R_GAIN, 0, 20, 1,
>>> + line_gain),
...
PM4125_ANA_HPHPA_FSM_DIV_RATIO_MASK,
>> PM4125_ANA_HPHPA_FSM_DIV_RATIO_68);
>> @@ -309,8 +307,6 @@ static int pm4125_rx_clk_disable(struct
>> snd_soc_component *component)
>> snd_soc_component_write_field(component,
>> PM4125_DIG_SWR_CDC_RX_CLK_CTL,
>> PM4125_DIG_SWR_ANA_RX_CLK_EN_MASK,
>> PM4125_DIG_SWR_RX_CLK_DISABLE);
>> - pm4125_global_mbias_disable(component);
>> -
>> return 0;
>> }
>
> This doesn't work. Playback has two issues: 1) volume is very low and probably
> not adjustable and 2) sound during playback dies after a couple of seconds.
>
> Returning these global_mbias() calls restores the good behaviour.
What is global micbias to do with rx playback? Maybe something is missing.
Which RX path are you testing?
I am testing this with Headphone and Lineout, it works for me.
>
> Maybe let's make a widget out of it? In such case I am not sure about
> routing meaning that I not sure which paths do require mbias enable.
Not sure why RX would need mic bias?
--srini
>
> Best regards,
> Alexey
Powered by blists - more mailing lists