ALSA: virtuoso: work around missing reset in the Xonar DS Windows driver
authorClemens Ladisch <clemens@ladisch.de>
Tue, 7 Sep 2010 11:37:10 +0000 (13:37 +0200)
committerTakashi Iwai <tiwai@suse.de>
Wed, 8 Sep 2010 06:26:13 +0000 (08:26 +0200)
commit4c25b93223340deff73381cc47f9244fb379a74d
tree6669e6b0810e530fa65e1b59d704e6c58467976e
parenta2acad8298a42b7be684a32fafaf83332bba9c2b
ALSA: virtuoso: work around missing reset in the Xonar DS Windows driver

For the WM8776 chip, this driver uses a different sample format and
more features than the Windows driver.  When rebooting from Linux into
Windows, the latter driver does not reset the chip but assumes all its
registers have their default settings, so we get garbled sound or, if
the output happened to be muted before rebooting, no sound.

To make that driver happy, hook our driver's cleanup function into the
shutdown notifier and ensure that the chip gets reset.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Reported-and-tested-by: Nathan Schagen
Cc: <stable@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/oxygen/oxygen.h
sound/pci/oxygen/oxygen_lib.c
sound/pci/oxygen/virtuoso.c
sound/pci/oxygen/xonar_wm87x6.c