summaryrefslogtreecommitdiffstats
path: root/sys/dev/ata/ata-lowlevel.c
diff options
context:
space:
mode:
authorsos <sos@FreeBSD.org>2005-05-01 12:24:45 +0000
committersos <sos@FreeBSD.org>2005-05-01 12:24:45 +0000
commit2d7b156b4fc27247817c21ded9ae61ff956e3a12 (patch)
treedb978ad18c5c9723114c87c6c0b1577efbf272ae /sys/dev/ata/ata-lowlevel.c
parent006d6ec57b7df989aae7398015631e43649fae59 (diff)
downloadFreeBSD-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.c18
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;
OpenPOWER on IntegriCloud