Bug 216299

Summary: limited sound and no mic on ALC287 (ALC3306)
Product: Drivers Reporter: Rohit Pai (rodude123)
Component: WatchdogAssignee: drivers_watchdog (drivers_watchdog)
Status: RESOLVED CODE_FIX    
Severity: normal CC: gih, git, johannesdorfschmidt, mario.limonciello, patches, ricardo, rodude123, shalokshalom, soyer, thomas.gfeller+kernel, travisghansen, vevisim87
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 5.18.11 Subsystem:
Regression: No Bisected commit-id:

Description Rohit Pai 2022-07-27 14:34:11 UTC
Lenovo Yoga 7 has 4 speakers 2 tweeters, and 2 subwoofers but only the tweeters work. The chip says it's a ALC287 but Lenovo psref says it's an ALC 3306 https://psref.lenovo.com/Product/Yoga_7_14ARB7?tab=spec It could be that it's a Ryzen 6000 machine. I've tried a lot of fixes but none of them work for this device. Here is the pactl output https://pastebin.com/ZSB6gP7w
Comment 1 Travis Glenn Hansen 2022-09-14 17:30:27 UTC
I have a Lenovo Slim 7 Pro X where the speakers work fine but I have no mic. I'm guessing it's a similar/same issue.

https://psref.lenovo.com/Product/Lenovo/Lenovo_Slim_7_ProX_14ARH7?MT=82v2
Comment 2 Rohit Pai 2022-09-15 16:59:45 UTC
(In reply to Travis Glenn Hansen from comment #1)
> I have a Lenovo Slim 7 Pro X where the speakers work fine but I have no mic.
> I'm guessing it's a similar/same issue.
> 
> https://psref.lenovo.com/Product/Lenovo/Lenovo_Slim_7_ProX_14ARH7?MT=82v2

See, the reason why your speakers work is that it only has 2 speakers whereas my Yoga 7 has 4 speakers.
Comment 3 Mario Limonciello (AMD) 2022-09-19 18:32:50 UTC
Speakers not working and mic not working are likely two separate problems.  For the mic not working, the system might need to be added to the quirk list.

Try this patch for mic.  Note: if this is an older distro you might also need to update UCM configuration to a newer version for this to work (https://github.com/alsa-project/alsa-ucm-conf).

diff --git a/sound/soc/amd/yc/acp6x-mach.c b/sound/soc/amd/yc/acp6x-mach.c
index e0b24e1daef3..735acfb23bc4 100644
--- a/sound/soc/amd/yc/acp6x-mach.c
+++ b/sound/soc/amd/yc/acp6x-mach.c
@@ -171,6 +171,13 @@ static const struct dmi_system_id yc_acp_quirk_table[] = {
                        DMI_MATCH(DMI_PRODUCT_NAME, "21J6"),
                }
        },
+       {
+               .driver_data = &acp6x_card,
+               .matches = {
+                       DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"),
+                       DMI_MATCH(DMI_PRODUCT_NAME, "82"),
+               }
+       },
        {}
 };
Comment 4 Travis Glenn Hansen 2022-09-20 14:17:39 UTC
Yes, applied patch to 6.0rc6 (along with the suspend/acpi patch) and now I have a fully functioning laptop from a hardware perspective!
Comment 5 Gergo K 2022-09-22 10:18:50 UTC
This patch works for the Lenovo Yoga 7 Gen 7 14ARB7 too. The s2idle works too with the acpi v4 patch. The deep sleep doesn't work.
Comment 6 Vevo Isim 2022-10-05 08:49:08 UTC
The patch mentioned in comment #3 works for the Lenovo Yoga Slim 7 Pro X. Thank you, hope this hits the kernel at some point in the near future.
Comment 7 Mario Limonciello (AMD) 2022-10-05 13:08:23 UTC
It will be in 6.1-rc1 and later.
https://kernel.googlesource.com/pub/scm/linux/kernel/git/broonie/sound/+/2232b2dd8cd4f1e6d554b2c3f6899ce36f791b67
Comment 8 Ricardo Graça 2022-10-14 15:47:32 UTC
(In reply to Gergo K from comment #5)
> The s2idle works too with the acpi v4 patch.

Can you link me to this ACPI V4 patch that you mentioned?
Comment 9 Gergo K 2022-10-16 20:21:03 UTC
(In reply to Ricardo Graça from comment #8)
> (In reply to Gergo K from comment #5)
> > The s2idle works too with the acpi v4 patch.
> 
> Can you link me to this ACPI V4 patch that you mentioned?

https://lkml.org/lkml/2022/9/21/1207
Comment 10 Thomas Gfeller 2023-05-14 11:22:31 UTC
I have a 2023 Yoga Pro 9 and have the same issue with very tinny sound (bottom firing speakers / bass is not working).

I'm currently running the following configuration:

OS: Fedora Linux 38 (Workstation Edition) x86_64
Host: 83BU Yoga Pro 9 14IRP8
Kernel: 6.2.14-300.fc38.x86_64

I already tried this snd.conf-fix (options snd-sof-intel-hda-common hda_model=alc287-yoga9-bass-spk-pin) - no luck.

I'm not having issues with the mic.

How can I debug this with the community? What scans / logfiles do you need?
Comment 11 Thomas Gfeller 2023-05-14 11:23:07 UTC
I have a 2023 Yoga Pro 9 and have the same issue with very tinny sound (bottom firing speakers / bass is not working).

I'm currently running the following configuration:

OS: Fedora Linux 38 (Workstation Edition) x86_64
Host: 83BU Yoga Pro 9 14IRP8
Kernel: 6.2.14-300.fc38.x86_64

I already tried this snd.conf-fix (options snd-sof-intel-hda-common hda_model=alc287-yoga9-bass-spk-pin) - no luck.

I'm not having issues with the mic.

How can I debug this with the community? What scans / logfiles do you need?
Comment 12 Johannes Dorfschmidt 2023-12-02 22:31:38 UTC
Hi together,

I'm on a Lenovo Yoga 7 14ARB7 and have the same issue with the very tinny sound. My setup:

OS: Manjaro 23.1.0
Kernel: 6.6.3-1

I tried a snd.conf-fix and a alsa.conf-fix in /etc/modprobe. It seems to be the exact same problem Rohit Pai mentioned in comment #0. alsamixer reports ALC287 but Lenovo says it's an ALC3306. Does someone has a fix? It seems it is not yet present in newer kernel versions, as I tried a relatively new one.

I'm a noob with Linux and just know some basics. This is also my first post yet on any Linux forum, so I don't really know the customs yet.
Comment 13 August Wikerfors 2023-12-03 01:27:37 UTC
(In reply to Johannes Dorfschmidt from comment #12)
> Hi together,
> 
> I'm on a Lenovo Yoga 7 14ARB7 and have the same issue with the very tinny
> sound. My setup:
> 
> OS: Manjaro 23.1.0
> Kernel: 6.6.3-1
> 
> I tried a snd.conf-fix and a alsa.conf-fix in /etc/modprobe. It seems to be
> the exact same problem Rohit Pai mentioned in comment #0. alsamixer reports
> ALC287 but Lenovo says it's an ALC3306. Does someone has a fix? It seems it
> is not yet present in newer kernel versions, as I tried a relatively new one.
> 
> I'm a noob with Linux and just know some basics. This is also my first post
> yet on any Linux forum, so I don't really know the customs yet.

Apparently someone is working on a driver: https://github.com/tomsom/yoga-linux/issues/3#issuecomment-1837220084

In the meantime there are some workarounds in that thread which you can try.