Jon Smirl wrote: > On Sat, Nov 28, 2009 at 2:45 PM, Stefan Richter > <stefanr@xxxxxxxxxxxxxxxxx> wrote: >> Jon Smirl wrote: >>> Also, how do you create the devices for each remote? You would need to >>> create these devices before being able to do EVIOCSKEYCODE to them. >> The input subsystem creates devices on behalf of input drivers. (Kernel >> drivers, that is. Userspace drivers are per se not affected.) > > We have one IR receiver device and multiple remotes. How does the > input system know how many devices to create corresponding to how many > remotes you have? There is no current mechanism to do that. You need > an input device for each remote so that you can do the EVIOCSKEYCODE > against it. Some type of "create subdevice" IOCTL will need to be > built. > > I handled that in configds like this: > /configfs - mount the basic configfs > /configfs/remotes (created by loading IR support) > mkdir /configfs/remotes/remote_A - this causes the input subdevice to > be created, the name of it appears in the created directory. > mkdir /configfs/remotes/remote_A/... - now build the mapping entires. > > This "create subdevice" IOCTL will need to take a name so that it can > be identified. You will probably another IOCTL to enumerate which > subdevices belong to the root device, etc... > > Keyboards don't have subdevices. There is a 1:1 mapping between the > keyboard and the device driver. The above struct doesn't fit for the already existing in-kernel drivers, since you may have more than one IR driver on kernel. I have some machines here with 3 or 4 different input cards, each with their own IR hardware. How are you supposing to associate a created Remote Controller with the corresponding driver? With EVIOSKEYCODE, it is as simple as directing the ioctl to the corresponding evdev interface. 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