Pi 5: TLV320AIC3104 (ReSpeaker 2-Mics HAT V2.0) PCM open() returns EINVAL on 6.18.50, works on 6.18.39
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 48/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- c, linux
- Lĩnh vực
- audio-video-rtc, operating-systems
Hướng nghiên cứu
Start by comparing the 6.18.39 and 6.18.50 changes under sound/soc/dwc, especially d1140e16d6, which the report identifies as a possible cause. Reproduce with the listed arecord command on both kernels, then investigate why opening the PCM device returns EINVAL on 6.18.50. Done when capture and playback PCM devices open on the newer kernel.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Describe the bug
After upgrading from 1:6.18.39-1+rpt1 to 1:6.18.50-1+rpt1 (linux-image-6.18.50+rpt-rpi-2712), opening either PCM of an I2S sound card on RP1 fails with EINVAL. The card is a TLV320AIC3104 codec on a simple-audio-card. Both capture and playback fail, raw hw: included. The card still enumerates normally in /proc/asound/cards, and the kernel logs nothing when the open fails.
Booting the 6.18.39 kernel again, with the same rootfs, overlay and userspace (config.txt differs only in the kernel=/initramfs lines), fixes it completely.
Steps to reproduce
- Pi 5 with a Seeed ReSpeaker 2-Mics Pi HAT V2.0 (TLV320AIC3104 at i2c-1
0x18),dtoverlay=respeaker-2mic-v2_0. The overlay is compiled from Seeed'srespeaker-2mic-v2_0-overlay.dtsand is unchanged between the two kernels. - Boot
6.18.50+rpt-rpi-2712. - Run
arecord -D hw:CARD=seeed2micvoicec,DEV=0 -f S16_LE -c 2 -r 48000 -d 1 /dev/null
On 6.18.50:
arecord: main:850: audio open error: Invalid argument
The same happens at -r 16000, through plughw:, and with aplay (playback).
strace shows that the syscall itself is what fails, not alsa-lib:
openat(AT_FDCWD, "/dev/snd/pcmC0D0c", O_RDWR|O_NONBLOCK|O_CLOEXEC) = -1 EINVAL (Invalid argument)
Nothing holds the device (lsof /dev/snd/* is empty), /proc/asound/card0/pcm0c/sub0/status reads closed, and dmesg is empty after the attempt.
Expected behaviour
The PCM opens, as it does on 6.18.39. On 6.18.39 the same command records, playback works, and with capture running at 16 kHz aplay --dump-hw-params reports FORMAT: S16_LE S24_LE S32_LE, CHANNELS: 2, RATE: 16000 (the rate is limited by the running capture stream).
Possible cause (not verified)
The only change under sound/soc/dwc between the two builds appears to be d1140e16d6 "ASoC: dwc: Raise sample rate limit to 768kHz", which changes dw_configure_dai_by_dt() from SNDRV_PCM_RATE_8000_384000 to SNDRV_PCM_RATE_8000_768000. I haven't built a kernel with it reverted, so this is only a suspect. 6.18.50 also contains stable merges that I haven't ruled out. 8946ad8626 ("Revert i2s_stop to the upstream version") is not in 6.18.50.
I'm happy to test a build with d1140e16d6 reverted, or an rpi-update kernel, if that helps.
Device (s)
Raspberry Pi 5
System
- Raspberry Pi 5 Model B Rev 1.0
- Raspberry Pi OS (trixie), 64-bit
- Bad:
Linux 6.18.50+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.18.50-1+rpt1(Linux commit cff533aec2fa) - Good:
Linux 6.18.39+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.18.39-1+rpt1 (2026-07-29) - Firmware:
2026/09/25 15:59:09, version1accd665 (release) (embedded) - Other: an out-of-tree Hailo PCIe driver (
hailo1x_pci) is loaded on both kernels. It does not touch audio.
Logs
dmesg shows nothing at open time. On both kernels, boot shows the codec and card probing normally, and the card appears in /proc/asound/cards as 0 [seeed2micvoicec]: simple-card - seeed2micvoicec.
Additional context
Workaround: pin the old kernel in config.txt with kernel=kernel_2712-6.18.39.img and initramfs initramfs_2712-6.18.39 followkernel, using copies of the 6.18.39 files.
- Ngôn ngữ chính
- C
- Star
- 13.2k
- Fork
- 5.5k
- Merge trung bình
- 2 ngày 4 giờ
- Pull request đã merge (30 ngày)
- 20
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của raspberrypi/linux
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
raspberrypi/linux#7415 · 2 bình luận · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
rp1-cfe doesn't forward V4L2_EVENT_SOURCE_CHANGE event from csi-2 sensor driver to userspace appĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
raspberrypi/linux#7399 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Documention update requiredĐang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 82/100
raspberrypi/linux#7357 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
raspberrypi/linux#7054 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 Hơn một tuần Mức phù hợp với người mới 15/100
raspberrypi/linux#7678 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của raspberrypi/linux
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
UNIVERSE-HPC/course-material#283 ·
-
bug C/C++ code
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 78/100
webarkit/WebARKitLib#85 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 75/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
Maintainer thường phản hồi trong vòng 1 ngày
-
SD Card Size correctionĐang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 72/100