Re: Patch for PC keyboard driver's autorepeat-rate handling

From: Andries Brouwer (
Date: Thu Aug 22 2002 - 14:37:43 EST

On Thu, Aug 22, 2002 at 06:31:02PM +0100, Alan Cox wrote:
> On Thu, 2002-08-22 at 16:59, Alan Stern wrote:
> > properly? The error is not in the program; it's in the kernel's
> > handling of the KDKBDREP ioctl. This patch fixes the following three
> > mistakes:
> >
> > The .rate member of struct kbd_repeat is actually a repeat
> > _period_ measured in msec; the driver interprets it as a
> > repeat _rate_ in characters per second.
> >
> > The driver returns the _prior_ values of the rate and delay
> > settings rather than the _current_ values.
> >
> > The driver looks for an exact match for the rate and delay
> > values rather than using the closest match.
> Since its done what it does now since about 1991, it would be better to
> fix the documentation if in fact there is an error.

I am not so sure. The KDKBDREP is a very recent (2.4test/prerelease-to-final)
addition to the stock kernel. The kbdrate program is much older, and of course
used /dev/port - we had this discussion not too long ago.

Today kbdrate tries (i) KDKBDREP, (ii) KIOCSRATE, (iii) /dev/port.

What it does for KDKBDREP is conform the text of kd.h, and I think
conform what m68k has done for years (but I've never seen the m68k patch).
Alan Stern is entirely right that the current 2.4 kernels and the
current kbdrate program have different ideas about what KDKBDREP does.

One of the two has to be fixed. Preferably in such a way that ancient
m68k behaviour does not change. Does anyone have this old m68k patch?

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

This archive was generated by hypermail 2b29 : Fri Aug 23 2002 - 22:00:25 EST