
On Tue, Mar 21, 2017 at 4:59 PM, Bard Liao bardliao@realtek.com wrote:
-----Original Message----- From: Kai-Heng Feng [mailto:kai.heng.feng@canonical.com] Sent: Tuesday, March 21, 2017 1:39 PM To: Bard Liao Cc: broonie@kernel.org; lgirdwood@gmail.com; Oder Chiou; alsa-devel@alsa-project.org; linux-kernel@vger.kernel.org Subject: Re: [PATCH v3] ASoC: rt286: fix headphone click/crack noise on Dell XPS 9343 I2S mode
switch (event) {
case SND_SOC_DAPM_PRE_PMD:
case SND_SOC_DAPM_POST_PMD:
case SND_SOC_DAPM_POST_PMU:
snd_soc_write(codec, RT286_SET_AMP_GAIN_HPO,
AMP_OUT_MUTE);
break;
case SND_SOC_DAPM_PRE_PMU:
snd_soc_write(codec, RT286_SET_AMP_GAIN_HPO,
AMP_OUT_UNMUTE);
break;
Besides Mark's comment, I have question here. It seems you want to mute HPO before "HP Power" is powered up and after "HP Power" is powered
down.
But "HPO L" and "HPO R" are autodisable. And "HP Power" is only connect to
What I really want to do is something rt5670's rt5670_hp_event(), maybe autodisable is not enough sometimes?
It is different. rt5670_hp_event() is doing depop sequence for headphone. And there is no other mute/unmute controls on other dapm widgets. For me, what you do here is not different from "HPO L" and "HPO R" do.
There are two issues - background click noise and the cracking pop noise. Depop is exactly what I want to do here.
"HPO L" and "HPO R". From my understanding, HPO will mute if "HP Power" is powered down. Any specific reason for muting HPO again before "HP
Power"
is powered up?
You are right. Either one of them should be sufficient.
My point is that you seem to do things that driver is already done. But why and how it can reduce the click noise?
This is for the crack (pop) noise not click noise - see below.
Will HPO be unmuted before "HP Power" is powered up on your system?
Yes. I am no audio expert here - but from what I read from HDA, there's actually no AMP unmute counterpart to AMP mute.
I didn't get it. How did you check if HPO is muted?
I didn't. Now sure why do we need to check that?
Or should the event be associated with "LDO1"? Which power will cause the click noise?
I found that the effect is most noticeable if the mute callback is associated with "LDO2" and "HP Power". But again, this is just what I observed.
Could you try only associated with "LDO2"? It makes sense that will reduce the noise if a jack is plugged in/out when HPO is already powered up.
Does it also help to reduce noise at other power events?
I have question about the code below
/* Fix headphone click noise */
if (dmi_check_system(dmi_dell_dino))
regmap_write(rt286->regmap,
RT286_MIC1_DET_CTRL, 0x0020);
What does this for? How did you get the value 0x0020? I just checked with Kailang, but he have no idea about that.
It's PIN_VREFHIZ. It's from commit 3e1b0c4a9d56.
------Please consider the environment before printing this e-mail.