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.
24 lines
709 B
Plaintext
24 lines
709 B
Plaintext
# 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
|
|
}
|
|
}
|
|
}
|
|
]
|