[ALSA] snd-usb-caiaq: Make playback work
authorKarsten Wiese <fzu@wemgehoertderstaat.de>
Thu, 29 Mar 2007 15:02:45 +0000 (17:02 +0200)
committerJaroslav Kysela <perex@suse.cz>
Fri, 11 May 2007 14:55:55 +0000 (16:55 +0200)
some typo fixes.

Signed-off-by: Karsten Wiese <fzu@wemgehoertderstaat.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
sound/usb/caiaq/caiaq-audio.c

index e80c8db237d3a2e291c56230ad85d2fd29eb7f6a..0414d766ba076e1ef1c9cfa88389ad355d70d125 100644 (file)
@@ -388,8 +388,8 @@ static void read_in_urb_mode2(struct snd_usb_caiaqdev *dev,
                                struct snd_pcm_runtime *rt = sub->runtime;
                                char *audio_buf = rt->dma_area;
                                int sz = frames_to_bytes(rt, rt->buffer_size);
-                               audio_buf[dev->audio_in_buf_pos[stream]++] 
-                                       usb_buf[i];
+                               audio_buf[dev->audio_in_buf_pos[stream]++] =
+                                       usb_buf[i];
                                dev->period_in_count[stream]++;
                                if (dev->audio_in_buf_pos[stream] == sz)
                                        dev->audio_in_buf_pos[stream] = 0;
@@ -436,19 +436,21 @@ static void fill_out_urb(struct snd_usb_caiaqdev *dev,
        spin_lock(&dev->spinlock);
        
        for (i = 0; i < iso->length;) {
-               for (stream = 0; stream < dev->n_streams; stream++) {
+               for (stream = 0; stream < dev->n_streams; stream++, i++) {
                        sub = dev->sub_playback[stream];
                        if (sub) {
                                struct snd_pcm_runtime *rt = sub->runtime;
                                char *audio_buf = rt->dma_area;
                                int sz = frames_to_bytes(rt, rt->buffer_size);
-                               usb_buf[i++] 
-                                = audio_buf[dev->audio_out_buf_pos[stream]++];
+                               usb_buf[i] =
+                                       audio_buf[dev->audio_out_buf_pos[stream]];
+                               dev->period_out_count[stream]++;
                                dev->audio_out_buf_pos[stream]++;
                                if (dev->audio_out_buf_pos[stream] == sz)
                                        dev->audio_out_buf_pos[stream] = 0;
                        } else
-                               usb_buf[i++] = 0;
+                               usb_buf[i] = 0;
+               }
 
                /* fill in the check bytes */
                if (dev->spec.data_alignment == 2 &&
@@ -456,7 +458,6 @@ static void fill_out_urb(struct snd_usb_caiaqdev *dev,
                        (dev->n_streams * CHANNELS_PER_STREAM))
                    for (stream = 0; stream < dev->n_streams; stream++, i++)
                        usb_buf[i] = MAKE_CHECKBYTE(dev, stream, i);
-               }
        }
 
        spin_unlock(&dev->spinlock);