aboutsummaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorJaroslav Kysela <perex@suse.cz>2004-04-24 19:58:04 +0200
committerJaroslav Kysela <perex@suse.cz>2004-04-24 19:58:04 +0200
commit16486f85f78e46dfdd0fa961fbf462c9935f558e (patch)
treeab5eb567469187550bf4eee834ec22b0679225b4 /sound
parent0e38be1097b579381053f9a23572e975475c18fa (diff)
downloadhistory-16486f85f78e46dfdd0fa961fbf462c9935f558e.tar.gz
ALSA CVS update - Takashi Iwai <tiwai@suse.de>
Intel8x0 driver,Intel8x0-modem driver - probe only audio (intel8x0) or modem (intel8x0m) codecs. - call snd_ac97_suspend() in the suspend callback.
Diffstat (limited to 'sound')
-rw-r--r--sound/pci/intel8x0.c7
-rw-r--r--sound/pci/intel8x0m.c3
2 files changed, 9 insertions, 1 deletions
diff --git a/sound/pci/intel8x0.c b/sound/pci/intel8x0.c
index 6ed2b01c88534d..060d7c61c2f678 100644
--- a/sound/pci/intel8x0.c
+++ b/sound/pci/intel8x0.c
@@ -1852,6 +1852,7 @@ static int __devinit snd_intel8x0_mixer(intel8x0_t *chip, int ac97_clock, int ac
memset(&ac97, 0, sizeof(ac97));
ac97.private_data = chip;
ac97.private_free = snd_intel8x0_mixer_free_ac97;
+ ac97.scaps = AC97_SCAP_SKIP_MODEM;
if (chip->device_type != DEVICE_ALI) {
glob_sta = igetdword(chip, ICHREG(GLOB_STA));
bus.write = snd_intel8x0_codec_write;
@@ -1900,7 +1901,8 @@ static int __devinit snd_intel8x0_mixer(intel8x0_t *chip, int ac97_clock, int ac
for (i = 0; i < codecs; i++) {
ac97.num = i;
if ((err = snd_ac97_mixer(pbus, &ac97, &x97)) < 0) {
- snd_printk(KERN_ERR "Unable to initialize codec #%d\n", i);
+ if (err != -EACCES)
+ snd_printk(KERN_ERR "Unable to initialize codec #%d\n", i);
if (i == 0)
goto __err;
continue;
@@ -2203,6 +2205,9 @@ static int intel8x0_suspend(snd_card_t *card, unsigned int state)
for (i = 0; i < chip->pcm_devs; i++)
snd_pcm_suspend_all(chip->pcm[i]);
+ for (i = 0; i < 3; i++)
+ if (chip->ac97[i])
+ snd_ac97_suspend(chip->ac97[i]);
snd_power_change_state(card, SNDRV_CTL_POWER_D3hot);
return 0;
}
diff --git a/sound/pci/intel8x0m.c b/sound/pci/intel8x0m.c
index 668335cd222a33..6046ac13a6da7e 100644
--- a/sound/pci/intel8x0m.c
+++ b/sound/pci/intel8x0m.c
@@ -902,6 +902,7 @@ static int __devinit snd_intel8x0_mixer(intel8x0_t *chip, int ac97_clock)
memset(&ac97, 0, sizeof(ac97));
ac97.private_data = chip;
ac97.private_free = snd_intel8x0_mixer_free_ac97;
+ ac97.scaps = AC97_SCAP_SKIP_AUDIO;
glob_sta = igetdword(chip, ICHREG(GLOB_STA));
bus.write = snd_intel8x0_codec_write;
@@ -1085,6 +1086,8 @@ static int intel8x0m_suspend(snd_card_t *card, unsigned int state)
for (i = 0; i < chip->pcm_devs; i++)
snd_pcm_suspend_all(chip->pcm[i]);
+ if (chip->ac97)
+ snd_ac97_suspend(chip->ac97);
snd_power_change_state(card, SNDRV_CTL_POWER_D3hot);
return 0;
}