mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
ALSA: usb-audio: Rate-limit URB submission error at stream start
When two USB audio devices share a USB 2.0 hub (here a headset and a
microphone), there may not be enough isochronous bandwidth to start the
second stream, and usb_submit_urb() fails with -ENOSPC. PipeWire keeps
retrying to start the stream every ~20 ms, and every attempt logs
usb 2-1.1: cannot submit urb 0, error -28: not enough bandwidth
On my desktop this was printed up to 94 times per second and flooded
the kernel log.
Use usb_audio_err_ratelimited() for this message, as commit
2db2be5607 ("ALSA: usb-audio: Rate limit usb_set_interface error
reporting") already did for a neighbouring message in the same file.
Tested on that desktop (X79, Linux 7.3) with the headset and the
microphone on one hub, starting playback and capture on both for 20
seconds: the stock snd-usb-audio module printed the message 580 times,
the patched one printed it 50 times and suppressed the rest.
Signed-off-by: Denis Kulikov <dar1knessx@gmail.com>
Link: https://patch.msgid.link/20261025231849.148149-1-dar1knessx@gmail.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
9194d8dd41
commit
6b186281a1
|
|
@ -1642,9 +1642,9 @@ int snd_usb_endpoint_start(struct snd_usb_endpoint *ep)
|
|||
err = -ENODEV;
|
||||
if (err < 0) {
|
||||
if (!atomic_read(&ep->chip->shutdown))
|
||||
usb_audio_err(ep->chip,
|
||||
"cannot submit urb %d, error %d: %s\n",
|
||||
i, err, usb_error_string(err));
|
||||
usb_audio_err_ratelimited(ep->chip,
|
||||
"cannot submit urb %d, error %d: %s\n",
|
||||
i, err, usb_error_string(err));
|
||||
goto __error;
|
||||
}
|
||||
set_bit(i, &ep->active_mask);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user