diff options
author | Takashi Iwai <tiwai@suse.de> | 2012-03-07 03:05:15 -0500 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2012-03-07 03:05:15 -0500 |
commit | fc7a1627c11bb6e4eb71fd8f792109754175f7bc (patch) | |
tree | 91dc5448a151d8fb57288a7cdef26c719fe02963 /sound/pci | |
parent | 78f8baf138311be3e170526388b0530a172bdbff (diff) | |
parent | 526af6eb4dc71302f59806e2ccac7793963a7fe0 (diff) |
Merge branch 'fix/hda' into topic/hda
Conflicts:
sound/pci/hda/patch_realtek.c
Diffstat (limited to 'sound/pci')
-rw-r--r-- | sound/pci/hda/patch_realtek.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 2ae6bfbc6788..65955dabc152 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
@@ -2052,12 +2052,16 @@ static int alc_build_controls(struct hda_codec *codec) | |||
2052 | 2052 | ||
2053 | static void alc_init_special_input_src(struct hda_codec *codec); | 2053 | static void alc_init_special_input_src(struct hda_codec *codec); |
2054 | static void alc_auto_init_std(struct hda_codec *codec); | 2054 | static void alc_auto_init_std(struct hda_codec *codec); |
2055 | static int alc269_fill_coef(struct hda_codec *codec); | ||
2055 | 2056 | ||
2056 | static int alc_init(struct hda_codec *codec) | 2057 | static int alc_init(struct hda_codec *codec) |
2057 | { | 2058 | { |
2058 | struct alc_spec *spec = codec->spec; | 2059 | struct alc_spec *spec = codec->spec; |
2059 | unsigned int i; | 2060 | unsigned int i; |
2060 | 2061 | ||
2062 | if (codec->vendor_id == 0x10ec0269) | ||
2063 | alc269_fill_coef(codec); | ||
2064 | |||
2061 | alc_fix_pll(codec); | 2065 | alc_fix_pll(codec); |
2062 | alc_auto_init_amp(codec, spec->init_amp); | 2066 | alc_auto_init_amp(codec, spec->init_amp); |
2063 | 2067 | ||
@@ -5005,6 +5009,7 @@ enum { | |||
5005 | ALC882_FIXUP_PB_M5210, | 5009 | ALC882_FIXUP_PB_M5210, |
5006 | ALC882_FIXUP_ACER_ASPIRE_7736, | 5010 | ALC882_FIXUP_ACER_ASPIRE_7736, |
5007 | ALC882_FIXUP_ASUS_W90V, | 5011 | ALC882_FIXUP_ASUS_W90V, |
5012 | ALC889_FIXUP_CD, | ||
5008 | ALC889_FIXUP_VAIO_TT, | 5013 | ALC889_FIXUP_VAIO_TT, |
5009 | ALC888_FIXUP_EEE1601, | 5014 | ALC888_FIXUP_EEE1601, |
5010 | ALC882_FIXUP_EAPD, | 5015 | ALC882_FIXUP_EAPD, |
@@ -5181,6 +5186,13 @@ static const struct alc_fixup alc882_fixups[] = { | |||
5181 | { } | 5186 | { } |
5182 | } | 5187 | } |
5183 | }, | 5188 | }, |
5189 | [ALC889_FIXUP_CD] = { | ||
5190 | .type = ALC_FIXUP_PINS, | ||
5191 | .v.pins = (const struct alc_pincfg[]) { | ||
5192 | { 0x1c, 0x993301f0 }, /* CD */ | ||
5193 | { } | ||
5194 | } | ||
5195 | }, | ||
5184 | [ALC889_FIXUP_VAIO_TT] = { | 5196 | [ALC889_FIXUP_VAIO_TT] = { |
5185 | .type = ALC_FIXUP_PINS, | 5197 | .type = ALC_FIXUP_PINS, |
5186 | .v.pins = (const struct alc_pincfg[]) { | 5198 | .v.pins = (const struct alc_pincfg[]) { |
@@ -5372,6 +5384,7 @@ static const struct snd_pci_quirk alc882_fixup_tbl[] = { | |||
5372 | 5384 | ||
5373 | SND_PCI_QUIRK(0x1071, 0x8258, "Evesham Voyaeger", ALC882_FIXUP_EAPD), | 5385 | SND_PCI_QUIRK(0x1071, 0x8258, "Evesham Voyaeger", ALC882_FIXUP_EAPD), |
5374 | SND_PCI_QUIRK_VENDOR(0x1462, "MSI", ALC882_FIXUP_GPIO3), | 5386 | SND_PCI_QUIRK_VENDOR(0x1462, "MSI", ALC882_FIXUP_GPIO3), |
5387 | SND_PCI_QUIRK(0x1458, 0xa002, "Gigabyte EP45-DS3", ALC889_FIXUP_CD), | ||
5375 | SND_PCI_QUIRK(0x147b, 0x107a, "Abit AW9D-MAX", ALC882_FIXUP_ABIT_AW9D_MAX), | 5388 | SND_PCI_QUIRK(0x147b, 0x107a, "Abit AW9D-MAX", ALC882_FIXUP_ABIT_AW9D_MAX), |
5376 | SND_PCI_QUIRK_VENDOR(0x1558, "Clevo laptop", ALC882_FIXUP_EAPD), | 5389 | SND_PCI_QUIRK_VENDOR(0x1558, "Clevo laptop", ALC882_FIXUP_EAPD), |
5377 | SND_PCI_QUIRK(0x161f, 0x2054, "Medion laptop", ALC883_FIXUP_EAPD), | 5390 | SND_PCI_QUIRK(0x161f, 0x2054, "Medion laptop", ALC883_FIXUP_EAPD), |
@@ -6113,8 +6126,12 @@ static const struct alc_model_fixup alc269_fixup_models[] = { | |||
6113 | 6126 | ||
6114 | static int alc269_fill_coef(struct hda_codec *codec) | 6127 | static int alc269_fill_coef(struct hda_codec *codec) |
6115 | { | 6128 | { |
6129 | struct alc_spec *spec = codec->spec; | ||
6116 | int val; | 6130 | int val; |
6117 | 6131 | ||
6132 | if (spec->codec_variant != ALC269_TYPE_ALC269VB) | ||
6133 | return 0; | ||
6134 | |||
6118 | if ((alc_get_coef0(codec) & 0x00ff) < 0x015) { | 6135 | if ((alc_get_coef0(codec) & 0x00ff) < 0x015) { |
6119 | alc_write_coef_idx(codec, 0xf, 0x960b); | 6136 | alc_write_coef_idx(codec, 0xf, 0x960b); |
6120 | alc_write_coef_idx(codec, 0xe, 0x8817); | 6137 | alc_write_coef_idx(codec, 0xe, 0x8817); |