aboutsummaryrefslogtreecommitdiff
path: root/hw
diff options
context:
space:
mode:
authorJohn Snow <jsnow@redhat.com>2020-10-20 16:02:42 -0400
committerJohn Snow <jsnow@redhat.com>2020-10-27 10:39:06 -0400
commit1a9925e3390b6adf1125e3abaa17c80ca012bede (patch)
tree6a0c48403bee5780851ecb4f6f4d91a16bb0830c /hw
parentb45bcd81e05dea2781f2164ca1c9dd86069502ea (diff)
downloadqemu-1a9925e3390b6adf1125e3abaa17c80ca012bede.zip
qemu-1a9925e3390b6adf1125e3abaa17c80ca012bede.tar.gz
qemu-1a9925e3390b6adf1125e3abaa17c80ca012bede.tar.bz2
ide: clear SRST after SRST finishes
The SRST protocol states that after diagnostics are complete and the status is posted, we should clear the SRST bit if it should so happen to be set. The reset method itself should handle this, but just in case -- make our intention explicit here. Signed-off-by: John Snow <jsnow@redhat.com> Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Message-id: 20201020200242.1497705-4-jsnow@redhat.com Signed-off-by: John Snow <jsnow@redhat.com>
Diffstat (limited to 'hw')
-rw-r--r--hw/ide/core.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/hw/ide/core.c b/hw/ide/core.c
index 98cea7a..e858216 100644
--- a/hw/ide/core.c
+++ b/hw/ide/core.c
@@ -2268,6 +2268,8 @@ static void ide_bus_perform_srst(void *opaque)
s = &bus->ifs[i];
ide_perform_srst(s);
}
+
+ bus->cmd &= ~IDE_CTRL_RESET;
}
void ide_ctrl_write(void *opaque, uint32_t addr, uint32_t val)