Эх сурвалжийг харах

[ALSA] emu10k1 - Use 31 bit DMA mask for Audigy

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>
Lee Revell 19 жил өмнө
parent
commit
9529a5bae1

+ 2 - 1
include/sound/emu10k1.h

@@ -48,7 +48,8 @@
 
 
 /* FIXME? - according to the OSS driver the EMU10K1 needs a 29 bit DMA mask */
 /* FIXME? - according to the OSS driver the EMU10K1 needs a 29 bit DMA mask */
 #define EMU10K1_DMA_MASK	0x7fffffffUL	/* 31bit */
 #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 TMEMSIZE        256*1024
 #define TMEMSIZEREG     4
 #define TMEMSIZEREG     4