[PATCH] Fix ALSA resume

From: Martin Josefsson
Date: Sat Dec 04 2004 - 16:24:48 EST


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: Martin Josefsson <gandalf@xxxxxxxxxxxxxx>
Fixed-by: Takashi Iwai <tiwai@xxxxxxx>

--- linux/sound/core/init.c 8 Nov 2004 11:37:08 -0000 1.48
+++ linux/sound/core/init.c 12 Nov 2004 13:56:32 -0000
@@ -782,12 +782,15 @@<br>
int snd_card_pci_suspend(struct pci_dev *dev, u32 state)
{
snd_card_t *card = pci_get_drvdata(dev);
+ int err;
if (! card || ! card->pm_suspend)
return 0;
if (card->power_state == SNDRV_CTL_POWER_D3hot)
return 0;
/* 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)


--
/Martin

Attachment: signature.asc
Description: This is a digitally signed message part