[ALSA] hda-intel - Fix pci_disable_msi() call
authorTakashi Iwai <tiwai@suse.de>
Thu, 7 Sep 2006 10:40:00 +0000 (12:40 +0200)
committerJaroslav Kysela <perex@suse.cz>
Sat, 23 Sep 2006 08:46:42 +0000 (10:46 +0200)
Fix the order to call pci_disable_msi() to be after free_irq().
(Otherwise pci_disable_msi() bugs you.)
Also, added a description of disable_msi option to documentation.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
Documentation/sound/alsa/ALSA-Configuration.txt
sound/pci/hda/hda_intel.c

index 1b749947233c404ff1e3dd5f61f8d8efd6e4fc25..e6b57dd46a4f37ba4eb7c41da93b344e7aaa8289 100644 (file)
@@ -758,6 +758,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
     position_fix - Fix DMA pointer (0 = auto, 1 = none, 2 = POSBUF, 3 = FIFO size)
     single_cmd  - Use single immediate commands to communicate with
                codecs (for debugging only)
+    disable_msi - Disable Message Signaled Interrupt (MSI)
 
     This module supports one card and autoprobe.
 
index cc50d13ee90c1739611be88f819b1e68ca4c19d3..bfd74a526b8568576adcf880c5f90a6d72ca0c14 100644 (file)
@@ -1422,8 +1422,9 @@ static int azx_free(struct azx *chip)
        }
 
        if (chip->irq >= 0) {
-               pci_disable_msi(chip->pci);
                free_irq(chip->irq, (void*)chip);
+               if (!disable_msi)
+                       pci_disable_msi(chip->pci);
        }
        if (chip->remap_addr)
                iounmap(chip->remap_addr);