diff options
author | Takashi Iwai <tiwai@suse.de> | 2019-02-28 07:30:55 -0500 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2019-02-28 07:30:55 -0500 |
commit | 70395a96bd882d8dba669f99b5cec0008690accd (patch) | |
tree | 37f3a4c2cf35828f153f3ce59c3daa4f39241c32 /sound/pci | |
parent | f97a0944a72b26a2bece72516294e112a890f98a (diff) | |
parent | 3146089d235b304e665dc551472ae9cb9ab58572 (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.c | 42 |
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 | ||
1869 | static void alc889_fixup_coef(struct hda_codec *codec, | 1871 | static 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 | ||
2070 | static void alc_fixup_headset_mode_no_hp_mic(struct hda_codec *codec, | ||
2071 | const struct hda_fixup *fix, int action); | ||
2072 | |||
2073 | static 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 | |||
2068 | static const struct hda_fixup alc882_fixups[] = { | 2081 | static 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 | ||
2314 | static const struct snd_pci_quirk alc882_fixup_tbl[] = { | 2340 | static 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 | ||
5649 | static const struct hda_fixup alc269_fixups[] = { | 5678 | static 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 | ||
6604 | static const struct snd_pci_quirk alc269_fixup_tbl[] = { | 6644 | static 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}, |