summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorsos <sos@FreeBSD.org>2004-07-23 17:01:47 +0000
committersos <sos@FreeBSD.org>2004-07-23 17:01:47 +0000
commit13128d7277d124b4e62819135e1dff1b159e2b09 (patch)
tree6929b0b6f4ef3e8e4fe15233ad638fbeb53eab24 /sys
parent296061987ab879478b4a451e688978307546501c (diff)
downloadFreeBSD-src-13128d7277d124b4e62819135e1dff1b159e2b09.zip
FreeBSD-src-13128d7277d124b4e62819135e1dff1b159e2b09.tar.gz
Dont expect interrupt from ATAPI_RESET, it doesn't deliver one.
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/ata/ata-lowlevel.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/sys/dev/ata/ata-lowlevel.c b/sys/dev/ata/ata-lowlevel.c
index d3dbb7c..e1635d7 100644
--- a/sys/dev/ata/ata-lowlevel.c
+++ b/sys/dev/ata/ata-lowlevel.c
@@ -108,6 +108,17 @@ ata_generic_transaction(struct ata_request *request)
break;
}
+ /* device reset doesn't interrupt */
+ if (request->u.ata.command == ATA_ATAPI_RESET) {
+ DELAY(10);
+ request->status = ATA_IDX_INB(ch, ATA_STATUS);
+ if (request->status & ATA_S_ERROR) {
+ request->error = ATA_IDX_INB(ch, ATA_ERROR);
+ //request->result = EIO;
+ }
+ break;
+ }
+
/* if write command output the data */
if (write) {
if (ata_wait(request->device,
OpenPOWER on IntegriCloud