[ALSA] Fix AC97 power-saving mode
authorTakashi Iwai <tiwai@suse.de>
Thu, 19 Oct 2006 13:20:08 +0000 (15:20 +0200)
committerJaroslav Kysela <perex@suse.cz>
Sun, 22 Oct 2006 08:51:14 +0000 (10:51 +0200)
Fix the bug in AC97 power-saving mode that the power isn't turned on
when power_save is set to 1 via sysfs during the power off state.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
sound/pci/ac97/ac97_codec.c

index a79e91850ba361bbdb05dfdd65a3ed59638fc47e..6577b232535784b6f6bcf7b2db70448e423afcf1 100644 (file)
@@ -570,8 +570,7 @@ int snd_ac97_put_volsw(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value
                        ac97->power_up &= ~(1 << (reg>>1));
                else
                        ac97->power_up |= 1 << (reg>>1);
-               if (power_save)
-                       update_power_regs(ac97);
+               update_power_regs(ac97);
        }
 #endif
        return err;
@@ -2337,10 +2336,7 @@ int snd_ac97_update_power(struct snd_ac97 *ac97, int reg, int powerup)
                }
        }
 
-       if (! power_save)
-               return 0;
-
-       if (! powerup && ac97->power_workq)
+       if (power_save && !powerup && ac97->power_workq)
                /* adjust power-down bits after two seconds delay
                 * (for avoiding loud click noises for many (OSS) apps
                 *  that open/close frequently)