aboutsummaryrefslogtreecommitdiffstats
path: root/src/cdrom.c
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2011-11-16 13:02:42 +0100
committerKevin O'Connor <kevin@koconnor.net>2011-11-17 21:01:31 -0500
commit0082374caae8b8f0e235034d3ee2faaa48274d42 (patch)
tree565ad14aaba4990f6b49fc62c16a973b0edfd6f0 /src/cdrom.c
parent7f7b0f6cbd716f18494d26045e42dd7a3c26dfb0 (diff)
downloadseabios-0082374caae8b8f0e235034d3ee2faaa48274d42.tar.gz
cdrom: use TEST UNIT READY to detect ready medium
The READ CAPACITY output is not used except for some debugging messages. In the future, we will use this code for USB sticks too, but those already send READ CAPACITY. To avoid code duplication, switch to TEST UNIT READY for this task. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'src/cdrom.c')
-rw-r--r--src/cdrom.c16
1 files changed, 3 insertions, 13 deletions
diff --git a/src/cdrom.c b/src/cdrom.c
index 6351fec0..b8179991 100644
--- a/src/cdrom.c
+++ b/src/cdrom.c
@@ -189,19 +189,18 @@ atapi_is_ready(struct disk_op_s *op)
{
dprintf(6, "atapi_is_ready (drive=%p)\n", op->drive_g);
- /* Retry READ CAPACITY for 5 seconds unless MEDIUM NOT PRESENT is
+ /* Retry TEST UNIT READY for 5 seconds unless MEDIUM NOT PRESENT is
* reported by the device. If the device reports "IN PROGRESS",
* 30 seconds is added. */
- struct cdbres_read_capacity info;
int in_progress = 0;
u64 end = calc_future_tsc(5000);
for (;;) {
if (check_tsc(end)) {
- dprintf(1, "read capacity failed\n");
+ dprintf(1, "test unit ready failed\n");
return -1;
}
- int ret = cdb_read_capacity(op, &info);
+ int ret = cdb_test_unit_ready(op);
if (!ret)
// Success
break;
@@ -226,15 +225,6 @@ atapi_is_ready(struct disk_op_s *op)
in_progress = 1;
}
}
-
- u32 blksize = ntohl(info.blksize), sectors = ntohl(info.sectors);
- if (blksize != GET_GLOBAL(op->drive_g->blksize)) {
- printf("Unsupported sector size %u\n", blksize);
- return -1;
- }
-
- dprintf(6, "sectors=%u\n", sectors);
- printf("%dMB medium detected\n", sectors>>(20-11));
return 0;
}