scsi: esp_scsi: move dma mapping into the core code
Except for the mac_esp driver, which uses PIO or pseudo DMA, all drivers share the same dma mapping calls. Move the dma mapping into the core code using the scsi_dma_map / scsi_dma_unmap helpers, with a special identify mapping variant triggered off a new ESP_FLAG_NO_DMA_MAP flag for mac_esp. Signed-off-by: Christoph Hellwig <hch@lst.de> Tested-by: Finn Thain <fthain@telegraphics.com.au> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:

committed by
Martin K. Petersen

父節點
44b1b4d24b
當前提交
3f9295b65e
@@ -60,30 +60,6 @@ static u8 sun3x_esp_read8(struct esp *esp, unsigned long reg)
|
||||
return readb(esp->regs + (reg * 4UL));
|
||||
}
|
||||
|
||||
static dma_addr_t sun3x_esp_map_single(struct esp *esp, void *buf,
|
||||
size_t sz, int dir)
|
||||
{
|
||||
return dma_map_single(esp->dev, buf, sz, dir);
|
||||
}
|
||||
|
||||
static int sun3x_esp_map_sg(struct esp *esp, struct scatterlist *sg,
|
||||
int num_sg, int dir)
|
||||
{
|
||||
return dma_map_sg(esp->dev, sg, num_sg, dir);
|
||||
}
|
||||
|
||||
static void sun3x_esp_unmap_single(struct esp *esp, dma_addr_t addr,
|
||||
size_t sz, int dir)
|
||||
{
|
||||
dma_unmap_single(esp->dev, addr, sz, dir);
|
||||
}
|
||||
|
||||
static void sun3x_esp_unmap_sg(struct esp *esp, struct scatterlist *sg,
|
||||
int num_sg, int dir)
|
||||
{
|
||||
dma_unmap_sg(esp->dev, sg, num_sg, dir);
|
||||
}
|
||||
|
||||
static int sun3x_esp_irq_pending(struct esp *esp)
|
||||
{
|
||||
if (dma_read32(DMA_CSR) & (DMA_HNDL_INTR | DMA_HNDL_ERROR))
|
||||
@@ -182,10 +158,6 @@ static int sun3x_esp_dma_error(struct esp *esp)
|
||||
static const struct esp_driver_ops sun3x_esp_ops = {
|
||||
.esp_write8 = sun3x_esp_write8,
|
||||
.esp_read8 = sun3x_esp_read8,
|
||||
.map_single = sun3x_esp_map_single,
|
||||
.map_sg = sun3x_esp_map_sg,
|
||||
.unmap_single = sun3x_esp_unmap_single,
|
||||
.unmap_sg = sun3x_esp_unmap_sg,
|
||||
.irq_pending = sun3x_esp_irq_pending,
|
||||
.reset_dma = sun3x_esp_reset_dma,
|
||||
.dma_drain = sun3x_esp_dma_drain,
|
||||
|
Reference in New Issue
Block a user