Alsa-Devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Kailang <kailang@realtek.com>
To: Takashi Iwai <tiwai@suse.de>
Cc: alsa-devel@alsa-project.org
Subject: Re: Set eapd to follow stream on or off
Date: Wed, 21 May 2014 13:58:14 +0800	[thread overview]
Message-ID: <DA522F18DEB345498651505F8E1E9873@realtek.com.tw> (raw)
In-Reply-To: s5h4n0kbw0e.wl%tiwai@suse.de


> 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.

>
>
> 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.
>> >>
>> 

  reply	other threads:[~2014-05-21  5:58 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-20  7:15 Set eapd to follow stream on or off Kailang
2014-05-20  7:46 ` Takashi Iwai
2014-05-20  8:52   ` Kailang
2014-05-20  9:03     ` Takashi Iwai
2014-05-20  9:20       ` Kailang
2014-05-20  9:35         ` Takashi Iwai
2014-05-20 10:05           ` Kailang
2014-05-20 10:10             ` Takashi Iwai
2014-05-21  5:58               ` Kailang [this message]
2014-05-21  6:07                 ` Takashi Iwai
2014-05-21  6:28                   ` Kailang
2014-05-21  9:10                     ` Takashi Iwai
2014-05-21  9:24                       ` Kailang
2014-05-21  9:50                         ` Takashi Iwai
2014-05-22  6:26                           ` Kailang
2014-05-22  6:59                             ` Takashi Iwai
2014-05-22  7:26                               ` Kailang
2014-05-21  8:55                   ` Add support headset mode for alc233 Kailang
2014-05-21  9:13                     ` Takashi Iwai
  -- strict thread matches above, loose matches on Subject: below --
2014-06-04  6:14 Set eapd to follow stream on or off Kailang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=DA522F18DEB345498651505F8E1E9873@realtek.com.tw \
    --to=kailang@realtek.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=tiwai@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox