diff options
author | Christoph Hellwig <hch@lst.de> | 2018-10-11 10:17:16 -0400 |
---|---|---|
committer | Martin K. Petersen <martin.petersen@oracle.com> | 2018-10-17 21:34:20 -0400 |
commit | dfda5e21c93a3441e8a54a38000cff95f9515d34 (patch) | |
tree | 770692c4623feb0dfeab4af48ee307168e67191a | |
parent | 6c404a68bf83b4135a8a9aa1c388ebdf98e8ba7f (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.c | 37 |
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); |