aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/ata/atapi-cd.c
diff options
context:
space:
mode:
authorSøren Schmidt <sos@FreeBSD.org>2001-02-06 16:44:25 +0000
committerSøren Schmidt <sos@FreeBSD.org>2001-02-06 16:44:25 +0000
commitb17f7a1aa529c58e2556025675db50b034826ccb (patch)
treea4fcf12a5a7196c64156ef6f2ec2dce892e99a6d /sys/dev/ata/atapi-cd.c
parentcde1a559dbbb05fc8331d46ad373788386e4cb09 (diff)
Notes
Diffstat (limited to 'sys/dev/ata/atapi-cd.c')
-rw-r--r--sys/dev/ata/atapi-cd.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/dev/ata/atapi-cd.c b/sys/dev/ata/atapi-cd.c
index bc8776090f45..19db00afa73f 100644
--- a/sys/dev/ata/atapi-cd.c
+++ b/sys/dev/ata/atapi-cd.c
@@ -1208,7 +1208,8 @@ acd_start(struct atapi_softc *atp)
devstat_start_transaction(cdp->stats);
atapi_queue_cmd(cdp->atp, ccb, bp->bio_data, count * blocksize,
- bp->bio_cmd == BIO_READ ? ATPR_F_READ : 0, 30, acd_done,bp);
+ bp->bio_cmd == BIO_READ ? ATPR_F_READ : 0,
+ (ccb[0] == ATAPI_WRITE_BIG) ? 60 : 30, acd_done, bp);
}
static int
@@ -1533,6 +1534,7 @@ acd_get_progress(struct acd_softc *cdp, int *finished)
error = atapi_queue_cmd(cdp->atp, ccb, (caddr_t)&sense, sizeof(sense),
ATPR_F_READ, 10, NULL, NULL);
+
*finished = ((sense.sk_specific2|(sense.sk_specific1<<8))*100)/65535;
return error;
}