diff options
-rw-r--r-- | hw/ide/atapi.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/hw/ide/atapi.c b/hw/ide/atapi.c index f7f714c..685cbaa 100644 --- a/hw/ide/atapi.c +++ b/hw/ide/atapi.c @@ -875,6 +875,12 @@ static void cmd_start_stop_unit(IDEState *s, uint8_t* buf) int sense; bool start = buf[4] & 1; bool loej = buf[4] & 2; /* load on start, eject on !start */ + int pwrcnd = buf[4] & 0xf0; + + if (pwrcnd) { + /* eject/load only happens for power condition == 0 */ + return; + } if (loej) { if (!start && !s->tray_open && s->tray_locked) { |