aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/ca0106/ca0106_main.c
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2006-11-21 06:14:23 -0500
committerJaroslav Kysela <perex@server.perex.cz>2006-12-20 02:55:57 -0500
commit437a5a4606c12ab904793a7cad5b2062fc76c04e (patch)
tree57a8b320f931ddd29ecc5933d7f6acc68dc35ef7 /sound/pci/ca0106/ca0106_main.c
parent01f681da496831eb3aff5a908cefdafe74dd263b (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/ca0106/ca0106_main.c')
-rw-r--r--sound/pci/ca0106/ca0106_main.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/sound/pci/ca0106/ca0106_main.c b/sound/pci/ca0106/ca0106_main.c
index 2adbd003851d..35ac187cab66 100644
--- a/sound/pci/ca0106/ca0106_main.c
+++ b/sound/pci/ca0106/ca0106_main.c
@@ -1046,7 +1046,7 @@ static int snd_ca0106_free(struct snd_ca0106 *chip)
1046 1046
1047 // release the irq 1047 // release the irq
1048 if (chip->irq >= 0) 1048 if (chip->irq >= 0)
1049 free_irq(chip->irq, (void *)chip); 1049 free_irq(chip->irq, chip);
1050 pci_disable_device(chip->pci); 1050 pci_disable_device(chip->pci);
1051 kfree(chip); 1051 kfree(chip);
1052 return 0; 1052 return 0;
@@ -1267,8 +1267,7 @@ static int __devinit snd_ca0106_create(struct snd_card *card,
1267 } 1267 }
1268 1268
1269 if (request_irq(pci->irq, snd_ca0106_interrupt, 1269 if (request_irq(pci->irq, snd_ca0106_interrupt,
1270 IRQF_DISABLED|IRQF_SHARED, "snd_ca0106", 1270 IRQF_SHARED, "snd_ca0106", chip)) {
1271 (void *)chip)) {
1272 snd_ca0106_free(chip); 1271 snd_ca0106_free(chip);
1273 printk(KERN_ERR "cannot grab irq\n"); 1272 printk(KERN_ERR "cannot grab irq\n");
1274 return -EBUSY; 1273 return -EBUSY;