diff options
author | Takashi Iwai <tiwai@suse.de> | 2008-06-27 05:55:20 -0400 |
---|---|---|
committer | Jaroslav Kysela <perex@perex.cz> | 2008-07-10 03:31:34 -0400 |
commit | 6cabf6b0694951288520512e0b68c78523acc9fd (patch) | |
tree | 440077c185ad3e7923ce20cc5d615b6d85543b01 /sound/pci/ac97 | |
parent | 942fd1ebf6072fdaa07ae6d77a4f58b39c1bfdf9 (diff) |
ALSA: Fix AC97 power down
Some laptops don't like PR3 powerdown. Do PR3 powerdown only
for the real power-saving.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Diffstat (limited to 'sound/pci/ac97')
-rw-r--r-- | sound/pci/ac97/ac97_codec.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sound/pci/ac97/ac97_codec.c b/sound/pci/ac97/ac97_codec.c index 2d2f16e11082..07364c00768a 100644 --- a/sound/pci/ac97/ac97_codec.c +++ b/sound/pci/ac97/ac97_codec.c | |||
@@ -2295,9 +2295,11 @@ static void snd_ac97_powerdown(struct snd_ac97 *ac97) | |||
2295 | power |= AC97_PD_PR0 | AC97_PD_PR1; /* ADC & DAC powerdown */ | 2295 | power |= AC97_PD_PR0 | AC97_PD_PR1; /* ADC & DAC powerdown */ |
2296 | snd_ac97_write(ac97, AC97_POWERDOWN, power); | 2296 | snd_ac97_write(ac97, AC97_POWERDOWN, power); |
2297 | udelay(100); | 2297 | udelay(100); |
2298 | power |= AC97_PD_PR2 | AC97_PD_PR3; /* Analog Mixer powerdown */ | 2298 | power |= AC97_PD_PR2; /* Analog Mixer powerdown (Vref on) */ |
2299 | snd_ac97_write(ac97, AC97_POWERDOWN, power); | 2299 | snd_ac97_write(ac97, AC97_POWERDOWN, power); |
2300 | if (ac97_is_power_save_mode(ac97)) { | 2300 | if (ac97_is_power_save_mode(ac97)) { |
2301 | power |= AC97_PD_PR3; /* Analog Mixer powerdown */ | ||
2302 | snd_ac97_write(ac97, AC97_POWERDOWN, power); | ||
2301 | udelay(100); | 2303 | udelay(100); |
2302 | /* AC-link powerdown, internal Clk disable */ | 2304 | /* AC-link powerdown, internal Clk disable */ |
2303 | /* FIXME: this may cause click noises on some boards */ | 2305 | /* FIXME: this may cause click noises on some boards */ |