Re: [RFC PATCH 0/4] V3 - Implementation of IR support using the input subsystem

From: Jon Smirl
Date: Fri Oct 10 2008 - 01:04:54 EST


On Fri, Oct 10, 2008 at 12:11 AM, Jarod Wilson <jarod@xxxxxxxxxxxx> wrote:
> On Thu, 2008-10-09 at 14:03 +0200, Pavel Machek wrote:
>> Hi!
>>
>> > What should the IR API look like? How are IR events mapped into
>> > keyboard events? Should they be mapped? Map them in the kernel or in
>> > user space? The maps are tiny, less than 1K per remote. Sysfs can
>> > be used to load maps into the kernel driver. Make maps only for the
>> > common buttons and don't map unusual ones?
>>
>> Map them in kernel, in analogy with normal keyboards.
>
> My thought was to basically follow what the ati_remote{,2} driver does.
>
>> > How should multiple remotes be handled? Split them out into
>> > individual input devices, or group them onto a single IR device? I
>> > can implement either.
>>
>> Individual input devices, I'd say... so that app can only listen for
>> 'its' remote.
>
> I don't quite get it. How can we tell there are multiple remotes to set
> up multiple input devices when the system comes up? All we can know
> about at driver init time is the receiver(s), no? Or would this be keyed
> off a config file? Or ______ ?


We could create a sysfs attribut named ir_config. For each config file
you copy to it it creates a new input device. The config files have
lists of map this protocol, device, command tuple to this key. When a
remote button is pressed the raw codes are fed to the in-kernel
protocol engine. That engine turns the raw codes into tuples. Tuples
are matched against the configs that have been loaded until a hit is
found. If no hit they get sent out the catch-all device.

Most remotes send out unique codes, they have to or they would turn on
unintended devices.


>
>
> --
> Jarod Wilson
> jarod@xxxxxxxxxxxx
>
>



--
Jon Smirl
jonsmirl@xxxxxxxxx
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/