USB: serial: ti_usb_3410_5052: new device id for Abbot strip port cable
[firefly-linux-kernel-4.4.55.git] / drivers / mfd / rtsx_pcr.c
index 2f12cc13489ab1c1bd2051502c3469374175c61c..e968c01ca2ac82fdadc00501f1a155a052d37544 100644 (file)
@@ -56,6 +56,7 @@ static DEFINE_PCI_DEVICE_TABLE(rtsx_pci_ids) = {
        { PCI_DEVICE(0x10EC, 0x5229), PCI_CLASS_OTHERS << 16, 0xFF0000 },
        { PCI_DEVICE(0x10EC, 0x5289), PCI_CLASS_OTHERS << 16, 0xFF0000 },
        { PCI_DEVICE(0x10EC, 0x5227), PCI_CLASS_OTHERS << 16, 0xFF0000 },
+       { PCI_DEVICE(0x10EC, 0x5249), PCI_CLASS_OTHERS << 16, 0xFF0000 },
        { 0, }
 };
 
@@ -1033,6 +1034,10 @@ static int rtsx_pci_init_chip(struct rtsx_pcr *pcr)
        case 0x5227:
                rts5227_init_params(pcr);
                break;
+
+       case 0x5249:
+               rts5249_init_params(pcr);
+               break;
        }
 
        dev_dbg(&(pcr->pci->dev), "PID: 0x%04x, IC version: 0x%02x\n",
@@ -1138,7 +1143,7 @@ static int rtsx_pci_probe(struct pci_dev *pcidev,
 
        ret = rtsx_pci_acquire_irq(pcr);
        if (ret < 0)
-               goto free_dma;
+               goto disable_msi;
 
        pci_set_master(pcidev);
        synchronize_irq(pcr->irq);
@@ -1162,7 +1167,9 @@ static int rtsx_pci_probe(struct pci_dev *pcidev,
 
 disable_irq:
        free_irq(pcr->irq, (void *)pcr);
-free_dma:
+disable_msi:
+       if (pcr->msi_en)
+               pci_disable_msi(pcr->pci);
        dma_free_coherent(&(pcr->pci->dev), RTSX_RESV_BUF_LEN,
                        pcr->rtsx_resv_buf, pcr->rtsx_resv_buf_addr);
 unmap: