aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2012-03-07 03:05:15 -0500
committerTakashi Iwai <tiwai@suse.de>2012-03-07 03:05:15 -0500
commitfc7a1627c11bb6e4eb71fd8f792109754175f7bc (patch)
tree91dc5448a151d8fb57288a7cdef26c719fe02963 /sound/pci
parent78f8baf138311be3e170526388b0530a172bdbff (diff)
parent526af6eb4dc71302f59806e2ccac7793963a7fe0 (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.c17
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
2053static void alc_init_special_input_src(struct hda_codec *codec); 2053static void alc_init_special_input_src(struct hda_codec *codec);
2054static void alc_auto_init_std(struct hda_codec *codec); 2054static void alc_auto_init_std(struct hda_codec *codec);
2055static int alc269_fill_coef(struct hda_codec *codec);
2055 2056
2056static int alc_init(struct hda_codec *codec) 2057static 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
6114static int alc269_fill_coef(struct hda_codec *codec) 6127static 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);