ide: Fix ATA command READ to set ATAPI signature for CD-ROM

Must set the ATAPI device signature, see ATA4 8.27.5.2 Outputs for
PACKET Command feature set devices, and ACS-2 7.36.6 Outputs for
PACKET feature set devices.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
Markus Armbruster 2011-09-06 18:58:34 +02:00 committed by Kevin Wolf
parent a791236992
commit 3f76a7c381

View file

@ -983,8 +983,10 @@ void ide_exec_cmd(IDEBus *bus, uint32_t val)
lba48 = 1; lba48 = 1;
case WIN_READ: case WIN_READ:
case WIN_READ_ONCE: case WIN_READ_ONCE:
if (!s->bs) if (s->drive_kind == IDE_CD) {
ide_set_signature(s); /* odd, but ATA4 8.27.5.2 requires it */
goto abort_cmd; goto abort_cmd;
}
ide_cmd_lba48_transform(s, lba48); ide_cmd_lba48_transform(s, lba48);
s->req_nb_sectors = 1; s->req_nb_sectors = 1;
ide_sector_read(s); ide_sector_read(s);