Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/arm32 Fixed the `slow printing' bug that occured wi...



details:   https://anonhg.NetBSD.org/src/rev/47f1a8cf1710
branches:  trunk
changeset: 504203:47f1a8cf1710
user:      reinoud <reinoud%NetBSD.org@localhost>
date:      Sat Feb 24 21:29:38 2001 +0000

description:
Fixed the `slow printing' bug that occured with debugged kernels on RiscPC's.
When the IOMD isnt mapped and all is mapped 1:1 a read gives garbage and thus
the obscure feature that slows down printing (or halts it!) when the mouse
button is pressed during output to the vidcconsole gets allways activated.

Included a simple flag that signals if the IOMD is mapped; the delay routine
won't check the mouse if this flag is still clear.

diffstat:

 sys/arch/arm32/iomd/qms_iomd.c      |  12 +++++++++++-
 sys/arch/arm32/riscpc/rpc_machdep.c |  18 ++++++++++++++++--
 2 files changed, 27 insertions(+), 3 deletions(-)

diffs (86 lines):

diff -r da46a6f873bb -r 47f1a8cf1710 sys/arch/arm32/iomd/qms_iomd.c
--- a/sys/arch/arm32/iomd/qms_iomd.c    Sat Feb 24 20:23:10 2001 +0000
+++ b/sys/arch/arm32/iomd/qms_iomd.c    Sat Feb 24 21:29:38 2001 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: qms_iomd.c,v 1.1 1997/10/14 11:16:39 mark Exp $        */
+/*     $NetBSD: qms_iomd.c,v 1.2 2001/02/24 21:29:38 reinoud Exp $     */
 
 /*
  * Copyright (c) Scott Stevens 1995 All rights reserved
@@ -49,6 +49,14 @@
 #include <arm32/dev/qmsvar.h>
 #include <arm32/iomd/iomdvar.h>
 
+/*
+ * needs iomd_mapped flag to detect if the IOMD is allready connected
+ * otherwise the vidcconsole qms_console_freeze will go wrong for it
+ * can't read the IOMD when it isnt initialised (!)
+ */
+extern int iomd_mapped;
+
+
 #define TIMER1_COUNT 40000             /* 50Hz */
 
 static int  qms_iomd_probe     __P((struct device *, struct cfdata *, void *));
@@ -121,6 +129,8 @@
 void
 qms_console_freeze()
 {
+       if (!iomd_mapped) return;
+
        /* Middle mouse button freezes the display while active */
        while ((ReadByte(IO_MOUSE_BUTTONS) & MOUSE_BUTTON_MIDDLE) == 0);
 
diff -r da46a6f873bb -r 47f1a8cf1710 sys/arch/arm32/riscpc/rpc_machdep.c
--- a/sys/arch/arm32/riscpc/rpc_machdep.c       Sat Feb 24 20:23:10 2001 +0000
+++ b/sys/arch/arm32/riscpc/rpc_machdep.c       Sat Feb 24 21:29:38 2001 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: rpc_machdep.c,v 1.37 2001/02/21 00:51:27 reinoud Exp $ */
+/*     $NetBSD: rpc_machdep.c,v 1.38 2001/02/24 21:29:39 reinoud Exp $ */
 
 /*
  * Copyright (c) 2000-2001 Reinoud Zandijk.
@@ -110,6 +110,7 @@
 /*     static char bootargs[MAX_BOOT_STRING + 1]; */
 char *boot_args = NULL;
 char *boot_file = NULL;
+int   iomd_mapped = NULL;
 
 vm_offset_t physical_start;
 vm_offset_t physical_freestart;
@@ -198,7 +199,7 @@
 extern void parse_mi_bootargs  __P((char *args));
 void parse_rpc_bootargs                __P((char *args));
 
-extern void dumpsys    __P((void));
+extern void dumpsys            __P((void));
 
 
 /*
@@ -828,6 +829,13 @@
        physcon_display_base(VMEM_VBASE);
        vidcrender_reinit();
 
+       /*
+        * flag that the IOMD is mapped ... this allows to use qms slow scrolling
+        * support wich needs a mapped MEMC
+        */
+       iomd_mapped = 1;
+
+
 #ifdef VERBOSE_INIT_ARM
        printf("running on the new L1 page table!\n");
 #endif
@@ -1870,6 +1878,12 @@
 
        printf("done.\n");
 
+       /*
+        * flag that the IOMD is mapped ... this allows to use qms slow scrolling
+        * support wich needs a mapped MEMC
+        */
+       iomd_mapped = 1;
+
        /* Right set up the vectors at the bottom of page 0 */
        memcpy((char *)0x00000000, page0, page0_end - page0);
 



Home | Main Index | Thread Index | Old Index