-
Notifications
You must be signed in to change notification settings - Fork 349
Description
Describe the bug
On a Lenovo Z16 Gen 2 with AMD ACP audio, internal microphone capture works after reboot, but stops working after a few hours. Playback continues to function normally. The microphone device remains present, and there are no relevant dmesg errors. Restarting PipeWire, WirePlumber, or unloading/reloading snd_sof modules does not recover capture. Only a full reboot restores correct operation.
Here is the an example of the mic output. Chatgpt claims that this suggests DSP pipeline corruption and the values are saturated because of failed decimation, because of alternating 0x7fffffff and 0x80000000 with interspersed non-saturaed values.
$ arecord -D hw:2,0 -f S32_LE -r 48000 -c 2 -t raw -d 10 output.raw
$ hexdump -C output.raw
00000000 ff ff ff 7f 00 00 00 80 00 00 00 80 00 00 00 80 |................|
00000010 ff ff ff 7f ff ff ff 7f 00 00 00 80 00 00 00 80 |................|
*
000000a0 3a 34 8e a5 f2 d6 a1 a5 ff ff ff 7f ff ff ff 7f |:4..............|
000000b0 de 47 6a 1e f1 3f 69 1e 88 8f cb f0 3b 69 cc f0 |.Gj..?i.....;i..|
000000c0 b7 72 86 1c 17 d3 85 1c ff ff ff 7f ff ff ff 7f |.r..............|
000000d0 00 00 00 80 00 00 00 80 ff ff ff 7f ff ff ff 7f |................|
*
00000150 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 |................|
*
003a9800
I also looked at whether or not the relevant devices were powered down, but it seems they are not powered down:
$ cat /sys/bus/platform/devices/*acp*/power/runtime_status
unsupported
unsupported
active
unsupported
$ ls /sys/bus/platform/devices/*acp*/power/runtime_status
/sys/bus/platform/devices/acpi-cpufreq/power/runtime_status /sys/bus/platform/devices/thinkpad_acpi/power/runtime_status
/sys/bus/platform/devices/acp_ps_mach/power/runtime_status /sys/bus/platform/devices/acp_ps_pdm_dma.0/power/runtime_status
$ cat /sys/bus/platform/devices/*acp*/power/control
on
on
on
on
To Reproduce
Just reboot and wait for a while.
Reproduction Rate
Every reboot, after a few hours.
Environment
Latest Debian unstable, kernel 6.18.2-1~exp1