2 Nov
2011
2 Nov
'11
11:26 a.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