|
@@ -1195,7 +1195,7 @@ static int snd_sonicvibes_free(struct sonicvibes *sonic)
|
|
pci_write_config_dword(sonic->pci, 0x40, sonic->dmaa_port);
|
|
pci_write_config_dword(sonic->pci, 0x40, sonic->dmaa_port);
|
|
pci_write_config_dword(sonic->pci, 0x48, sonic->dmac_port);
|
|
pci_write_config_dword(sonic->pci, 0x48, sonic->dmac_port);
|
|
if (sonic->irq >= 0)
|
|
if (sonic->irq >= 0)
|
|
- free_irq(sonic->irq, (void *)sonic);
|
|
|
|
|
|
+ free_irq(sonic->irq, sonic);
|
|
release_and_free_resource(sonic->res_dmaa);
|
|
release_and_free_resource(sonic->res_dmaa);
|
|
release_and_free_resource(sonic->res_dmac);
|
|
release_and_free_resource(sonic->res_dmac);
|
|
pci_release_regions(sonic->pci);
|
|
pci_release_regions(sonic->pci);
|
|
@@ -1257,7 +1257,8 @@ static int __devinit snd_sonicvibes_create(struct snd_card *card,
|
|
sonic->midi_port = pci_resource_start(pci, 3);
|
|
sonic->midi_port = pci_resource_start(pci, 3);
|
|
sonic->game_port = pci_resource_start(pci, 4);
|
|
sonic->game_port = pci_resource_start(pci, 4);
|
|
|
|
|
|
- if (request_irq(pci->irq, snd_sonicvibes_interrupt, IRQF_DISABLED|IRQF_SHARED, "S3 SonicVibes", (void *)sonic)) {
|
|
|
|
|
|
+ if (request_irq(pci->irq, snd_sonicvibes_interrupt, IRQF_SHARED,
|
|
|
|
+ "S3 SonicVibes", sonic)) {
|
|
snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq);
|
|
snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq);
|
|
snd_sonicvibes_free(sonic);
|
|
snd_sonicvibes_free(sonic);
|
|
return -EBUSY;
|
|
return -EBUSY;
|