Skip to content

nocodec SSP1 fails if kernel built with CONFIG_SND_SOC_SOF_NOCODEC_DEBUG_SUPPORT=n #5308

@kv2019i

Description

@kv2019i

Combination of kernel built with CONFIG_SND_SOC_SOF_NOCODEC_DEBUG_SUPPORT=n (i.e. a normal kernel) and
following kernel commit fe88788 ("ASoC: SOF: topology: Use partial match for connecting DAI link and DAI widget"), causes streaming on PCM "Port1" to fail 100%.

This has not been noticed in CI as the DUTs configured for nocodec use kernels built with NOCODEC_DEBUG_SUPPORT.

What happens is "mach_params->num_dai_drivers" is set to 15 (instead of 8 for nocodec kernel). The DAI link list is then

2025-01-24T11:39:06.763073+00:00 kernel: sof-audio-pci-intel-ptl 0000:00:1f.3: ASoC: Registered DAI 'SSP0 Pin'
2025-01-24T11:39:06.763266+00:00 kernel: sof-audio-pci-intel-ptl 0000:00:1f.3: ASoC: Registered DAI 'SSP1 Pin'
2025-01-24T11:39:06.763459+00:00 kernel: sof-audio-pci-intel-ptl 0000:00:1f.3: ASoC: Registered DAI 'SSP2 Pin'
2025-01-24T11:39:06.763639+00:00 kernel: sof-audio-pci-intel-ptl 0000:00:1f.3: ASoC: Registered DAI 'SSP3 Pin'
2025-01-24T11:39:06.763829+00:00 kernel: sof-audio-pci-intel-ptl 0000:00:1f.3: ASoC: Registered DAI 'SSP4 Pin'
2025-01-24T11:39:06.764021+00:00 kernel: sof-audio-pci-intel-ptl 0000:00:1f.3: ASoC: Registered DAI 'SSP5 Pin'
2025-01-24T11:39:06.764211+00:00 kernel: sof-audio-pci-intel-ptl 0000:00:1f.3: ASoC: Registered DAI 'DMIC01 Pin'
2025-01-24T11:39:06.764403+00:00 kernel: sof-audio-pci-intel-ptl 0000:00:1f.3: ASoC: Registered DAI 'DMIC16k Pin'
2025-01-24T11:39:06.764700+00:00 kernel: sof-audio-pci-intel-ptl 0000:00:1f.3: ASoC: Registered DAI 'iDisp1 Pin'
2025-01-24T11:39:06.764949+00:00 kernel: sof-audio-pci-intel-ptl 0000:00:1f.3: ASoC: Registered DAI 'iDisp2 Pin'
2025-01-24T11:39:06.765180+00:00 kernel: sof-audio-pci-intel-ptl 0000:00:1f.3: ASoC: Registered DAI 'iDisp3 Pin'
2025-01-24T11:39:06.765404+00:00 kernel: sof-audio-pci-intel-ptl 0000:00:1f.3: ASoC: Registered DAI 'iDisp4 Pin'
2025-01-24T11:39:06.765619+00:00 kernel: sof-audio-pci-intel-ptl 0000:00:1f.3: ASoC: Registered DAI 'Analog CPU DAI'
2025-01-24T11:39:06.765816+00:00 kernel: sof-audio-pci-intel-ptl 0000:00:1f.3: ASoC: Registered DAI 'Digital CPU DAI'
2025-01-24T11:39:06.766018+00:00 kernel: sof-audio-pci-intel-ptl 0000:00:1f.3: ASoC: Registered DAI 'Alt Analog CPU DAI'
2025-01-24T11:39:06.766212+00:00 kernel: snd_sof:sof_machine_register: sof-audio-pci-intel-ptl 0000:00:1f.3: created machine sof-nocodec
2025-01-24T11:39:06.766397+00:00 kernel: snd_sof_pci:sof_pci_probe_complete: sof-audio-pci-intel-ptl 0000:00:1f.3: Completing SOF PCI probe
2025-01-24T11:39:06.766586+00:00 kernel: sof-nocodec sof-nocodec: info: override BE DAI link NoCodec-0
2025-01-24T11:39:06.768354+00:00 kernel: sof-nocodec sof-nocodec: info: override BE DAI link NoCodec-1
2025-01-24T11:39:06.768499+00:00 kernel: sof-nocodec sof-nocodec: info: override BE DAI link NoCodec-2
2025-01-24T11:39:06.768620+00:00 kernel: sof-nocodec sof-nocodec: info: override BE DAI link NoCodec-3
2025-01-24T11:39:06.768744+00:00 kernel: sof-nocodec sof-nocodec: info: override BE DAI link NoCodec-4
2025-01-24T11:39:06.768869+00:00 kernel: sof-nocodec sof-nocodec: info: override BE DAI link NoCodec-5
2025-01-24T11:39:06.768993+00:00 kernel: sof-nocodec sof-nocodec: info: override BE DAI link NoCodec-6
2025-01-24T11:39:06.769121+00:00 kernel: sof-nocodec sof-nocodec: info: override BE DAI link NoCodec-7
2025-01-24T11:39:06.769231+00:00 kernel: sof-nocodec sof-nocodec: info: override BE DAI link NoCodec-8
2025-01-24T11:39:06.769348+00:00 kernel: sof-nocodec sof-nocodec: info: override BE DAI link NoCodec-9
2025-01-24T11:39:06.769464+00:00 kernel: sof-nocodec sof-nocodec: info: override BE DAI link NoCodec-10
2025-01-24T11:39:06.769577+00:00 kernel: sof-nocodec sof-nocodec: info: override BE DAI link NoCodec-11
2025-01-24T11:39:06.769693+00:00 kernel: sof-nocodec sof-nocodec: info: override BE DAI link NoCodec-12
2025-01-24T11:39:06.769808+00:00 kernel: sof-nocodec sof-nocodec: info: override BE DAI link NoCodec-13
2025-01-24T11:39:06.769919+00:00 kernel: sof-nocodec sof-nocodec: info: override BE DAI link NoCodec-14

Now when one tries to open Port1 for playback, kernel hits this error:

2025-01-23T12:40:49.280965+00:00 kernel: snd_sof:sof_widget_ready: sof-audio-pci-intel-ptl 0000:00:1f.3: tplg: widget 19 (dai-copier.SSP.NoCodec-1.capture) is ready [type: 28, pipe: 10, pins: 1 / 1, stream: NoCodec-1]
2025-01-23T12:40:49.281230+00:00 kernel: snd_sof:sof_connect_dai_widget: sof-audio-pci-intel-ptl 0000:00:1f.3: tplg: connected widget dai-copier.SSP.NoCodec-1.capture -> DAI link NoCodec-1
2025-01-23T12:40:49.281478+00:00 kernel: snd_sof:sof_connect_dai_widget: sof-audio-pci-intel-ptl 0000:00:1f.3: tplg: connected widget dai-copier.SSP.NoCodec-1.capture -> DAI link NoCodec-10
2025-01-23T12:40:49.281729+00:00 kernel: snd_sof:sof_connect_dai_widget: sof-audio-pci-intel-ptl 0000:00:1f.3: tplg: connected widget dai-copier.SSP.NoCodec-1.capture -> DAI link NoCodec-11
2025-01-23T12:40:49.281975+00:00 kernel: snd_sof:sof_connect_dai_widget: sof-audio-pci-intel-ptl 0000:00:1f.3: tplg: connected widget dai-copier.SSP.NoCodec-1.capture -> DAI link NoCodec-12
2025-01-23T12:40:49.282220+00:00 kernel: snd_sof:sof_connect_dai_widget: sof-audio-pci-intel-ptl 0000:00:1f.3: tplg: connected widget dai-copier.SSP.NoCodec-1.capture -> DAI link NoCodec-13
2025-01-23T12:40:49.282464+00:00 kernel: snd_sof:sof_connect_dai_widget: sof-audio-pci-intel-ptl 0000:00:1f.3: tplg: connected widget dai-copier.SSP.NoCodec-1.capture -> DAI link NoCodec-14

IOW, stream name of "NoCodec-1" matches multiple DAI links due to the added partial match logic in kernel.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions