aboutsummaryrefslogtreecommitdiff
path: root/hw/ide
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/ide
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/ide')
-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)