diff options
| author | Nate Lawson <njl@FreeBSD.org> | 2002-11-25 05:30:31 +0000 |
|---|---|---|
| committer | Nate Lawson <njl@FreeBSD.org> | 2002-11-25 05:30:31 +0000 |
| commit | 3e9e86119d9758d80260261c20d031fa8c794d2e (patch) | |
| tree | efc867d96772348bef9dd8d528d511ac1aaa45c1 /sys/dev/ata | |
| parent | 627097e98ae523dab4b1d27f777e81e6e1b81243 (diff) | |
Notes
Diffstat (limited to 'sys/dev/ata')
| -rw-r--r-- | sys/dev/ata/atapi-cd.c | 17 |
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: |
