aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2006-09-22 09:30:42 -0400
committerJaroslav Kysela <perex@suse.cz>2006-09-23 04:48:40 -0400
commitf0063c4489a00ed5395378ef80a7edea4272f20b (patch)
tree7317be5ca915b882580474ff7f36631271356df7
parent8b0c4149e82170ebc44b96e9ed96545f8ebd7c81 (diff)
[ALSA] intel8x0m - Free irq in suspend
Free the irq handler in suspend and reacquire in resume as well as intel8x0 audio driver does. Some devices may change the irq line dynamically during suspend/resume. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
-rw-r--r--sound/pci/intel8x0m.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/sound/pci/intel8x0m.c b/sound/pci/intel8x0m.c
index 91850281f89b..268e2f7241ea 100644
--- a/sound/pci/intel8x0m.c
+++ b/sound/pci/intel8x0m.c
@@ -1045,6 +1045,8 @@ static int intel8x0m_suspend(struct pci_dev *pci, pm_message_t state)
1045 for (i = 0; i < chip->pcm_devs; i++) 1045 for (i = 0; i < chip->pcm_devs; i++)
1046 snd_pcm_suspend_all(chip->pcm[i]); 1046 snd_pcm_suspend_all(chip->pcm[i]);
1047 snd_ac97_suspend(chip->ac97); 1047 snd_ac97_suspend(chip->ac97);
1048 if (chip->irq >= 0)
1049 free_irq(chip->irq, chip);
1048 pci_disable_device(pci); 1050 pci_disable_device(pci);
1049 pci_save_state(pci); 1051 pci_save_state(pci);
1050 return 0; 1052 return 0;
@@ -1058,6 +1060,9 @@ static int intel8x0m_resume(struct pci_dev *pci)
1058 pci_restore_state(pci); 1060 pci_restore_state(pci);
1059 pci_enable_device(pci); 1061 pci_enable_device(pci);
1060 pci_set_master(pci); 1062 pci_set_master(pci);
1063 request_irq(pci->irq, snd_intel8x0_interrupt, IRQF_DISABLED|IRQF_SHARED,
1064 card->shortname, chip);
1065 chip->irq = pci->irq;
1061 snd_intel8x0_chip_init(chip, 0); 1066 snd_intel8x0_chip_init(chip, 0);
1062 snd_ac97_resume(chip->ac97); 1067 snd_ac97_resume(chip->ac97);
1063 1068