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