linux-ptl: add Lenovo 83QK SOF SoundWire audio quirk#97
Conversation
|
Follow-up for the internal microphone: the first Lenovo 83QK revision fixed speakers but forced |
| + * with quirk_exclude=true is skipped; otherwise the SDW DMIC consumes | ||
| + * DAI id 4 and dmic01 is not created at topology-expected id 3. | ||
| + */ | ||
| + SND_PCI_QUIRK(0x17aa, 0x3821, "Lenovo 0x3821", SOC_SDW_SIDECAR_AMPS | SOC_SDW_CODEC_MIC), |
There was a problem hiding this comment.
Yeah this looks like it needs updated, according to our notes this should have the MIC quirk it appears to have been missed when this was upstreamed. Are you able to send this upstream (I would move the comment to the commit message, no need for that in the code)? Or would you like me to send this one for you?
There was a problem hiding this comment.
Hang on, sorry no this should be pulling this from the ACPI these days. Lets start with the ACPI dump and then think this through.
|
Would it be possible to get an acpidump for this laptop? Lets see if we can get Lenovo to fix this in the bios. |
|
Here's the ACPI dump from the Lenovo 83QK / Yoga Slim 7 Ultra 14IPH11:
I sanitized the archive before sharing:
Firmware summary from DMI: Let me know if you need anything else happy to help :) |
|
Yeah ok the ACPI for our device looks good I think, but as you note there is a spurious rt722 in the ACPI. If you felt comfortable would you be able, back out your current fixes. Load an SSDT like: That should disable the rt722 such that the kernel will ignore it. Your kernel will also need this patch from upstream, if it doesn't already have it: de67b4ea168f ("soundwire: slave: Don't register devices that are disabled in ACPI") The let us know if the audio comes up fine after that, if it doesn't a dmesg of boot would be handy to get an idea of what when wrong. I will approach Lenovo about getting a BIOS update for this model but this test will hopefully let us check this is the only problem we have to solve. |
|
I tested the RT722 SSDT override path with my current Lenovo-specific fixes backed out, using a test Result: audio still did not come up cleanly. The boot log still shows the RT722 device being used and repeated failures like: Sanitized artifacts are here:
One caveat from the logs: I do not see evidence that the |
|
Hmm... yeah I think for some reason the SSDT didn't apply there. Been mulling this over and I think perhaps this might be the best way to fix this: https://github.com/thesofproject/linux/pull/5773/commits Would you be able to try that fix and see where that gets to? |
Summary
Fixes built-in speakers and internal microphone on Lenovo Yoga Slim 7 Ultra 14IPH11 (
83QK, PCI audio subsystem17aa:3821) forlinux-ptl.This machine has:
UNATTACHED-2chtopologyThe fix keeps the ghost RT722 only for matching, routes speakers through the CS42L43 + CS35L56 sidecar path, selects the shipped
-2chtopology, skips the silent CS42L43 SoundWire mic endpoint, and uses topology-provided NHLT blobs for the PCH DMIC.What was broken
Before these patches, speaker playback could be routed through the unattached RT722 path and failed with errors like:
The first speaker fix worked, but the internal microphone was still wrong. The usable mic path is the PCH DMIC from:
The BIOS NHLT lookup did not provide a matching blob for that PCH DMIC path; using topology-provided NHLT blobs fixed capture.
Patch contents
0030-sof-intel-exact-sdw-mask.patch0031-ptl-mach-lenovo-83qk-rt722-ghost.patch0032-sdw-utils-lenovo-83qk-skip-cs42l43-sdca-check.patch0033-lenovo-83qk-force-2ch-pch-dmic.patch17aa:3821from 4 reported DMICs to 2 so the shipped-2chtopology is selected.0034-lenovo-83qk-exclude-cs42l43-sdw-dmic.patch17aa:3821withSOC_SDW_CODEC_MICso the CS42L43 SoundWire mic endpoint is skipped.dmic01link line up with the topology.0035-lenovo-83qk-use-topology-nhlt-for-pch-dmic.patch17aa:3821, uses topology-provided NHLT blobs instead of BIOS NHLT for the PCH DMIC.no matching blob ... DMIC Rawcapture failure.Tested result
Validated locally with:
Kernel/card:
Loaded topology:
PipeWire/UCM exposes the expected routes:
Confirmed locally:
pkgrel=9buildTest plan
linux-ptlwithmakepkglinux-ptland matching headers83QK/17aa:3821sof-soundwirecard appearssof-arl-cs42l43-l2-cs35l56-l3-2ch.tplgis loadedNotes
This is validated on one Lenovo 83QK unit. The SoundWire/DMIC changes are subsystem-ID scoped to
17aa:3821where possible.