Summary
On kernel 7.1.x the sof_sdw card never registers on this Dell laptop, so the internal speakers, headphone jack and microphones are all missing. Only the NVIDIA HDMI HDA card exists.
The chain, verified against the 7.1 source:
- The BIOS SDCA properties for the CS42L43 declare only a
UAJ (type 6) and a HID (type 10) function. No SmartMic/SimpleMic/SpeakerMic function is declared. NHLT reports 0 PCH DMICs.
is_sdca_endpoint_present() in sound/soc/sdw_utils/soc_sdw_utils.c therefore skips the cs42l43-dp1 (SOC_SDW_DAI_TYPE_MIC) endpoint, so no Capture-SmartMic DAI link is created.
- The ACPI match entry for
sof-arl-cs42l43-l0-cs35l56-l23.tplg sets .get_function_tplg_files = sof_sdw_get_tplg_files, so function topologies are tried first. NHLT also advertises a BT offload SSP link (bt_link_mask 0x4), so create_bt_dailinks() adds SSP2-BT. sof_sdw_get_tplg_files() has no fragment for that link name and, since best_effort is false (the topology name is not dummy), returns 0 and falls back to the monolithic topology. All the split topologies that would have been needed (sof-sdca-jack-id0, sof-sdca-*amp-id2, sof-hdmi-pcm5-id*) are present on disk.
- The monolithic
sof-arl-cs42l43-l0-cs35l56-l23.tplg (sof-bin v2025.12.2, built with SDW_DMIC=1) hard-requires the Capture-SmartMic stream, so topology load fails with -22 and snd_soc_register_card fails.
So on this platform there is currently no combination that can produce a card: the monolithic topology always needs the codec mic, and the kernel always drops the codec mic based on the BIOS SDCA data.
Note: the same model is reported working on Ubuntu's linux-oem 6.17 kernel (https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2132259, internal speakers OK, same topology file name), which suggests a regression somewhere between 6.17 and 7.1, possibly in how completely the SDCA function list of this BIOS is now parsed. I have not bisected this.
System
| Item |
Value |
| Machine |
Dell Inc. Dell Pro Max 14 Premium MA14250, board 085XPR rev A00, DMI_PRODUCT_SKU 0D32 |
| BIOS |
1.9.0 (2026-03-31), latest per LVFS |
| Audio controller |
Intel Core Ultra 200H Series HD Audio 8086:7728, subsystem 1028:0d32, driver sof-audio-pci-intel-mtl |
| SoundWire peripherals |
link 0: CS42L43 (sdw:0:0:01fa:4243:01); link 2: 2x CS35L56 (01fa:3556, uid 2 and 3); link 3: 2x CS35L56 (uid 0 and 1) |
| NHLT |
BT link mask 0x4, DMICs 0 |
| Kernel |
Fedora 44, 7.1.8-200.fc44.x86_64 (also broken on 7.1.6, 7.1.7); no relevant changes in 7.1.y up to 7.1.13 |
| SOF firmware |
alsa-sof-firmware-2025.12.2-1.fc44 (sof-bin v2025.12.2), booted firmware 2.14.1.1 |
| Topology |
intel/sof-ipc4-tplg/sof-arl-cs42l43-l0-cs35l56-l23.tplg, ABI 3:29:1 (kernel ABI 3:23:1) |
| alsa-ucm |
1.2.16.1 |
| PipeWire / WirePlumber |
1.6.8 / 0.5.14 |
/proc/asound/cards |
only 0 [NVidia]: HDA-Intel - HDA NVidia |
dmesg (audio-related lines, one boot)
snd_hda_intel 0000:00:1f.3: SoundWire enabled on CannonLake+ platform, using SOF driver
sof-audio-pci-intel-mtl 0000:00:1f.3: enabling device (0000 -> 0002)
sof-audio-pci-intel-mtl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100
sof-audio-pci-intel-mtl 0000:00:1f.3: bound 0000:00:02.0 (ops intel_audio_component_bind_ops [i915])
sof-audio-pci-intel-mtl 0000:00:1f.3: use msi interrupt mode
acpi device:2b: SDCA function UAJ (type 6) at 0x3
acpi device:2c: SDCA function HID (type 10) at 0x4
acpi device:27: SDCA function SmartAmp (type 1) at 0x1
acpi device:29: SDCA function SmartAmp (type 1) at 0x1
acpi device:23: SDCA function SmartAmp (type 1) at 0x1
acpi device:25: SDCA function SmartAmp (type 1) at 0x1
sof-audio-pci-intel-mtl 0000:00:1f.3: hda codecs found, mask 4
sof-audio-pci-intel-mtl 0000:00:1f.3: NHLT device BT(0) detected, ssp_mask 0x4
sof-audio-pci-intel-mtl 0000:00:1f.3: BT link detected in NHLT tables: 0x4
sof-audio-pci-intel-mtl 0000:00:1f.3: DMICs detected in NHLT tables: 0
sof-audio-pci-intel-mtl 0000:00:1f.3: Firmware paths/files for ipc type 1:
sof-audio-pci-intel-mtl 0000:00:1f.3: Firmware file: intel/sof-ipc4/arl/sof-arl.ri
sof-audio-pci-intel-mtl 0000:00:1f.3: Firmware lib path: intel/sof-ipc4-lib/arl
sof-audio-pci-intel-mtl 0000:00:1f.3: Topology file: function topologies
sof-audio-pci-intel-mtl 0000:00:1f.3: Loaded firmware library: ADSPFW, version: 2.14.1.1
sof-audio-pci-intel-mtl 0000:00:1f.3: Booted firmware version: 2.14.1.1
cs42l43 sdw:0:0:01fa:4243:01: devid: 0x042a43, rev: 0xa1, otp: 0x03
cs35l56 sdw:0:3:01fa:3556:01:1: Cirrus Logic CS35L56 Rev B0 OTP3 fw:3.4.4 (patched=0)
cs35l56 sdw:0:2:01fa:3556:01:3: Cirrus Logic CS35L56 Rev B0 OTP3 fw:3.4.4 (patched=0)
cs35l56 sdw:0:3:01fa:3556:01:0: Cirrus Logic CS35L56 Rev B0 OTP3 fw:3.4.4 (patched=0)
cs35l56 sdw:0:2:01fa:3556:01:2: Cirrus Logic CS35L56 Rev B0 OTP3 fw:3.4.4 (patched=0)
sof-audio-pci-intel-mtl 0000:00:1f.3: loading topology: intel/sof-ipc4-tplg/sof-arl-cs42l43-l0-cs35l56-l23.tplg
sof-audio-pci-intel-mtl 0000:00:1f.3: Topology: ABI 3:29:1 Kernel ABI 3:23:1
sof-audio-pci-intel-mtl 0000:00:1f.3: error: can't connect DAI alh-copier.Capture-SmartMic.0 stream Capture-SmartMic
sof-audio-pci-intel-mtl 0000:00:1f.3: failed to add widget type 29 name : alh-copier.Capture-SmartMic.0 stream Capture-SmartMic
sof_sdw sof_sdw: ASoC: failed to load widget alh-copier.Capture-SmartMic.0
sof_sdw sof_sdw: ASoC: topology: could not load header: -22
sof-audio-pci-intel-mtl 0000:00:1f.3: tplg intel/sof-ipc4-tplg/sof-arl-cs42l43-l0-cs35l56-l23.tplg component load failed -22
sof-audio-pci-intel-mtl 0000:00:1f.3: error: failed to load DSP topology -22
sof-audio-pci-intel-mtl 0000:00:1f.3: ASoC error (-22): at snd_soc_component_probe() on 0000:00:1f.3
sof_sdw sof_sdw: ASoC: failed to instantiate card -22
sof_sdw sof_sdw: error -EINVAL: snd_soc_register_card failed -22
sof_sdw sof_sdw: probe with driver sof_sdw failed with error -22
The "Failed to open topology file" warning from sof_sdw_get_tplg_files() does not appear, and every split topology it would ask for exists in /lib/firmware/intel/sof-ipc4-tplg/ (sof-sdca-jack-id0, sof-sdca-1amp..4amp-id2, sof-sdca-mic-id4, sof-hdmi-pcm5-id2..7), so the fallback to the monolithic file is the return 0 on the unsupported SSP2-BT dai link, not a missing file.
Additional facts
- ACPI child nodes under the CS42L43 (
\_SB_.PC00.HDAS.IDA_.SNDW.SWD6): only AF3B (_ADR 0x3, UAJ) and AF04 (_ADR 0x4, HID). The codec exposes dp1_src .. dp4_src and dp5_sink/dp6_sink ports.
- SKU
0D32 is not in sof_sdw_quirk_table or sof_sdw_ssid_quirk_table (7.1 and current mainline).
- Module parameters are at defaults (
disable_function_topology=N, tplg_filename unset, no snd_soc_sof_sdw.quirk).
- Same failure on every boot since at least 2026-08-24, kernels 7.1.6, 7.1.7 and 7.1.8.
- Mainline master (checked 2026-09-03) still has the same
is_sdca_endpoint_present() logic, the same non-best-effort return 0 in sof_sdw_get_tplg_files() for SSP*-BT, and no 0D32 quirk, so I would not expect 7.2/7.3 to behave differently.
- I have not tested any workaround (for example forcing the best-effort function-topology path) and am reporting the unmodified system.
Possible fixes (for discussion)
- Keep the CS42L43 mic DAI on this SKU, either via a quirk for Dell
0D32 or by not letting the SDCA function list override the native cs42l43 driver's DAI set when the BIOS omits the mic function.
- Alternatively, let
sof_sdw_get_tplg_files() tolerate the SSP*-BT link (treat it as best-effort) so a card can be built from the split topologies without the codec mic.
- Or ship a monolithic
sof-arl-cs42l43-l0-cs35l56-l23 variant without SDW_DMIC, selected when no mic function is present.
I can provide alsa-info, an acpidump, and test patches on this machine on request.
Summary
On kernel 7.1.x the
sof_sdwcard never registers on this Dell laptop, so the internal speakers, headphone jack and microphones are all missing. Only the NVIDIA HDMI HDA card exists.The chain, verified against the 7.1 source:
UAJ(type 6) and aHID(type 10) function. NoSmartMic/SimpleMic/SpeakerMicfunction is declared. NHLT reports 0 PCH DMICs.is_sdca_endpoint_present()insound/soc/sdw_utils/soc_sdw_utils.ctherefore skips thecs42l43-dp1(SOC_SDW_DAI_TYPE_MIC) endpoint, so noCapture-SmartMicDAI link is created.sof-arl-cs42l43-l0-cs35l56-l23.tplgsets.get_function_tplg_files = sof_sdw_get_tplg_files, so function topologies are tried first. NHLT also advertises a BT offload SSP link (bt_link_mask 0x4), socreate_bt_dailinks()addsSSP2-BT.sof_sdw_get_tplg_files()has no fragment for that link name and, sincebest_effortis false (the topology name is notdummy), returns 0 and falls back to the monolithic topology. All the split topologies that would have been needed (sof-sdca-jack-id0,sof-sdca-*amp-id2,sof-hdmi-pcm5-id*) are present on disk.sof-arl-cs42l43-l0-cs35l56-l23.tplg(sof-bin v2025.12.2, built withSDW_DMIC=1) hard-requires theCapture-SmartMicstream, so topology load fails with-22andsnd_soc_register_cardfails.So on this platform there is currently no combination that can produce a card: the monolithic topology always needs the codec mic, and the kernel always drops the codec mic based on the BIOS SDCA data.
Note: the same model is reported working on Ubuntu's
linux-oem6.17 kernel (https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2132259, internal speakers OK, same topology file name), which suggests a regression somewhere between 6.17 and 7.1, possibly in how completely the SDCA function list of this BIOS is now parsed. I have not bisected this.System
DMI_PRODUCT_SKU0D328086:7728, subsystem1028:0d32, driversof-audio-pci-intel-mtlsdw:0:0:01fa:4243:01); link 2: 2x CS35L56 (01fa:3556, uid 2 and 3); link 3: 2x CS35L56 (uid 0 and 1)0x4, DMICs07.1.8-200.fc44.x86_64(also broken on 7.1.6, 7.1.7); no relevant changes in 7.1.y up to 7.1.13alsa-sof-firmware-2025.12.2-1.fc44(sof-bin v2025.12.2), booted firmware2.14.1.1intel/sof-ipc4-tplg/sof-arl-cs42l43-l0-cs35l56-l23.tplg, ABI 3:29:1 (kernel ABI 3:23:1)/proc/asound/cards0 [NVidia]: HDA-Intel - HDA NVidiadmesg (audio-related lines, one boot)
The "Failed to open topology file" warning from
sof_sdw_get_tplg_files()does not appear, and every split topology it would ask for exists in/lib/firmware/intel/sof-ipc4-tplg/(sof-sdca-jack-id0,sof-sdca-1amp..4amp-id2,sof-sdca-mic-id4,sof-hdmi-pcm5-id2..7), so the fallback to the monolithic file is thereturn 0on the unsupportedSSP2-BTdai link, not a missing file.Additional facts
\_SB_.PC00.HDAS.IDA_.SNDW.SWD6): onlyAF3B(_ADR 0x3, UAJ) andAF04(_ADR 0x4, HID). The codec exposesdp1_src..dp4_srcanddp5_sink/dp6_sinkports.0D32is not insof_sdw_quirk_tableorsof_sdw_ssid_quirk_table(7.1 and current mainline).disable_function_topology=N,tplg_filenameunset, nosnd_soc_sof_sdw.quirk).is_sdca_endpoint_present()logic, the same non-best-effortreturn 0insof_sdw_get_tplg_files()forSSP*-BT, and no0D32quirk, so I would not expect 7.2/7.3 to behave differently.Possible fixes (for discussion)
0D32or by not letting the SDCA function list override the nativecs42l43driver's DAI set when the BIOS omits the mic function.sof_sdw_get_tplg_files()tolerate theSSP*-BTlink (treat it as best-effort) so a card can be built from the split topologies without the codec mic.sof-arl-cs42l43-l0-cs35l56-l23variant withoutSDW_DMIC, selected when no mic function is present.I can provide
alsa-info, anacpidump, and test patches on this machine on request.