]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
m68k: atari: Fix TT bootup freeze / unexpected (SCU) interrupt messages
authorEero Tamminen <oak@helsinkinet.fi>
Mon, 24 Jun 2024 14:49:01 +0000 (17:49 +0300)
committerGeert Uytterhoeven <geert@linux-m68k.org>
Mon, 1 Jul 2024 12:23:05 +0000 (14:23 +0200)
Avoid freeze on Atari TT / MegaSTe boot with continuous messages of:

unexpected interrupt from 112

Which was due to VBL interrupt being enabled in SCU sys mask, but there
being no handler for that any more.

(Bug and fix were first verified on real Atari TT HW by Christian,
 this patch later on in Hatari emulator.)

Fixes: 1fa0b29f3a43f9dd ("fbdev: Kill Atari vblank cursor blinking")
Reported-by: Nicolas Pomarède <npomarede@corp.free.fr>
Closes: https://listengine.tuxfamily.org/lists.tuxfamily.org/hatari-devel/2024/06/msg00016.html
Closes: https://lore.kernel.org/all/9aa793d7-82ed-4fbd-bce5-60810d8a9119@helsinkinet.fi
Tested-by: Christian Zietz <czietz@gmx.net>
Signed-off-by: Eero Tamminen <oak@helsinkinet.fi>
Reviewed-by: Michael Schmitz <schmitzmic@gmail.com>
Reviewed-by: Geert Uytterhoeven <geert@linux-m68k.org>
Link: https://lore.kernel.org/20240624144901.5236-1-oak@helsinkinet.fi
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
arch/m68k/atari/ataints.c

index 23256434191c39afc441dd6eb6ff374c1437727e..0465444ceb21645540890be6d5557bd5f1601636 100644 (file)
@@ -301,11 +301,7 @@ void __init atari_init_IRQ(void)
 
        if (ATARIHW_PRESENT(SCU)) {
                /* init the SCU if present */
-               tt_scu.sys_mask = 0x10;         /* enable VBL (for the cursor) and
-                                                                        * disable HSYNC interrupts (who
-                                                                        * needs them?)  MFP and SCC are
-                                                                        * enabled in VME mask
-                                                                        */
+               tt_scu.sys_mask = 0x0;          /* disable all interrupts */
                tt_scu.vme_mask = 0x60;         /* enable MFP and SCC ints */
        } else {
                /* If no SCU and no Hades, the HSYNC interrupt needs to be