[ALSA] emu10k1 - Use 31 bit DMA mask for Audigy
authorLee Revell <rlrevell@joe-job.com>
Tue, 25 Oct 2005 09:25:29 +0000 (11:25 +0200)
committerJaroslav Kysela <perex@suse.cz>
Fri, 4 Nov 2005 12:20:22 +0000 (13:20 +0100)
Modules: EMU10K1/EMU10K2 driver

It appears that either the Audigy DMA engine or the Linux kernel cannot
handle 32 bit DMA with this device.  Problem manifests as noise when
using more than 2GB of RAM, possibly only on 64 bit machines.

The OSS driver actually uses a 29 bit DMA mask for both devices, this
seems like overkill for now.

Signed-off-by: Lee Revell <rlrevell@joe-job.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
include/sound/emu10k1.h

index 46e3c0b..8411c7e 100644 (file)
@@ -48,7 +48,8 @@
 
 /* FIXME? - according to the OSS driver the EMU10K1 needs a 29 bit DMA mask */
 #define EMU10K1_DMA_MASK       0x7fffffffUL    /* 31bit */
 
 /* FIXME? - according to the OSS driver the EMU10K1 needs a 29 bit DMA mask */
 #define EMU10K1_DMA_MASK       0x7fffffffUL    /* 31bit */
-#define AUDIGY_DMA_MASK                0xffffffffUL    /* 32bit */
+#define AUDIGY_DMA_MASK                0x7fffffffUL    /* 31bit FIXME - 32 should work? */
+                                               /* See ALSA bug #1276 - rlrevell */
 
 #define TMEMSIZE        256*1024
 #define TMEMSIZEREG     4
 
 #define TMEMSIZE        256*1024
 #define TMEMSIZEREG     4