[PATCH v2] ALSA: hda/realtek: Enable headset mic on IdeaPad 330-17IKB 81DM

Ajrat Makhmutov posted 1 patch 1 year, 6 months ago
sound/pci/hda/patch_realtek.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH v2] ALSA: hda/realtek: Enable headset mic on IdeaPad 330-17IKB 81DM
Posted by Ajrat Makhmutov 1 year, 6 months ago
Headset microphone do not work out of the box with this laptop. This
quirk fixes it. Zihao Wang specified the wrong subsystem id in his patch.

Link: https://lore.kernel.org/all/20220424084120.74125-1-wzhd@ustc.edu/
Fixes: 3b79954fd00d ("ALSA: hda/realtek: Add quirk for Yoga Duet 7 13ITL6 speakers")
Signed-off-by: Ajrat Makhmutov <rauty@altlinux.org>
---
 sound/pci/hda/patch_realtek.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index aa76d1c88589..5ec95a7903b8 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -10502,7 +10502,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
 	SND_PCI_QUIRK(0x17aa, 0x3813, "Legion 7i 15IMHG05", ALC287_FIXUP_LEGION_15IMHG05_SPEAKERS),
 	SND_PCI_QUIRK(0x17aa, 0x3818, "Lenovo C940 / Yoga Duet 7", ALC298_FIXUP_LENOVO_C940_DUET7),
 	SND_PCI_QUIRK(0x17aa, 0x3819, "Lenovo 13s Gen2 ITL", ALC287_FIXUP_13S_GEN2_SPEAKERS),
-	SND_PCI_QUIRK(0x17aa, 0x3820, "Yoga Duet 7 13ITL6", ALC287_FIXUP_YOGA7_14ITL_SPEAKERS),
+	SND_PCI_QUIRK(0x17aa, 0x3820, "IdeaPad 330-17IKB 81DM", ALC269_FIXUP_ASPIRE_HEADSET_MIC),
 	SND_PCI_QUIRK(0x17aa, 0x3824, "Legion Y9000X 2020", ALC285_FIXUP_LEGION_Y9000X_SPEAKERS),
 	SND_PCI_QUIRK(0x17aa, 0x3827, "Ideapad S740", ALC285_FIXUP_IDEAPAD_S740_COEF),
 	SND_PCI_QUIRK(0x17aa, 0x3834, "Lenovo IdeaPad Slim 9i 14ITL5", ALC287_FIXUP_YOGA7_14ITL_SPEAKERS),
-- 
2.33.8
Re: [PATCH v2] ALSA: hda/realtek: Enable headset mic on IdeaPad 330-17IKB 81DM
Posted by Gergo Koteles 1 year, 6 months ago
Hi Ajrat,

On Sat, 2024-06-15 at 15:54 +0300, Ajrat Makhmutov wrote:
> Headset microphone do not work out of the box with this laptop. This
> quirk fixes it. Zihao Wang specified the wrong subsystem id in his patch.

The 17aa:3820 is the Duet 7 ITL6's PCI SSID, so I don't think it's a
mistake. It is just a PCI SSID - codec SSID collision.

Here is an ITL6 probe:
https://linux-hardware.org/?probe=d3d4d3dea3

There are some similar collisions with Lenovo laptops.
Please see commit 0ac32a396e4f41e88df76ce2282423188a2d2ed0 for an
example how to handle one.

Best regards,
Gergo
Re: [PATCH v2] ALSA: hda/realtek: Enable headset mic on IdeaPad 330-17IKB 81DM
Posted by Rauty 1 year, 6 months ago
On Sun, 16 Jun 2024 at 10:38, Takashi Iwai <tiwai@suse.de> wrote:
> Your From address and Signed-off-by address are different.
> Could you try to align them?

Ok.

On Sun, 16 Jun 2024 at 21:08, Gergo Koteles <soyer@irl.hu> wrote:
> There are some similar collisions with Lenovo laptops.
> Please see commit 0ac32a396e4f41e88df76ce2282423188a2d2ed0 for an
> example how to handle one.

Yes, you're right. I'll do the same and send v3.
Re: [PATCH v2] ALSA: hda/realtek: Enable headset mic on IdeaPad 330-17IKB 81DM
Posted by Rauty 1 year, 5 months ago
I haven't changed the patch yet, but it's already in the stable-queue:
https://git.kernel.org/pub/scm/linux/kernel/git/stable/stable-queue.git/tree/queue-5.10/alsa-hda-realtek-enable-headset-mic-on-ideapad-330-1.patch
Do you still need changes from me?
Re: [PATCH v2] ALSA: hda/realtek: Enable headset mic on IdeaPad 330-17IKB 81DM
Posted by Gergo Koteles 1 year, 5 months ago
Hey Rauty,

On Mon, 2024-06-24 at 11:25 +0300, Rauty wrote:
> I haven't changed the patch yet, but it's already in the stable-queue:
> https://git.kernel.org/pub/scm/linux/kernel/git/stable/stable-queue.git/tree/queue-5.10/alsa-hda-realtek-enable-headset-mic-on-ideapad-330-1.patch
> Do you still need changes from me?

I still think this breaks Duet 7 sound, because snd_hda_pick_fixup
function picks the PCI SSIDs before Codec SSIDs.
But maybe I missed something.

Takashi, what do you think?

Best regards,
Gergo Koteles
Re: [PATCH v2] ALSA: hda/realtek: Enable headset mic on IdeaPad 330-17IKB 81DM
Posted by Takashi Iwai 1 year, 5 months ago
On Tue, 25 Jun 2024 15:32:16 +0200,
Gergo Koteles wrote:
> 
> Hey Rauty,
> 
> On Mon, 2024-06-24 at 11:25 +0300, Rauty wrote:
> > I haven't changed the patch yet, but it's already in the stable-queue:
> > https://git.kernel.org/pub/scm/linux/kernel/git/stable/stable-queue.git/tree/queue-5.10/alsa-hda-realtek-enable-headset-mic-on-ideapad-330-1.patch
> > Do you still need changes from me?
> 
> I still think this breaks Duet 7 sound, because snd_hda_pick_fixup
> function picks the PCI SSIDs before Codec SSIDs.
> But maybe I missed something.
> 
> Takashi, what do you think?

Hm, a breakage looks possible, indeed.  I naively thought it being a
same model, but this is a different one.

We need an additional codec vendor or SSID check as done for other
machines.


Takashi
Re: [PATCH v2] ALSA: hda/realtek: Enable headset mic on IdeaPad 330-17IKB 81DM
Posted by Rauty 1 year, 5 months ago
On Tue, 25 Jun 2024 at 16:32, Gergo Koteles <soyer@irl.hu> wrote:
> I still think this breaks Duet 7 sound, because snd_hda_pick_fixup
> function picks the PCI SSIDs before Codec SSIDs.

a piece of lspci from Lenovo IdeaPad 330-17IKB 81DM:
00:1f.3 Audio device [0403]: Intel Corporation Sunrise Point-LP HD
Audio [8086:9d71] (rev 21)
Subsystem: Lenovo Device [17aa:3837]
Kernel driver in use: snd_hda_intel

Since PCI SSIDs are in priority, I will specify it (0x3837).
Then this patch will not break the sound in the laptop and the change
will be minimal.
Re: [PATCH v2] ALSA: hda/realtek: Enable headset mic on IdeaPad 330-17IKB 81DM
Posted by Takashi Iwai 1 year, 5 months ago
On Tue, 25 Jun 2024 16:00:57 +0200,
Rauty wrote:
> 
> On Tue, 25 Jun 2024 at 16:32, Gergo Koteles <soyer@irl.hu> wrote:
> > I still think this breaks Duet 7 sound, because snd_hda_pick_fixup
> > function picks the PCI SSIDs before Codec SSIDs.
> 
> a piece of lspci from Lenovo IdeaPad 330-17IKB 81DM:
> 00:1f.3 Audio device [0403]: Intel Corporation Sunrise Point-LP HD
> Audio [8086:9d71] (rev 21)
> Subsystem: Lenovo Device [17aa:3837]
> Kernel driver in use: snd_hda_intel
> 
> Since PCI SSIDs are in priority, I will specify it (0x3837).
> Then this patch will not break the sound in the laptop and the change
> will be minimal.

It's not about PCI SSID but the codec SSID.  It's found in the
corresponding /proc/asound/card*/codec#* file.  It might be the same
number as PCI SSID, though.  Please check both Vendor Id and Subsystem
Id lines.

And we need to know those numbers from the conflicting model (Yoga
Diet 7 13ITL6), too.


Takashi
Re: [PATCH v2] ALSA: hda/realtek: Enable headset mic on IdeaPad 330-17IKB 81DM
Posted by Takashi Iwai 1 year, 5 months ago
On Tue, 25 Jun 2024 16:07:52 +0200,
Takashi Iwai wrote:
> 
> On Tue, 25 Jun 2024 16:00:57 +0200,
> Rauty wrote:
> > 
> > On Tue, 25 Jun 2024 at 16:32, Gergo Koteles <soyer@irl.hu> wrote:
> > > I still think this breaks Duet 7 sound, because snd_hda_pick_fixup
> > > function picks the PCI SSIDs before Codec SSIDs.
> > 
> > a piece of lspci from Lenovo IdeaPad 330-17IKB 81DM:
> > 00:1f.3 Audio device [0403]: Intel Corporation Sunrise Point-LP HD
> > Audio [8086:9d71] (rev 21)
> > Subsystem: Lenovo Device [17aa:3837]
> > Kernel driver in use: snd_hda_intel
> > 
> > Since PCI SSIDs are in priority, I will specify it (0x3837).
> > Then this patch will not break the sound in the laptop and the change
> > will be minimal.
> 
> It's not about PCI SSID but the codec SSID.  It's found in the
> corresponding /proc/asound/card*/codec#* file.  It might be the same
> number as PCI SSID, though.  Please check both Vendor Id and Subsystem
> Id lines.
> 
> And we need to know those numbers from the conflicting model (Yoga
> Diet 7 13ITL6), too.

No need to diet, but "duet" :)

Zihao, do you still have the access to this machine?
If yes, could you give alsa-info.sh output, or a proc file output?


thanks,

Takashi
Re: [PATCH v2] ALSA: hda/realtek: Enable headset mic on IdeaPad 330-17IKB 81DM
Posted by Rauty 1 year, 5 months ago
On Tue, 25 Jun 2024 at 17:11, Takashi Iwai <tiwai@suse.de> wrote:
> Zihao, do you still have the access to this machine?
> If yes, could you give alsa-info.sh output, or a proc file output?

He sent it to me:
https://alsa-project.org/db/?f=268601dbdb76f9a4c18d71e210091ffed4bf2818
Re: [PATCH v2] ALSA: hda/realtek: Enable headset mic on IdeaPad 330-17IKB 81DM
Posted by Takashi Iwai 1 year, 5 months ago
On Tue, 25 Jun 2024 16:16:56 +0200,
Rauty wrote:
> 
> On Tue, 25 Jun 2024 at 17:11, Takashi Iwai <tiwai@suse.de> wrote:
> > Zihao, do you still have the access to this machine?
> > If yes, could you give alsa-info.sh output, or a proc file output?
> 
> He sent it to me:
> https://alsa-project.org/db/?f=268601dbdb76f9a4c18d71e210091ffed4bf2818

Great.  Could you also give the one for IdeaPad 330?


thanks,

Takashi
Re: [PATCH v2] ALSA: hda/realtek: Enable headset mic on IdeaPad 330-17IKB 81DM
Posted by Rauty 1 year, 5 months ago
On Tue, 25 Jun 2024 at 17:25, Takashi Iwai <tiwai@suse.de> wrote:
> Great.  Could you also give the one for IdeaPad 330?

http://alsa-project.org/db/?f=cb04b699a8aaa07e0bd992dfc92accb993dc0a97
Re: [PATCH v2] ALSA: hda/realtek: Enable headset mic on IdeaPad 330-17IKB 81DM
Posted by Takashi Iwai 1 year, 5 months ago
On Tue, 25 Jun 2024 16:47:34 +0200,
Rauty wrote:
> 
> On Tue, 25 Jun 2024 at 17:25, Takashi Iwai <tiwai@suse.de> wrote:
> > Great.  Could you also give the one for IdeaPad 330?
> 
> http://alsa-project.org/db/?f=cb04b699a8aaa07e0bd992dfc92accb993dc0a97

Thanks.  I'll cook a fix patch and submit.


Takashi
Re: [PATCH v2] ALSA: hda/realtek: Enable headset mic on IdeaPad 330-17IKB 81DM
Posted by Takashi Iwai 1 year, 6 months ago
On Sat, 15 Jun 2024 14:54:57 +0200,
Ajrat Makhmutov wrote:
> 
> Headset microphone do not work out of the box with this laptop. This
> quirk fixes it. Zihao Wang specified the wrong subsystem id in his patch.
> 
> Link: https://lore.kernel.org/all/20220424084120.74125-1-wzhd@ustc.edu/
> Fixes: 3b79954fd00d ("ALSA: hda/realtek: Add quirk for Yoga Duet 7 13ITL6 speakers")
> Signed-off-by: Ajrat Makhmutov <rauty@altlinux.org>

Your From address and Signed-off-by address are different.
Could you try to align them?

I can take as-is if inevitably necessary, but usually it's a wrong
sign.


thanks,

Takashi