Messages in this thread | | | Date | Wed, 15 Feb 2012 21:24:31 -0800 | Subject | Re: [PATCH] Input: Add ioctl to block suspend while event queue is not empty. | From | Arve Hjønnevåg <> |
| |
2012/2/15 Rafael J. Wysocki <rjw@sisk.pl>: ... > Still, I have one issue with adding those ioctls. Namely, wouldn't it be > simpler to treat all events coming from wakeup devices as wakeup events? >
User-space needs to block suspend between select/poll and read for this to work, so an explicit call to enable this is useful.
> With the new ioctls user space can "mark" a queue of events coming out of > a device that's not a wakeup one as a "wakeup source", which doesn't seem to > be correct. >
OK, but I don't think this is a big problem.
> Conversely, with those ioctls user space can effectively turn events coming > out of a wakeup device into non-wakeup ones, which doesn't seem to be correct > either. >
I don't agree with this. There can be multiple readers on an input device. Only the reader that is responsible for acting on the wakeup event should call this ioctl.
> So, I think evdev client queue's wakeup source (or wakelock) should stay active > if there are any events in the queue and the underlying device is a wakeup one,
I don't want additional readers of the device to prevent suspend.
> i.e. device_may_wakeup() returns true for it. Then, we won't need the new > ioctls at all and user space will still be able to control which events are to > be regarded as wakeup ones by changing the wakeup settings of the devices that > generate them. >
I don't think this is currently hooked up for most of the devices we have. If we do add a dynamic wakeup settings I would prefer to have an ioctl to set which events on a device should be enabled for wakeup (or just enabled) instead of switching the entire drive. That way we could turn off unneeded rows and columns in a key matrix.
-- Arve Hjønnevåg -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |