[ALSA] hda-intel - Fix pci_disable_msi() call
Takashi Iwai [Thu, 7 Sep 2006 10:40:00 +0000 (12:40 +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 1b74994..e6b57dd 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 cc50d13..bfd74a5 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);