Re: [PATCH] Input: Add ioctl to block suspend while event queue is not empty.

From: Rafael J. Wysocki
Date: Thu Feb 16 2012 - 17:27:14 EST


On Thursday, February 16, 2012, Arve Hjønnevåg wrote:
> 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.

Ah, OK. So you envision the new ioctls as the way of saying "I'm the one
who's going to take care of those wakeup events"? If that's the case, may
I suggest changing the names?

> > 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.

OK

> > 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.

Can you actually select what keys may wake up the system from sleep
(I mean "real sleep", when the whole system is entirely off except for wakeup
devices)?

Rafael
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/