aboutsummaryrefslogtreecommitdiff
path: root/hw/misc
diff options
context:
space:
mode:
authorMark Cave-Ayland <mark.cave-ayland@ilande.co.uk>2023-10-04 09:38:02 +0100
committerLaurent Vivier <laurent@vivier.eu>2023-10-06 10:33:43 +0200
commit7ebfb91d8f07447dc6cd30fba0119dc07c9cd3ba (patch)
treeaa38a25ffd02244ca8857d137f8c1719f9bcb98e /hw/misc
parent2006904938fbb85ef32eb79ab96cdcc8cbc6de1c (diff)
downloadqemu-7ebfb91d8f07447dc6cd30fba0119dc07c9cd3ba.zip
qemu-7ebfb91d8f07447dc6cd30fba0119dc07c9cd3ba.tar.gz
qemu-7ebfb91d8f07447dc6cd30fba0119dc07c9cd3ba.tar.bz2
mac_via: implement ADB_STATE_IDLE state if shift register in input mode
NetBSD switches directly to IDLE state without switching the shift register to input mode. Duplicate the existing ADB_STATE_IDLE logic in input mode from when the shift register is in output mode which allows the ADB autopoll handler to handle the response. Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Reviewed-by: Laurent Vivier <laurent@vivier.eu> Message-ID: <20231004083806.757242-17-mark.cave-ayland@ilande.co.uk> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Diffstat (limited to 'hw/misc')
-rw-r--r--hw/misc/mac_via.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/hw/misc/mac_via.c b/hw/misc/mac_via.c
index 9f9c281..3c41d62 100644
--- a/hw/misc/mac_via.c
+++ b/hw/misc/mac_via.c
@@ -702,6 +702,12 @@ static void adb_via_send(MOS6522Q800VIA1State *v1s, int state, uint8_t data)
break;
case ADB_STATE_IDLE:
+ ms->b |= VIA1B_vADBInt;
+ adb_autopoll_unblock(adb_bus);
+
+ trace_via1_adb_send("IDLE", data,
+ (ms->b & VIA1B_vADBInt) ? "+" : "-");
+
return;
}