ALSA: au88x0: fix wrong period_elapsed() call
authorJaroslav Kysela <perex@perex.cz>
Thu, 28 May 2009 12:20:00 +0000 (14:20 +0200)
committerTakashi Iwai <tiwai@suse.de>
Fri, 29 May 2009 06:15:59 +0000 (08:15 +0200)
The period_elapsed() call should be called when position moves.

The idea was taken from ALSA bug#4455.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/au88x0/au88x0_core.c

index f84bb19..23f49f3 100644 (file)
@@ -2440,7 +2440,8 @@ static irqreturn_t vortex_interrupt(int irq, void *dev_id)
                spin_lock(&vortex->lock);
                for (i = 0; i < NR_ADB; i++) {
                        if (vortex->dma_adb[i].fifo_status == FIFO_START) {
-                               if (vortex_adbdma_bufshift(vortex, i)) ;
+                               if (!vortex_adbdma_bufshift(vortex, i))
+                                       continue;
                                spin_unlock(&vortex->lock);
                                snd_pcm_period_elapsed(vortex->dma_adb[i].
                                                       substream);