[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: For Those Who Care About X (Bits from the X Strike Force)



On Thu, Sep  4, 2008 at 14:18:33 +0200, Philipp Matthias Hahn wrote:

> "evdev" currently has a problem with suspend/undock: I have an external mouse
> and keyboard connected to the docking station of a Lenovo R61, the keyboard
> configured for evddev. On suspend/undock, the X-server doesn't release the
> device node /dev/input/event?. The Linux kernel forcefully unpluggs all devices
> on suspend/undock and re-pluggs them on resume/dock. Since the old device-node
> is still open (and thus used), a new device-node with a new number is created.
> The external keyboard is thus dead, until I restart the server.
> "lsof -p `pidof X`" shows the node as still be opened, but deleted.
> The mouse uses /dev/input/mice and thus doesn't have the problem.
> Switching to console before suspending/undocking doesn't help either.
> 
> This basically happens because
> xserver-xorg-input-evdev-2.0.3/src/evdev.c:EvdevProc(DeviceIntPtr device, int what)
> doesn't release the node on DEVICE_OFF and re-opens it on DEVICE_ON, but opens
> it in EvdevPreInit() and closes it in DEVICE_CLOSE.
> But according to http://www.x.org/wiki/XOrgInputDriverSpec that should actually
> what should be done.
> 
> Googling for this shows that others have this problem, too. I currently don't
> have time to fix it myself, but others should know and perhaps have time and
> more experience with writing XOrg input drivers to fix this properly.
> 
This is actually already filed (well, pretty much, the same fix would
apply) as #496101.  There's a proposed fix at
http://lists.freedesktop.org/pipermail/xorg/2008-August/037975.html
BTW this issue only arises with devices specified in xorg.conf, it
doesn't apply to the hotplug case.

Cheers,
Julien


Reply to: