Re: keyboard repeat speed went nuts since 2.6.0-test5, even in 2.6.0-test6-mm4

From: Vojtech Pavlik
Date: Wed Oct 08 2003 - 03:28:55 EST


On Wed, Oct 08, 2003 at 10:23:46AM +0200, Jurriaan wrote:
> From: Vojtech Pavlik <vojtech@xxxxxxx>
> Date: Tue, Oct 07, 2003 at 10:40:56PM +0200
> > On Tue, Oct 07, 2003 at 10:33:16PM +0200, Jurriaan wrote:
> > > I like my keyboard fast (must be from playing a lot of angband).
> > >
> > > In 2.6.0-test5, after '/sbin/kbdrate -r 30 -d 250', I get some 2000
> > > characters in a minute (pressing n continuously, stopwatch in hand).
> > > In 2.6.0-test6 and 2.6.0-test6-mm4, after '/sbin/kbdrate -r 30 -d 250',
> > > I get some 820 characters in a minute.
> > >
> > > 30 cps != 800/60 s, that's more like half that rate.
> > >
> > > Booting with or without atkbd_softrepeat=1 on the kernel commandline
> > > makes no difference at all.
> >
> > It's a bug. I have a fix, it went through LKML already, but Linus
> > didn't merge it yet. I'll be resending it.
> >
> > > It's not only the repeat-speed that has gone down, the delay before
> > > repeat kicks in is notably slower as well. This is perhaps even more
> > > frustrating, but harder to measure :-(
> > >
> > > This is on a plain Chicony KB-7903 PS/2 keyboard. It is connected via a
> > > Vista Rose KVM to a VIA KT400 chipset motherboard.
> > >
> > > Any patches to test are very welcome here.
> >
> > Fix attached.
> >
> Sorry, but that fix is already in 2.6.0-test6-mm4; that's why I tested
> that version...

Yet another bug. Fix attached, too.

--
Vojtech Pavlik
SuSE Labs, SuSE CR
You can pull this changeset from:
bk://kernel.bkbits.net/vojtech/input

===================================================================

ChangeSet@xxxxxxxxxx, 2003-09-28 18:48:05+02:00, vojtech@xxxxxxx
input: Fix atkbd_softrepeat kernel command line parameter.


atkbd.c | 8 ++++++++
1 files changed, 8 insertions(+)

===================================================================

diff -Nru a/drivers/input/keyboard/atkbd.c b/drivers/input/keyboard/atkbd.c
--- a/drivers/input/keyboard/atkbd.c Wed Oct 8 10:27:57 2003
+++ b/drivers/input/keyboard/atkbd.c Wed Oct 8 10:27:57 2003
@@ -707,9 +707,17 @@
if (ints[0] > 0) atkbd_reset = ints[1];
return 1;
}
+static int __init atkbd_setup_softrepeat(char *str)
+{
+ int ints[4];
+ str = get_options(str, ARRAY_SIZE(ints), ints);
+ if (ints[0] > 0) atkbd_softrepeat = ints[1];
+ return 1;
+}

__setup("atkbd_set=", atkbd_setup_set);
__setup("atkbd_reset", atkbd_setup_reset);
+__setup("atkbd_softrepeat=", atkbd_setup_softrepeat);
#endif

int __init atkbd_init(void)