From: Vojtech Pavlik <vojtech@suse.cz>
To: Vernon Mauery <vernux@us.ibm.com>
Cc: LKML <linux-kernel@vger.kernel.org>
Subject: Re: set keyboard repeat rate: EVIOCGREP and EVIOCSREP
Date: Tue, 12 Apr 2005 17:57:24 +0200 [thread overview]
Message-ID: <20050412155724.GA21284@ucw.cz> (raw)
In-Reply-To: <425703F3.4050802@us.ibm.com>
On Fri, Apr 08, 2005 at 03:21:39PM -0700, Vernon Mauery wrote:
> Vernon Mauery wrote:
> > I was wondering if anyone knows how to change the repeatrate on a
> > USB keyboard with a 2.4 kernel. The system is a legacy free system
> > (no ps2 port), so kbdrate does nothing. With evdev loaded, the
> > keyboard and mouse (both USB devices) get registered with the event
> > system and show up as /dev/input/event[01]. I know the event
> > subsystem does software key repeating and was wondering how to
> > change that.
A recent version of kbdrate on a 2.6 kernel should use the 'KDKBDREP'
ioctl(), which should set the repeat rate on all keyboards attached to
the system (both on PS/2 and USB devices, and any others).
It achieves this by sending EV_REP events to all attached keyboard-type
devices.
> > I poked around and found the EVIOCGREP and EVIOCSREP ioctls, but
> > when I tried using them, the ioctl returned invalid parameter. Upon
> > further investigation, I found that the ioctl definitions (located
> > in the linux/input.h header file) are not used in kernel land. That
> > would explain why it failed, but that just means I ran into a dead
> > end. Were those definitions legacy code from 2.2 or is it something
> > that never got implemented, only defined? I also noticed that the
> > defines are gone in 2.6. So how _does_ one go about changing the
> > repeat rate on a keyboard input device in 2.4?
I don't think it's possible with USB keyboards on 2.4, the keybdev
module doesn't support repeat rate setting.
> Just in case anyone cares, I spent some more time poking around in the
> event code and it looks like the way to do this seems to be exposed by
> the evdev module. If you write to /dev/input/eventX an input_event
> that contains an event of type EV_REP with either REP_DELAY or
> REP_PERIOD as the code and a value in milliseconds, I think it is
> supposed to set up the software auto repeat for you. But with the
> atkbd driver, you have to turn off hardware auto repeat for this to
> take effect.
By sending the events, the driver is asked to change the delay/repeat
rate. It should work in the software autorepeat and in the hardware
autorepeat cases.
--
Vojtech Pavlik
SuSE Labs, SuSE CR
prev parent reply other threads:[~2005-04-12 15:59 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-04-07 22:29 set keyboard repeat rate: EVIOCGREP and EVIOCSREP Vernon Mauery
2005-04-08 22:21 ` Vernon Mauery
2005-04-12 15:57 ` Vojtech Pavlik [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20050412155724.GA21284@ucw.cz \
--to=vojtech@suse.cz \
--cc=linux-kernel@vger.kernel.org \
--cc=vernux@us.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox