| From 9774dc218bb628974dcbc76412f970e9258e5f27 Mon Sep 17 00:00:00 2001 |
| From: Benjamin Poirier <benjamin.poirier@gmail.com> |
| Date: Fri, 3 Jul 2020 17:00:04 +0900 |
| Subject: ALSA: hda/realtek - Fix Lenovo Thinkpad X1 Carbon 7th quirk subdevice id |
| |
| From: Benjamin Poirier <benjamin.poirier@gmail.com> |
| |
| commit 9774dc218bb628974dcbc76412f970e9258e5f27 upstream. |
| |
| 1) |
| In snd_hda_pick_fixup(), quirks are first matched by PCI SSID and then, if |
| there is no match, by codec SSID. The Lenovo "ThinkPad X1 Carbon 7th" has |
| an audio chip with PCI SSID 0x2292 and codec SSID 0x2293[1]. Therefore, fix |
| the quirk meant for that device to match on .subdevice == 0x2292. |
| |
| 2) |
| The "Thinkpad X1 Yoga 7th" does not exist. The companion product to the |
| Carbon 7th is the Yoga 4th. That device has an audio chip with PCI SSID |
| 0x2292 and codec SSID 0x2292[2]. Given the behavior of |
| snd_hda_pick_fixup(), it is not possible to have a separate quirk for the |
| Yoga based on SSID. Therefore, merge the quirks meant for the Carbon and |
| Yoga. This preserves the current behavior for the Yoga. |
| |
| [1] This is the case on my own machine and can also be checked here |
| https://github.com/linuxhw/LsPCI/tree/master/Notebook/Lenovo/ThinkPad |
| https://gist.github.com/hamidzr/dd81e429dc86f4327ded7a2030e7d7d9#gistcomment-3225701 |
| [2] |
| https://github.com/linuxhw/LsPCI/tree/master/Convertible/Lenovo/ThinkPad |
| https://gist.github.com/hamidzr/dd81e429dc86f4327ded7a2030e7d7d9#gistcomment-3176355 |
| |
| Fixes: d2cd795c4ece ("ALSA: hda - fixup for the bass speaker on Lenovo Carbon X1 7th gen") |
| Fixes: 54a6a7dc107d ("ALSA: hda/realtek - Add quirk for the bass speaker on Lenovo Yoga X1 7th gen") |
| Cc: Jaroslav Kysela <perex@perex.cz> |
| Cc: Kailang Yang <kailang@realtek.com> |
| Tested-by: Vincent Bernat <vincent@bernat.ch> |
| Tested-by: Even Brenden <evenbrenden@gmail.com> |
| Signed-off-by: Benjamin Poirier <benjamin.poirier@gmail.com> |
| Cc: <stable@vger.kernel.org> |
| Link: https://lore.kernel.org/r/20200703080005.8942-2-benjamin.poirier@gmail.com |
| Signed-off-by: Takashi Iwai <tiwai@suse.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| sound/pci/hda/patch_realtek.c | 3 +-- |
| 1 file changed, 1 insertion(+), 2 deletions(-) |
| |
| --- a/sound/pci/hda/patch_realtek.c |
| +++ b/sound/pci/hda/patch_realtek.c |
| @@ -7536,8 +7536,7 @@ static const struct snd_pci_quirk alc269 |
| SND_PCI_QUIRK(0x17aa, 0x224c, "Thinkpad", ALC298_FIXUP_TPT470_DOCK), |
| SND_PCI_QUIRK(0x17aa, 0x224d, "Thinkpad", ALC298_FIXUP_TPT470_DOCK), |
| SND_PCI_QUIRK(0x17aa, 0x225d, "Thinkpad T480", ALC269_FIXUP_LIMIT_INT_MIC_BOOST), |
| - SND_PCI_QUIRK(0x17aa, 0x2292, "Thinkpad X1 Yoga 7th", ALC285_FIXUP_THINKPAD_HEADSET_JACK), |
| - SND_PCI_QUIRK(0x17aa, 0x2293, "Thinkpad X1 Carbon 7th", ALC285_FIXUP_THINKPAD_HEADSET_JACK), |
| + SND_PCI_QUIRK(0x17aa, 0x2292, "Thinkpad X1 Carbon 7th", ALC285_FIXUP_THINKPAD_HEADSET_JACK), |
| SND_PCI_QUIRK(0x17aa, 0x22be, "Thinkpad X1 Carbon 8th", ALC285_FIXUP_THINKPAD_HEADSET_JACK), |
| SND_PCI_QUIRK(0x17aa, 0x30bb, "ThinkCentre AIO", ALC233_FIXUP_LENOVO_LINE2_MIC_HOTKEY), |
| SND_PCI_QUIRK(0x17aa, 0x30e2, "ThinkCentre AIO", ALC233_FIXUP_LENOVO_LINE2_MIC_HOTKEY), |