Thread (1 message) 1 message, 1 author, 2011-10-08

Re: Busted keyboard, fix, and Question about default HID device plumbing

From: Jiri Kosina <hidden>
Date: 2011-10-08 06:19:01

On Fri, 7 Oct 2011, Terry Lambert wrote:
You make a very good point on the key remapping.

...

Are we sure that there isn't a field in the keyboard information in
the USB that reports the keyboard does this?

The only other alternative seems to be to quirk the keyboard as
reporting keys down when they are down, up when they are up, and
generating pseudo events for "keycode not present in report".

I guess I'm willing to write a "hosed keyboard driver" driver if
necessary.  This apparently effects about 5-10% of keyboards,
predominantly laptops with internal USB (some dell inspiron, some
samsung), and the folding keyboards people like to use with android
tablets.

I'm willing to take any advice about where I can get a handle on all
the keys in a given report to implement a general quirk on this
hardware.

If necessary, we can always write a driver, I suppose, if you can
point me at an example?
So if I understood the situation correctly (Dmitry, thanks for adding me 
to CC), what you want to do is to write a very simple driver that has a 
hook called every time HID event occurs on the keyboard, and have it do 
modifier magic before it's reported to the input subsystem.

There are various existing drivers which are doing exactly this that can 
serve as an example. The simplest one probably is hid-microsoft, the more 
sophisticated one is hid-apple. These two are registering ->event 
callback, so they are obtaining already pre-parsed information.

If you'd need to receive information that hasn't been parsed yet by the 
HID parser, you'd rather register ->raw_event callback. There are various 
drivers that to this as well -- hid-zydacron being a really simple one and 
hid-magicmouse being a sophisticated one.

I believe those drivers should serve as a perfect example for what you 
need.

-- 
Jiri Kosina
SUSE Labs
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help