Subject: Re: Keyboard and mouse problems on current
To: None <jonathan@dsg.stanford.edu>
From: Simon Burge <simonb@telstra.com.au>
List: port-pmax
Date: 08/08/1997 12:23:11
On Fri, 08 Aug 1997 07:20:19 +1000  Simon Burge wrote:

> On Thu, 07 Aug 1997 10:58:58 -0400  "D. Sean Davidson" wrote:
> 
> > Simon Burge wrote:
> > > 
> > > On Wed, 06 Aug 1997 12:54:30 -0400  "D. Sean Davidson" wrote:
> > > 
> > > > Has anyone else been having problems with the X server and current.
> > > >
> > > > I've had to drop back to about July 25'th code base to not have the
> > > > mouse and keyboard input screw up on me all time.  If I type too fast,
> > > > which means more than a single character every half second, keys get
> > > > missed, the shift key stays locked after I release it, and the mouse
> > > > buttons sometimes think they are still pressed.
> > > 
> > > What machine is this on?  On the faster machines (the /50's and /60's)
> > > with scc's, a delay loop for letting the serial chip settle is too
> > > slow, at least for serial consoles.  Look at sys/arch/pmax/tc/scc.c,
> > > there's two DELAY(2)'s (around lines 1161 and 1336) that you can change
> > > to DELAY(4).  I'm looking at a proper fix to this at the moment, but
> > > haven't finished yet.
> > > 
> > > Simon.
> > 
> > This is a 5000/150 (R4000 cpu).
> > 
> > I tried DELAY(4) but that didn't help.  I pushed it to DELAY(6) and
> > it works much better now.
> 
> Damn CPU's too fast.  Get a slower one :-)
> 
> Jonathan, can you commit a patch for this as a short term fix - the
> extra delay _shouldn't_ slow things down too much?  Or maybe multiply
> cpuspeed by 3 if "!CPUISMIPS3" somewhere in machdep.c?  I can put a
> small patch together when I get to work...

Oops, got the !CPUISMIPS3 around the wrong way, I read is as r3000, not
mips3...  How's something like:

*** machdep.c.ORIG	Thu Aug  7 21:18:00 1997
--- machdep.c	Fri Aug  8 12:22:46 1997
***************
*** 340,345 ****
--- 340,353 ----
  	db_machine_init();
  #endif
  
+ 	/* XXX:	bump up cpuspeed on faster machines so DELAY loop
+ 	 *	is "more realistic".  CPUISMIP3 (actually cpu_arch)
+ 	 *	is valid after mips_vector_init().
+ 	 *	Remove this when cpuspeed is calculated properly.
+ 	 */
+ 	if (CPUISMIPS3)
+ 		cpuspeed *= 3;
+ 
  	/* look at argv[0] and compute bootdev */
  	makebootdev(argv[0]);
  

Simon.