From: Mark Cave-Ayland Date: Wed, 20 Oct 2021 13:41:25 +0000 (+0100) Subject: q800: move VIA1 IRQ from level 1 to level 6 X-Git-Tag: v6.2.0-rc0~44^2~7 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=39950b16ecc21bce3bbea3fddcdf1aaefa0d6cef;p=thirdparty%2Fqemu.git q800: move VIA1 IRQ from level 1 to level 6 On a Quadra 800 machine Linux sets via_alt_mapping to 1 and clears port B bit 6 to ensure that the VIA1 IRQ is delivered at level 6 rather than level 1. Even though QEMU doesn't yet emulate this behaviour, Linux still installs the VIA1 level 1 IRQ handler regardless of the value of via_alt_mapping which is why the kernel has been able to boot until now. Signed-off-by: Mark Cave-Ayland Reviewed-by: Laurent Vivier Message-Id: <20211020134131.4392-3-mark.cave-ayland@ilande.co.uk> Signed-off-by: Laurent Vivier --- diff --git a/hw/m68k/q800.c b/hw/m68k/q800.c index fd4855047e3..15f3067811e 100644 --- a/hw/m68k/q800.c +++ b/hw/m68k/q800.c @@ -284,7 +284,7 @@ static void q800_init(MachineState *machine) sysbus = SYS_BUS_DEVICE(via1_dev); sysbus_realize_and_unref(sysbus, &error_fatal); sysbus_mmio_map(sysbus, 1, VIA_BASE); - sysbus_connect_irq(sysbus, 0, qdev_get_gpio_in(glue, 0)); + sysbus_connect_irq(sysbus, 0, qdev_get_gpio_in(glue, 5)); adb_bus = qdev_get_child_bus(via1_dev, "adb.0"); dev = qdev_new(TYPE_ADB_KEYBOARD);