summaryrefslogtreecommitdiffstats
path: root/sys/dev/ata
diff options
context:
space:
mode:
authorsos <sos@FreeBSD.org>2006-03-18 13:14:38 +0000
committersos <sos@FreeBSD.org>2006-03-18 13:14:38 +0000
commitc1d9ed7049125364750fc3a12bb09eafd99b5cfb (patch)
tree96198a97f46dc625015b5b6ae97709cfc2af585d /sys/dev/ata
parent17d5388342a96d4b552a77d3ad40c9951448bd62 (diff)
downloadFreeBSD-src-c1d9ed7049125364750fc3a12bb09eafd99b5cfb.zip
FreeBSD-src-c1d9ed7049125364750fc3a12bb09eafd99b5cfb.tar.gz
Properly use the sense key info
Diffstat (limited to 'sys/dev/ata')
-rw-r--r--sys/dev/ata/ata-usb.c6
-rw-r--r--sys/dev/ata/atapi-fd.c2
2 files changed, 5 insertions, 3 deletions
diff --git a/sys/dev/ata/ata-usb.c b/sys/dev/ata/ata-usb.c
index f995b7c..9f181ef 100644
--- a/sys/dev/ata/ata-usb.c
+++ b/sys/dev/ata/ata-usb.c
@@ -802,7 +802,8 @@ ata_usbchannel_end_transaction(struct ata_request *request)
/* XXX SOS convert the request from the format used, only BBB for now*/
/* ATA/ATAPI IDENTIFY needs special treatment */
- if (request->u.atapi.ccb[0] == ATAPI_INQUIRY) {
+ if ((request->flags & ATA_R_ATAPI) &&
+ (request->u.atapi.ccb[0] == ATAPI_INQUIRY)) {
struct ata_device *atadev = device_get_softc(request->dev);
struct atapi_inquiry *inquiry = (struct atapi_inquiry *)request->data;
u_int16_t *ptr;
@@ -823,7 +824,8 @@ ata_usbchannel_end_transaction(struct ata_request *request)
*ptr = ntohs(*ptr);
request->result = 0;
}
- if (request->u.atapi.ccb[0] == ATAPI_REQUEST_SENSE)
+ if ((request->flags & ATA_R_ATAPI) &&
+ (request->u.atapi.ccb[0] == ATAPI_REQUEST_SENSE))
request->u.atapi.sense_key = request->u.atapi.sense_data.sense_key << 4;
return ATA_OP_FINISHED;
}
diff --git a/sys/dev/ata/atapi-fd.c b/sys/dev/ata/atapi-fd.c
index 78887c6..11b20e6 100644
--- a/sys/dev/ata/atapi-fd.c
+++ b/sys/dev/ata/atapi-fd.c
@@ -317,7 +317,7 @@ afd_sense(device_t dev)
while ((error = afd_test_ready(dev)) && timeout--) {
DELAY(100000);
}
- if (error == ENODEV)
+ if (error == EBUSY)
return 1;
/* The IOMEGA Clik! doesn't support reading the cap page, fake it */
OpenPOWER on IntegriCloud