diff options
author | sos <sos@FreeBSD.org> | 2005-05-01 12:24:45 +0000 |
---|---|---|
committer | sos <sos@FreeBSD.org> | 2005-05-01 12:24:45 +0000 |
commit | 2d7b156b4fc27247817c21ded9ae61ff956e3a12 (patch) | |
tree | db978ad18c5c9723114c87c6c0b1577efbf272ae /sys/dev/ata/ata-lowlevel.c | |
parent | 006d6ec57b7df989aae7398015631e43649fae59 (diff) | |
download | FreeBSD-src-2d7b156b4fc27247817c21ded9ae61ff956e3a12.zip FreeBSD-src-2d7b156b4fc27247817c21ded9ae61ff956e3a12.tar.gz |
Update on the last commit, the dma* funciton needs to be called with
a channel device, not an ata device, or we'll be out of luck in
reset/timeout where we dont have a device.
Diffstat (limited to 'sys/dev/ata/ata-lowlevel.c')
-rw-r--r-- | sys/dev/ata/ata-lowlevel.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/sys/dev/ata/ata-lowlevel.c b/sys/dev/ata/ata-lowlevel.c index a68b28a..37bb8cb 100644 --- a/sys/dev/ata/ata-lowlevel.c +++ b/sys/dev/ata/ata-lowlevel.c @@ -129,7 +129,7 @@ ata_begin_transaction(struct ata_request *request) /* ATA DMA data transfer commands */ case ATA_R_DMA: /* check sanity, setup SG list and DMA engine */ - if (ch->dma->load(request->dev, request->data, request->bytecount, + if (ch->dma->load(ch->dev, request->data, request->bytecount, request->flags & ATA_R_READ)) { device_printf(request->dev, "setting up DMA failed\n"); request->result = EIO; @@ -147,7 +147,7 @@ ata_begin_transaction(struct ata_request *request) } /* start DMA engine */ - if (ch->dma->start(request->dev)) { + if (ch->dma->start(ch->dev)) { device_printf(request->dev, "error starting DMA\n"); request->result = EIO; goto begin_finished; @@ -218,7 +218,7 @@ ata_begin_transaction(struct ata_request *request) } /* check sanity, setup SG list and DMA engine */ - if (ch->dma->load(request->dev, request->data, request->bytecount, + if (ch->dma->load(ch->dev, request->data, request->bytecount, request->flags & ATA_R_READ)) { device_printf(request->dev, "setting up DMA failed\n"); request->result = EIO; @@ -261,7 +261,7 @@ ata_begin_transaction(struct ata_request *request) ATA_PROTO_ATAPI_12 ? 6 : 8); /* start DMA engine */ - if (ch->dma->start(request->dev)) { + if (ch->dma->start(ch->dev)) { request->result = EIO; goto begin_finished; } @@ -272,7 +272,7 @@ ata_begin_transaction(struct ata_request *request) begin_finished: if (ch->dma && ch->dma->flags & ATA_DMA_LOADED) - ch->dma->unload(request->dev); + ch->dma->unload(ch->dev); return ATA_OP_FINISHED; begin_continue: @@ -390,7 +390,7 @@ ata_end_transaction(struct ata_request *request) /* stop DMA engine and get status */ if (ch->dma->stop) - request->dmastat = ch->dma->stop(request->dev); + request->dmastat = ch->dma->stop(ch->dev); /* did we get error or data */ if (request->status & ATA_S_ERROR) @@ -401,7 +401,7 @@ ata_end_transaction(struct ata_request *request) request->donecount = request->bytecount; /* release SG list etc */ - ch->dma->unload(request->dev); + ch->dma->unload(ch->dev); /* done with HW */ goto end_finished; @@ -502,7 +502,7 @@ ata_end_transaction(struct ata_request *request) /* stop the engine and get engine status */ if (ch->dma->stop) - request->dmastat = ch->dma->stop(request->dev); + request->dmastat = ch->dma->stop(ch->dev); /* did we get error or data */ if (request->status & (ATA_S_ERROR | ATA_S_DWF)) @@ -513,7 +513,7 @@ ata_end_transaction(struct ata_request *request) request->donecount = request->bytecount; /* release SG list etc */ - ch->dma->unload(request->dev); + ch->dma->unload(ch->dev); /* done with HW */ goto end_finished; |