[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 18/22] mac_via: move VIA1 portB write logic into mos6522_q800
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [PATCH 18/22] mac_via: move VIA1 portB write logic into mos6522_q800_via1_write() |
Date: |
Sun, 14 Jun 2020 19:03:12 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 |
On 6/14/20 4:28 PM, Mark Cave-Ayland wrote:
> 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>
> ---
> 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 669fdca4c4..4779236f95 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);
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> 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);
> }
> @@ -1034,18 +1044,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);
> @@ -1068,10 +1066,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 = {
>
- [PATCH 09/22] pmu: convert to use ADBBusState internal autopoll variables, (continued)
- [PATCH 09/22] pmu: convert to use ADBBusState internal autopoll variables, Mark Cave-Ayland, 2020/06/14
- [PATCH 10/22] mac_via: convert to use ADBBusState internal autopoll variables, Mark Cave-Ayland, 2020/06/14
- [PATCH 11/22] adb: introduce new ADBDeviceHasData method to ADBDeviceClass, Mark Cave-Ayland, 2020/06/14
- [PATCH 12/22] adb: keep track of devices with pending data, Mark Cave-Ayland, 2020/06/14
- [PATCH 13/22] adb: add status field for holding information about the last ADB request, Mark Cave-Ayland, 2020/06/14
- [PATCH 14/22] adb: use adb_request() only for explicit requests, Mark Cave-Ayland, 2020/06/14
- [PATCH 15/22] adb: add autopoll_blocked variable to block autopoll, Mark Cave-Ayland, 2020/06/14
- [PATCH 16/22] cuda: add adb_autopoll_block() and adb_autopoll_unblock() functions, Mark Cave-Ayland, 2020/06/14
- [PATCH 17/22] pmu: add adb_autopoll_block() and adb_autopoll_unblock() functions, Mark Cave-Ayland, 2020/06/14
- [PATCH 18/22] mac_via: move VIA1 portB write logic into mos6522_q800_via1_write(), Mark Cave-Ayland, 2020/06/14
- Re: [PATCH 18/22] mac_via: move VIA1 portB write logic into mos6522_q800_via1_write(),
Philippe Mathieu-Daudé <=
- [PATCH 19/22] mac_via: rework ADB state machine to be compatible with both MacOS and Linux, Mark Cave-Ayland, 2020/06/14
- [PATCH 20/22] adb: only call autopoll callbacks when autopoll is not blocked, Mark Cave-Ayland, 2020/06/14
- [PATCH 21/22] adb: use adb_device prefix for ADB device trace events, Mark Cave-Ayland, 2020/06/14
- [PATCH 22/22] adb: add ADB bus trace events, Mark Cave-Ayland, 2020/06/14
- Re: [PATCH 00/22] ADB: fix autopoll issues and rework mac_via state machine, Finn Thain, 2020/06/16