Re: set keyboard repeat rate: EVIOCGREP and EVIOCSREP

2005-04-12 Thread Vojtech Pavlik
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
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: set keyboard repeat rate: EVIOCGREP and EVIOCSREP

2005-04-12 Thread Vojtech Pavlik
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
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: set keyboard repeat rate: EVIOCGREP and EVIOCSREP

2005-04-08 Thread Vernon Mauery
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.
> 
> 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?
> 

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.  

--Vernon
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: set keyboard repeat rate: EVIOCGREP and EVIOCSREP

2005-04-08 Thread Vernon Mauery
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.
 
 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?
 

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.  

--Vernon
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


set keyboard repeat rate: EVIOCGREP and EVIOCSREP

2005-04-07 Thread Vernon Mauery
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.

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?

Thanks in advance for your help.

--Vernon Mauery
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


set keyboard repeat rate: EVIOCGREP and EVIOCSREP

2005-04-07 Thread Vernon Mauery
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.

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?

Thanks in advance for your help.

--Vernon Mauery
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/