ALSA: Au88x0 - Fix channels swapping of 4 channels playback
authorRaymond Yau <superquad.vortex2@gmail.com>
Sat, 7 Jan 2012 06:35:17 +0000 (14:35 +0800)
committerTakashi Iwai <tiwai@suse.de>
Sun, 8 Jan 2012 13:39:26 +0000 (14:39 +0100)
Fix channels swapping of 4 channels playback by
using vortex_adbdma_stopfifo instead of vortex_adbdma_pausefifo
for SNDRV_PCM_TRIGGER_STOP event

Signed-off-by: Raymond Yau <superquad.vortex2@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/au88x0/au88x0_core.c
sound/pci/au88x0/au88x0_pcm.c

index d49e2c5ecb75ff28e0cd6886da3aaca2fe5ecc89..6933a27a5d76279e1c98b59953200dbd52b84e08 100644 (file)
@@ -1336,7 +1336,6 @@ static void vortex_adbdma_pausefifo(vortex_t * vortex, int adbdma)
        dma->fifo_status = FIFO_PAUSE;
 }
 
-#if 0                          // Using pause instead
 static void vortex_adbdma_stopfifo(vortex_t * vortex, int adbdma)
 {
        stream_t *dma = &vortex->dma_adb[adbdma];
@@ -1351,7 +1350,6 @@ static void vortex_adbdma_stopfifo(vortex_t * vortex, int adbdma)
        dma->fifo_enabled = 0;
 }
 
-#endif
 /* WTDMA */
 
 #ifndef CHIP_AU8810
index 509969038ac539e28d8be01dda8d5c1a564eb883..0488633ea87474c608591601201030a65a1c91f5 100644 (file)
@@ -353,8 +353,7 @@ static int snd_vortex_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
                //printk(KERN_INFO "vortex: stop %d\n", dma);
                stream->fifo_enabled = 0;
                if (VORTEX_PCM_TYPE(substream->pcm) != VORTEX_PCM_WT)
-                       vortex_adbdma_pausefifo(chip, dma);
-               //vortex_adbdma_stopfifo(chip, dma);
+                       vortex_adbdma_stopfifo(chip, dma);
 #ifndef CHIP_AU8810
                else {
                        printk(KERN_INFO "vortex: wt stop %d\n", dma);