Newer Test Chips boards have MSI support. It does no harm to try to request it as the function will fallback to legacy interrupts if MSI is not supported. Signed-off-by: Jose Abreu <Jose.Abreu@xxxxxxxxxxxx> --- Changes from v1: - Do not try to request MSIX vectors (Tomas) - Add missing call to pci_free_irq_vectors() (Tomas) Cc: "Winkler, Tomas" <tomas.winkler@xxxxxxxxx> Cc: Joao Lima <Joao.Lima@xxxxxxxxxxxx> Cc: Jose Abreu <Jose.Abreu@xxxxxxxxxxxx> Cc: Alim Akhtar <alim.akhtar@xxxxxxxxxxx> Cc: Avri Altman <avri.altman@xxxxxxx> Cc: "James E.J. Bottomley" <jejb@xxxxxxxxxxxxx> Cc: "Martin K. Petersen" <martin.petersen@xxxxxxxxxx> Cc: linux-scsi@xxxxxxxxxxxxxxx Cc: linux-kernel@xxxxxxxxxxxxxxx --- drivers/scsi/ufs/tc-dwc-pci.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/scsi/ufs/tc-dwc-pci.c b/drivers/scsi/ufs/tc-dwc-pci.c index 74a2d80d32bd..78dc6c484e84 100644 --- a/drivers/scsi/ufs/tc-dwc-pci.c +++ b/drivers/scsi/ufs/tc-dwc-pci.c @@ -88,6 +88,7 @@ static void tc_dwc_pci_remove(struct pci_dev *pdev) pm_runtime_forbid(&pdev->dev); pm_runtime_get_noresume(&pdev->dev); ufshcd_remove(hba); + pci_free_irq_vectors(pdev); } /** @@ -136,11 +137,18 @@ tc_dwc_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) return -ENOENT; } + err = pci_alloc_irq_vectors(pdev, 1, 1, PCI_IRQ_LEGACY | PCI_IRQ_MSI); + if (err < 0) { + dev_err(&pdev->dev, "Allocation failed\n"); + return err; + } + hba->vops = &data->ops; - err = ufshcd_init(hba, mmio_base, pdev->irq); + err = ufshcd_init(hba, mmio_base, pci_irq_vector(pdev, 0)); if (err) { dev_err(&pdev->dev, "Initialization failed\n"); + pci_free_irq_vectors(pdev); return err; } -- 2.7.4