summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Snow2020-07-24 07:22:59 +0200
committerJohn Snow2020-10-01 19:04:16 +0200
commit6f52e69f468f3b75db0292be3ee479db699a9a57 (patch)
tree9af30f58886697c49d2c3d7a8f22a15251d6166d
parentide: remove magic constants from the device register (diff)
downloadqemu-6f52e69f468f3b75db0292be3ee479db699a9a57.tar.gz
qemu-6f52e69f468f3b75db0292be3ee479db699a9a57.tar.xz
qemu-6f52e69f468f3b75db0292be3ee479db699a9a57.zip
ide: clear interrupt on command write
Not known to fix any bug, but I couldn't help but notice that ATA specifies that writing to this register should clear an interrupt. ATA7: Section 5.3.3 (Command register - Effect) ATA6: Section 7.4.4 (Command register - Effect) ATA5: Section 7.4.4 (Command register - Effect) ATA4: Section 7.4.4 (Command register - Effect) ATA3: Section 5.2.2 (Command register) Other editions: try searching for the phrase "Writing this register". Signed-off-by: John Snow <jsnow@redhat.com>
-rw-r--r--hw/ide/core.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/hw/ide/core.c b/hw/ide/core.c
index 8a55352e4b..0d745d63a1 100644
--- a/hw/ide/core.c
+++ b/hw/ide/core.c
@@ -1312,6 +1312,7 @@ void ide_ioport_write(void *opaque, uint32_t addr, uint32_t val)
default:
case ATA_IOPORT_WR_COMMAND:
ide_clear_hob(bus);
+ qemu_irq_lower(bus->irq);
ide_exec_cmd(bus, val);
break;
}