[ALSA] hda-intel - Fix resume with power save
Takashi Iwai [Mon, 13 Aug 2007 13:29:04 +0000 (15:29 +0200)]
The controller power wasn't turned on properly at resume due to the
power-saving patch.  Now fixed.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>

sound/pci/hda/hda_codec.c
sound/pci/hda/hda_intel.c

index 9a3b728..efd56a3 100644 (file)
@@ -1662,6 +1662,7 @@ static void hda_call_codec_suspend(struct hda_codec *codec)
                            AC_PWRST_D3);
 #ifdef CONFIG_SND_HDA_POWER_SAVE
        cancel_delayed_work(&codec->power_work);
+       codec->power_on = 0;
 #endif
 }
 
@@ -2195,7 +2196,6 @@ static void hda_power_work(struct work_struct *work)
                return;
 
        hda_call_codec_suspend(codec);
-       codec->power_on = 0;
        if (codec->bus->ops.pm_notify)
                codec->bus->ops.pm_notify(codec);
 }
index 7be3a9b..f9c7c2e 100644 (file)
@@ -1500,7 +1500,7 @@ static int azx_acquire_irq(struct azx *chip, int do_disconnect)
 
 static void azx_stop_chip(struct azx *chip)
 {
-       if (chip->initialized)
+       if (!chip->initialized)
                return;
 
        /* disable interrupts */