[ALSA] hda-intel - Fix pci_disable_msi() call
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>
diff --git a/Documentation/sound/alsa/ALSA-Configuration.txt b/Documentation/sound/alsa/ALSA-Configuration.txt
index 1b74994..e6b57dd 100644
--- a/Documentation/sound/alsa/ALSA-Configuration.txt
+++ b/Documentation/sound/alsa/ALSA-Configuration.txt
@@ -758,6 +758,7 @@
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.
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
index cc50d13..bfd74a5 100644
--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -1422,8 +1422,9 @@
}
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);