From 903949a3ce270584d3a34e4dd95b4624f47192eb Mon Sep 17 00:00:00 2001 From: sos Date: Mon, 19 Sep 2005 07:35:42 +0000 Subject: Dont wait for READY on ATAPI_IDENTIFY. Fixes the losage of some ATAPI device that reported failed probing with "timeout waiting for read DRQ". --- sys/dev/ata/ata-lowlevel.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/sys/dev/ata/ata-lowlevel.c b/sys/dev/ata/ata-lowlevel.c index 29135b7..e227614 100644 --- a/sys/dev/ata/ata-lowlevel.c +++ b/sys/dev/ata/ata-lowlevel.c @@ -278,7 +278,11 @@ ata_end_transaction(struct ata_request *request) /* if read data get it */ if (request->flags & ATA_R_READ) { - if (ata_wait(ch, atadev, (ATA_S_READY | ATA_S_DRQ)) < 0) { + int flags = ATA_S_DRQ; + + if (request->u.ata.command != ATA_ATAPI_IDENTIFY) + flags |= ATA_S_READY; + if (ata_wait(ch, atadev, flags) < 0) { device_printf(request->dev, "timeout waiting for read DRQ\n"); request->result = EIO; -- cgit v1.1