Repository navigation
[FEATURE] Add machine table + topology for LG gram 16Z90U-KU7WK (RT713 link 3 + single RT1320 link 1) #10784
Description
Summary
LG gram 16Z90U-KU7WK (Intel Panther Lake, late-2025 model) reports a SoundWire codec layout
that has no matching entry in snd_soc_acpi_intel_ptl_sdw_machines[] and no corresponding
.tplg in linux-firmware. The kernel falls back to skl_hda_dsp_generic → users get
only HDMI output + the internal DMIC; no analog speakers, no analog mic, no headset.
Hardware layout reported by the kernel:
| SDW link | Device | mfg_id | part_id | version | unique_id | Role |
|---|---|---|---|---|---|---|
| 1 | RT1320 | 0x025d |
0x1320 |
3 | 1 | mono smart amp (single, not aggregated) |
| 3 | RT713 VB | 0x025d |
0x0713 |
3 | 0 | jack/headset codec |
Notable: the RT713's ACPI does not expose an SDCA_FUNCTION_TYPE_SMART_MIC function,
which has two downstream effects (see "Findings" below).
Hardware
- Model: LG Electronics
16Z90U-KU7WK(DMI sys_vendor=LG Electronics, product=16Z90U-KU7WK) - CPU: Intel Core Ultra 7 355 (Panther Lake)
- PCI audio:
8086:e428rev 01, subsystem1854:0567 - PCH driver in use:
sof-audio-pci-intel-ptl
Software
- Distro: Linux Mint 22.2 (Ubuntu noble base)
- Kernel:
6.17.0-23-generic(Ubuntu HWE, mainline 6.17.0 + Canonical patches) - linux-firmware:
20240318.git3b128b60-0ubuntu2.27 - firmware-sof-signed:
2023.12.1-1ubuntu1.10 - SOF firmware booted: ADSPFW v2.14.1.1, IPC4, topology ABI 3:29:1 / kernel ABI 3:23:1
- alsa-ucm-conf:
1.2.10-1ubuntu5.10 - Secure Boot: off
Reproduces on stock 6.17.0-14 and 6.17.0-23 Ubuntu HWE kernels.
Reproduction
dmesg excerpt (verbatim):
sof-audio-pci-intel-ptl 0000:00:1f.3: SoundWire enabled on CannonLake+
platform, using SOF driver
sof-audio-pci-intel-ptl 0000:00:1f.3: No SoundWire machine driver found for
the ACPI-reported configuration:
sof-audio-pci-intel-ptl 0000:00:1f.3: link 1 mfg_id 0x025d part_id 0x1320
version 0x3
sof-audio-pci-intel-ptl 0000:00:1f.3: link 3 mfg_id 0x025d part_id 0x0713
version 0x3
sof-audio-pci-intel-ptl 0000:00:1f.3: hda codecs found, mask 4
sof-audio-pci-intel-ptl 0000:00:1f.3: using HDA machine driver
skl_hda_dsp_generic now
rt712-sdca sdw:0:3:025d:0713:01: rt712_sdca_io_init RT712 VB detected but no
SMART_MIC function exposed in ACPI
aplay -l shows only HDMI; arecord -l shows only DMIC Raw.
Findings (after investigating locally)
I built a patched snd-soc-acpi-intel-match + snd-soc-rt712-sdca against
the matching
source tree (apt source linux-hwe-6.17) and worked through three layers:
1. Missing machine table entry. Closest existing entries are
ptl_sdw_rt713_vb_l2_rt1320_l13 and ptl_sdw_rt713_vb_l3_rt1320_l12, both
for
aggregated 2-amp configs. Our hw has a single RT1320 on link 1 only, so
neither matches
(link_mask is BIT(1) | BIT(3) here).
2. machine_check rejects this hw. Even with the above table entry added,
the
existing entries chain to .machine_check = snd_soc_acpi_intel_sdca_is_device_rt712_vb,
which calls sdca_device_quirk_rt712_vb() (sound/soc/sdca/sdca_device.c).
That function
returns true only when the codec exposes SDCA_FUNCTION_TYPE_SMART_MIC in
ACPI. LG's
firmware on this 16Z90U does not — so the check returns false and the entry is
rejected.
Removing the machine_check makes the match fire. (Side note: this
SMART_MIC gate also
silently affects future LG/OEM systems where the function isn't declared.)
3. Codec aif3 DAI not registered. In rt712-sdca.c, the dmic component
(and
therefore rt712-sdca-aif3) is only devm_snd_soc_register_component()'d
when the same
SDCA_QUIRKS_RT712_VB quirk passes — i.e. when SMART_MIC is exposed. The
topology
references aif3 unconditionally, so binding fails:
sof_sdw sof_sdw: codec dai rt712-sdca-aif3 not registered yet
Registering the DMIC component for all RT712-VB part_ids (0x712 / 0x713 / 0x716 / 0x717)
regardless of SMART_MIC exposure lets the codec come up cleanly. The codec
driver
already logs:
rt712-sdca: RT712 VB detected but no SMART_MIC function exposed in ACPI
…so it knows the situation; it just chooses not to register aif3.
4. No matching topology. With (1)–(3) in place, the closest topologies in
linux-firmware all fail to load:
sof-ptl-rt713-l3-rt1320-l12.tplg— programs SDW framing for two amps;
missing L2 amp
leads to repeatedsoundwire_intel.link.3: SCP Msg trf timed outonce the
codec starts
responding.sof-ptl-rt712-l3-rt1320-l3.tplg— fails with
error: can't connect DAI alh-copier.Playback-SimpleJack.0 stream Playback-SimpleJack/
topology: could not load header: -22.
This is the same "widget type 27 / ABI 3:29:1 vs 3:23:1 / alh-copier can't
connect"
shape reported in #5759 for the ASUS Zephyrus PTL with CS42L43.
What is needed
-
Machine table entry in
sound/soc/intel/common/soc-acpi-intel-ptl-match.c:/* LG gram 16Z90U: RT713 (VB) on link 3 + single RT1320 amp on link 1 */ static const struct snd_soc_acpi_adr_device rt1320_1_single_adr[] = { { .adr = 0x000131025D132001ull, .num_endpoints = 1, .endpoints = &spk_l_endpoint, .name_prefix = "rt1320-1" } }; static const struct snd_soc_acpi_link_adr ptl_sdw_rt713_vb_l3_rt1320_l1[] =
{
{
.mask = BIT(3),
.num_adr = ARRAY_SIZE(rt713_vb_3_adr),
.adr_d = rt713_vb_3_adr,
},
{
.mask = BIT(1),
.num_adr = ARRAY_SIZE(rt1320_1_single_adr),
.adr_d = rt1320_1_single_adr,
},
{}
};
And a snd_soc_acpi_mach entry with .link_mask = BIT(1) | BIT(3). The
.machine_check should either be omitted for this hardware, or
snd_soc_acpi_intel_sdca_is_device_rt712_vb should be widened so that a
present
RT713-VB (mfg/part match + interface rev ≥ 0x0801) qualifies even when
SMART_MIC
isn't declared in ACPI. (Happy to send either as a patch.)
- rt712-sdca codec driver: register rt712_sdca_dmic_dai (aif3) for RT712-VB
parts regardless of SMART_MIC ACPI declaration. Suggested guard:
if (sdca_device_quirk_match(slave, SDCA_QUIRKS_RT712_VB) ||
(slave->id.mfg_id == 0x025d &&
(slave->id.part_id == 0x712 || slave->id.part_id == 0x713 ||
slave->id.part_id == 0x716 || slave->id.part_id == 0x717))) {
ret = devm_snd_soc_register_component(dev, &soc_sdca_dev_rt712_dmic,
rt712_sdca_dmic_dai,
ARRAY_SIZE(rt712_sdca_dmic_dai));
...
}
3. Topology: add sof-ptl-rt713-l3-rt1320-l1.tplg (and the -2ch / -4ch variants
that sof_sdw_get_tplg_files() generates) for codec-on-l3 +
single-mono-amp-on-l1.
This is the piece I can't generate locally — it ties into the in-flight PTL
widget /
naming work tracked in #5759.
Related
- [RFC] CMake: pass firmware file micro version to rimage #5759 — same failure class (PTL + SoundWire + missing exact-layout topology)
on
ASUS Zephyrus G16 GU606AP. Suggests this is a generation-wide gap; an
OEM-aware audit would help. - Ubuntu LP #2089891
— the LNL ThinkPad TM2 RT713 / RT718 fix (acba93d7f3a8d) is the working
template for the PTL fix needed here. - Ubuntu LP #2129952
— Dell PTL bundle currently staging RT712/RT713VB/RT722/RT1321 backports;
likely the right vehicle for the LG entry as well.
Activity
lgirdwood commentedon May 18, 2026
@KORDayDream sorry, not following this part as this is an old PR related to versioning?
Btw, if you are using an agent, it should be able to generate the topology binaries for validation with a recent alsa-lib and alsa-utils. The kernel diff looks like it should be needed, but I think we need to test this and the topology together before PRs can be generated.
@bardliao @ujfalusi fyi.
bardliao commentedon May 19, 2026
@lgirdwood @KORDayDream The feature is done.
thesofproject/linux#5761
#10760
KORDayDream commentedon May 20, 2026
@bardliao checked the pr, I only checked the latest release, not the main branch. Thank you for the information.