Keymap issues with Pointer+Keys device
Sascha Hlusiak
saschahlusiak at arcor.de
Mon Sep 15 10:59:16 PDT 2008
Hi,
> > Should the driver rather create two devices, one for pointer and one for
> > keys?
>
> Creating two devices is the simplest and most effective solution for now.
Is there a _simple_ way to add two devices? Because with HAL it seems not
possible to hotplug two drivers for one device, I implemented a way that the
first device adds a second device (basically ripped this out of the old evdev
driver, with the evdev-brain). While it really seems to work fine with MPX
now, I still cannot sleep at nights. Please give it your blessing.
Basically it's like this:
1) In PreInit of the official device:
- xf86AllocateInput, fill out a second device struct and save it for later.
Duplicate the IDevPtr struct for that, otherwise pointers/optionlists are
freed twice.
2) In DEVICE_INIT of official device:
- Call xf86ActivateDevice for the slave device.
- Set dev->inited = device_control(dev, DEVICE_INIT) manually.
- Call xf86EnableDevice(dev);
3) In UnInit of official device:
- Call xf86DisableDevice(dev, TRUE);
Here, "panic" set to TRUE doesn't seem so right but it's the only way I found
to totally remove a device.
Cheers,
Sascha
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.x.org/archives/xorg/attachments/20080915/487b31c0/attachment.pgp>
More information about the xorg
mailing list