From mboxrd@z Thu Jan 1 00:00:00 1970 From: Takashi Iwai Subject: Re: Set eapd to follow stream on or off Date: Wed, 21 May 2014 11:10:26 +0200 Message-ID: References: <3143A3763CC94AB9AAD48E43EA2B4DFC@realtek.com.tw> <72897913D05F4C12BCED9FF890C77D61@realtek.com.tw> <66A4EBB5FA74484E9FB040780F3C8965@realtek.com.tw> <2BA29E879D5348299D5D82B47C851285@realtek.com.tw> Mime-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by alsa0.perex.cz (Postfix) with ESMTP id 09E062650D1 for ; Wed, 21 May 2014 11:10:27 +0200 (CEST) In-Reply-To: <2BA29E879D5348299D5D82B47C851285@realtek.com.tw> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: alsa-devel-bounces@alsa-project.org To: Kailang Cc: alsa-devel@alsa-project.org List-Id: alsa-devel@alsa-project.org At Wed, 21 May 2014 14:28:12 +0800, Kailang wrote: > > Hi Takashi, > > Attach is the update patch. Keep the function in lower letters. Also, update the patch description as well (and better to put more words). thanks, Takashi > Many thanks. > > BR, > Kailang > > > > At Wed, 21 May 2014 13:58:14 +0800, > > Kailang wrote: > >> > >> > >> > At Tue, 20 May 2014 18:05:42 +0800, > >> > Kailang wrote: > >> >> > >> >> > At Tue, 20 May 2014 17:20:44 +0800, > >> >> > Kailang wrote: > >> >> >> > >> >> >> > >> >> >> > At Tue, 20 May 2014 16:52:43 +0800, > >> >> >> > Kailang wrote: > >> >> >> >> > >> >> >> >> > >> >> >> >> > At Tue, 20 May 2014 15:15:49 +0800, > >> >> >> >> > Kailang wrote: > >> >> >> >> >> > >> >> >> >> >> Hi Takashi, > >> >> >> >> >> > >> >> >> >> >> HP machine had pop noise via speaker. > >> >> >> >> >> If EAPD on or off, speaker will have pop noise. > >> >> >> >> >> So, they want to set eapd to follow with stream on or off. > >> >> >> >> > > >> >> >> >> > I can apply this as is, but still I wonder whether this > >> >> >> >> > results > >> >> >> >> > in > >> >> >> >> > other problems. Doing EAPD on/off there means that it happens > >> >> >> >> > far > >> >> >> >> > more often. For example, what happens if you do like below? > >> >> >> >> > > >> >> >> >> > while true; do > >> >> >> >> > echo -n > /dev/snd/pcmC0D0p > >> >> >> >> > done > >> >> >> >> > > >> >> >> >> > And, what if the device is resumed from power-saving by an > >> >> >> >> > audio > >> >> >> >> > playback? Immediately after the power up, it'll start the > >> >> >> >> > streaming, > >> >> >> >> > so it'll turn on EAPD. > >> >> >> >> > > >> >> >> >> > That said, isn't it just a need for some delay before EAPD > >> >> >> >> > on/off? > >> >> >> >> > >> >> >> >> No, eapd on or off will cause pop noise. > >> >> >> > > >> >> >> > Does it do always? > >> >> >> No, pop noise just one pop sound. It can not remove by software. > >> >> >> But this machine need to do this always. > >> >> > > >> >> > So, doing EAPD on/off often is rather worse. It's what your patch > >> >> > does. > >> >> > > >> >> > Once again: did you try the script above? If the pop noise always > >> >> > >> >> I had try it on my develop machine. I have no HP issue machine on my > >> >> site. > >> >> > >> >> > happens, the operation like above is the worst scenario. > >> >> > > >> >> > Then, let's think again how to *reduce* it. We need one EAPD on at > >> >> > least after each power up. But it's needed only when you actually > >> >> > plays a stream. That is, we need only enable EAPD at playback > >> >> > stream > >> >> > open, but leave EAPD as is at close. > >> >> > > >> >> > >> >> [we need only enable EAPD at playback stream open, but leave EAPD as > >> >> is > >> >> at > >> >> close.] > >> >> Yes. > >> >> So, I need to create eapd low in alc269_shutup. Right? > >> > > >> > Better to create own shutup callback (you can call alc269_shutup() > >> > from there, too) and set it to spec->shutup in the fixup. The pincfg > >> > cleanup isn't often needed or may have bad effect. You should test > >> > with real machines what are needed and what are not. > >> > >> static void alc290_fixup_pop_noise(struct hda_codec *codec, > >> const struct hda_fixup *fix, int action) > >> { > >> struct alc_spec *spec = codec->spec; > >> > >> if (action == HDA_FIXUP_ACT_PRE_PROBE) { > >> spec->gen.pcm_playback_hook = ALC290_playback_pcm_hook; > >> } > >> if (action == HDA_FIXUP_ACT_INIT) { > >> set_eapd(codec, 0x14, false); > >> } > >> } > >> > >> Could I modify as upper code? > >> To set eapd low in HDA_FIXUP_ACT_INIT state. > >> If system resume, it will initial eapd to low. > >> To write eapd to same value, it will have no pop noise. > >> It will keep always low for eapd, only stream open and close have change > >> state for eapd. > > > > Yes, it looks OK. > > > > > > Takashi > > > > > >> > >> > > >> > > >> > Takashi > >> > > >> >> > >> >> > > >> >> > Takashi > >> >> > > >> >> >> >> Our customer just want to do eapd on when stream is open. > >> >> >> >> The pop noise will not clear. Because music gain was biger than > >> >> >> >> pop > >> >> >> >> noise. > >> >> >> > > >> >> >> > Opening a stream doesn't mean that it follows the loud sound > >> >> >> > immediately. The script above wouldn't produce any sound but > >> >> >> > just > >> >> >> > does open/close the stream. Did you try that? > >> >> >> > > >> >> >> > > >> >> >> > Takashi > >> >> >> > > >> >> >> > ------Please consider the environment before printing this > >> >> >> > e-mail. > >> >> >> > >> >> > >> > [2 0001-set-eapd-follow-stream-on-off.patch ] >