Fix NuForce uDAC USB disconnects

Cheap Savitech chip firmware stalls on rapid SET_INTERFACE / sample-rate
renegotiation, eventually dropping off the USB bus and requiring a
physical replug. Two fixes, both scoped to this exact device only:

- snd_usb_audio quirk_flags (262a:10aa): fixed_rate + ctl_msg_delay +
  iface_delay, applied via /etc/modprobe.d during bootstrap.
- WirePlumber: disable idle-suspend for the device's ALSA node so
  PipeWire doesn't repeatedly reopen the stream during normal use.
This commit is contained in:
2026-08-16 09:49:14 +02:00
parent 6476c98e8f
commit 0ff35915ed
2 changed files with 39 additions and 0 deletions

View File

@@ -0,0 +1,23 @@
# The NuForce uDAC (Savitech chip) has flaky firmware: when PipeWire
# idles and then resumes its ALSA node, the device often fails the
# resulting SET_INTERFACE / sample-rate renegotiation with a USB stall
# (spa.alsa: set_hw_params: Broken pipe). Enough of these in a row make
# the device drop off the USB bus and require a physical replug.
#
# Keeping the node's hardware stream open (no idle-suspend) avoids the
# repeated renegotiation and stops the crashes.
monitor.alsa.rules = [
{
matches = [
{
node.name = "~alsa_output.usb-Nuforce_Inc\\._NuForce_USB_Audio-.*"
}
]
actions = {
update-props = {
session.suspend-timeout-seconds = 0
}
}
}
]