[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>
This commit is contained in:
Takashi Iwai 2007-08-14 15:18:26 +02:00 коммит произвёл Jaroslav Kysela
Родитель 9d99f31262
Коммит 0b7a2e9cef
2 изменённых файлов: 6 добавлений и 1 удалений

Просмотреть файл

@ -2771,6 +2771,10 @@ int snd_hda_suspend(struct hda_bus *bus, pm_message_t state)
struct hda_codec *codec; struct hda_codec *codec;
list_for_each_entry(codec, &bus->codec_list, list) { list_for_each_entry(codec, &bus->codec_list, list) {
#ifdef CONFIG_SND_HDA_POWER_SAVE
if (!codec->power_on)
continue;
#endif
hda_call_codec_suspend(codec); hda_call_codec_suspend(codec);
} }
return 0; return 0;

Просмотреть файл

@ -1550,7 +1550,8 @@ static int azx_suspend(struct pci_dev *pci, pm_message_t state)
snd_power_change_state(card, SNDRV_CTL_POWER_D3hot); snd_power_change_state(card, SNDRV_CTL_POWER_D3hot);
for (i = 0; i < chip->pcm_devs; i++) for (i = 0; i < chip->pcm_devs; i++)
snd_pcm_suspend_all(chip->pcm[i]); snd_pcm_suspend_all(chip->pcm[i]);
snd_hda_suspend(chip->bus, state); if (chip->initialized)
snd_hda_suspend(chip->bus, state);
azx_stop_chip(chip); azx_stop_chip(chip);
if (chip->irq >= 0) { if (chip->irq >= 0) {
synchronize_irq(chip->irq); synchronize_irq(chip->irq);