diff options
author | Mengdong Lin <mengdong.lin@intel.com> | 2013-11-29 00:35:35 -0500 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2013-11-29 07:55:43 -0500 |
commit | b5c6611fb4ef631cfb484a7cfe916154e52bc7d9 (patch) | |
tree | 70712eb7742e26a283fbc16e9b5c8a7b3f0ef7fb /sound/pci/hda/patch_realtek.c | |
parent | 97a2657076f463ef06b6ef4ab6d54bb903ea9ff3 (diff) |
ALSA: hda - fixup ALC262 to remove depop delay on Intel BayleyBay board
This patch defines a fixup 'alc_fixup_no_depop_delay', which sets alc_spec flag
'no_depop_delay' to indicate skipping delay in Realtek codec suspend/resume.
And Intel Baytrail BayleyBay board applies this fixup to reduce driver
suspend/resume time.
Signed-off-by: Mengdong Lin <mengdong.lin@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/hda/patch_realtek.c')
-rw-r--r-- | sound/pci/hda/patch_realtek.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 521a9d281a5f..b092dfd2670e 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
@@ -369,6 +369,15 @@ static void alc_fixup_sku_ignore(struct hda_codec *codec, | |||
369 | } | 369 | } |
370 | } | 370 | } |
371 | 371 | ||
372 | static void alc_fixup_no_depop_delay(struct hda_codec *codec, | ||
373 | const struct hda_fixup *fix, int action) | ||
374 | { | ||
375 | struct alc_spec *spec = codec->spec; | ||
376 | |||
377 | if (action == HDA_FIXUP_ACT_PROBE) | ||
378 | spec->no_depop_delay = 1; | ||
379 | } | ||
380 | |||
372 | static int alc_auto_parse_customize_define(struct hda_codec *codec) | 381 | static int alc_auto_parse_customize_define(struct hda_codec *codec) |
373 | { | 382 | { |
374 | unsigned int ass, tmp, i; | 383 | unsigned int ass, tmp, i; |
@@ -2308,6 +2317,7 @@ enum { | |||
2308 | ALC262_FIXUP_BENQ, | 2317 | ALC262_FIXUP_BENQ, |
2309 | ALC262_FIXUP_BENQ_T31, | 2318 | ALC262_FIXUP_BENQ_T31, |
2310 | ALC262_FIXUP_INV_DMIC, | 2319 | ALC262_FIXUP_INV_DMIC, |
2320 | ALC262_FIXUP_INTEL_BAYLEYBAY, | ||
2311 | }; | 2321 | }; |
2312 | 2322 | ||
2313 | static const struct hda_fixup alc262_fixups[] = { | 2323 | static const struct hda_fixup alc262_fixups[] = { |
@@ -2372,6 +2382,10 @@ static const struct hda_fixup alc262_fixups[] = { | |||
2372 | .type = HDA_FIXUP_FUNC, | 2382 | .type = HDA_FIXUP_FUNC, |
2373 | .v.func = alc_fixup_inv_dmic_0x12, | 2383 | .v.func = alc_fixup_inv_dmic_0x12, |
2374 | }, | 2384 | }, |
2385 | [ALC262_FIXUP_INTEL_BAYLEYBAY] = { | ||
2386 | .type = HDA_FIXUP_FUNC, | ||
2387 | .v.func = alc_fixup_no_depop_delay, | ||
2388 | }, | ||
2375 | }; | 2389 | }; |
2376 | 2390 | ||
2377 | static const struct snd_pci_quirk alc262_fixup_tbl[] = { | 2391 | static const struct snd_pci_quirk alc262_fixup_tbl[] = { |
@@ -2383,6 +2397,7 @@ static const struct snd_pci_quirk alc262_fixup_tbl[] = { | |||
2383 | SND_PCI_QUIRK(0x17aa, 0x384e, "Lenovo 3000", ALC262_FIXUP_LENOVO_3000), | 2397 | SND_PCI_QUIRK(0x17aa, 0x384e, "Lenovo 3000", ALC262_FIXUP_LENOVO_3000), |
2384 | SND_PCI_QUIRK(0x17ff, 0x0560, "Benq ED8", ALC262_FIXUP_BENQ), | 2398 | SND_PCI_QUIRK(0x17ff, 0x0560, "Benq ED8", ALC262_FIXUP_BENQ), |
2385 | SND_PCI_QUIRK(0x17ff, 0x058d, "Benq T31-16", ALC262_FIXUP_BENQ_T31), | 2399 | SND_PCI_QUIRK(0x17ff, 0x058d, "Benq T31-16", ALC262_FIXUP_BENQ_T31), |
2400 | SND_PCI_QUIRK(0x8086, 0x7270, "BayleyBay", ALC262_FIXUP_INTEL_BAYLEYBAY), | ||
2386 | {} | 2401 | {} |
2387 | }; | 2402 | }; |
2388 | 2403 | ||