diff options
author | Takashi Iwai <tiwai@suse.de> | 2006-11-21 06:14:23 -0500 |
---|---|---|
committer | Jaroslav Kysela <perex@server.perex.cz> | 2006-12-20 02:55:57 -0500 |
commit | 437a5a4606c12ab904793a7cad5b2062fc76c04e (patch) | |
tree | 57a8b320f931ddd29ecc5933d7f6acc68dc35ef7 /sound/pci/sonicvibes.c | |
parent | 01f681da496831eb3aff5a908cefdafe74dd263b (diff) |
[ALSA] Remove IRQF_DISABLED for shared PCI irqs
Fix IRQ flags for PCI devices.
The shared IRQs for PCI devices shouldn't be allocated with
IRQF_DISABLED. Also, when MSI is enabled, IRQF_SHARED shouldn't
be used.
The patch removes unnecessary cast in request_irq and free_irq,
too.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
Diffstat (limited to 'sound/pci/sonicvibes.c')
-rw-r--r-- | sound/pci/sonicvibes.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sound/pci/sonicvibes.c b/sound/pci/sonicvibes.c index f9b8afabda9c..9f25d93cbec2 100644 --- a/sound/pci/sonicvibes.c +++ b/sound/pci/sonicvibes.c | |||
@@ -1195,7 +1195,7 @@ static int snd_sonicvibes_free(struct sonicvibes *sonic) | |||
1195 | pci_write_config_dword(sonic->pci, 0x40, sonic->dmaa_port); | 1195 | pci_write_config_dword(sonic->pci, 0x40, sonic->dmaa_port); |
1196 | pci_write_config_dword(sonic->pci, 0x48, sonic->dmac_port); | 1196 | pci_write_config_dword(sonic->pci, 0x48, sonic->dmac_port); |
1197 | if (sonic->irq >= 0) | 1197 | if (sonic->irq >= 0) |
1198 | free_irq(sonic->irq, (void *)sonic); | 1198 | free_irq(sonic->irq, sonic); |
1199 | release_and_free_resource(sonic->res_dmaa); | 1199 | release_and_free_resource(sonic->res_dmaa); |
1200 | release_and_free_resource(sonic->res_dmac); | 1200 | release_and_free_resource(sonic->res_dmac); |
1201 | pci_release_regions(sonic->pci); | 1201 | pci_release_regions(sonic->pci); |
@@ -1257,7 +1257,8 @@ static int __devinit snd_sonicvibes_create(struct snd_card *card, | |||
1257 | sonic->midi_port = pci_resource_start(pci, 3); | 1257 | sonic->midi_port = pci_resource_start(pci, 3); |
1258 | sonic->game_port = pci_resource_start(pci, 4); | 1258 | sonic->game_port = pci_resource_start(pci, 4); |
1259 | 1259 | ||
1260 | if (request_irq(pci->irq, snd_sonicvibes_interrupt, IRQF_DISABLED|IRQF_SHARED, "S3 SonicVibes", (void *)sonic)) { | 1260 | if (request_irq(pci->irq, snd_sonicvibes_interrupt, IRQF_SHARED, |
1261 | "S3 SonicVibes", sonic)) { | ||
1261 | snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq); | 1262 | snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq); |
1262 | snd_sonicvibes_free(sonic); | 1263 | snd_sonicvibes_free(sonic); |
1263 | return -EBUSY; | 1264 | return -EBUSY; |