summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2018-10-11 10:17:16 -0400
committerMartin K. Petersen <martin.petersen@oracle.com>2018-10-17 21:34:20 -0400
commitdfda5e21c93a3441e8a54a38000cff95f9515d34 (patch)
tree770692c4623feb0dfeab4af48ee307168e67191a
parent6c404a68bf83b4135a8a9aa1c388ebdf98e8ba7f (diff)
scsi: dc395x: use generic DMA API
Convert the driver from the legacy pci_* DMA API to the generic DMA API. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-rw-r--r--drivers/scsi/dc395x.c37
1 files changed, 15 insertions, 22 deletions
diff --git a/drivers/scsi/dc395x.c b/drivers/scsi/dc395x.c
index f3b65e5efe2b..8c55ec6e1827 100644
--- a/drivers/scsi/dc395x.c
+++ b/drivers/scsi/dc395x.c
@@ -946,10 +946,8 @@ static void build_srb(struct scsi_cmnd *cmd, struct DeviceCtlBlk *dcb,
946 sgp->length++; 946 sgp->length++;
947 } 947 }
948 948
949 srb->sg_bus_addr = pci_map_single(dcb->acb->dev, 949 srb->sg_bus_addr = dma_map_single(&dcb->acb->dev->dev,
950 srb->segment_x, 950 srb->segment_x, SEGMENTX_LEN, DMA_TO_DEVICE);
951 SEGMENTX_LEN,
952 PCI_DMA_TODEVICE);
953 951
954 dprintkdbg(DBG_SG, "build_srb: [n] map sg %p->%08x(%05x)\n", 952 dprintkdbg(DBG_SG, "build_srb: [n] map sg %p->%08x(%05x)\n",
955 srb->segment_x, srb->sg_bus_addr, SEGMENTX_LEN); 953 srb->segment_x, srb->sg_bus_addr, SEGMENTX_LEN);
@@ -1871,19 +1869,15 @@ static void sg_update_list(struct ScsiReqBlk *srb, u32 left)
1871 xferred -= psge->length; 1869 xferred -= psge->length;
1872 } else { 1870 } else {
1873 /* Partial SG entry done */ 1871 /* Partial SG entry done */
1874 pci_dma_sync_single_for_cpu(srb->dcb-> 1872 dma_sync_single_for_cpu(&srb->dcb->acb->dev->dev,
1875 acb->dev, 1873 srb->sg_bus_addr, SEGMENTX_LEN,
1876 srb->sg_bus_addr, 1874 DMA_TO_DEVICE);
1877 SEGMENTX_LEN,
1878 PCI_DMA_TODEVICE);
1879 psge->length -= xferred; 1875 psge->length -= xferred;
1880 psge->address += xferred; 1876 psge->address += xferred;
1881 srb->sg_index = idx; 1877 srb->sg_index = idx;
1882 pci_dma_sync_single_for_device(srb->dcb-> 1878 dma_sync_single_for_device(&srb->dcb->acb->dev->dev,
1883 acb->dev, 1879 srb->sg_bus_addr, SEGMENTX_LEN,
1884 srb->sg_bus_addr, 1880 DMA_TO_DEVICE);
1885 SEGMENTX_LEN,
1886 PCI_DMA_TODEVICE);
1887 break; 1881 break;
1888 } 1882 }
1889 psge++; 1883 psge++;
@@ -3178,9 +3172,8 @@ static void pci_unmap_srb(struct AdapterCtlBlk *acb, struct ScsiReqBlk *srb)
3178 /* unmap DC395x SG list */ 3172 /* unmap DC395x SG list */
3179 dprintkdbg(DBG_SG, "pci_unmap_srb: list=%08x(%05x)\n", 3173 dprintkdbg(DBG_SG, "pci_unmap_srb: list=%08x(%05x)\n",
3180 srb->sg_bus_addr, SEGMENTX_LEN); 3174 srb->sg_bus_addr, SEGMENTX_LEN);
3181 pci_unmap_single(acb->dev, srb->sg_bus_addr, 3175 dma_unmap_single(&acb->dev->dev, srb->sg_bus_addr, SEGMENTX_LEN,
3182 SEGMENTX_LEN, 3176 DMA_TO_DEVICE);
3183 PCI_DMA_TODEVICE);
3184 dprintkdbg(DBG_SG, "pci_unmap_srb: segs=%i buffer=%p\n", 3177 dprintkdbg(DBG_SG, "pci_unmap_srb: segs=%i buffer=%p\n",
3185 scsi_sg_count(cmd), scsi_bufflen(cmd)); 3178 scsi_sg_count(cmd), scsi_bufflen(cmd));
3186 /* unmap the sg segments */ 3179 /* unmap the sg segments */
@@ -3198,8 +3191,8 @@ static void pci_unmap_srb_sense(struct AdapterCtlBlk *acb,
3198 /* Unmap sense buffer */ 3191 /* Unmap sense buffer */
3199 dprintkdbg(DBG_SG, "pci_unmap_srb_sense: buffer=%08x\n", 3192 dprintkdbg(DBG_SG, "pci_unmap_srb_sense: buffer=%08x\n",
3200 srb->segment_x[0].address); 3193 srb->segment_x[0].address);
3201 pci_unmap_single(acb->dev, srb->segment_x[0].address, 3194 dma_unmap_single(&acb->dev->dev, srb->segment_x[0].address,
3202 srb->segment_x[0].length, PCI_DMA_FROMDEVICE); 3195 srb->segment_x[0].length, DMA_FROM_DEVICE);
3203 /* Restore SG stuff */ 3196 /* Restore SG stuff */
3204 srb->total_xfer_length = srb->xferred; 3197 srb->total_xfer_length = srb->xferred;
3205 srb->segment_x[0].address = 3198 srb->segment_x[0].address =
@@ -3594,9 +3587,9 @@ static void request_sense(struct AdapterCtlBlk *acb, struct DeviceCtlBlk *dcb,
3594 srb->total_xfer_length = SCSI_SENSE_BUFFERSIZE; 3587 srb->total_xfer_length = SCSI_SENSE_BUFFERSIZE;
3595 srb->segment_x[0].length = SCSI_SENSE_BUFFERSIZE; 3588 srb->segment_x[0].length = SCSI_SENSE_BUFFERSIZE;
3596 /* Map sense buffer */ 3589 /* Map sense buffer */
3597 srb->segment_x[0].address = 3590 srb->segment_x[0].address = dma_map_single(&acb->dev->dev,
3598 pci_map_single(acb->dev, cmd->sense_buffer, 3591 cmd->sense_buffer, SCSI_SENSE_BUFFERSIZE,
3599 SCSI_SENSE_BUFFERSIZE, PCI_DMA_FROMDEVICE); 3592 DMA_FROM_DEVICE);
3600 dprintkdbg(DBG_SG, "request_sense: map buffer %p->%08x(%05x)\n", 3593 dprintkdbg(DBG_SG, "request_sense: map buffer %p->%08x(%05x)\n",
3601 cmd->sense_buffer, srb->segment_x[0].address, 3594 cmd->sense_buffer, srb->segment_x[0].address,
3602 SCSI_SENSE_BUFFERSIZE); 3595 SCSI_SENSE_BUFFERSIZE);