Commit 5a530b5a authored by Martin Josefsson's avatar Martin Josefsson Committed by Linus Torvalds

[PATCH] Fix ALSA resume

Some time ago, a patch was merged that removed pci_save_state() and
pci_restore_state() from various ALSA drivers. That patch also added
pci_restore_state() to sound/core/init.c but didn't add pci_save_state()
anywhere. This is needed since the core pci handling doesn't do this for
us anymore.

My laptop doesn't resume (gets what I assume is an ACPI timeout and
hangs solid) without this small obvious patch.
Signed-off-by: default avatarMartin Josefsson <gandalf@wlug.westbo.se>
Fixed-by: default avatarTakashi Iwai <tiwai@suse.de>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 58561763
...@@ -785,12 +785,15 @@ int snd_card_set_dev_pm_callback(snd_card_t *card, int type, ...@@ -785,12 +785,15 @@ int snd_card_set_dev_pm_callback(snd_card_t *card, int type,
int snd_card_pci_suspend(struct pci_dev *dev, u32 state) int snd_card_pci_suspend(struct pci_dev *dev, u32 state)
{ {
snd_card_t *card = pci_get_drvdata(dev); snd_card_t *card = pci_get_drvdata(dev);
int err;
if (! card || ! card->pm_suspend) if (! card || ! card->pm_suspend)
return 0; return 0;
if (card->power_state == SNDRV_CTL_POWER_D3hot) if (card->power_state == SNDRV_CTL_POWER_D3hot)
return 0; return 0;
/* FIXME: correct state value? */ /* FIXME: correct state value? */
return card->pm_suspend(card, 0); err = card->pm_suspend(card, 0);
pci_save_state(dev);
return err;
} }
int snd_card_pci_resume(struct pci_dev *dev) int snd_card_pci_resume(struct pci_dev *dev)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment