Skip to content

[regression] alsa system call blocks on record between 5.4.83 and 5.5.19 #4279

@HinTak

Description

@HinTak

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() in snd_soc sucessfully even in 5.10.x . I chased a red herring through soc-pcm due to 1d5cd52 ( a message changed from dev_info to dev_dbg and 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions