At Fri, 29 Nov 2013 00:35:26 -0500, mengdong.lin@intel.com wrote:
From: Kailang Yang kailang@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@realtek.com Signed-off-by: Mengdong Lin mengdong.lin@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)
snd_hda_shutup_pins(codec);msleep(200);
}
@@ -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)
codec->patch_ops.init(codec); snd_hda_codec_resume_amp(codec); snd_hda_codec_resume_cache(codec);msleep(150); /* to avoid pop noise */
@@ -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->init_hook = alc5505_dsp_init; }spec->has_alc5505_dsp = 1;
-- 1.8.1.2