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
{{ message }}
Repository navigation
[BUG] Noisy DMIC recording with concurrent audio playback over speakers #9205
Describe the bug
We observed Noisy DMIC recordings with concurrent playback over speakers on the ARL-S platform.
The issue happens only with 4-channel Dmic recording but not with 2-channels. To Reproduce
start and stop DMIC recording and playback over speakers using arecord and aplay.
start playback over speakers: aplay -Dhw:0,0 -c 2 -r 48000
@lgirdwood attached is the WAV file, rename it to .wav. rec.txt
I could not reproduce the issue when capture starts 1st and playback 2nd. Also the issue always in last two channels 3-4.
@syedk008 could you please attach dmesg log with IPC payload data? (for full iteration - aplay - arecord - end)
Our validation will try to reproduce exactly the same scenario on ARL-S without linux driver.
I can confirm it works fine in basic dmic 4ch tests.
@syedk008 could you please attach dmesg log with IPC payload data? (for full iteration - aplay - arecord - end) Our validation will try to reproduce exactly the same scenario on ARL-S without linux driver.
I can confirm it works fine in basic dmic 4ch tests.
I did yesterday testing with the ARL-S device. Some observations:
Issues happen with both gcc and xcc builds
The DSP load seems to impact occurrence, more frequent corruption with higher load topologies. With DMIC capture in passthough but normal HDA playback pipelines the occurrence is low. Also generally the occurrence varies a lot, sometimes many successive runs are corrupt, sometimes it takes even with full topology a lot of runs to see the issue.
Switched DCCOMP off in DMIC blob. Also set capture IIR to passthrough with sof-ctl. When corruption happens, the DC level of corrupted signal shifts the noise to fully to positive PCM codes side.
Set in DMIC blob FIR coefficients to zero to force decimator output to zero. Then applied with DC channel registers a fixed offset to channels. With these forced DC values I was never able to see corruption, after some 20 runs of Karim's script. Just clean stream of constant PCM code values, except the start gain ramps. But this needs more runs to confirm this configuration never corripts, so not 100% sure about this.
With zephyrproject-rtos/zephyr#74414 this problem couldn't be reproduced any more so far. Since the noise when it appears with unpatched firmware begins directly at the start of a capture, it makes sense that modifying DMIC initialisation flow fixes the problem.
Fixed part of release v2.10 (a Zephyr fix so backported directly), removing the tag. Let's close once the Zephyr fix lands in SOF main via west.yml update (i.e. #9258 or similar).
Activity
lgirdwood commentedon Jun 7, 2024
@syedk008 is there any capture WAV file that you can share here ? Does it also matter if capture is started 1st then playback 2nd ?
syedk008 commentedon Jun 7, 2024
@lgirdwood attached is the WAV file, rename it to .wav.
rec.txt
I could not reproduce the issue when capture starts 1st and playback 2nd. Also the issue always in last two channels 3-4.
singalsu commentedon Jun 10, 2024
Can you please try this pass-through topology version:
0001-Tools-Topology2-Add-sof-hda-generic-ace1-4ch-48k-pas.patch.gz
singalsu commentedon Jun 10, 2024
Please try also this, 2ch with pdm1 (the controller that handles in 4ch channels 3-4):
0001-Tools-Topology2-Add-topology-sof-hda-generic-ace1-2c.patch.gz
syedk008 commentedon Jun 10, 2024
Issue is reproducible with this topology, but the frequency seems less.
syedk008 commentedon Jun 10, 2024
The issue is not reproducible with this topology.
abonislawski commentedon Jun 11, 2024
@syedk008 could you please attach dmesg log with IPC payload data? (for full iteration - aplay - arecord - end)
Our validation will try to reproduce exactly the same scenario on ARL-S without linux driver.
I can confirm it works fine in basic dmic 4ch tests.
syedk008 commentedon Jun 11, 2024
Attached are the dmesg logs.
dmesg_clean.txt
dmesg_noisy.txt
singalsu commentedon Jun 12, 2024
I did yesterday testing with the ARL-S device. Some observations:
singalsu commentedon Jun 18, 2024
Fix proposal: zephyrproject-rtos/zephyr#74414
west.yml: update Zephyr to sof/stable-v2.10 0f7a01d360e
west.yml: update Zephyr to sof/stable-v2.10 0f7a01d360e
lyakh commentedon Jun 25, 2024
With zephyrproject-rtos/zephyr#74414 this problem couldn't be reproduced any more so far. Since the noise when it appears with unpatched firmware begins directly at the start of a capture, it makes sense that modifying DMIC initialisation flow fixes the problem.
kv2019i commentedon Jun 28, 2024
Fixed part of release v2.10 (a Zephyr fix so backported directly), removing the tag. Let's close once the Zephyr fix lands in SOF main via west.yml update (i.e. #9258 or similar).
west.ytml: update to Zephyr 650227d8c47f
west.ytml: update to Zephyr 650227d8c47f
kv2019i commentedon Jul 4, 2024
Fix merged via #9278
west.ytml: update to Zephyr 650227d8c47f