scsi: mvsas: fully convert to the generic DMA API

The driver is currently using an odd mix of legacy PCI DMA API and
generic DMA API calls, switch it over to the generic API entirely.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
Christoph Hellwig 2018-10-11 09:54:21 +02:00 committed by Martin K. Petersen
parent ab8e7f4bdf
commit 4179a0619a
2 changed files with 9 additions and 24 deletions

View File

@ -403,29 +403,14 @@ static int pci_go_64(struct pci_dev *pdev)
{ {
int rc; int rc;
if (!pci_set_dma_mask(pdev, DMA_BIT_MASK(64))) { rc = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64));
rc = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64));
if (rc) { if (rc) {
rc = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32)); rc = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32));
if (rc) {
dev_printk(KERN_ERR, &pdev->dev,
"64-bit DMA enable failed\n");
return rc;
}
}
} else {
rc = pci_set_dma_mask(pdev, DMA_BIT_MASK(32));
if (rc) { if (rc) {
dev_printk(KERN_ERR, &pdev->dev, dev_printk(KERN_ERR, &pdev->dev,
"32-bit DMA enable failed\n"); "32-bit DMA enable failed\n");
return rc; return rc;
} }
rc = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32));
if (rc) {
dev_printk(KERN_ERR, &pdev->dev,
"32-bit consistent DMA enable failed\n");
return rc;
}
} }
return rc; return rc;

View File

@ -336,13 +336,13 @@ static int mvs_task_prep_smp(struct mvs_info *mvi,
* DMA-map SMP request, response buffers * DMA-map SMP request, response buffers
*/ */
sg_req = &task->smp_task.smp_req; sg_req = &task->smp_task.smp_req;
elem = dma_map_sg(mvi->dev, sg_req, 1, PCI_DMA_TODEVICE); elem = dma_map_sg(mvi->dev, sg_req, 1, DMA_TO_DEVICE);
if (!elem) if (!elem)
return -ENOMEM; return -ENOMEM;
req_len = sg_dma_len(sg_req); req_len = sg_dma_len(sg_req);
sg_resp = &task->smp_task.smp_resp; sg_resp = &task->smp_task.smp_resp;
elem = dma_map_sg(mvi->dev, sg_resp, 1, PCI_DMA_FROMDEVICE); elem = dma_map_sg(mvi->dev, sg_resp, 1, DMA_FROM_DEVICE);
if (!elem) { if (!elem) {
rc = -ENOMEM; rc = -ENOMEM;
goto err_out; goto err_out;
@ -416,10 +416,10 @@ static int mvs_task_prep_smp(struct mvs_info *mvi,
err_out_2: err_out_2:
dma_unmap_sg(mvi->dev, &tei->task->smp_task.smp_resp, 1, dma_unmap_sg(mvi->dev, &tei->task->smp_task.smp_resp, 1,
PCI_DMA_FROMDEVICE); DMA_FROM_DEVICE);
err_out: err_out:
dma_unmap_sg(mvi->dev, &tei->task->smp_task.smp_req, 1, dma_unmap_sg(mvi->dev, &tei->task->smp_task.smp_req, 1,
PCI_DMA_TODEVICE); DMA_TO_DEVICE);
return rc; return rc;
} }
@ -904,9 +904,9 @@ static void mvs_slot_task_free(struct mvs_info *mvi, struct sas_task *task,
switch (task->task_proto) { switch (task->task_proto) {
case SAS_PROTOCOL_SMP: case SAS_PROTOCOL_SMP:
dma_unmap_sg(mvi->dev, &task->smp_task.smp_resp, 1, dma_unmap_sg(mvi->dev, &task->smp_task.smp_resp, 1,
PCI_DMA_FROMDEVICE); DMA_FROM_DEVICE);
dma_unmap_sg(mvi->dev, &task->smp_task.smp_req, 1, dma_unmap_sg(mvi->dev, &task->smp_task.smp_req, 1,
PCI_DMA_TODEVICE); DMA_TO_DEVICE);
break; break;
case SAS_PROTOCOL_SATA: case SAS_PROTOCOL_SATA: