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

Andries Brouwer (aebr@win.tue.nl)
Thu, 22 Aug 2002 21:37:43 +0200


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?

Andries
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/