diff options
author | sos <sos@FreeBSD.org> | 2002-07-22 18:36:14 +0000 |
---|---|---|
committer | sos <sos@FreeBSD.org> | 2002-07-22 18:36:14 +0000 |
commit | 9a6aed10867f57b18710016e7bd6a37214c5300e (patch) | |
tree | 712aa9083d96de5c74ffd320fc416be7c3aa6409 | |
parent | dacb15ae37d0a379f5da8f8a654055b7a28ca7cc (diff) | |
download | FreeBSD-src-9a6aed10867f57b18710016e7bd6a37214c5300e.zip FreeBSD-src-9a6aed10867f57b18710016e7bd6a37214c5300e.tar.gz |
Sync with the spl changes in -stable.
Add start of support for DVD+RW.
-rw-r--r-- | sys/dev/ata/atapi-all.c | 7 | ||||
-rw-r--r-- | sys/dev/ata/atapi-all.h | 1 |
2 files changed, 6 insertions, 2 deletions
diff --git a/sys/dev/ata/atapi-all.c b/sys/dev/ata/atapi-all.c index 2b47ef4..27a1a3a 100644 --- a/sys/dev/ata/atapi-all.c +++ b/sys/dev/ata/atapi-all.c @@ -199,15 +199,17 @@ atapi_queue_cmd(struct ata_device *atadev, int8_t *ccb, caddr_t data, TAILQ_INSERT_HEAD(&atadev->channel->atapi_queue, request, chain); else TAILQ_INSERT_TAIL(&atadev->channel->atapi_queue, request, chain); - splx(s); ata_start(atadev->channel); /* if callback used, then just return, gets called from interrupt context */ - if (callback) + if (callback) { + splx(s); return 0; + } /* wait for request to complete */ tsleep((caddr_t)request, PRIBIO, "atprq", 0); + splx(s); error = request->error; if (error) bcopy(&request->sense, atadev->result, sizeof(struct atapi_reqsense)); @@ -660,6 +662,7 @@ atapi_cmd2str(u_int8_t cmd) case 0x1a: return ("MODE_SENSE"); case 0x1b: return ("START_STOP"); case 0x1e: return ("PREVENT_ALLOW"); + case 0x23: return ("ATAPI_READ_FORMAT_CAPACITIES"); case 0x25: return ("READ_CAPACITY"); case 0x28: return ("READ_BIG"); case 0x2a: return ("WRITE_BIG"); diff --git a/sys/dev/ata/atapi-all.h b/sys/dev/ata/atapi-all.h index 63d4a75..92f123e 100644 --- a/sys/dev/ata/atapi-all.h +++ b/sys/dev/ata/atapi-all.h @@ -82,6 +82,7 @@ #define SS_RETENSION 0x02 #define SS_EJECT 0x04 #define ATAPI_PREVENT_ALLOW 0x1e /* media removal */ +#define ATAPI_READ_FORMAT_CAPACITIES 0x23 /* get format capacities */ #define ATAPI_READ_CAPACITY 0x25 /* get volume capacity */ #define ATAPI_READ_BIG 0x28 /* read data */ #define ATAPI_WRITE_BIG 0x2a /* write data */ |