[alsa-devel] [PATCH 1/2] ALSA: hda/realtek - Remove depop delay for suspend and resume if applicable

Takashi Iwai tiwai at suse.de
Fri Nov 29 13:57:00 CET 2013


At Fri, 29 Nov 2013 00:35:26 -0500,
mengdong.lin at intel.com wrote:
> 
> From: Kailang Yang <kailang at realtek.com>
> 
> This patch defines a flag "no_depop_delay" in alc_spec. If this flag is set,
> delay in alc_eapd_shutup and alc_resume will be skipped.
> 
> Machine-specific fixup can set this flag to reduce suspend/resume time, if
> the codec and hardware analog design can avoid pop noise without this delay.
> 
> Signed-off-by: Kailang Yang <kailang at realtek.com>
> Signed-off-by: Mengdong Lin <mengdong.lin at intel.com>

Thanks, applied both patches now.


Takashi

> 
> diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
> index 6366a66..503cf78 100644
> --- a/sound/pci/hda/patch_realtek.c
> +++ b/sound/pci/hda/patch_realtek.c
> @@ -118,7 +118,8 @@ struct alc_spec {
>  
>  	int init_amp;
>  	int codec_variant;	/* flag for other variants */
> -	bool has_alc5505_dsp;
> +	unsigned int has_alc5505_dsp:1;
> +	unsigned int no_depop_delay:1;
>  
>  	/* for PLL fix */
>  	hda_nid_t pll_nid;
> @@ -280,8 +281,11 @@ static void alc_auto_setup_eapd(struct hda_codec *codec, bool on)
>   */
>  static void alc_eapd_shutup(struct hda_codec *codec)
>  {
> +	struct alc_spec *spec = codec->spec;
> +
>  	alc_auto_setup_eapd(codec, false);
> -	msleep(200);
> +	if (!spec->no_depop_delay)
> +		msleep(200);
>  	snd_hda_shutup_pins(codec);
>  }
>  
> @@ -863,7 +867,10 @@ static int alc_suspend(struct hda_codec *codec)
>  #ifdef CONFIG_PM
>  static int alc_resume(struct hda_codec *codec)
>  {
> -	msleep(150); /* to avoid pop noise */
> +	struct alc_spec *spec = codec->spec;
> +
> +	if (!spec->no_depop_delay)
> +		msleep(150); /* to avoid pop noise */
>  	codec->patch_ops.init(codec);
>  	snd_hda_codec_resume_amp(codec);
>  	snd_hda_codec_resume_cache(codec);
> @@ -4448,7 +4455,7 @@ static int patch_alc269(struct hda_codec *codec)
>  	}
>  
>  	if (snd_hda_codec_read(codec, 0x51, 0, AC_VERB_PARAMETERS, 0) == 0x10ec5505) {
> -		spec->has_alc5505_dsp = true;
> +		spec->has_alc5505_dsp = 1;
>  		spec->init_hook = alc5505_dsp_init;
>  	}
>  
> -- 
> 1.8.1.2
> 


More information about the Alsa-devel mailing list