|
@@ -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;
|