The sound driver for cards using the ES1888 chip (sb_ess.c) has a bug in
the replay speed for the dsp. CDs will play correctly. Sound that
requires the dsp (e.g., mp3s) plays back at a overly slow rate.
I have found a fix that works with my card. The solution is to comment out
some lines affecting the clock speed that have already been commented out
for the ES1869 and ES1887.
Comment out lines 1207,1208, and 1209:
// case SUBMDL_ES1888:
// devc->caps |= SB_CAP_ES18XX_RATE;
Since this would comment out what remains of that switch statement, lines
1201 - 1210 can be removed.
I have noticed this problem in kernels 2.2.12, 2.2.14, 2.2.14-5, 2.2.16-3,
and 2.4.0-test4. I assume it is present in all the other kernels as well.
I don't know how to create a patch, but this is a rather simple solution so
it shouldn't be too much trouble for the maintainer of the code.
If there are any questions, feel free to email me at
The fix is not generic. The problem is the chip can be strapped multiple ways
with multiple crystals. There isnt any published detection method and ESS never
seemed interested in replying. The recommended solution is to add esstype=1688
to the module load line
OK, something that we clearly can't fix for this release,
but there's a workaround. I'm going to close this and say
to re-open it (or open a new bug) when there's a generic fix
or ESS publishes the needed information.
Here is a suggestion for Redhat. Modify sndconfig so that when a user chooses
an ESS1888 as their sound card they should be instructed that if sound plays
slowly to add the "esstype=1688" to their module options. Or alternatively
extend sndconfig to use /dev/dsp rather than playing the silly "Linus sound" via
/dev/audio and check with the user if sound was at the right speed. How do you
check? Well you could play a female voice and ask a question "Was the previous
sound Male or Female?, Female, Male"
Also, is there a way in which ESS1888 owners can get vocal and complain to ESS
so they give the right info to the Linux dev team??
ESS are working a bit with Linux dev folks but only on their new chips not
ancient stuff. Its not clear the strapping is software detectable either.
I agree about the sndconfig suggestion.