aboutsummaryrefslogtreecommitdiffstats
path: root/sound/usb/caiaq/caiaq-audio.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/usb/caiaq/caiaq-audio.c')
-rw-r--r--sound/usb/caiaq/caiaq-audio.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/sound/usb/caiaq/caiaq-audio.c b/sound/usb/caiaq/caiaq-audio.c
index 577b1129de0e..08d51e0c9fea 100644
--- a/sound/usb/caiaq/caiaq-audio.c
+++ b/sound/usb/caiaq/caiaq-audio.c
@@ -377,6 +377,9 @@ static void read_in_urb_mode2(struct snd_usb_caiaqdev *dev,
377 377
378 for (stream = 0; stream < dev->n_streams; stream++, i++) { 378 for (stream = 0; stream < dev->n_streams; stream++, i++) {
379 sub = dev->sub_capture[stream]; 379 sub = dev->sub_capture[stream];
380 if (dev->input_panic)
381 usb_buf[i] = 0;
382
380 if (sub) { 383 if (sub) {
381 struct snd_pcm_runtime *rt = sub->runtime; 384 struct snd_pcm_runtime *rt = sub->runtime;
382 char *audio_buf = rt->dma_area; 385 char *audio_buf = rt->dma_area;
@@ -398,6 +401,9 @@ static void read_in_urb(struct snd_usb_caiaqdev *dev,
398 if (!dev->streaming) 401 if (!dev->streaming)
399 return; 402 return;
400 403
404 if (iso->actual_length < dev->bpp)
405 return;
406
401 switch (dev->spec.data_alignment) { 407 switch (dev->spec.data_alignment) {
402 case 0: 408 case 0:
403 read_in_urb_mode0(dev, urb, iso); 409 read_in_urb_mode0(dev, urb, iso);