Suppressing softrepeat

From: Pete Zaitcev
Date: Tue Feb 21 2006 - 15:41:19 EST

Add the "nosoftrepeat" parameter. This is useful if a "dumb" keyboard
has (unswitcheable) hardware repeat, like in Dell DRAC3.

Signed-off-by: Pete Zaitcev <zaitcev@xxxxxxxxxx>


Hi, Dmitry,

Dell people passed on a request to add a new parameter, "nosoftrepeat",
to i8042 (in atkbd.c). So, if I understand right, things should work so:

- None set in grub.conf: Softrepeat is set by the driver as detected
or derived. This is the default.
- "softrepeat" set: Softrepeat is on, regardless
- "nosoftrepeat" set: Softrepeat is off, regardless
- Both "softrepeat" and "nosoftrepeat" are set: Do not do that.

The code looked confusing, but there is an good explanation in this bug:

In short words, DRAC3 "plugs into" the keyboard connector, but does not
emulate output, so we detect this as "dumb" keyboard and enable softrepeat.
But softrepeat causes double keypresses.

I suppose we could revamp the old softrepeat parameter to be more than
a boolean, but I see no point.

If you agree, please include the attached.

-- Pete

--- linux-2.6.16-rc2/drivers/input/keyboard/atkbd.c 2006-02-11 00:31:41.000000000 -0800
+++ linux-2.6.16-rc2-lem/drivers/input/keyboard/atkbd.c 2006-02-21 11:53:53.000000000 -0800
@@ -50,6 +50,10 @@ static int atkbd_softrepeat;
module_param_named(softrepeat, atkbd_softrepeat, bool, 0);
MODULE_PARM_DESC(softrepeat, "Use software keyboard repeat");

+static int atkbd_nosoftrepeat;
+module_param_named(nosoftrepeat, atkbd_nosoftrepeat, bool, 0);
+MODULE_PARM_DESC(nosoftrepeat, "Do not use software keyboard repeat");
static int atkbd_softraw = 1;
module_param_named(softraw, atkbd_softraw, bool, 0);
MODULE_PARM_DESC(softraw, "Use software generated rawmode");
@@ -862,7 +866,7 @@ static int atkbd_connect(struct serio *s
atkbd->softrepeat = atkbd_softrepeat;
atkbd->scroll = atkbd_scroll;

- if (!atkbd->write)
+ if (!atkbd->write && !atkbd_nosoftrepeat)
atkbd->softrepeat = 1;

if (atkbd->softrepeat)
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at