lkml.org 
[lkml]   [2006]   [Feb]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectSuppressing 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/
\
 
 \ /
  Last update: 2006-02-21 21:45    [W:0.157 / U:0.036 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site