Hi Alan, Alan Cox wrote: > Does it really make sense to put big chunks of protocol decoding crap for > an interface which runs at about 1 character per second on a good day > into the kernel ? Does it really make sense ot move 50K of code from user > context to kernel context where it must meet strict security > requirements, be extensively audited and cannot be paged. For embedded > users will also have to be highly modular so no unused bits are loaded. The same logic would apply to mouse, keyboards and serial consoles. It is possible to move everything to userspace. However, there are some reassons for they to be in kernelspace: - you may need them during boot time; - they are mandatory to allow the users interaction; - you need low latency. The same arguments apply to IR, especially on embedded devices: some devices, like TVs, Set Top TV boxes and IPTV Set Top Boxes have IR as their primary input device. Also, as changing a digital TV or an IP TV channel requires to discard the current MPEG stream and getting a newer one, and it requires a large time until you'll be able to output something to the user, one of the needs is to handle IR keystrokes (especially channel up/down) as fast as possible, to try to minimize the discomfort of changing a channel. Using an approach where you'll send a raw event to userspace, process there and return back to kernel will increase the latency and can only be done after when loading the SYSV runlevel stuff. On the other hand, we already have IR decoding in-kernel. Most of the code are at: drivers/media/common/ir-functions.c But there are also some other decoders at bttv, saa7134 and cx88 drivers. In the case of drivers/media stuff, there common case is that the drivers have support for both space/pulse decoding and in-hardware decoding. On both cases, the scancode is converted to a keystroke via evdev. IMHO, we shouldn't really consider dropping those decoders from kernel. Cheers, Mauro. -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html