From bf0d81011e19a8bb5bbd80c6b496c8ae257b4f2c Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Mon, 14 Jul 2008 13:06:32 +0930 Subject: Don't enable the device if the grab failed with ENODEV. After suspend/resume, sometimes the device doesn't come back up on the same node. Since we do not call PreInit for the device (which would detect this situation), we continue to try to read a nonexisting file, spamming the log file with "Read Error". --- src/evdev.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/evdev.c b/src/evdev.c index 311f678..8e26c4d 100644 --- a/src/evdev.c +++ b/src/evdev.c @@ -900,12 +900,15 @@ EvdevProc(DeviceIntPtr device, int what) if (!pEvdev->kernel24 && ioctl(pInfo->fd, EVIOCGRAB, (void *)1)) xf86Msg(X_WARNING, "%s: Grab failed (%s)\n", pInfo->name, strerror(errno)); - xf86AddEnabledDevice(pInfo); - if (pEvdev->flags & EVDEV_BUTTON_EVENTS) - EvdevMBEmuPreInit(pInfo); - device->public.on = TRUE; + if (errno != ENODEV) + { + xf86AddEnabledDevice(pInfo); + if (pEvdev->flags & EVDEV_BUTTON_EVENTS) + EvdevMBEmuPreInit(pInfo); + device->public.on = TRUE; + } break; - + case DEVICE_OFF: if (!pEvdev->kernel24 && ioctl(pInfo->fd, EVIOCGRAB, (void *)0)) xf86Msg(X_WARNING, "%s: Release failed (%s)\n", pInfo->name, -- cgit v1.2.3