https://bugzilla.kernel.org/show_bug.cgi?id=221916
Bug ID: 221916
Summary: ALC287 Lenovo Yoga 7 2-in-1 14IML9 -> bass speakers
silent
Product: ACPI
Version: 2.5
Hardware: All
OS: Linux
Status: NEW
Severity: normal
Priority: P3
Component: Other
Assignee: [email protected]
Reporter: [email protected]
Regression: No
Hi,
I've got a Lenovo Yoga 7 2-in-1 14IML9 (DMI product 83DJ) running Fedora
44 on kernel 7.1.8-200.fc44.x86_64. The internal speakers work, but only
the tweeters produce sound - the bass/woofer speakers stay completely
silent, so music and video sound thin and hollow compared to Windows on
the same machine.
After digging through dmesg and comparing notes with several similar bug
reports and patches, this looks like the same "bass speaker pin not
configured" problem that's been fixed for a whole string of other Yoga
models over the past year or so (Yoga 9i 14IAP7, Yoga 7 14ITL5/15ITL5,
Yoga Pro 7 14ARP8/14IMH9/14ASP9/14ASP10, Yoga 7 2-in-1 14AKP10/16AKP10,
Yoga7 14IAL7, Yoga Slim 7 14AKP10, and others). In every one of those
cases the fix was the same one-line addition to the quirk table in
sound/hda/codecs/realtek/alc269.c (formerly patch_realtek.c), applying
the existing ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN fixup to the new
subsystem ID.
My machine's codec subsystem ID just isn't in that table
yet.
Hardware
--------
Vendor: Lenovo
Model: Yoga 7 2-in-1 14IML9
DMI product name: 83DJ
Board: LNVNB161216
CPU: Intel Core Ultra 7 155H (Meteor Lake)
Audio codec: Realtek ALC287
Codec Vendor Id: 0x10ec0287
Codec Subsystem Id: 0x17aa38db
PCI SSID (00:1f.3): 17aa:382f
Software
--------
Distro: Fedora Linux 44
Kernel: 7.1.8-200.fc44.x86_64
Audio stack: SOF (IPC4) + ASoC, machine driver skl_hda_dsp_generic
Driver in use: sof-audio-pci-intel-mtl (snd_sof_pci_intel_mtl)
Codec driver: snd_hda_codec_alc269 / snd_hda_codec_realtek_lib
Audio server: PipeWire
What I've already tried
------------------------
Before writing this up I spent a while trying to work around it from
userspace, in case that saves someone a step:
- The classic "options snd_hda_intel model=alc287-yoga9-bass-spk-pin"
trick doesn't do anything here - snd_hda_intel is loaded but sits at
0 references, since SOF/ASoC handles the codec through
snd_soc_hdac_hda instead. So there's no live codec driver actually
listening to that module's "model=" parameter on this setup.
- snd_hda_codec_alc269 itself exposes no module parameters at all
(empty modinfo, empty /sys/module/snd_hda_codec_alc269/parameters/),
so there's currently no runtime way to force the fixup on a SOF-based
system like this - it really does need the quirk table entry.
- I also tried forcing different SOF topology files
(sof-hda-generic-4ch.tplg vs -2ch.tplg), thinking the "ch" suffix
might control speaker channels. It doesn't - it only affects the
number of DMIC (microphone) channels the generic topology expects.
Forcing 4ch just broke internal mic capture
(repeated "failed to prepare widget dai-copier.DMIC.dmic01.capture"
errors) without changing the speaker output at all.
What would fix it
------------------
Adding a quirk entry for this subsystem ID, using the same
ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN fixup already used for the
related Yoga models, e.g.:
SND_PCI_QUIRK(0x17aa, 0x38db, "Lenovo Yoga 7 2-in-1 14IML9",
ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN),
(or as an HDA_CODEC_QUIRK keyed on the codec SSID, if that's needed to
disambiguate from other machines sharing the PCI SSID 17aa:382f, as was
done for a few of the other recent Yoga patches.)
Thanks for looking into this!
--
You may reply to this email to add a comment.
You are receiving this mail because:
You are watching the assignee of the bug.
_______________________________________________
acpi-bugzilla mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/acpi-bugzilla