The following patch adds free_irq() and request_irq() to the suspend and
resume, respectively, routines in the snd_intel8x0 driver.

Signed-off-by: Rafael J. Wysocki <[EMAIL PROTECTED]>

--- linux-2.6.13-rc3-git5/sound/pci/intel8x0.c  2005-07-23 19:26:43.000000000 
+0200
+++ patched/sound/pci/intel8x0.c        2005-07-25 18:21:36.000000000 +0200
@@ -2373,6 +2373,8 @@ static int intel8x0_suspend(snd_card_t *
        for (i = 0; i < 3; i++)
                if (chip->ac97[i])
                        snd_ac97_suspend(chip->ac97[i]);
+       if (chip->irq >= 0)
+               free_irq(chip->irq, (void *)chip);
        pci_disable_device(chip->pci);
        return 0;
 }
@@ -2384,7 +2386,14 @@ static int intel8x0_resume(snd_card_t *c
 
        pci_enable_device(chip->pci);
        pci_set_master(chip->pci);
-       snd_intel8x0_chip_init(chip, 0);
+       if (request_irq(chip->irq, snd_intel8x0_interrupt, 
SA_INTERRUPT|SA_SHIRQ, card->shortname, (void *)chip)) {
+               snd_printk("unable to grab IRQ %d\n", chip->irq);
+               chip->irq = -1;
+               pci_disable_device(chip->pci);
+               return -EBUSY;
+       }
+       synchronize_irq(chip->irq);
+       snd_intel8x0_chip_init(chip, 1);
 
        /* refill nocache */
        if (chip->fix_nocache)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to