Comment 40 for bug 1516025

Revision history for this message
In , superquad.vortex2 (superquad.vortex2-linux-kernel-bugs) wrote :

can you try the patch

https://bugs.freedesktop.org/attachment.cgi?id=117571

only those part which is needed by alienware

+static void alc668_fixup_dell_alienware(struct hda_codec *codec,
+ const struct hda_fixup *fix, int action)
+{
+ const struct hda_pintbl pincfgs[] = {
+ { 0x1a, 0x99130112 }, /* subwoofer */
+ { 0x1b, 0x03a1113c }, /* headset mic */
+ { }
+ };
+ static hda_nid_t preferred_pair[] = {
+ 0x14, 0x03,
+ 0x1a, 0x04,
+ 0x15, 0x02,
+ 0x16, 0x02,
+ 0
+ };
+ struct alc_spec *spec = codec->spec;
+
+ switch (action) {
+ case HDA_FIXUP_ACT_PRE_PROBE:
+ snd_hda_apply_pincfgs(codec, pincfgs);
+ spec->gen.preferred_dacs = preferred_pair;
+ spec->gen.hs_mic_use_hp_sense = 1;
+ spec->parse_flags |= HDA_PINCFG_HEADSET_MIC;
+ break;
+ case HDA_FIXUP_ACT_PROBE:
+ alc_probe_headset_mode(codec);
+ break;
+ case HDA_FIXUP_ACT_INIT:
+ spec->current_headset_mode = 0;
+ alc_update_headset_mode(codec);
+ break;
+ case HDA_FIXUP_ACT_BUILD:
+/*
+ better to use default hda 2.1 chmap
+ when we don't know internal subwoofer use which channel
+*/
+ break;
+ }
+}

 {.id = ALC662_FIXUP_ASUS_MODE8, .name = "asus-mode8"},
  {.id = ALC662_FIXUP_INV_DMIC, .name = "inv-dmic"},
  {.id = ALC668_FIXUP_DELL_MIC_NO_PRESENCE, .name = "dell-headset-multi"},
+ {.id = ALC668_FIXUP_DELL_ALIENWARE, .name = "dell-alienware"},
+