On Tue, Mar 21, 2017 at 4:59 PM, Bard Liao <bardliao@xxxxxxxxxxx> wrote: >> -----Original Message----- >> From: Kai-Heng Feng [mailto:kai.heng.feng@xxxxxxxxxxxxx] >> Sent: Tuesday, March 21, 2017 1:39 PM >> To: Bard Liao >> Cc: broonie@xxxxxxxxxx; lgirdwood@xxxxxxxxx; Oder Chiou; >> alsa-devel@xxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx >> 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. _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel