ALSA: Fix AC97 power down
authorTakashi Iwai <tiwai@suse.de>
Fri, 27 Jun 2008 09:55:20 +0000 (11:55 +0200)
committerJaroslav Kysela <perex@perex.cz>
Thu, 10 Jul 2008 07:31:34 +0000 (09:31 +0200)
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>
sound/pci/ac97/ac97_codec.c

index 2d2f16e11082835e4c0137084e0d9870b460df0a..07364c00768a4dd90f8eceeb338d899955a17685 100644 (file)
@@ -2295,9 +2295,11 @@ static void snd_ac97_powerdown(struct snd_ac97 *ac97)
        power |= AC97_PD_PR0 | AC97_PD_PR1;     /* ADC & DAC powerdown */
        snd_ac97_write(ac97, AC97_POWERDOWN, power);
        udelay(100);
-       power |= AC97_PD_PR2 | AC97_PD_PR3;     /* Analog Mixer powerdown */
+       power |= AC97_PD_PR2;   /* Analog Mixer powerdown (Vref on) */
        snd_ac97_write(ac97, AC97_POWERDOWN, power);
        if (ac97_is_power_save_mode(ac97)) {
+               power |= AC97_PD_PR3;   /* Analog Mixer powerdown */
+               snd_ac97_write(ac97, AC97_POWERDOWN, power);
                udelay(100);
                /* AC-link powerdown, internal Clk disable */
                /* FIXME: this may cause click noises on some boards */