diff options
Diffstat (limited to 'sound/pci/intel8x0.c')
-rw-r--r-- | sound/pci/intel8x0.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/sound/pci/intel8x0.c b/sound/pci/intel8x0.c index 7cf2dcb9d8d4..202f720b34b9 100644 --- a/sound/pci/intel8x0.c +++ b/sound/pci/intel8x0.c | |||
@@ -2493,6 +2493,7 @@ static int intel8x0_resume(struct pci_dev *pci) | |||
2493 | return -EIO; | 2493 | return -EIO; |
2494 | } | 2494 | } |
2495 | pci_set_master(pci); | 2495 | pci_set_master(pci); |
2496 | snd_intel8x0_chip_init(chip, 0); | ||
2496 | if (request_irq(pci->irq, snd_intel8x0_interrupt, | 2497 | if (request_irq(pci->irq, snd_intel8x0_interrupt, |
2497 | IRQF_SHARED, card->shortname, chip)) { | 2498 | IRQF_SHARED, card->shortname, chip)) { |
2498 | printk(KERN_ERR "intel8x0: unable to grab IRQ %d, " | 2499 | printk(KERN_ERR "intel8x0: unable to grab IRQ %d, " |
@@ -2502,7 +2503,6 @@ static int intel8x0_resume(struct pci_dev *pci) | |||
2502 | } | 2503 | } |
2503 | chip->irq = pci->irq; | 2504 | chip->irq = pci->irq; |
2504 | synchronize_irq(chip->irq); | 2505 | synchronize_irq(chip->irq); |
2505 | snd_intel8x0_chip_init(chip, 0); | ||
2506 | 2506 | ||
2507 | /* re-initialize mixer stuff */ | 2507 | /* re-initialize mixer stuff */ |
2508 | if (chip->device_type == DEVICE_INTEL_ICH4 && !spdif_aclink) { | 2508 | if (chip->device_type == DEVICE_INTEL_ICH4 && !spdif_aclink) { |
@@ -2862,16 +2862,7 @@ static int __devinit snd_intel8x0_create(struct snd_card *card, | |||
2862 | ICH_REG_ALI_INTERRUPTSR : ICH_REG_GLOB_STA; | 2862 | ICH_REG_ALI_INTERRUPTSR : ICH_REG_GLOB_STA; |
2863 | chip->int_sta_mask = int_sta_masks; | 2863 | chip->int_sta_mask = int_sta_masks; |
2864 | 2864 | ||
2865 | /* request irq after initializaing int_sta_mask, etc */ | ||
2866 | if (request_irq(pci->irq, snd_intel8x0_interrupt, | ||
2867 | IRQF_SHARED, card->shortname, chip)) { | ||
2868 | snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq); | ||
2869 | snd_intel8x0_free(chip); | ||
2870 | return -EBUSY; | ||
2871 | } | ||
2872 | chip->irq = pci->irq; | ||
2873 | pci_set_master(pci); | 2865 | pci_set_master(pci); |
2874 | synchronize_irq(chip->irq); | ||
2875 | 2866 | ||
2876 | switch(chip->device_type) { | 2867 | switch(chip->device_type) { |
2877 | case DEVICE_INTEL_ICH4: | 2868 | case DEVICE_INTEL_ICH4: |
@@ -2901,6 +2892,15 @@ static int __devinit snd_intel8x0_create(struct snd_card *card, | |||
2901 | return err; | 2892 | return err; |
2902 | } | 2893 | } |
2903 | 2894 | ||
2895 | /* request irq after initializaing int_sta_mask, etc */ | ||
2896 | if (request_irq(pci->irq, snd_intel8x0_interrupt, | ||
2897 | IRQF_SHARED, card->shortname, chip)) { | ||
2898 | snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq); | ||
2899 | snd_intel8x0_free(chip); | ||
2900 | return -EBUSY; | ||
2901 | } | ||
2902 | chip->irq = pci->irq; | ||
2903 | |||
2904 | if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops)) < 0) { | 2904 | if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops)) < 0) { |
2905 | snd_intel8x0_free(chip); | 2905 | snd_intel8x0_free(chip); |
2906 | return err; | 2906 | return err; |