[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 18/22] mac_via: move VIA1 portB write logic into mos6522_q800_via1
From: |
Mark Cave-Ayland |
Subject: |
[PULL 18/22] mac_via: move VIA1 portB write logic into mos6522_q800_via1_write() |
Date: |
Fri, 26 Jun 2020 10:23:13 +0100 |
Currently the logic is split between the mos6522 portB_write() callback and
the memory region used to capture the VIA1 MMIO accesses. Move everything
into the latter mos6522_q800_via1_write() function to keep all the logic in
one place to make it easier to follow.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Tested-by: Finn Thain <fthain@telegraphics.com.au>
Acked-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20200623204936.24064-19-mark.cave-ayland@ilande.co.uk>
---
hw/misc/mac_via.c | 24 ++++++++++--------------
1 file changed, 10 insertions(+), 14 deletions(-)
diff --git a/hw/misc/mac_via.c b/hw/misc/mac_via.c
index 7a28bb37ac..a1dc00d9f6 100644
--- a/hw/misc/mac_via.c
+++ b/hw/misc/mac_via.c
@@ -801,11 +801,21 @@ static void mos6522_q800_via1_write(void *opaque, hwaddr
addr, uint64_t val,
unsigned size)
{
MOS6522Q800VIA1State *v1s = MOS6522_Q800_VIA1(opaque);
+ MacVIAState *m = container_of(v1s, MacVIAState, mos6522_via1);
MOS6522State *ms = MOS6522(v1s);
addr = (addr >> 9) & 0xf;
mos6522_write(ms, addr, val, size);
+ switch (addr) {
+ case VIA_REG_B:
+ via1_rtc_update(m);
+ via1_adb_update(m);
+
+ v1s->last_b = ms->b;
+ break;
+ }
+
via1_one_second_update(v1s);
via1_VBL_update(v1s);
}
@@ -1037,18 +1047,6 @@ static TypeInfo mac_via_info = {
};
/* VIA 1 */
-static void mos6522_q800_via1_portB_write(MOS6522State *s)
-{
- MOS6522Q800VIA1State *v1s = container_of(s, MOS6522Q800VIA1State,
- parent_obj);
- MacVIAState *m = container_of(v1s, MacVIAState, mos6522_via1);
-
- via1_rtc_update(m);
- via1_adb_update(m);
-
- v1s->last_b = s->b;
-}
-
static void mos6522_q800_via1_reset(DeviceState *dev)
{
MOS6522State *ms = MOS6522(dev);
@@ -1071,10 +1069,8 @@ static void mos6522_q800_via1_init(Object *obj)
static void mos6522_q800_via1_class_init(ObjectClass *oc, void *data)
{
DeviceClass *dc = DEVICE_CLASS(oc);
- MOS6522DeviceClass *mdc = MOS6522_DEVICE_CLASS(oc);
dc->reset = mos6522_q800_via1_reset;
- mdc->portB_write = mos6522_q800_via1_portB_write;
}
static const TypeInfo mos6522_q800_via1_type_info = {
--
2.20.1
- [PULL 08/22] cuda: convert to use ADBBusState internal autopoll variables, (continued)
- [PULL 08/22] cuda: convert to use ADBBusState internal autopoll variables, Mark Cave-Ayland, 2020/06/26
- [PULL 09/22] pmu: convert to use ADBBusState internal autopoll variables, Mark Cave-Ayland, 2020/06/26
- [PULL 10/22] mac_via: convert to use ADBBusState internal autopoll variables, Mark Cave-Ayland, 2020/06/26
- [PULL 11/22] adb: introduce new ADBDeviceHasData method to ADBDeviceClass, Mark Cave-Ayland, 2020/06/26
- [PULL 12/22] adb: keep track of devices with pending data, Mark Cave-Ayland, 2020/06/26
- [PULL 13/22] adb: add status field for holding information about the last ADB request, Mark Cave-Ayland, 2020/06/26
- [PULL 14/22] adb: use adb_request() only for explicit requests, Mark Cave-Ayland, 2020/06/26
- [PULL 15/22] adb: add autopoll_blocked variable to block autopoll, Mark Cave-Ayland, 2020/06/26
- [PULL 16/22] cuda: add adb_autopoll_block() and adb_autopoll_unblock() functions, Mark Cave-Ayland, 2020/06/26
- [PULL 17/22] pmu: add adb_autopoll_block() and adb_autopoll_unblock() functions, Mark Cave-Ayland, 2020/06/26
- [PULL 18/22] mac_via: move VIA1 portB write logic into mos6522_q800_via1_write(),
Mark Cave-Ayland <=
- [PULL 19/22] mac_via: rework ADB state machine to be compatible with both MacOS and Linux, Mark Cave-Ayland, 2020/06/26
- [PULL 20/22] adb: only call autopoll callbacks when autopoll is not blocked, Mark Cave-Ayland, 2020/06/26
- [PULL 21/22] adb: use adb_device prefix for ADB device trace events, Mark Cave-Ayland, 2020/06/26
- [PULL 22/22] adb: add ADB bus trace events, Mark Cave-Ayland, 2020/06/26
- Re: [PULL 00/22] qemu-macppc queue 20200626, Peter Maydell, 2020/06/26