aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2007-08-14 09:18:26 -0400
committerJaroslav Kysela <perex@perex.cz>2007-10-16 09:58:55 -0400
commit0b7a2e9cefd7614e68520127751f76583498df6c (patch)
tree72c29a5ba4543873592710bc05425db04af15e50 /sound/pci
parent9d99f312629802f4c45306ee07618ee4978b4adc (diff)
[ALSA] hda-intel - Don't do suspend if already powered down
In the power-saving mode, the suspend is done dynamically at power-down. So we don't have to call suspend stuff explicitly if it's already powered down. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
Diffstat (limited to 'sound/pci')
-rw-r--r--sound/pci/hda/hda_codec.c4
-rw-r--r--sound/pci/hda/hda_intel.c3
2 files changed, 6 insertions, 1 deletions
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
index fc1ddf408b9b..0e923f3f0a80 100644
--- a/sound/pci/hda/hda_codec.c
+++ b/sound/pci/hda/hda_codec.c
@@ -2771,6 +2771,10 @@ int snd_hda_suspend(struct hda_bus *bus, pm_message_t state)
2771 struct hda_codec *codec; 2771 struct hda_codec *codec;
2772 2772
2773 list_for_each_entry(codec, &bus->codec_list, list) { 2773 list_for_each_entry(codec, &bus->codec_list, list) {
2774#ifdef CONFIG_SND_HDA_POWER_SAVE
2775 if (!codec->power_on)
2776 continue;
2777#endif
2774 hda_call_codec_suspend(codec); 2778 hda_call_codec_suspend(codec);
2775 } 2779 }
2776 return 0; 2780 return 0;
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
index e20629a2d7d1..ab698336563c 100644
--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -1550,7 +1550,8 @@ static int azx_suspend(struct pci_dev *pci, pm_message_t state)
1550 snd_power_change_state(card, SNDRV_CTL_POWER_D3hot); 1550 snd_power_change_state(card, SNDRV_CTL_POWER_D3hot);
1551 for (i = 0; i < chip->pcm_devs; i++) 1551 for (i = 0; i < chip->pcm_devs; i++)
1552 snd_pcm_suspend_all(chip->pcm[i]); 1552 snd_pcm_suspend_all(chip->pcm[i]);
1553 snd_hda_suspend(chip->bus, state); 1553 if (chip->initialized)
1554 snd_hda_suspend(chip->bus, state);
1554 azx_stop_chip(chip); 1555 azx_stop_chip(chip);
1555 if (chip->irq >= 0) { 1556 if (chip->irq >= 0) {
1556 synchronize_irq(chip->irq); 1557 synchronize_irq(chip->irq);