Comment 8 for bug 1249115

Revision history for this message
Raymond (superquad-vortex2) wrote :

  * Show unconnected pins
 Your BIOS is responsible for setting up what pins on the codec that are actually connected to something and which ones are not. Sometimes BIOS is buggy, and will not show all your jacks. If you have a jack your BIOS says you haven't, you can try enabling random pins and see if it works.

  * Advanced override
 This is for the experts only. It makes you select each configuration field individually, instead of just a few predefined values that make sense. Note that most combinations here are invalid in one way or the other, so you should probably not mess with this unless you have read and understood the "Configuration Default" section of the HD Audio specification. (Which, at the time of this writing, is available here:

 ALC883_FIXUP_EAPD,
 ALC883_FIXUP_ACER_EAPD,
 ALC883_FIXUP_ACER_LAPTOP,
 ALC883_FIXUP_ACER_ASPIRE_9800,
 ALC882_FIXUP_GPIO1,
 ALC882_FIXUP_GPIO2,

static void alc883_fixup_lineout(struct hda_codec *codec,
         const struct hda_fixup *fix, int action)
{
 struct alc_spec *spec = codec->spec;
 spec->gen.add_jack_modes = 1;
}

 [ALC883_FIXUP_ACER_EAPD] = {
  .type = HDA_FIXUP_VERBS,
  .v.verbs = (const struct hda_verb[]) {
   /* eanable EAPD on Acer laptops */
   { 0x20, AC_VERB_SET_COEF_INDEX, 0x07 },
   { 0x20, AC_VERB_SET_PROC_COEF, 0x3050 },
   { }
  }
 },
 [ALC883_FIXUP_ACER_LAPTOP] = {
  .type = HDA_FIXUP_FUNC,
  .v.func = alc883_fixup_lineout,
  .chained = true,
  .chain_id = ALC883_FIXUP_ACER_EAPD,
 },
 [ALC883_FIXUP_ACER_ASPIRE_9800] = {
  .type = HDA_FIXUP_PINS,
  .v.pins = (const struct hda_pintbl[]) {
   { 0x14, 0x01014010 },
   { 0x15, 0x90170120 },
   { 0x16, 0x90170121 },
   { }
  },
  .chained = true,
  .chain_id = ALC883_FIXUP_ACER_LAPTOP,
 },

static const struct snd_pci_quirk alc882_fixup_tbl[] = {
 SND_PCI_QUIRK(0x1025, 0x006c, "Acer Aspire 9800", ALC883_FIXUP_ACER_ASPIRE_9800),