diff options
Diffstat (limited to 'drivers/mfd/rtsx_pcr.c')
| -rw-r--r-- | drivers/mfd/rtsx_pcr.c | 11 | 
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/mfd/rtsx_pcr.c b/drivers/mfd/rtsx_pcr.c index 2f12cc13489..e968c01ca2a 100644 --- a/drivers/mfd/rtsx_pcr.c +++ b/drivers/mfd/rtsx_pcr.c @@ -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:  |