You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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)
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 repeated soundwire_intel.link.3: SCP Msg trf timed out once 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 */staticconststructsnd_soc_acpi_adr_devicert1320_1_single_adr[] = {
{
.adr=0x000131025D132001ull,
.num_endpoints=1,
.endpoints=&spk_l_endpoint,
.name_prefix="rt1320-1"
}
};
staticconststructsnd_soc_acpi_link_adrptl_sdw_rt713_vb_l3_rt1320_l1[] =
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.
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.tplginlinux-firmware. The kernel falls back toskl_hda_dsp_generic→ users getonly HDMI output + the internal DMIC; no analog speakers, no analog mic, no headset.
Hardware layout reported by the kernel:
0x025d0x13200x025d0x0713Notable: the RT713's ACPI does not expose an
SDCA_FUNCTION_TYPE_SMART_MICfunction,which has two downstream effects (see "Findings" below).
Hardware
16Z90U-KU7WK(DMI sys_vendor=LG Electronics, product=16Z90U-KU7WK)8086:e428rev 01, subsystem1854:0567sof-audio-pci-intel-ptlSoftware
6.17.0-23-generic(Ubuntu HWE, mainline 6.17.0 + Canonical patches)20240318.git3b128b60-0ubuntu2.272023.12.1-1ubuntu1.101.2.10-1ubuntu5.10Reproduces on stock
6.17.0-14and6.17.0-23Ubuntu HWE kernels.Reproduction
dmesgexcerpt (verbatim):rt712-sdca sdw:0:3:025d:0713:01: rt712_sdca_io_init RT712 VB detected but no
SMART_MIC function exposed in ACPI
aplay -lshows only HDMI;arecord -lshows only DMIC Raw.Findings (after investigating locally)
I built a patched
snd-soc-acpi-intel-match+snd-soc-rt712-sdcaagainstthe 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_l13andptl_sdw_rt713_vb_l3_rt1320_l12, bothfor
aggregated 2-amp configs. Our hw has a single RT1320 on link 1 only, so
neither matches
(
link_maskisBIT(1) | BIT(3)here).2.
machine_checkrejects 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
trueonly when the codec exposesSDCA_FUNCTION_TYPE_SMART_MICinACPI. LG's
firmware on this 16Z90U does not — so the check returns false and the entry is
rejected.
Removing the
machine_checkmakes the match fire. (Side note: thisSMART_MICgate alsosilently affects future LG/OEM systems where the function isn't declared.)
3. Codec
aif3DAI not registered. Inrt712-sdca.c, the dmic component(and
therefore
rt712-sdca-aif3) is onlydevm_snd_soc_register_component()'dwhen the same
SDCA_QUIRKS_RT712_VBquirk passes — i.e. whenSMART_MICis exposed. Thetopology
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_MICexposure lets the codec come up cleanly. The codecdriver
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 repeated
soundwire_intel.link.3: SCP Msg trf timed outonce thecodec starts
responding.
sof-ptl-rt712-l3-rt1320-l3.tplg— fails witherror: 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-copiercan'tconnect"
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:{
{
.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.)
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
on
ASUS Zephyrus G16 GU606AP. Suggests this is a generation-wide gap; an
OEM-aware audit would help.
— the LNL ThinkPad TM2 RT713 / RT718 fix (acba93d7f3a8d) is the working
template for the PTL fix needed here.
— Dell PTL bundle currently staging RT712/RT713VB/RT722/RT1321 backports;
likely the right vehicle for the LG entry as well.