CD-ROM, ATAPI HDD, MO, and ZIP: correct bus speed arithmetic, makes especially MO and ZIP much faster.
This commit is contained in:
@@ -656,7 +656,7 @@ scsi_cdrom_bus_speed(scsi_cdrom_t *dev)
|
||||
dev->callback = -1.0;
|
||||
return 0.0;
|
||||
} else
|
||||
return ret * 1000000.0;
|
||||
return 1000000.0 / ret;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1069,8 +1069,9 @@ scsi_cdrom_read_data(scsi_cdrom_t *dev, const int msf, const int type, const int
|
||||
dev->block_len = temp_len;
|
||||
|
||||
if ((dev->drv->bus_type != CDROM_BUS_SCSI) &&
|
||||
(scsi_cdrom_current_mode(dev) != 2))
|
||||
(scsi_cdrom_current_mode(dev) != 2)) {
|
||||
num = (dev->packet_len / dev->block_len);
|
||||
}
|
||||
}
|
||||
|
||||
dev->sector_pos++;
|
||||
@@ -1126,7 +1127,7 @@ scsi_cdrom_read_blocks(scsi_cdrom_t *dev)
|
||||
}
|
||||
|
||||
if (ret) {
|
||||
if (!dev->sector_len) {
|
||||
if (dev->sector_len == 0) {
|
||||
scsi_cdrom_command_complete(dev);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -400,7 +400,8 @@ scsi_disk_bus_speed(scsi_disk_t *dev)
|
||||
dev->callback = -1.0;
|
||||
return 0.0;
|
||||
} else
|
||||
return ret * 1000000.0;
|
||||
/* We get bytes per µs, so divide 1000000.0 by it. */
|
||||
return 1000000.0 / ret;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -484,6 +485,10 @@ scsi_disk_command_common(scsi_disk_t *dev)
|
||||
break;
|
||||
}
|
||||
|
||||
/*
|
||||
For ATAPI, this will be 1000000.0 / µs_per_byte, and this will
|
||||
convert it back to µs_per_byte.
|
||||
*/
|
||||
period = 1000000.0 / bytes_per_second;
|
||||
scsi_disk_log(dev->log, "Byte transfer period: %" PRIu64 " us\n",
|
||||
(uint64_t) period);
|
||||
|
||||
Reference in New Issue
Block a user