ALSA: hda - fixup ALC262 to remove depop delay on Intel BayleyBay board
authorMengdong Lin <mengdong.lin@intel.com>
Fri, 29 Nov 2013 05:35:35 +0000 (00:35 -0500)
committerTakashi Iwai <tiwai@suse.de>
Fri, 29 Nov 2013 12:55:43 +0000 (13:55 +0100)
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>
sound/pci/hda/patch_realtek.c

index 521a9d281a5f9011c5ba7ac25b17818ffd9ad2d7..b092dfd2670e55a027469a7e1222da9f7b2e9db0 100644 (file)
@@ -369,6 +369,15 @@ static void alc_fixup_sku_ignore(struct hda_codec *codec,
        }
 }
 
+static void alc_fixup_no_depop_delay(struct hda_codec *codec,
+                                   const struct hda_fixup *fix, int action)
+{
+       struct alc_spec *spec = codec->spec;
+
+       if (action == HDA_FIXUP_ACT_PROBE)
+               spec->no_depop_delay = 1;
+}
+
 static int alc_auto_parse_customize_define(struct hda_codec *codec)
 {
        unsigned int ass, tmp, i;
@@ -2308,6 +2317,7 @@ enum {
        ALC262_FIXUP_BENQ,
        ALC262_FIXUP_BENQ_T31,
        ALC262_FIXUP_INV_DMIC,
+       ALC262_FIXUP_INTEL_BAYLEYBAY,
 };
 
 static const struct hda_fixup alc262_fixups[] = {
@@ -2372,6 +2382,10 @@ static const struct hda_fixup alc262_fixups[] = {
                .type = HDA_FIXUP_FUNC,
                .v.func = alc_fixup_inv_dmic_0x12,
        },
+       [ALC262_FIXUP_INTEL_BAYLEYBAY] = {
+               .type = HDA_FIXUP_FUNC,
+               .v.func = alc_fixup_no_depop_delay,
+       },
 };
 
 static const struct snd_pci_quirk alc262_fixup_tbl[] = {
@@ -2383,6 +2397,7 @@ static const struct snd_pci_quirk alc262_fixup_tbl[] = {
        SND_PCI_QUIRK(0x17aa, 0x384e, "Lenovo 3000", ALC262_FIXUP_LENOVO_3000),
        SND_PCI_QUIRK(0x17ff, 0x0560, "Benq ED8", ALC262_FIXUP_BENQ),
        SND_PCI_QUIRK(0x17ff, 0x058d, "Benq T31-16", ALC262_FIXUP_BENQ_T31),
+       SND_PCI_QUIRK(0x8086, 0x7270, "BayleyBay", ALC262_FIXUP_INTEL_BAYLEYBAY),
        {}
 };