aboutsummaryrefslogtreecommitdiff
path: root/sound/pci/cs46xx/cs46xx_lib.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@g5.osdl.org>2006-07-12 13:03:35 -0700
committerLinus Torvalds <torvalds@g5.osdl.org>2006-07-12 13:03:35 -0700
commit155dbfd8846bf165bb036c4492ad121c8b059f1d (patch)
tree93c1140ecece7daac04da8a980d7b1d1e0c36bb0 /sound/pci/cs46xx/cs46xx_lib.c
parent15e0c694367332d7e7114c7c73044bc5fed9ee48 (diff)
parentd2a5b9d45f31bf5e5a1b89a87421e218ebe1a6ba (diff)
Merge commit master.kernel.org:/pub/scm/linux/kernel/git/perex/alsa of HEAD
* HEAD: [ALSA] Fix undefined (missing) references in ISA MIRO sound driver [ALSA] make sound/isa/gus/gusextreme.c:devices static [ALSA] hda-codec - Fix missing array terminators in AD1988 codec support [ALSA] Fix a deadlock in snd-rtctimer [ALSA] Fix section mismatch errors in ALSA PCI drivers [ALSA] remove unused snd_minor.name field [ALSA] Fix no mpu401 interface can cause hard freeze [ALSA] wavefront: fix __init/__devinit confusion [ALSA] Fix workaround for AD1988A rev2 codec [ALSA] trivial: Code clean up of i2c/cs8427.c [ALSA] sound/i2c/cs8427.c: don't export a static function [ALSA] intel8x0 - Add ac97 quirk for Tyan Thunder K8WE board [ALSA] Reduce the string length of Terratec Aureon 7.1 Universe [ALSA] sound/pci/Kconfig - fix broken indenting for SND_FM801_TEA575X [ALSA] fix the SND_FM801_TEA575X dependencies [ALSA] Memory leak in sound/pcmcia/pdaudiocf/pdaudiocf.c
Diffstat (limited to 'sound/pci/cs46xx/cs46xx_lib.c')
-rw-r--r--sound/pci/cs46xx/cs46xx_lib.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/sound/pci/cs46xx/cs46xx_lib.c b/sound/pci/cs46xx/cs46xx_lib.c
index 894545ea41f..4851847180d 100644
--- a/sound/pci/cs46xx/cs46xx_lib.c
+++ b/sound/pci/cs46xx/cs46xx_lib.c
@@ -2317,7 +2317,7 @@ static struct snd_kcontrol_new snd_cs46xx_front_dup_ctl = {
#ifdef CONFIG_SND_CS46XX_NEW_DSP
/* Only available on the Hercules Game Theater XP soundcard */
-static struct snd_kcontrol_new snd_hercules_controls[] __devinitdata = {
+static struct snd_kcontrol_new snd_hercules_controls[] = {
{
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
.name = "Optical/Coaxial SPDIF Input Switch",
@@ -3458,6 +3458,9 @@ static void hercules_mixer_init (struct snd_cs46xx *chip)
snd_printdd ("initializing Hercules mixer\n");
#ifdef CONFIG_SND_CS46XX_NEW_DSP
+ if (chip->in_suspend)
+ return;
+
for (idx = 0 ; idx < ARRAY_SIZE(snd_hercules_controls); idx++) {
struct snd_kcontrol *kctl;
@@ -3669,6 +3672,7 @@ int snd_cs46xx_suspend(struct pci_dev *pci, pm_message_t state)
int amp_saved;
snd_power_change_state(card, SNDRV_CTL_POWER_D3hot);
+ chip->in_suspend = 1;
snd_pcm_suspend_all(chip->pcm);
// chip->ac97_powerdown = snd_cs46xx_codec_read(chip, AC97_POWER_CONTROL);
// chip->ac97_general_purpose = snd_cs46xx_codec_read(chip, BA0_AC97_GENERAL_PURPOSE);
@@ -3722,6 +3726,7 @@ int snd_cs46xx_resume(struct pci_dev *pci)
else
chip->active_ctrl(chip, -1); /* disable CLKRUN */
chip->amplifier = amp_saved;
+ chip->in_suspend = 0;
snd_power_change_state(card, SNDRV_CTL_POWER_D0);
return 0;
}