aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/hda/hda_intel.c
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2006-09-08 06:30:03 -0400
committerJaroslav Kysela <perex@suse.cz>2006-09-23 04:47:00 -0400
commit43001c9515cf87935c50e84b3e27b1f3b3776b5d (patch)
tree295e87add08bfec4a2a4fada76fd1cac7ac0123b /sound/pci/hda/hda_intel.c
parent854b66e44260320c21ebe4b8a18e189f2e45b5be (diff)
[ALSA] hda-intel - Fix suspend/resume with MSI
Fixed suspend/resume with MSI enablement. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
Diffstat (limited to 'sound/pci/hda/hda_intel.c')
-rw-r--r--sound/pci/hda/hda_intel.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
index 6309e0c67e6a..4d2df771112e 100644
--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -1381,6 +1381,10 @@ static int azx_suspend(struct pci_dev *pci, pm_message_t state)
1381 snd_pcm_suspend_all(chip->pcm[i]); 1381 snd_pcm_suspend_all(chip->pcm[i]);
1382 snd_hda_suspend(chip->bus, state); 1382 snd_hda_suspend(chip->bus, state);
1383 azx_free_cmd_io(chip); 1383 azx_free_cmd_io(chip);
1384 if (chip->irq >= 0)
1385 free_irq(chip->irq, chip);
1386 if (!disable_msi)
1387 pci_disable_msi(chip->pci);
1384 pci_disable_device(pci); 1388 pci_disable_device(pci);
1385 pci_save_state(pci); 1389 pci_save_state(pci);
1386 return 0; 1390 return 0;
@@ -1393,6 +1397,12 @@ static int azx_resume(struct pci_dev *pci)
1393 1397
1394 pci_restore_state(pci); 1398 pci_restore_state(pci);
1395 pci_enable_device(pci); 1399 pci_enable_device(pci);
1400 if (!disable_msi)
1401 pci_enable_msi(pci);
1402 /* FIXME: need proper error handling */
1403 request_irq(pci->irq, azx_interrupt, IRQF_DISABLED|IRQF_SHARED,
1404 "HDA Intel", chip);
1405 chip->irq = pci->irq;
1396 pci_set_master(pci); 1406 pci_set_master(pci);
1397 azx_init_chip(chip); 1407 azx_init_chip(chip);
1398 snd_hda_resume(chip->bus); 1408 snd_hda_resume(chip->bus);