Audio stops working completely with random drops before

Open
#7,119 8 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
25/100
Issue type
Bug
Clarity
Needs clarification
Activity status
Stale
Tech stack
c, linux

Research direction

Start with the PipeWire loopback configuration in ~/.config/pipewire/pipewire.conf.d/30-loopback-spdif-to-dac.conf, the supplied kernel log, and the linked Debian issue. Reproduce the Raspberry Pi 3 setup and investigate the USB transfer failures and suppressed callbacks. Done means identifying the cause of the audio dropouts and documenting or implementing a validated fix.

Written by the indexing model from the issue text.

Description

Describe the bug

I'm running a pipewire loopback setup sending audio from a apple tv to hdmi spdif splitter to UR23 spdif to usb converter. Then looping back to Schiit modi 3 on USB in pipewire configs. Also another device sending rtp signal to the pi and looping back to Schiit modi 3. The issue is that audio has random dropouts as a small snapping sound every 10-15 minutes or so happens way more on the spdif route. Maybe an hour later completely failing and only a full reboot fixes the issue. Changing pipewire or alsa settings made no difference. Also in earlier kernel before 6.12 i had no issues with these setup on bookworm. One reason i upgraded from bookworm was because there was this glitching that started happening, alas they are both 6.12.

What made the issue more tolerable was that i had Docker running traefik and homebridge which I disabled completely. With these running the dropout glitches would happen every 10-30 seconds and audio dying maybe 30 minutes later with a full reboot needed to restore audio.

This debian kernel mailing list issue describes this issue in great detail and i have the almost the same errors when audio fails completely. The symptoms are exactly the same. The ineffective steps mentioned in the first message i have also tried. The pastebin report doesn't have the callback suppressions yet, but here below in the logs is from an earlier failure
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1108496

Steps to reproduce the behaviour
  1. Setup a pipewire loopback with a source and a sink in ~/.config/pipewire/pipewire.conf.d/30-loopback-spdif-to-dac.conf
context.modules = [
{
name = libpipewire-module-loopback
args = {
capture.props = {
node.name = "Loopback_Input"
node.target = "alsa_input.usb-HiFimeDIY_Audio_UR23_USB_SPDIF_Rx-01.iec958-stereo"
}
playback.props = {

node.name = "Loopback_Output"

node.target = "alsa_output.usb-Schiit_Audio_Schiit_Modi_3-00.analog-stereo"
}
}
}
]
Device (s)

Raspberry Pi 3 Mod. B

System

https://pastebin.com/qMYQZf5T

Logs
[23940.484943] retire_capture_urb: 4994 callbacks suppressed

[23940.930320] Transfer to device 4 endpoint 0x2 frame 1597 failed - FIQ reported NYET. Data may have been lost.

[23945.488945] retire_capture_urb: 4994 callbacks suppressed

[23950.492969] retire_capture_urb: 4994 callbacks suppressed

[23951.137316] Transfer to device 4 endpoint 0x2 frame 1564 failed - FIQ reported NYET. Data may have been lost.

[23955.496943] retire_capture_urb: 4994 callbacks suppressed
Additional context

No response

Dominant language
C
Stars
13.2k
Forks
5.5k
Avg merge
2d 21h
Merged PRs (30d)
21

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from raspberrypi/linux

All issues in raspberrypi/linux

Similar issues

More C issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.