| @@ -2068,12 +2068,16 @@ static int alc_build_controls(struct hda_codec *codec) · 2067 unmodified lines |
| 2068 | 2068 | */ |
| 2069 | 2069 | |
| 2070 | 2070 | static void alc_init_special_input_src(struct hda_codec *codec); |
| 2071 | +static int alc269_fill_coef(struct hda_codec *codec); |
| 2071 | 2072 | |
| 2072 | 2073 | static int alc_init(struct hda_codec *codec) |
| 2073 | 2074 | { |
| 2074 | 2075 | struct alc_spec *spec = codec->spec; |
| 2075 | 2076 | unsigned int i; |
| 2076 | 2077 | |
| 2078 | + if (codec->vendor_id == 0x10ec0269) |
| 2079 | + alc269_fill_coef(codec); |
| 2080 | + |
| 2077 | 2081 | alc_fix_pll(codec); |
| 2078 | 2082 | alc_auto_init_amp(codec, spec->init_amp); |
| 2079 | 2083 | |
| @@ -4367,6 +4371,7 @@ enum { · 2287 unmodified lines |
| 4367 | 4371 | ALC882_FIXUP_PB_M5210, |
| 4368 | 4372 | ALC882_FIXUP_ACER_ASPIRE_7736, |
| 4369 | 4373 | ALC882_FIXUP_ASUS_W90V, |
| 4374 | + ALC889_FIXUP_CD, |
| 4370 | 4375 | ALC889_FIXUP_VAIO_TT, |
| 4371 | 4376 | ALC888_FIXUP_EEE1601, |
| 4372 | 4377 | ALC882_FIXUP_EAPD, |
| @@ -4494,6 +4499,13 @@ static const struct alc_fixup alc882_fixups[] = { · 121 unmodified lines |
| 4494 | 4499 | { } |
| 4495 | 4500 | } |
| 4496 | 4501 | }, |
| 4502 | + [ALC889_FIXUP_CD] = { |
| 4503 | + .type = ALC_FIXUP_PINS, |
| 4504 | + .v.pins = (const struct alc_pincfg[]) { |
| 4505 | + { 0x1c, 0x993301f0 }, /* CD */ |
| 4506 | + { } |
| 4507 | + } |
| 4508 | + }, |
| 4497 | 4509 | [ALC889_FIXUP_VAIO_TT] = { |
| 4498 | 4510 | .type = ALC_FIXUP_PINS, |
| 4499 | 4511 | .v.pins = (const struct alc_pincfg[]) { |
| @@ -4650,6 +4662,7 @@ static const struct snd_pci_quirk alc882_fixup_tbl[] = { · 150 unmodified lines |
| 4650 | 4662 | |
| 4651 | 4663 | SND_PCI_QUIRK(0x1071, 0x8258, "Evesham Voyaeger", ALC882_FIXUP_EAPD), |
| 4652 | 4664 | SND_PCI_QUIRK_VENDOR(0x1462, "MSI", ALC882_FIXUP_GPIO3), |
| 4665 | + SND_PCI_QUIRK(0x1458, 0xa002, "Gigabyte EP45-DS3", ALC889_FIXUP_CD), |
| 4653 | 4666 | SND_PCI_QUIRK(0x147b, 0x107a, "Abit AW9D-MAX", ALC882_FIXUP_ABIT_AW9D_MAX), |
| 4654 | 4667 | SND_PCI_QUIRK_VENDOR(0x1558, "Clevo laptop", ALC882_FIXUP_EAPD), |
| 4655 | 4668 | SND_PCI_QUIRK(0x161f, 0x2054, "Medion laptop", ALC883_FIXUP_EAPD), |
| @@ -5467,8 +5480,12 @@ static const struct alc_model_fixup alc269_fixup_models[] = { · 811 unmodified lines |
| 5467 | 5480 | |
| 5468 | 5481 | static int alc269_fill_coef(struct hda_codec *codec) |
| 5469 | 5482 | { |
| 5483 | + struct alc_spec *spec = codec->spec; |
| 5470 | 5484 | int val; |
| 5471 | 5485 | |
| 5486 | + if (spec->codec_variant != ALC269_TYPE_ALC269VB) |
| 5487 | + return 0; |
| 5488 | + |
| 5472 | 5489 | if ((alc_get_coef0(codec) & 0x00ff) < 0x015) { |
| 5473 | 5490 | alc_write_coef_idx(codec, 0xf, 0x960b); |
| 5474 | 5491 | alc_write_coef_idx(codec, 0xe, 0x8817); |