[alsa-devel] [PATCH 1/5] ALSA: snd-usb: implement new endpoint streaming model

Clemens Ladisch clemens at ladisch.de
Wed Nov 2 11:26:37 CET 2011


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


More information about the Alsa-devel mailing list