diff options
author | Paul Vojta <vojta@math.berkeley.edu> | 2007-07-27 10:20:38 (GMT) |
---|---|---|
committer | Jaroslav Kysela <perex@perex.cz> | 2007-10-16 13:58:08 (GMT) |
commit | e2340465ec9587362a057524d3e2163377366771 (patch) | |
tree | 7ee0a06078c7966365b07202cbbd6607cedb61d6 /sound/isa/cs423x | |
parent | 01ade528d424420093973ede20d7394d2cd81190 (diff) | |
download | linux-e2340465ec9587362a057524d3e2163377366771.tar.xz |
[ALSA] Fix bugs in mode change/recalibration for opl3sa2 driver
The mode change / recalibration doesn't work always with opl3sa2 devices,
e.g. the first time it's played back. The patch fixes the problem.
Signed-off-by: Paul Vojta <vojta@math.berkeley.edu>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
Diffstat (limited to 'sound/isa/cs423x')
-rw-r--r-- | sound/isa/cs423x/cs4231_lib.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sound/isa/cs423x/cs4231_lib.c b/sound/isa/cs423x/cs4231_lib.c index 914d77b..642bdaa 100644 --- a/sound/isa/cs423x/cs4231_lib.c +++ b/sound/isa/cs423x/cs4231_lib.c @@ -555,6 +555,8 @@ static void snd_cs4231_playback_format(struct snd_cs4231 *chip, snd_cs4231_out(chip, CS4231_PLAYBK_FORMAT, chip->image[CS4231_PLAYBK_FORMAT] = pdfr); } spin_unlock_irqrestore(&chip->reg_lock, flags); + if (chip->hardware == CS4231_HW_OPL3SA2) + udelay(100); /* this seems to help */ snd_cs4231_mce_down(chip); } snd_cs4231_calibrate_mute(chip, 0); |