Commit d5b4eb4016e70ae4d80367306c826deb0defc04c

Authored by aliguori
1 parent 3dec6ecd

Fix media detection on emulated CDROM (Gary Grebus)

This patch tweaks the ATAPI CDROM emulation to fix an annoyance seen
when running a variety of Linux guests: the desktop GUI shows a CDROM
device as present, but is unable to automount the media and display its
contents.

The patch adds the PLAY_AUDIO capability bit to the data returned by
MODE_SENSE commands.  That convinces the guest kernel to determine what
kind of media is present.

Arguably Linux could be smarter about this, but it's my guess there are
few (if any) hardware CDROM drives that don't set the bit, and there are
a large number of Linux distros that exhibit this problem.

Signed-off-by: Gary Grebus <ggrebus@virtualiron.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>



git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5752 c046a42c-6fe2-441c-8c8c-71466251a162
Showing 1 changed file with 3 additions and 1 deletions
hw/ide.c
... ... @@ -1603,7 +1603,9 @@ static void ide_atapi_cmd(IDEState *s)
1603 1603 buf[10] = 0x00;
1604 1604 buf[11] = 0x00;
1605 1605  
1606   - buf[12] = 0x70;
  1606 + /* Claim PLAY_AUDIO capability (0x01) since some Linux
  1607 + code checks for this to automount media. */
  1608 + buf[12] = 0x71;
1607 1609 buf[13] = 3 << 5;
1608 1610 buf[14] = (1 << 0) | (1 << 3) | (1 << 5);
1609 1611 if (bdrv_is_locked(s->bs))
... ...