Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ALSA: wss_lib: Fix resume on Yamaha OPL3-SAx

Yamaha OPL3-SAx chips don't resume properly when playback is running -
garbage is played after resume. Restoring the CS4231_PLAYBK_FORMAT register
last fixes the problem.

Signed-off-by: Ondrej Zary <linux@rainbow-software.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>

authored by

Ondrej Zary and committed by
Takashi Iwai
b4e2a16f ca3273fb

+4
+4
sound/isa/wss/wss_lib.c
··· 1656 1656 break; 1657 1657 } 1658 1658 } 1659 + /* Yamaha needs this to resume properly */ 1660 + if (chip->hardware == WSS_HW_OPL3SA2) 1661 + snd_wss_out(chip, CS4231_PLAYBK_FORMAT, 1662 + chip->image[CS4231_PLAYBK_FORMAT]); 1659 1663 spin_unlock_irqrestore(&chip->reg_lock, flags); 1660 1664 #if 1 1661 1665 snd_wss_mce_down(chip);