summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsos <sos@FreeBSD.org>2002-07-22 18:36:14 +0000
committersos <sos@FreeBSD.org>2002-07-22 18:36:14 +0000
commit9a6aed10867f57b18710016e7bd6a37214c5300e (patch)
tree712aa9083d96de5c74ffd320fc416be7c3aa6409
parentdacb15ae37d0a379f5da8f8a654055b7a28ca7cc (diff)
downloadFreeBSD-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.c7
-rw-r--r--sys/dev/ata/atapi-all.h1
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 */
OpenPOWER on IntegriCloud