[PATCH] [UBUNTU:sound/pci/hda/] Add MSI support to HDA Intel

crimsun at fungus.sh.nu crimsun at fungus.sh.nu
Sat Sep 30 04:03:20 UTC 2006


From 1836486e965631fde5d463b3722e0584979612e0 Mon Sep 17 00:00:00 2001
From: Daniel T. Chen <crimsun at garnish.localdomain>
Date: Fri, 29 Sep 2006 21:03:50 -0400
Subject: [PATCH] [UBUNTU:sound/pci/hda/] Add MSI support to HDA Intel

UpstreamStatus: Added in upstream alsa-kernel hg changeset:
		8dfdda8f27c1 [http://hg-mirror.alsa-project.org/alsa-kernel?cmd=changeset;node=8dfdda8f27c16786a03a60b70b56f9fd4a8de7ba;style=raw]

This patch enables Message Signalled Interrupts for the HDA Intel,
which prevents audio from sharing an IRQ with USB.

Suitable for application to both Dapper and Edgy linux-source.

Signed-off-by: Stephen Hemminger <shemminger at osdl.org>
Signed-off-by: Daniel T Chen <crimsun at ubuntu.com>
---
 sound/pci/hda/hda_intel.c |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletions(-)

diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
index 81b36d2..112136b 100644
--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -54,6 +54,7 @@ static char *model;
 static int position_fix;
 static int probe_mask = -1;
 static int single_cmd;
+static int disable_msi;
 
 module_param(index, int, 0444);
 MODULE_PARM_DESC(index, "Index value for Intel HD audio interface.");
@@ -67,6 +68,8 @@ module_param(probe_mask, int, 0444);
 MODULE_PARM_DESC(probe_mask, "Bitmask to probe codecs (default = -1).");
 module_param(single_cmd, bool, 0444);
 MODULE_PARM_DESC(single_cmd, "Use single command to communicate with codecs (for debugging only).");
+module_param(disable_msi, int, 0);
+MODULE_PARM_DESC(disable_msi, "Disable Message Signaled Interrupt (MSI)");
 
 
 /* just for backward compatibility */
@@ -1400,8 +1403,10 @@ static int azx_free(azx_t *chip)
 		synchronize_irq(chip->irq);
 	}
 
-	if (chip->irq >= 0)
+	if (chip->irq >= 0) {
+		pci_disable_msi(chip->pci);
 		free_irq(chip->irq, (void*)chip);
+	}
 	if (chip->remap_addr)
 		iounmap(chip->remap_addr);
 
@@ -1484,6 +1489,9 @@ #endif
 		goto errout;
 	}
 
+	if (!disable_msi)
+		pci_enable_msi(pci);
+
 	if (request_irq(pci->irq, azx_interrupt, SA_INTERRUPT|SA_SHIRQ,
 			"HDA Intel", (void*)chip)) {
 		snd_printk(KERN_ERR SFX "unable to grab IRQ %d\n", pci->irq);
-- 
1.4.1


-- 
Daniel T. Chen            crimsun at ubuntu.com
GPG key:  0xC88ABDA3
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20060929/1aea1be6/attachment.sig>


More information about the kernel-team mailing list