Re: Suppressing softrepeat
From: Vojtech Pavlik
Date: Wed Feb 22 2006 - 15:38:10 EST
On Wed, Feb 22, 2006 at 12:00:47PM -0800, Pete Zaitcev wrote:
> On Tue, 21 Feb 2006 22:08:00 +0100, Vojtech Pavlik <vojtech@xxxxxxx> wrote:
>
> > A much simpler workaround for the DRAC3 is to set the softrepeat delay
> > to at least 750ms, using kbdrate(8), which will call the proper console
> > ioctl, resulting in updating the softrepeat parameters.
> >
> > I prefer workarounds for problematic hardware done outside the kernel,
> > if possible.
>
> I agree with the sentiment when posed in the abstract way, but let me
> tell you why this case is different.
>
> Firstly, there's nothing "problematic" about this. It's just how it is.
> The only problematic thing here is our code. Currently, the situation is
> assymetric. It is possible to force softrepeat on, but not possible to
> force softrepeat off. Isn't it broken?
>
> Secondly, 750ms may be not enough. Stuart is being shy here and posting
> explanations to Bugzilla for some reason.
>
> Lastly, it's such a PITA to add these things into the userland, that
> it's completely impractical. Console is needed the most when things go
> wrong. In such case, that echo(1) may not be reached before the single
> user shell. And stuffing it into the initrd is for Linux weenies only,
> unless automated by mkinitrd.
>
> I think you're being unreasonable here. I am not asking for NFS root
> or IP autoconfiguration and sort of complicated process which ought to
> be done in userland indeed.
I'm definitely not intending to be unreasonable, and I understand your
need to have the keyboard working all the way from the grub/lilo prompt.
I just don't like adding more module options to one that already has so
many it's hard to understand what they're used for.
How about simply this patch instead?
Setting autorepeat will not be possible on 'dumb' keyboards anymore by
default, but since these usually are special forms of hardware anyway,
like the DRAC3, this shouldn't be an issue for most users. Using
'softrepeat' on these keyboards will restore the behavior for users that
need it.
diff --git a/drivers/input/keyboard/atkbd.c b/drivers/input/keyboard/atkbd.c
--- a/drivers/input/keyboard/atkbd.c
+++ b/drivers/input/keyboard/atkbd.c
@@ -863,9 +863,6 @@ static int atkbd_connect(struct serio *s
atkbd->softrepeat = atkbd_softrepeat;
atkbd->scroll = atkbd_scroll;
- if (!atkbd->write)
- atkbd->softrepeat = 1;
-
if (atkbd->softrepeat)
atkbd->softraw = 1;
--
Vojtech Pavlik
Director SuSE Labs
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/