summaryrefslogtreecommitdiff
path: root/sys/dev/ata
diff options
context:
space:
mode:
authorNate Lawson <njl@FreeBSD.org>2002-11-25 05:30:31 +0000
committerNate Lawson <njl@FreeBSD.org>2002-11-25 05:30:31 +0000
commit3e9e86119d9758d80260261c20d031fa8c794d2e (patch)
treeefc867d96772348bef9dd8d528d511ac1aaa45c1 /sys/dev/ata
parent627097e98ae523dab4b1d27f777e81e6e1b81243 (diff)
Notes
Diffstat (limited to 'sys/dev/ata')
-rw-r--r--sys/dev/ata/atapi-cd.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/sys/dev/ata/atapi-cd.c b/sys/dev/ata/atapi-cd.c
index a001c1ea8e27..162951b6214e 100644
--- a/sys/dev/ata/atapi-cd.c
+++ b/sys/dev/ata/atapi-cd.c
@@ -1002,11 +1002,24 @@ acdioctl(dev_t dev, u_long cmd, caddr_t addr, int flags, struct proc *p)
break;
case CDRIOCREADSPEED:
- error = acd_set_speed(cdp, *(int *)addr, CDR_MAX_SPEED);
+ {
+ int speed = *(int *)addr;
+
+ /* Preserve old behavior: units in multiples of CDROM speed */
+ if (speed < 177)
+ speed *= 177;
+ error = acd_set_speed(cdp, speed, CDR_MAX_SPEED);
+ }
break;
case CDRIOCWRITESPEED:
- error = acd_set_speed(cdp, CDR_MAX_SPEED, *(int *)addr);
+ {
+ int speed = *(int *)addr;
+
+ if (speed < 177)
+ speed *= 177;
+ error = acd_set_speed(cdp, CDR_MAX_SPEED, speed);
+ }
break;
case CDRIOCGETBLOCKSIZE: