summaryrefslogtreecommitdiffstats
path: root/sound/pci
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2019-02-28 07:30:55 -0500
committerTakashi Iwai <tiwai@suse.de>2019-02-28 07:30:55 -0500
commit70395a96bd882d8dba669f99b5cec0008690accd (patch)
tree37f3a4c2cf35828f153f3ce59c3daa4f39241c32 /sound/pci
parentf97a0944a72b26a2bece72516294e112a890f98a (diff)
parent3146089d235b304e665dc551472ae9cb9ab58572 (diff)
Merge tag 'asoc-v5.1-2' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-next
ASoC: More changes for v5.1 Another batch of changes for ASoC, no big core changes - it's mainly small fixes and improvements for individual drivers. - A big refresh and cleanup of the Samsung drivers, fixing a number of issues which allow the driver to be used with a wider range of userspaces. - Fixes for the Intel drivers to make them more standard so less likely to get bitten by core issues. - New driver for Cirrus Logic CS35L26.
Diffstat (limited to 'sound/pci')
-rw-r--r--sound/pci/hda/patch_realtek.c42
1 files changed, 41 insertions, 1 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 3bd1286eb5a8..c8413d44973c 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -1864,6 +1864,8 @@ enum {
1864 ALC887_FIXUP_BASS_CHMAP, 1864 ALC887_FIXUP_BASS_CHMAP,
1865 ALC1220_FIXUP_GB_DUAL_CODECS, 1865 ALC1220_FIXUP_GB_DUAL_CODECS,
1866 ALC1220_FIXUP_CLEVO_P950, 1866 ALC1220_FIXUP_CLEVO_P950,
1867 ALC1220_FIXUP_SYSTEM76_ORYP5,
1868 ALC1220_FIXUP_SYSTEM76_ORYP5_PINS,
1867}; 1869};
1868 1870
1869static void alc889_fixup_coef(struct hda_codec *codec, 1871static void alc889_fixup_coef(struct hda_codec *codec,
@@ -2065,6 +2067,17 @@ static void alc1220_fixup_clevo_p950(struct hda_codec *codec,
2065 snd_hda_override_conn_list(codec, 0x1b, 1, conn1); 2067 snd_hda_override_conn_list(codec, 0x1b, 1, conn1);
2066} 2068}
2067 2069
2070static void alc_fixup_headset_mode_no_hp_mic(struct hda_codec *codec,
2071 const struct hda_fixup *fix, int action);
2072
2073static void alc1220_fixup_system76_oryp5(struct hda_codec *codec,
2074 const struct hda_fixup *fix,
2075 int action)
2076{
2077 alc1220_fixup_clevo_p950(codec, fix, action);
2078 alc_fixup_headset_mode_no_hp_mic(codec, fix, action);
2079}
2080
2068static const struct hda_fixup alc882_fixups[] = { 2081static const struct hda_fixup alc882_fixups[] = {
2069 [ALC882_FIXUP_ABIT_AW9D_MAX] = { 2082 [ALC882_FIXUP_ABIT_AW9D_MAX] = {
2070 .type = HDA_FIXUP_PINS, 2083 .type = HDA_FIXUP_PINS,
@@ -2309,6 +2322,19 @@ static const struct hda_fixup alc882_fixups[] = {
2309 .type = HDA_FIXUP_FUNC, 2322 .type = HDA_FIXUP_FUNC,
2310 .v.func = alc1220_fixup_clevo_p950, 2323 .v.func = alc1220_fixup_clevo_p950,
2311 }, 2324 },
2325 [ALC1220_FIXUP_SYSTEM76_ORYP5] = {
2326 .type = HDA_FIXUP_FUNC,
2327 .v.func = alc1220_fixup_system76_oryp5,
2328 },
2329 [ALC1220_FIXUP_SYSTEM76_ORYP5_PINS] = {
2330 .type = HDA_FIXUP_PINS,
2331 .v.pins = (const struct hda_pintbl[]) {
2332 { 0x19, 0x01a1913c }, /* use as headset mic, without its own jack detect */
2333 {}
2334 },
2335 .chained = true,
2336 .chain_id = ALC1220_FIXUP_SYSTEM76_ORYP5,
2337 },
2312}; 2338};
2313 2339
2314static const struct snd_pci_quirk alc882_fixup_tbl[] = { 2340static const struct snd_pci_quirk alc882_fixup_tbl[] = {
@@ -2385,6 +2411,8 @@ static const struct snd_pci_quirk alc882_fixup_tbl[] = {
2385 SND_PCI_QUIRK(0x1558, 0x9501, "Clevo P950HR", ALC1220_FIXUP_CLEVO_P950), 2411 SND_PCI_QUIRK(0x1558, 0x9501, "Clevo P950HR", ALC1220_FIXUP_CLEVO_P950),
2386 SND_PCI_QUIRK(0x1558, 0x95e1, "Clevo P95xER", ALC1220_FIXUP_CLEVO_P950), 2412 SND_PCI_QUIRK(0x1558, 0x95e1, "Clevo P95xER", ALC1220_FIXUP_CLEVO_P950),
2387 SND_PCI_QUIRK(0x1558, 0x95e2, "Clevo P950ER", ALC1220_FIXUP_CLEVO_P950), 2413 SND_PCI_QUIRK(0x1558, 0x95e2, "Clevo P950ER", ALC1220_FIXUP_CLEVO_P950),
2414 SND_PCI_QUIRK(0x1558, 0x96e1, "System76 Oryx Pro (oryp5)", ALC1220_FIXUP_SYSTEM76_ORYP5_PINS),
2415 SND_PCI_QUIRK(0x1558, 0x97e1, "System76 Oryx Pro (oryp5)", ALC1220_FIXUP_SYSTEM76_ORYP5_PINS),
2388 SND_PCI_QUIRK_VENDOR(0x1558, "Clevo laptop", ALC882_FIXUP_EAPD), 2416 SND_PCI_QUIRK_VENDOR(0x1558, "Clevo laptop", ALC882_FIXUP_EAPD),
2389 SND_PCI_QUIRK(0x161f, 0x2054, "Medion laptop", ALC883_FIXUP_EAPD), 2417 SND_PCI_QUIRK(0x161f, 0x2054, "Medion laptop", ALC883_FIXUP_EAPD),
2390 SND_PCI_QUIRK(0x17aa, 0x3a0d, "Lenovo Y530", ALC882_FIXUP_LENOVO_Y530), 2418 SND_PCI_QUIRK(0x17aa, 0x3a0d, "Lenovo Y530", ALC882_FIXUP_LENOVO_Y530),
@@ -5644,6 +5672,7 @@ enum {
5644 ALC294_FIXUP_ASUS_SPK, 5672 ALC294_FIXUP_ASUS_SPK,
5645 ALC225_FIXUP_HEADSET_JACK, 5673 ALC225_FIXUP_HEADSET_JACK,
5646 ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE, 5674 ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE,
5675 ALC285_FIXUP_LENOVO_PC_BEEP_IN_NOISE,
5647}; 5676};
5648 5677
5649static const struct hda_fixup alc269_fixups[] = { 5678static const struct hda_fixup alc269_fixups[] = {
@@ -6599,6 +6628,17 @@ static const struct hda_fixup alc269_fixups[] = {
6599 .chained = true, 6628 .chained = true,
6600 .chain_id = ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC 6629 .chain_id = ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC
6601 }, 6630 },
6631 [ALC285_FIXUP_LENOVO_PC_BEEP_IN_NOISE] = {
6632 .type = HDA_FIXUP_VERBS,
6633 .v.verbs = (const struct hda_verb[]) {
6634 /* Disable PCBEEP-IN passthrough */
6635 { 0x20, AC_VERB_SET_COEF_INDEX, 0x36 },
6636 { 0x20, AC_VERB_SET_PROC_COEF, 0x57d7 },
6637 { }
6638 },
6639 .chained = true,
6640 .chain_id = ALC285_FIXUP_LENOVO_HEADPHONE_NOISE
6641 },
6602}; 6642};
6603 6643
6604static const struct snd_pci_quirk alc269_fixup_tbl[] = { 6644static const struct snd_pci_quirk alc269_fixup_tbl[] = {
@@ -7284,7 +7324,7 @@ static const struct snd_hda_pin_quirk alc269_pin_fixup_tbl[] = {
7284 {0x12, 0x90a60130}, 7324 {0x12, 0x90a60130},
7285 {0x19, 0x03a11020}, 7325 {0x19, 0x03a11020},
7286 {0x21, 0x0321101f}), 7326 {0x21, 0x0321101f}),
7287 SND_HDA_PIN_QUIRK(0x10ec0285, 0x17aa, "Lenovo", ALC285_FIXUP_LENOVO_HEADPHONE_NOISE, 7327 SND_HDA_PIN_QUIRK(0x10ec0285, 0x17aa, "Lenovo", ALC285_FIXUP_LENOVO_PC_BEEP_IN_NOISE,
7288 {0x12, 0x90a60130}, 7328 {0x12, 0x90a60130},
7289 {0x14, 0x90170110}, 7329 {0x14, 0x90170110},
7290 {0x19, 0x04a11040}, 7330 {0x19, 0x04a11040},