diff options
Diffstat (limited to 'sound/usb/endpoint.c')
| -rw-r--r-- | sound/usb/endpoint.c | 8 | 
1 files changed, 7 insertions, 1 deletions
diff --git a/sound/usb/endpoint.c b/sound/usb/endpoint.c index d6e2bb49c59..060dccb9ec7 100644 --- a/sound/usb/endpoint.c +++ b/sound/usb/endpoint.c @@ -197,7 +197,13 @@ static void prepare_outbound_urb(struct snd_usb_endpoint *ep,  			/* no data provider, so send silence */  			unsigned int offs = 0;  			for (i = 0; i < ctx->packets; ++i) { -				int counts = ctx->packet_size[i]; +				int counts; + +				if (ctx->packet_size[i]) +					counts = ctx->packet_size[i]; +				else +					counts = snd_usb_endpoint_next_packet_size(ep); +  				urb->iso_frame_desc[i].offset = offs * ep->stride;  				urb->iso_frame_desc[i].length = counts * ep->stride;  				offs += counts;  |