From 674b4867d3928f32e4f50cdd717b75012c95286e Mon Sep 17 00:00:00 2001 From: Keyon Jie Date: Thu, 30 May 2019 10:42:17 +0800 Subject: [PATCH] ASoC: SOF: Intel: hda: switch to use legacy IRQ mode There is IPC IRQ missing issues during our stress test with MSI mode, let's switch back to use legacy IRQ mode before we can verify that MSI is reliable. Signed-off-by: Keyon Jie --- sound/soc/sof/intel/hda.c | 31 ++++++++++--------------------- 1 file changed, 10 insertions(+), 21 deletions(-) diff --git a/sound/soc/sof/intel/hda.c b/sound/soc/sof/intel/hda.c index b9f3c802924b1f..7243a3acab0117 100644 --- a/sound/soc/sof/intel/hda.c +++ b/sound/soc/sof/intel/hda.c @@ -495,28 +495,17 @@ int hda_dsp_probe(struct snd_sof_dev *sdev) /* * register our IRQ - * let's try to enable msi firstly - * if it fails, use legacy interrupt mode - * TODO: support interrupt mode selection with kernel parameter - * support msi multiple vectors + * looks msi has some interrupt missing issues for us ATM, + * let's use legacy interrupt mode before that is fixed. */ - ret = pci_alloc_irq_vectors(pci, 1, 1, PCI_IRQ_MSI); - if (ret < 0) { - dev_info(sdev->dev, "use legacy interrupt mode\n"); - /* - * in IO-APIC mode, hda->irq and ipc_irq are using the same - * irq number of pci->irq - */ - hdev->irq = pci->irq; - sdev->ipc_irq = pci->irq; - sdev->msi_enabled = 0; - } else { - dev_info(sdev->dev, "use msi interrupt mode\n"); - hdev->irq = pci_irq_vector(pci, 0); - /* ipc irq number is the same of hda irq */ - sdev->ipc_irq = hdev->irq; - sdev->msi_enabled = 1; - } + dev_info(sdev->dev, "use legacy interrupt mode\n"); + /* + * use IO-APIC mode, hda->irq and ipc_irq are using the same + * irq number of pci->irq + */ + hdev->irq = pci->irq; + sdev->ipc_irq = pci->irq; + sdev->msi_enabled = 0; dev_dbg(sdev->dev, "using HDA IRQ %d\n", hdev->irq); ret = request_threaded_irq(hdev->irq, hda_dsp_stream_interrupt,