diff options
| author | Søren Schmidt <sos@FreeBSD.org> | 2002-07-22 18:36:14 +0000 |
|---|---|---|
| committer | Søren Schmidt <sos@FreeBSD.org> | 2002-07-22 18:36:14 +0000 |
| commit | 5c0d1ab990500ad2a8f72cff4796f42236c7c0e1 (patch) | |
| tree | 712aa9083d96de5c74ffd320fc416be7c3aa6409 | |
| parent | 2dadf47412892ccb429a655de7c3a77992b417ad (diff) | |
Notes
| -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 2b47ef4ac0949..27a1a3aca355e 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 63d4a7572cb21..92f123ea06edb 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 */ |
