diff options
author | Takashi Iwai <tiwai@suse.de> | 2006-09-22 09:30:42 -0400 |
---|---|---|
committer | Jaroslav Kysela <perex@suse.cz> | 2006-09-23 04:48:40 -0400 |
commit | f0063c4489a00ed5395378ef80a7edea4272f20b (patch) | |
tree | 7317be5ca915b882580474ff7f36631271356df7 /sound/pci/intel8x0m.c | |
parent | 8b0c4149e82170ebc44b96e9ed96545f8ebd7c81 (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>
Diffstat (limited to 'sound/pci/intel8x0m.c')
-rw-r--r-- | sound/pci/intel8x0m.c | 5 |
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 | ||