From 934819f80bd58688874a0ef8f4b97346b9f497c8 Mon Sep 17 00:00:00 2001 From: Stephen Hemminger Date: Mon, 21 Aug 2006 19:17:46 +0200 Subject: [PATCH] --- yaml --- r: 34897 b: refs/heads/master c: 7376d013fc6d3a45d748e0ce758ca9412b01b9dd h: refs/heads/master i: 34895: ee2d1b01036b966d43b635d73467d1027dcbe7a0 v: v3 --- [refs] | 2 +- trunk/sound/pci/hda/hda_intel.c | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 9366f2ffcb2a..94b5d22977a8 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 93f09c4cc111506db2ffa6220b7a3d7f73e41aa3 +refs/heads/master: 7376d013fc6d3a45d748e0ce758ca9412b01b9dd diff --git a/trunk/sound/pci/hda/hda_intel.c b/trunk/sound/pci/hda/hda_intel.c index ce75e07aaa2a..c9ae9f778928 100644 --- a/trunk/sound/pci/hda/hda_intel.c +++ b/trunk/sound/pci/hda/hda_intel.c @@ -55,6 +55,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."); @@ -68,6 +69,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 */ @@ -1418,8 +1421,10 @@ static int azx_free(struct azx *chip) msleep(1); } - 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); @@ -1502,6 +1507,9 @@ static int __devinit azx_create(struct snd_card *card, struct pci_dev *pci, goto errout; } + if (!disable_msi) + pci_enable_msi(pci); + if (request_irq(pci->irq, azx_interrupt, IRQF_DISABLED|IRQF_SHARED, "HDA Intel", (void*)chip)) { snd_printk(KERN_ERR SFX "unable to grab IRQ %d\n", pci->irq);