|
@@ -2068,12 +2068,16 @@ static int alc_build_controls(struct hda_codec *codec)
|
|
|
*/
|
|
|
|
|
|
static void alc_init_special_input_src(struct hda_codec *codec);
|
|
|
+static int alc269_fill_coef(struct hda_codec *codec);
|
|
|
|
|
|
static int alc_init(struct hda_codec *codec)
|
|
|
{
|
|
|
struct alc_spec *spec = codec->spec;
|
|
|
unsigned int i;
|
|
|
|
|
|
+ if (codec->vendor_id == 0x10ec0269)
|
|
|
+ alc269_fill_coef(codec);
|
|
|
+
|
|
|
alc_fix_pll(codec);
|
|
|
alc_auto_init_amp(codec, spec->init_amp);
|
|
|
|
|
@@ -4367,6 +4371,7 @@ enum {
|
|
|
ALC882_FIXUP_PB_M5210,
|
|
|
ALC882_FIXUP_ACER_ASPIRE_7736,
|
|
|
ALC882_FIXUP_ASUS_W90V,
|
|
|
+ ALC889_FIXUP_CD,
|
|
|
ALC889_FIXUP_VAIO_TT,
|
|
|
ALC888_FIXUP_EEE1601,
|
|
|
ALC882_FIXUP_EAPD,
|
|
@@ -4494,6 +4499,13 @@ static const struct alc_fixup alc882_fixups[] = {
|
|
|
{ }
|
|
|
}
|
|
|
},
|
|
|
+ [ALC889_FIXUP_CD] = {
|
|
|
+ .type = ALC_FIXUP_PINS,
|
|
|
+ .v.pins = (const struct alc_pincfg[]) {
|
|
|
+ { 0x1c, 0x993301f0 }, /* CD */
|
|
|
+ { }
|
|
|
+ }
|
|
|
+ },
|
|
|
[ALC889_FIXUP_VAIO_TT] = {
|
|
|
.type = ALC_FIXUP_PINS,
|
|
|
.v.pins = (const struct alc_pincfg[]) {
|
|
@@ -4650,6 +4662,7 @@ static const struct snd_pci_quirk alc882_fixup_tbl[] = {
|
|
|
|
|
|
SND_PCI_QUIRK(0x1071, 0x8258, "Evesham Voyaeger", ALC882_FIXUP_EAPD),
|
|
|
SND_PCI_QUIRK_VENDOR(0x1462, "MSI", ALC882_FIXUP_GPIO3),
|
|
|
+ SND_PCI_QUIRK(0x1458, 0xa002, "Gigabyte EP45-DS3", ALC889_FIXUP_CD),
|
|
|
SND_PCI_QUIRK(0x147b, 0x107a, "Abit AW9D-MAX", ALC882_FIXUP_ABIT_AW9D_MAX),
|
|
|
SND_PCI_QUIRK_VENDOR(0x1558, "Clevo laptop", ALC882_FIXUP_EAPD),
|
|
|
SND_PCI_QUIRK(0x161f, 0x2054, "Medion laptop", ALC883_FIXUP_EAPD),
|
|
@@ -5467,8 +5480,12 @@ static const struct alc_model_fixup alc269_fixup_models[] = {
|
|
|
|
|
|
static int alc269_fill_coef(struct hda_codec *codec)
|
|
|
{
|
|
|
+ struct alc_spec *spec = codec->spec;
|
|
|
int val;
|
|
|
|
|
|
+ if (spec->codec_variant != ALC269_TYPE_ALC269VB)
|
|
|
+ return 0;
|
|
|
+
|
|
|
if ((alc_get_coef0(codec) & 0x00ff) < 0x015) {
|
|
|
alc_write_coef_idx(codec, 0xf, 0x960b);
|
|
|
alc_write_coef_idx(codec, 0xe, 0x8817);
|