2 Nov
2011
2 Nov
'11
12:26 p.m.
Daniel Mack wrote:
+void snd_usb_handle_sync_urb(struct snd_usb_endpoint *ep, +{
- if (snd_usb_endpoint_implict_feedback_sink(ep) && ep->use_count > 0) { ...
for (i = 0; i < ep->nurbs; i++)
if (!test_and_set_bit(i, &ep->active_mask)) {
out_urb = ep->urb[i].urb;
break;
}
if (!out_urb) {
snd_printk(KERN_ERR "Unable to find an urb for playback (nurbs %d)\n",
ep->nurbs);
AFAICS the driver tries for all URBS to be queued at all times. So if the HC driver completes a sync URB before the corresponding playback URB, it may be possible for this error to happen.
Regards, Clemens