-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Description
I am looking at a device driver issue ( respeaker/seeed-voicecard#290 ); the later part of the investigation was all conducted with a fresh raspios_lite_armhf-2021-03-25/2021-03-04-raspios-buster-armhf-lite.zip, just swapping the kernel: raspberrypi-kernel_1.20210303-1 (5.10.17) and raspberrypi-kernel_1.20210108-1 (5.4.83), and the last of the rpi-5.4.y (also 5.4.83 but a dozen of commits after raspberrypi-kernel_1.20210108-1), rpi-5.5.y, rpi-5.6.y I built. The driver code does not change between 5.4 and 5.6, so I am 100% sure it is a regression within the raspberry pi kernel between 5.4.83 and 5.5.19 (the last of rpi-5.4.y and rpi-5.5.y). I just don't know what caused it yet.
Here is what I know so far:
-
the breakage happens between 5.4.83 and 5.5.19 (the last of rpi-5.4.y and rpi-5.5.y).
-
snd soc core seems to finish loading the driver even in 5.10.x - The driver is able to reach the end of
soc_init_pcm_runtime()->soc_new_pcm()insnd_socsucessfully even in 5.10.x . I chased a red herring through soc-pcm due to 1d5cd52 ( a message changed fromdev_infotodev_dbgand got suppressed). -
it seems to be devicetree / overlay related, since the 6-mic device and the 4-mics device share some hardware, and the 4-mic is still working fine. Also I accidentally used the 5.6 device tree for rpi-5.5.y and rpi-5.4.y (just missed the copy step whle downgrading). 5.5.x was able to boot with the 5.6 device tree, but 5.4 failed. (I fixed it by mounting on desktop linux, looked around, realized the problem, and copied the correct dtb and re-powered). So there are definitely some incompatibility between 5.4 and 5.5/5.6 in the device tree, even for the same hardware.
Trying to record with arecord results in pcm_read:...: read error: system call interrupted, and it seems to block on the system call from alsa.
Since the problem now boils down to differences between the last of rpi-5.4.y and rpi-5.5.y, and I can go and see what's the difference is, but is there any help / tips I can get ? Especially in device tree / soc area.