Messages in this thread Patch in this message | | | Date | Tue, 21 Feb 2006 12:43:08 -0800 | From | Pete Zaitcev <> | Subject | Suppressing softrepeat |
| |
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@redhat.com>
---
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: https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=181457
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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |