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.