Re: USB IR receivers and evdev
Ville Syrjälä <[email protected]>
| Newsgroups | gmane.linux.usb.devel |
|---|---|
| Message-ID | <[email protected]> |
On Tue, Feb 13, 2007 at 10:37:10AM -0500, Jon Smirl wrote: > On 2/13/07, Ville Syrjälä <[email protected]> wrote: > > On Mon, Feb 12, 2007 at 10:10:07PM -0500, Jon Smirl wrote: > > > On 2/12/07, Greg KH <[email protected]> wrote: > > > > On Sun, Feb 11, 2007 at 03:20:20PM -0500, Jon Smirl wrote: > > > > > Most drivers for USB IR remote controls are out of tree. They are located here: > > > > > http://www.lirc.org/ > > > > > > > > > > Why aren't these in-tree? > > > > > > > > Because the lirc developers do not have the time to submit them upstream > > > > :( > > > > > > > > Feel free to clean them up and work with the developers to get them > > > > upstream, I tried over a year ago and gave up... > > > > > > How should IR receivers be handled in the kernel? For example the > > > ati_remote2 support already in the kernel has a mapping table like > > > this for keys that get passed up through evdev. > > > > > > static struct { > > > int hw_code; > > > int key_code; > > > } ati_remote2_key_table[] = { > > > { 0x00, KEY_0 }, > > > { 0x01, KEY_1 }, > > > { 0x02, KEY_2 }, > > > { 0x03, KEY_3 }, > > > { 0x04, KEY_4 }, > > > { 0x05, KEY_5 }, > > > { 0x06, KEY_6 }, > > > > > > This model breaks down when you point remotes from different > > > manufacturers at the receiver. > > > > > > You want a model more along the lines of: > > > 1) receiving a xmit with a new manufacturer id cases an evdev device > > > to be dynamically created > > > 2) wait for user space to load a mapping table into new device (udev event?) > > > 3) now start passing mapped events on up to user space. > > > > > > LIRC passes up the full event to user space and then uses tables to > > > decode it there. But that model eliminates using evdev. > > > > AFAIK uinput should allow you to write userspace evdev drivers. > > That is what LIRC is doing currently. I thought it has a lircd daemon that apps talk to. > The trouble with that is that > every app that wants to use LIRC needs code to do it. AFAIK with uinput the apps doesn't need any special code. The only difference to in-kernel evdev drivers is that the actual device driver lives in a user space daemon. So if lircd would use uinput apps should just open("/dev/input/event<something>") and use read(), write(), ioctl() to talk to the driver, same as other evdev devices. Someone correct me if I'm totally wrong here. ... > The two in-tree ATI remote drivers have gone the evdev route. All > other remotes are handled by LIRC. BTW the ATI remotes are RF w/ their own USB receivers, not IR. -- Ville Syrjälä [email protected] http://www.sci.fi/~syrjala/ ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier. Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ [email protected] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel