diff mbox series

[v2] ALSA: hda/realtek: make bass spk volume adjustable on a yoga laptop

Message ID 20201205051130.8122-1-hui.wang@canonical.com (mailing list archive)
State Accepted
Commit c72b9bfe0f914639cc475585f45722a3eb57a56d
Headers show
Series [v2] ALSA: hda/realtek: make bass spk volume adjustable on a yoga laptop | expand

Commit Message

Hui Wang Dec. 5, 2020, 5:11 a.m. UTC
This change could fix 2 issues on this machine:
 - the bass speaker's output volume can't be adjusted, that is because
   the bass speaker is routed to the DAC (Nid 0x6) which has no volume
   control.
 - after plugging a headset with vol+, vol- and pause buttons on it,
   press those buttons, nothing happens, this means those buttons
   don't work at all. This machine has alc287 codec, need to add the
   codec id to the disable/enable_headset_jack_key(), then the headset
   button could work.

The quirk of ALC285_FIXUP_THINKPAD_HEADSET_JACK could fix both of these
2 issues.

Cc: <stable@vger.kernel.org>
Signed-off-by: Hui Wang <hui.wang@canonical.com>
---
 sound/pci/hda/patch_realtek.c | 7 +++++++
 1 file changed, 7 insertions(+)

Comments

Takashi Iwai Dec. 5, 2020, 7:39 a.m. UTC | #1
On Sat, 05 Dec 2020 06:11:30 +0100,
Hui Wang wrote:
> 
> This change could fix 2 issues on this machine:
>  - the bass speaker's output volume can't be adjusted, that is because
>    the bass speaker is routed to the DAC (Nid 0x6) which has no volume
>    control.
>  - after plugging a headset with vol+, vol- and pause buttons on it,
>    press those buttons, nothing happens, this means those buttons
>    don't work at all. This machine has alc287 codec, need to add the
>    codec id to the disable/enable_headset_jack_key(), then the headset
>    button could work.
> 
> The quirk of ALC285_FIXUP_THINKPAD_HEADSET_JACK could fix both of these
> 2 issues.
> 
> Cc: <stable@vger.kernel.org>
> Signed-off-by: Hui Wang <hui.wang@canonical.com>

Thanks, this one is much better.
Applied now.


Takashi
diff mbox series

Patch

diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 8616c5624870..5a905fa1b33a 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -3104,6 +3104,7 @@  static void alc_disable_headset_jack_key(struct hda_codec *codec)
 	case 0x10ec0215:
 	case 0x10ec0225:
 	case 0x10ec0285:
+	case 0x10ec0287:
 	case 0x10ec0295:
 	case 0x10ec0289:
 	case 0x10ec0299:
@@ -3130,6 +3131,7 @@  static void alc_enable_headset_jack_key(struct hda_codec *codec)
 	case 0x10ec0215:
 	case 0x10ec0225:
 	case 0x10ec0285:
+	case 0x10ec0287:
 	case 0x10ec0295:
 	case 0x10ec0289:
 	case 0x10ec0299:
@@ -8578,6 +8580,11 @@  static const struct snd_hda_pin_quirk alc269_pin_fixup_tbl[] = {
 		{0x14, 0x90170110},
 		{0x19, 0x04a11040},
 		{0x21, 0x04211020}),
+	SND_HDA_PIN_QUIRK(0x10ec0287, 0x17aa, "Lenovo", ALC285_FIXUP_THINKPAD_HEADSET_JACK,
+		{0x14, 0x90170110},
+		{0x17, 0x90170111},
+		{0x19, 0x03a11030},
+		{0x21, 0x03211020}),
 	SND_HDA_PIN_QUIRK(0x10ec0286, 0x1025, "Acer", ALC286_FIXUP_ACER_AIO_MIC_NO_PRESENCE,
 		{0x12, 0x90a60130},
 		{0x17, 0x90170110},