ide: clear interrupt on command write
authorJohn Snow <jsnow@redhat.com>
Fri, 24 Jul 2020 05:22:59 +0000 (01:22 -0400)
committerJohn Snow <jsnow@redhat.com>
Thu, 1 Oct 2020 17:04:16 +0000 (13:04 -0400)
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>
hw/ide/core.c

index 8a55352e4b228124ae18c27f9bf94e872dde713f..0d745d63a18ef38e5397ad7c73e0c11ac7c34160 100644 (file)
@@ -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;
     }