summary refs log tree commit diff
path: root/sound
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2008-12-20 23:41:18 +0100
committerTakashi Iwai <tiwai@suse.de>2008-12-20 23:41:18 +0100
commit8326e32c1e148820d50dc460e1cb4a6cb6884ff2 (patch)
tree839fbfa0b24ba5227b026d0925cf9f09c3af4ebb /sound
parent69dfaefee4a2dfdfee3488a306403fe1e51f0be5 (diff)
parent32e176c14d7a425b681ef003c9061001ddb7fc7b (diff)
downloadlinux-8326e32c1e148820d50dc460e1cb4a6cb6884ff2.tar.gz
Merge branch 'topic/hda-resume-fix' into topic/hda
Diffstat (limited to 'sound')
-rw-r--r--sound/pci/hda/hda_intel.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
index 6613b6bef9eb..f04de115ee11 100644
--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -1947,13 +1947,16 @@ static int azx_suspend(struct pci_dev *pci, pm_message_t state)
 	return 0;
 }
 
+static int azx_resume_early(struct pci_dev *pci)
+{
+	return pci_restore_state(pci);
+}
+
 static int azx_resume(struct pci_dev *pci)
 {
 	struct snd_card *card = pci_get_drvdata(pci);
 	struct azx *chip = card->private_data;
 
-	pci_set_power_state(pci, PCI_D0);
-	pci_restore_state(pci);
 	if (pci_enable_device(pci) < 0) {
 		printk(KERN_ERR "hda-intel: pci_enable_device failed, "
 		       "disabling device\n");
@@ -2465,6 +2468,7 @@ static struct pci_driver driver = {
 	.remove = __devexit_p(azx_remove),
 #ifdef CONFIG_PM
 	.suspend = azx_suspend,
+	.resume_early = azx_resume_early,
 	.resume = azx_resume,
 #endif
 };