2012/2/15 Rafael J. Wysocki <rjw@xxxxxxx>: ... > 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-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html