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 d6e2bb49c59c..060dccb9ec75 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, | |||
197 | /* no data provider, so send silence */ | 197 | /* no data provider, so send silence */ |
198 | unsigned int offs = 0; | 198 | unsigned int offs = 0; |
199 | for (i = 0; i < ctx->packets; ++i) { | 199 | for (i = 0; i < ctx->packets; ++i) { |
200 | int counts = ctx->packet_size[i]; | 200 | int counts; |
201 | |||
202 | if (ctx->packet_size[i]) | ||
203 | counts = ctx->packet_size[i]; | ||
204 | else | ||
205 | counts = snd_usb_endpoint_next_packet_size(ep); | ||
206 | |||
201 | urb->iso_frame_desc[i].offset = offs * ep->stride; | 207 | urb->iso_frame_desc[i].offset = offs * ep->stride; |
202 | urb->iso_frame_desc[i].length = counts * ep->stride; | 208 | urb->iso_frame_desc[i].length = counts * ep->stride; |
203 | offs += counts; | 209 | offs += counts; |