diff options
Diffstat (limited to 'sound')
-rw-r--r-- | sound/usb/caiaq/caiaq-audio.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/sound/usb/caiaq/caiaq-audio.c b/sound/usb/caiaq/caiaq-audio.c index e80c8db237d3..0414d766ba07 100644 --- a/sound/usb/caiaq/caiaq-audio.c +++ b/sound/usb/caiaq/caiaq-audio.c | |||
@@ -388,8 +388,8 @@ static void read_in_urb_mode2(struct snd_usb_caiaqdev *dev, | |||
388 | struct snd_pcm_runtime *rt = sub->runtime; | 388 | struct snd_pcm_runtime *rt = sub->runtime; |
389 | char *audio_buf = rt->dma_area; | 389 | char *audio_buf = rt->dma_area; |
390 | int sz = frames_to_bytes(rt, rt->buffer_size); | 390 | int sz = frames_to_bytes(rt, rt->buffer_size); |
391 | audio_buf[dev->audio_in_buf_pos[stream]++] | 391 | audio_buf[dev->audio_in_buf_pos[stream]++] = |
392 | = usb_buf[i]; | 392 | usb_buf[i]; |
393 | dev->period_in_count[stream]++; | 393 | dev->period_in_count[stream]++; |
394 | if (dev->audio_in_buf_pos[stream] == sz) | 394 | if (dev->audio_in_buf_pos[stream] == sz) |
395 | dev->audio_in_buf_pos[stream] = 0; | 395 | dev->audio_in_buf_pos[stream] = 0; |
@@ -436,19 +436,21 @@ static void fill_out_urb(struct snd_usb_caiaqdev *dev, | |||
436 | spin_lock(&dev->spinlock); | 436 | spin_lock(&dev->spinlock); |
437 | 437 | ||
438 | for (i = 0; i < iso->length;) { | 438 | for (i = 0; i < iso->length;) { |
439 | for (stream = 0; stream < dev->n_streams; stream++) { | 439 | for (stream = 0; stream < dev->n_streams; stream++, i++) { |
440 | sub = dev->sub_playback[stream]; | 440 | sub = dev->sub_playback[stream]; |
441 | if (sub) { | 441 | if (sub) { |
442 | struct snd_pcm_runtime *rt = sub->runtime; | 442 | struct snd_pcm_runtime *rt = sub->runtime; |
443 | char *audio_buf = rt->dma_area; | 443 | char *audio_buf = rt->dma_area; |
444 | int sz = frames_to_bytes(rt, rt->buffer_size); | 444 | int sz = frames_to_bytes(rt, rt->buffer_size); |
445 | usb_buf[i++] | 445 | usb_buf[i] = |
446 | = audio_buf[dev->audio_out_buf_pos[stream]++]; | 446 | audio_buf[dev->audio_out_buf_pos[stream]]; |
447 | dev->period_out_count[stream]++; | ||
447 | dev->audio_out_buf_pos[stream]++; | 448 | dev->audio_out_buf_pos[stream]++; |
448 | if (dev->audio_out_buf_pos[stream] == sz) | 449 | if (dev->audio_out_buf_pos[stream] == sz) |
449 | dev->audio_out_buf_pos[stream] = 0; | 450 | dev->audio_out_buf_pos[stream] = 0; |
450 | } else | 451 | } else |
451 | usb_buf[i++] = 0; | 452 | usb_buf[i] = 0; |
453 | } | ||
452 | 454 | ||
453 | /* fill in the check bytes */ | 455 | /* fill in the check bytes */ |
454 | if (dev->spec.data_alignment == 2 && | 456 | if (dev->spec.data_alignment == 2 && |
@@ -456,7 +458,6 @@ static void fill_out_urb(struct snd_usb_caiaqdev *dev, | |||
456 | (dev->n_streams * CHANNELS_PER_STREAM)) | 458 | (dev->n_streams * CHANNELS_PER_STREAM)) |
457 | for (stream = 0; stream < dev->n_streams; stream++, i++) | 459 | for (stream = 0; stream < dev->n_streams; stream++, i++) |
458 | usb_buf[i] = MAKE_CHECKBYTE(dev, stream, i); | 460 | usb_buf[i] = MAKE_CHECKBYTE(dev, stream, i); |
459 | } | ||
460 | } | 461 | } |
461 | 462 | ||
462 | spin_unlock(&dev->spinlock); | 463 | spin_unlock(&dev->spinlock); |