Red Hat Bugzilla – Bug 58880
SB Live! (emu10k1) sound distortion problems and their solution
Last modified: 2007-04-18 12:39:13 EDT
From Bugzilla Helper:
User-Agent: Mozilla/4.78 [en] (X11; U; Linux 2.4.9-21smp i686)
Description of problem:
RH kernels above 2.4.7 produce noice, scratches and generally distort sound when
a SoundBlaster Live card (emu10k1) is used.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Install a RH 2.4.9 kernel (all versions)
2. Use the play command to play wavs (and possibly others, such a few games,
RH Bugzilla contains a bunch of such incidents.
Actual Results: The sound starts with a scratch, or it is totally distorted.
Expected Results: The sound produced should be clear.
This is a problem that has to do with the high memory kernel option.
emu10k1 seems that cannot operate correctly when the high memory option is
turned on (with either 4 or 64GB value).
I have verified that with this option turned off, emu10k1 works as supposed.
Additionally the kernel mailing list has a fix for this, so that emu10k1 will
work correctly with high memory. Use this link and follow the thread to find the
The solution is very simple. Change:
#define EMU10K1_DMA_MASK 0xffffffff /* DMA buffer mask for pci_alloc_consist */
#define EMU10K1_DMA_MASK 0x7fffffff /* DMA buffer mask for pci_alloc_consist */
and the problem should dissappear.
If this makes the difference then this is wrong too ;(
Anyway we have a emu10k1_new driver in the 2.4.9-21 erratum which lots of
people see work better.
ok. The solution may be wrong (afterall I tryed to distribute the suggestions
of others), but the cause, I believe, is not wrong.
I have compiled 2.4.15 with and without HIMEM. When HIMEM was on (either 4 or
64GB) I had distortions while when it was off it worked perfectly.
Both compilations from exactly the same source tree, all other options the
If that makes a difference, my machine is i686 SMP.
Also, 2.4.9-21smp still has the problem.
the emu10k1_new driver ? (you need to change emu10k1 to emu10k1_new in