diff options
author | Takashi Iwai <tiwai@suse.de> | 2013-12-02 07:32:41 -0500 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2013-12-02 07:32:41 -0500 |
commit | b95ff8e61afc5b621992bdddef5bf6af2d66772a (patch) | |
tree | 15f718fa446ce37b1d4a561b8fdd4d7c3c8854e2 /sound/pci/hda/patch_realtek.c | |
parent | 7f132927435cf09d26ceb81cd0043b542ac7206d (diff) | |
parent | 88d071fc9a93de2916822910c927f28ed15c3a56 (diff) |
Merge branch 'for-linus' into for-next
Diffstat (limited to 'sound/pci/hda/patch_realtek.c')
-rw-r--r-- | sound/pci/hda/patch_realtek.c | 38 |
1 files changed, 35 insertions, 3 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index b092dfd2670e..537991ccba28 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
@@ -1827,6 +1827,8 @@ enum { | |||
1827 | ALC889_FIXUP_IMAC91_VREF, | 1827 | ALC889_FIXUP_IMAC91_VREF, |
1828 | ALC882_FIXUP_INV_DMIC, | 1828 | ALC882_FIXUP_INV_DMIC, |
1829 | ALC882_FIXUP_NO_PRIMARY_HP, | 1829 | ALC882_FIXUP_NO_PRIMARY_HP, |
1830 | ALC887_FIXUP_ASUS_BASS, | ||
1831 | ALC887_FIXUP_BASS_CHMAP, | ||
1830 | }; | 1832 | }; |
1831 | 1833 | ||
1832 | static void alc889_fixup_coef(struct hda_codec *codec, | 1834 | static void alc889_fixup_coef(struct hda_codec *codec, |
@@ -1960,6 +1962,9 @@ static void alc882_fixup_no_primary_hp(struct hda_codec *codec, | |||
1960 | } | 1962 | } |
1961 | } | 1963 | } |
1962 | 1964 | ||
1965 | static void alc_fixup_bass_chmap(struct hda_codec *codec, | ||
1966 | const struct hda_fixup *fix, int action); | ||
1967 | |||
1963 | static const struct hda_fixup alc882_fixups[] = { | 1968 | static const struct hda_fixup alc882_fixups[] = { |
1964 | [ALC882_FIXUP_ABIT_AW9D_MAX] = { | 1969 | [ALC882_FIXUP_ABIT_AW9D_MAX] = { |
1965 | .type = HDA_FIXUP_PINS, | 1970 | .type = HDA_FIXUP_PINS, |
@@ -2150,6 +2155,19 @@ static const struct hda_fixup alc882_fixups[] = { | |||
2150 | .type = HDA_FIXUP_FUNC, | 2155 | .type = HDA_FIXUP_FUNC, |
2151 | .v.func = alc882_fixup_no_primary_hp, | 2156 | .v.func = alc882_fixup_no_primary_hp, |
2152 | }, | 2157 | }, |
2158 | [ALC887_FIXUP_ASUS_BASS] = { | ||
2159 | .type = HDA_FIXUP_PINS, | ||
2160 | .v.pins = (const struct hda_pintbl[]) { | ||
2161 | {0x16, 0x99130130}, /* bass speaker */ | ||
2162 | {} | ||
2163 | }, | ||
2164 | .chained = true, | ||
2165 | .chain_id = ALC887_FIXUP_BASS_CHMAP, | ||
2166 | }, | ||
2167 | [ALC887_FIXUP_BASS_CHMAP] = { | ||
2168 | .type = HDA_FIXUP_FUNC, | ||
2169 | .v.func = alc_fixup_bass_chmap, | ||
2170 | }, | ||
2153 | }; | 2171 | }; |
2154 | 2172 | ||
2155 | static const struct snd_pci_quirk alc882_fixup_tbl[] = { | 2173 | static const struct snd_pci_quirk alc882_fixup_tbl[] = { |
@@ -2183,6 +2201,7 @@ static const struct snd_pci_quirk alc882_fixup_tbl[] = { | |||
2183 | SND_PCI_QUIRK(0x1043, 0x1873, "ASUS W90V", ALC882_FIXUP_ASUS_W90V), | 2201 | SND_PCI_QUIRK(0x1043, 0x1873, "ASUS W90V", ALC882_FIXUP_ASUS_W90V), |
2184 | SND_PCI_QUIRK(0x1043, 0x1971, "Asus W2JC", ALC882_FIXUP_ASUS_W2JC), | 2202 | SND_PCI_QUIRK(0x1043, 0x1971, "Asus W2JC", ALC882_FIXUP_ASUS_W2JC), |
2185 | SND_PCI_QUIRK(0x1043, 0x835f, "Asus Eee 1601", ALC888_FIXUP_EEE1601), | 2203 | SND_PCI_QUIRK(0x1043, 0x835f, "Asus Eee 1601", ALC888_FIXUP_EEE1601), |
2204 | SND_PCI_QUIRK(0x1043, 0x84bc, "ASUS ET2700", ALC887_FIXUP_ASUS_BASS), | ||
2186 | SND_PCI_QUIRK(0x104d, 0x9047, "Sony Vaio TT", ALC889_FIXUP_VAIO_TT), | 2205 | SND_PCI_QUIRK(0x104d, 0x9047, "Sony Vaio TT", ALC889_FIXUP_VAIO_TT), |
2187 | SND_PCI_QUIRK(0x104d, 0x905a, "Sony Vaio Z", ALC882_FIXUP_NO_PRIMARY_HP), | 2206 | SND_PCI_QUIRK(0x104d, 0x905a, "Sony Vaio Z", ALC882_FIXUP_NO_PRIMARY_HP), |
2188 | SND_PCI_QUIRK(0x104d, 0x9043, "Sony Vaio VGC-LN51JGB", ALC882_FIXUP_NO_PRIMARY_HP), | 2207 | SND_PCI_QUIRK(0x104d, 0x9043, "Sony Vaio VGC-LN51JGB", ALC882_FIXUP_NO_PRIMARY_HP), |
@@ -4234,6 +4253,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { | |||
4234 | SND_PCI_QUIRK(0x1028, 0x0614, "Dell Inspiron 3135", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), | 4253 | SND_PCI_QUIRK(0x1028, 0x0614, "Dell Inspiron 3135", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), |
4235 | SND_PCI_QUIRK(0x1028, 0x0616, "Dell Vostro 5470", ALC290_FIXUP_MONO_SPEAKERS), | 4254 | SND_PCI_QUIRK(0x1028, 0x0616, "Dell Vostro 5470", ALC290_FIXUP_MONO_SPEAKERS), |
4236 | SND_PCI_QUIRK(0x1028, 0x061f, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE), | 4255 | SND_PCI_QUIRK(0x1028, 0x061f, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE), |
4256 | SND_PCI_QUIRK(0x1028, 0x0638, "Dell Inspiron 5439", ALC290_FIXUP_MONO_SPEAKERS), | ||
4237 | SND_PCI_QUIRK(0x1028, 0x063f, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE), | 4257 | SND_PCI_QUIRK(0x1028, 0x063f, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE), |
4238 | SND_PCI_QUIRK(0x1028, 0x15cc, "Dell X5 Precision", ALC269_FIXUP_DELL2_MIC_NO_PRESENCE), | 4258 | SND_PCI_QUIRK(0x1028, 0x15cc, "Dell X5 Precision", ALC269_FIXUP_DELL2_MIC_NO_PRESENCE), |
4239 | SND_PCI_QUIRK(0x1028, 0x15cd, "Dell X5 Precision", ALC269_FIXUP_DELL2_MIC_NO_PRESENCE), | 4259 | SND_PCI_QUIRK(0x1028, 0x15cd, "Dell X5 Precision", ALC269_FIXUP_DELL2_MIC_NO_PRESENCE), |
@@ -4525,6 +4545,7 @@ enum { | |||
4525 | ALC861_FIXUP_AMP_VREF_0F, | 4545 | ALC861_FIXUP_AMP_VREF_0F, |
4526 | ALC861_FIXUP_NO_JACK_DETECT, | 4546 | ALC861_FIXUP_NO_JACK_DETECT, |
4527 | ALC861_FIXUP_ASUS_A6RP, | 4547 | ALC861_FIXUP_ASUS_A6RP, |
4548 | ALC660_FIXUP_ASUS_W7J, | ||
4528 | }; | 4549 | }; |
4529 | 4550 | ||
4530 | /* On some laptops, VREF of pin 0x0f is abused for controlling the main amp */ | 4551 | /* On some laptops, VREF of pin 0x0f is abused for controlling the main amp */ |
@@ -4574,10 +4595,21 @@ static const struct hda_fixup alc861_fixups[] = { | |||
4574 | .v.func = alc861_fixup_asus_amp_vref_0f, | 4595 | .v.func = alc861_fixup_asus_amp_vref_0f, |
4575 | .chained = true, | 4596 | .chained = true, |
4576 | .chain_id = ALC861_FIXUP_NO_JACK_DETECT, | 4597 | .chain_id = ALC861_FIXUP_NO_JACK_DETECT, |
4598 | }, | ||
4599 | [ALC660_FIXUP_ASUS_W7J] = { | ||
4600 | .type = HDA_FIXUP_VERBS, | ||
4601 | .v.verbs = (const struct hda_verb[]) { | ||
4602 | /* ASUS W7J needs a magic pin setup on unused NID 0x10 | ||
4603 | * for enabling outputs | ||
4604 | */ | ||
4605 | {0x10, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x24}, | ||
4606 | { } | ||
4607 | }, | ||
4577 | } | 4608 | } |
4578 | }; | 4609 | }; |
4579 | 4610 | ||
4580 | static const struct snd_pci_quirk alc861_fixup_tbl[] = { | 4611 | static const struct snd_pci_quirk alc861_fixup_tbl[] = { |
4612 | SND_PCI_QUIRK(0x1043, 0x1253, "ASUS W7J", ALC660_FIXUP_ASUS_W7J), | ||
4581 | SND_PCI_QUIRK(0x1043, 0x1393, "ASUS A6Rp", ALC861_FIXUP_ASUS_A6RP), | 4613 | SND_PCI_QUIRK(0x1043, 0x1393, "ASUS A6Rp", ALC861_FIXUP_ASUS_A6RP), |
4582 | SND_PCI_QUIRK_VENDOR(0x1043, "ASUS laptop", ALC861_FIXUP_AMP_VREF_0F), | 4614 | SND_PCI_QUIRK_VENDOR(0x1043, "ASUS laptop", ALC861_FIXUP_AMP_VREF_0F), |
4583 | SND_PCI_QUIRK(0x1462, 0x7254, "HP DX2200", ALC861_FIXUP_NO_JACK_DETECT), | 4615 | SND_PCI_QUIRK(0x1462, 0x7254, "HP DX2200", ALC861_FIXUP_NO_JACK_DETECT), |
@@ -4773,7 +4805,7 @@ static const struct snd_pcm_chmap_elem asus_pcm_2_1_chmaps[] = { | |||
4773 | }; | 4805 | }; |
4774 | 4806 | ||
4775 | /* override the 2.1 chmap */ | 4807 | /* override the 2.1 chmap */ |
4776 | static void alc662_fixup_bass_chmap(struct hda_codec *codec, | 4808 | static void alc_fixup_bass_chmap(struct hda_codec *codec, |
4777 | const struct hda_fixup *fix, int action) | 4809 | const struct hda_fixup *fix, int action) |
4778 | { | 4810 | { |
4779 | if (action == HDA_FIXUP_ACT_BUILD) { | 4811 | if (action == HDA_FIXUP_ACT_BUILD) { |
@@ -4981,7 +5013,7 @@ static const struct hda_fixup alc662_fixups[] = { | |||
4981 | }, | 5013 | }, |
4982 | [ALC662_FIXUP_BASS_CHMAP] = { | 5014 | [ALC662_FIXUP_BASS_CHMAP] = { |
4983 | .type = HDA_FIXUP_FUNC, | 5015 | .type = HDA_FIXUP_FUNC, |
4984 | .v.func = alc662_fixup_bass_chmap, | 5016 | .v.func = alc_fixup_bass_chmap, |
4985 | .chained = true, | 5017 | .chained = true, |
4986 | .chain_id = ALC662_FIXUP_ASUS_MODE4 | 5018 | .chain_id = ALC662_FIXUP_ASUS_MODE4 |
4987 | }, | 5019 | }, |
@@ -4994,7 +5026,7 @@ static const struct hda_fixup alc662_fixups[] = { | |||
4994 | }, | 5026 | }, |
4995 | [ALC662_FIXUP_BASS_1A_CHMAP] = { | 5027 | [ALC662_FIXUP_BASS_1A_CHMAP] = { |
4996 | .type = HDA_FIXUP_FUNC, | 5028 | .type = HDA_FIXUP_FUNC, |
4997 | .v.func = alc662_fixup_bass_chmap, | 5029 | .v.func = alc_fixup_bass_chmap, |
4998 | .chained = true, | 5030 | .chained = true, |
4999 | .chain_id = ALC662_FIXUP_BASS_1A, | 5031 | .chain_id = ALC662_FIXUP_BASS_1A, |
5000 | }, | 5032 | }, |