Am Wed, 23 Oct 2024 09:58:47 +0100
schrieb Mark Cave-Ayland <mark.cave-ayl...@ilande.co.uk>:

> This allows us to decouple the next-pc and next-rtc devices from each
> other in next_scr2_rtc_update().
> 
> Signed-off-by: Mark Cave-Ayland <mark.cave-ayl...@ilande.co.uk>
> ---
>  hw/m68k/next-cube.c | 23 +++++++++++++++++++----
>  1 file changed, 19 insertions(+), 4 deletions(-)
> 
> diff --git a/hw/m68k/next-cube.c b/hw/m68k/next-cube.c
> index bd24359913..16b16e9956 100644
> --- a/hw/m68k/next-cube.c
> +++ b/hw/m68k/next-cube.c
> @@ -108,6 +108,7 @@ struct NeXTPC {
>      NeXTRTC rtc;
>      qemu_irq rtc_power_irq;
>      qemu_irq rtc_data_irq;
> +    qemu_irq rtc_cmd_reset_irq;
>  };
>  
>  typedef struct next_dma {
> @@ -264,7 +265,6 @@ static void next_rtc_data_in_irq(void *opaque, int n, int 
> level)
>  static void next_scr2_rtc_update(NeXTPC *s)
>  {
>      uint8_t old_scr2, scr2_2;
> -    NeXTRTC *rtc = &s->rtc;
>  
>      old_scr2 = extract32(s->old_scr2, 8, 8);
>      scr2_2 = extract32(s->scr2, 8, 8);
> @@ -282,9 +282,7 @@ static void next_scr2_rtc_update(NeXTPC *s)
>          }
>      } else {
>          /* else end or abort */
> -        rtc->phase = 0;
> -        rtc->command = 0;
> -        rtc->value = 0;
> +        qemu_irq_raise(s->rtc_cmd_reset_irq);
>      }
>  }

Don't we also need a spot where the gpio gets lowered again?

 Thomas

Reply via email to