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.
This commit is contained in:
parent
65f0e79e4f
commit
7535275b7c
@ -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 @@ qms_iomd_intenable(sc, enable)
|
||||
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);
|
||||
|
||||
|
@ -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 @@ videomemory_t videomemory; /* Video memory descriptor */
|
||||
/* 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 @@ void rpc_sa110_cc_setup __P((void));
|
||||
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 @@ initarm_new_bootloader(bootconf)
|
||||
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 @@ initarm_old_bootloader(bootconf)
|
||||
|
||||
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);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user