diff options
| author | Paolo Bonzini <pbonzini@redhat.com> | 2011-10-17 16:34:59 +0200 |
|---|---|---|
| committer | Kevin Wolf <kwolf@redhat.com> | 2011-10-28 19:25:50 +0200 |
| commit | af0e1ea2d32eafd837c51326368ce2d8f36e6871 (patch) | |
| tree | 7d387e93b816b0285da66e042a93934e8eb23933 /hw/ide/atapi.c | |
| parent | f0f992e6509354e0e9d3bd46681bacb1ff53f62b (diff) | |
| download | focaccia-qemu-af0e1ea2d32eafd837c51326368ce2d8f36e6871.tar.gz focaccia-qemu-af0e1ea2d32eafd837c51326368ce2d8f36e6871.zip | |
atapi: cleanup/fix mode sense results
The first two bytes (after the 8-byte ATAPI header) are the mode page number and the number of bytes after the length field itself. Make this clear in the code. The AUDIO_CTL page was filled with wrong values. It is not anymore in MMC, but at least keep the values sane. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'hw/ide/atapi.c')
| -rw-r--r-- | hw/ide/atapi.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/hw/ide/atapi.c b/hw/ide/atapi.c index 347c38d5a5..e898da2dd6 100644 --- a/hw/ide/atapi.c +++ b/hw/ide/atapi.c @@ -711,8 +711,8 @@ static void cmd_mode_sense(IDEState *s, uint8_t *buf) buf[6] = 0; buf[7] = 0; - buf[8] = 0x01; - buf[9] = 0x06; + buf[8] = MODE_PAGE_R_W_ERROR; + buf[9] = 16 - 10; buf[10] = 0x00; buf[11] = 0x05; buf[12] = 0x00; @@ -730,6 +730,8 @@ static void cmd_mode_sense(IDEState *s, uint8_t *buf) buf[6] = 0; buf[7] = 0; + buf[8] = MODE_PAGE_AUDIO_CTL; + buf[9] = 24 - 10; /* Fill with CDROM audio volume */ buf[17] = 0; buf[19] = 0; @@ -747,8 +749,8 @@ static void cmd_mode_sense(IDEState *s, uint8_t *buf) buf[6] = 0; buf[7] = 0; - buf[8] = 0x2a; - buf[9] = 0x12; + buf[8] = MODE_PAGE_CAPABILITIES; + buf[9] = 28 - 10; buf[10] = 0x00; buf[11] = 0x00; |